Как построить график в octave

Графики GNU Octave

Материал из Xgu.ru

Как построить график в octave. Смотреть фото Как построить график в octave. Смотреть картинку Как построить график в octave. Картинка про Как построить график в octave. Фото Как построить график в octave
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.

Если вы считаете, что её стоило бы доработать как можно быстрее, пожалуйста, скажите об этом.

Содержание

[править] OctPlot

[править] Оформление графиков

Легенда графиков (естесственно, если их больше одногоо) создается с помощью функции legend, которая имеет две формы вызова.

show— показать легенду
hide или off— скрыть легенду
boxon— перечень названий графиков в рамке
boxoff— перечень названий графиков без рамки
left— выравнивание текста по левому краю
right— выравнивание текста по правому краю

Как правило, обе формы функции legend вызываются последовательно.

Функция форматирования осей также вызывается в двух вариантах:

отвечает за размеры видимой области графика. Он должен состоять из 2, 4 или 6 элементов:

Vx = [ Xmin, Xmax ]
Vxy = [ Xmin, Xmax, Ymin, Ymax ]
Vxyz = [ Xmin, Xmax, Ymin, Ymax, Zmin, Zmax ]

, понятно, уригулирует вопросы соотношения делений осей:

"square" Force a square aspect ratio. "equal" Force xdistance to equaly-distance. "normal" Restore the balance. "auto" Set the specified axes to have nice limits a round the data or all if no axes are specified. "manual" Fix the current axes limits. "tight" Fix a xestothelimitsofthedata(notimplemented). Theoption "image" isequivalentto "tight" and "equal".

xlabel('Подпись по оси X');
ylabel('Подпись по оси Y');
zlabel('Подпись по оси Z');

Метки в произвольной точке графика

h = text (x, y, "Текст") # для 2D графиков
h = text (x, y, z, "Текст") # для 3D графиков

Присваивание переменной h можно не выполнять.

grid('on') # включение отображения сетки
grid('off') # выключение отображения сетки

[править] 2D графики

[править] Подготовка исходных данных

Для загрузки данных из файла можно использовать команду: load «textfile.txt»

Данные будут загружены в переменную «textfile». Для доступа к значениям которой можно использовать выражение: textfile(1). Необходимо помнить, что нумерация в массивах Octave’a начинается с единицы, а не с нуля.

Для сохранения переменных в файл можно использовать команду: save «textfile.txt» var1

Для того, чтобы загружать из файла массивы, можно в начале сохранить массив, чтобы посмотреть в каком формате он сохраняет.

Источник

Программирование на Octave/Основы Octave

Заметка:
Если у вас возникли проблемы с запуском Octave, сайты NCLab и Verbosus позволяют вам работать с Octave в облаке. Обе системы бесплатны для использования.

Содержание

Запуск Octave [ править ]

Чтобы запустить Octave введите octave в окне терминала. Вы должны будете увидеть, что-то похожее на текст ниже, разница зависит от версии, которую вы установили:

Ввод команд [ править ]

Также доступно много математических функций, имеющих предсказуемые имена (во многом схожие с аналогичными в других языках программирования).

Также определены различные константы: pi, e, мнимая единица (i или j), inf (бесконечность), NaN (Неопределенность. Результат неопределенных операций, например inf/inf).

Вот несколько примеров операций и соответствующих им команд Octave.

Несколько вещей, на которые стоит обратить внимание:

Построение графиков [ править ]

Сейчас вы научитесь строить следующие графики с помощью Octave.

Как построить график в octave. Смотреть фото Как построить график в octave. Смотреть картинку Как построить график в octave. Картинка про Как построить график в octave. Фото Как построить график в octave
Figure 1
Как построить график в octave. Смотреть фото Как построить график в octave. Смотреть картинку Как построить график в octave. Картинка про Как построить график в octave. Фото Как построить график в octave
Figure 2
Как построить график в octave. Смотреть фото Как построить график в octave. Смотреть картинку Как построить график в octave. Картинка про Как построить график в octave. Фото Как построить график в octave
Figure 3
Как построить график в octave. Смотреть фото Как построить график в octave. Смотреть картинку Как построить график в octave. Картинка про Как построить график в octave. Фото Как построить график в octave
Figure 4

Форма 1 (Figure 1) содержащая в себе плоскость была сгенерирована с помощью команд, написанных ниже. Пока что это простой пример, предназначенный проиллюстрировать базовые возможности построения графиков. Мы рассмотрим более сложные примеры позже.

Задание [ править ]

Немного о командах [ править ]

Следующие команды и функции очень полезны для задания переменных при построении 2D графиков.

Функция бывает полезна, когда вы хотите построить несколько графиков на разных окнах, а не заменять ваш предыдущий график или строить график на той же оси.

Пример [ править ]

Сейчас мы построим графики, изображенные на рисунках 3 и 4. На рисунке 3 изображены три тригонометрические функции

Затем посчитаем Y-значения для всех трёх функций

Следующие команды построят график всех трёх функций

На строке 5 ( figure ) мы сообщаем Octave, что хотим построить новый график в новом окне. Считается хорошей практикой вызывать figure перед построением нового графика. Такой подход помогает избежать случайно замены предыдущего важного графика.

Форма, которую вы видите, отображает все три построенные функции одинаковым цветом. Чтобы заставить Octave задать различные цвета автоматически, постройте все функции за один шаг:

Ну, и наконец-то, построим второй график (рисунок 4):

Строка 11 создает новое окно, а строка 12 сообщает Octave, что все последующие построения графиков будут просто замещать предыдущие. На строке 13 мы строим график суммы всех функций.

Небольшая заметка для пользователей Mac:
Если команды для построения графиков не работают, выполните следующую команду:

Упражнения [ править ]

Предупреждение [ править ]

В случае sin(x) * cos(x) :

Неочевидные проблемы [ править ]

Как построить график в octave. Смотреть фото Как построить график в octave. Смотреть картинку Как построить график в octave. Картинка про Как построить график в octave. Фото Как построить график в octave

Чтобы получить такой же график, как на рисунке выше, введите следующее:

Скрипты [ править ]

Обратите внимание, что команда chdir(‘

/octave’) ; необходима, если вы не находились внутри этой папки во время запуска Octave.

В следующих уроках вы узнаете несколько новых выражений, которые вы сможете использовать, чтобы сделать ваш Octave-код намного круче. Количество предоставляемых скриптов будет расти и вам следует сохранять их для дальнейшего использования. Хорошей идеей будет создать папку octave в вашей домашней папке и сохранять все ваши Octave файлы в неё.

Источник

Числовой инструментарий, часть III

Автор: (C) Кристоф Шпиль [Christoph Spiel]
Перевод: (C) С. Скороходов

Тем не менее, статья начинается с введения, имеющего равное отношение сразу ко всем прогрммам. Для максимизации удобства читателя, все три программы будут решать три одинаковые проблемы из реальной жизни, что обл е гчит сравнение несмотря на имеющиеся различия в реализации. В последующих разделах Octave, Scilab и Tela придется справляться с предложенными задачами.

Все три приложения предназначены для работы исключительно с векторами и матрицами и их графические подсистемы понимают только такие данные. Вот так! С точки зрения пользователя это означает, что график функции вроде этой

Если данные уже в векторной форме, то «изобразить» их можно немедленно.

Даже если мы сильно постараемся усложнить вызовы (сохраняя их полезность), то придем к следующему

Сравните эту задачу с построением двухмерного графика:

Какие тут могут быть варианты?

Для того, чтобы соревнование программ было интересным, я составил задачи, не слишком отличающихся от тех, которые ставит Жизнь(tm). Каждой из трех программ придется справится с построением графиков трех разных видов:

График должен иметь название, имена осей и легенду. Диапазон значений x и y указывается пользователем.

На графике, как всегда, должны быть заголовок и обозначение осей координат.

Все графики должны быть выведены на два устройства,

Для облегчения обсуждения я разбил код на блоки. В каждом блоке сгруппированы связанные по смыслу команды, а сам блок помечен цифрой в квадратных скобках для того, чтобы в дальнейшем было легче на него ссылаться.

Блок [1] должен быть понятен на основе материала предыдущих статей. Взаимодействие с Gnuplot в первый раз происходит в блоке [2], где Gnuplot приводится в заранее известное состояние и X11-окно очищается для отрисовки графика. Заранее известное состояние полезно при экспериментировании с настройками Gnuplot. В нашем случае переинициализация не требуется, но и вреда от нее никакого.

Смысл блока [3] из команд gset очевиден, за исключением

что означает «поместить легенду (или «ключи» Как построить график в octave внутрь области отрисовки графика, в ее северо-западный угол». Аргументы xrange и yrange (со специальным синтаксисом задания интервалов) устанавливают ширину и высоту графика в соответсвии с диапазонами значений отображаемых данных.

Рисунок : Окно Gnuplot с красной трехмерной сеткой, ‘деформированной’ в соответствии с функцией f(u, v). График в целом похож на бумеранг.
Имеется и версия для печати (eps.gz).

Блок [4] представляет из себя набор вызовов gset и выглядит достаточно знакомым. Добавлено лишь несколько новых настроек

После проработки примеров с двухмерным графиком дискретных функций и графиком трехмерной функции, первые три блока 2 не должны вызвать много вопросов. В блоке [4], однако, я был вынужден прибегнуть к «фокусу», который покажет себя в блоке [6]. Хитрость в том, чтобы изобразить изолинии с помощью функции, определяемой пользователем. Значения этой функции и, следовательно, положение изолиний, не известны заранее.

является абсолютно правильным вызовом, в то время как

не приведет ни к чему, кроме вывода сообщения о синтаксической ошибке

Запомните, gset нужны литералы с плавающей точкой!

Мы оказываемся в тупике, из которого нас может вывести лишь применение «малой магии». Если мы предложим Octave полную строку вызова gset, такую, в которую «интерполированы» значения вектора iso_levels (программисты на Perl дни на пролет заняты именно этим), то дело оказывается «в шляпе». Вот как делается это фокус:

Для читетелей, не любящих абстрактные описания, привожу протокол выполнения (длинные строки были отредактированы для того, чтобы «вписаться» по ширине):

Блок [6]: Gnuplot не блещет в отрисовке контуров. На самом деле руководство по GNUPlot предлагает не использовать эту функцию напрямую. Мы, тем не менее, продолжим, поскольу наш подход легче для понимания. Три следующих вызова gset переключает Gnuplot в режим рисования контуров:

Дополнительные примеры графиков для Gnuplot можно найти на странице http://www.gnuplot.org/gnuplot/gpdocs/all2.htm

А теперь поговорим о совершенно другом подходе.

Для тех, кто хотел бы взглянуть онлайновую справку, не устанавливая Scilab, руководство можно скачать из Сети.

Scilab: двухмерный график дискретных данных

Рисунок : смотрите заголовок к разделу Octave: двумерный график дискретных данных.
Здоровенный файл в Encapsulated Postscript можно скачать (при желании).

Блок [1] считывает данные из файлов в матрицы.

Намек: развлекаясь с функциями рисования графиков Scilab, очистка окна перед вызовом функций отрисовки часто экономит нажатие на клавиши: команда

написанная в одну строку может быть легко «возвращена» в для редактирования и вновь вызвана одним нажатием на клавишу return.

А вот в блоке [3] тайное письмо появляется во всей своей красе! Что, в самом деле, означает следующая конструкция?

Третий символ
Устанавливает тип осей. Можно выбрать из шести разных значений. Мы выбрали ‘ 1 ‘ для первой кривой, что создает оси внизу и по левому краю графика. Следующие кривый выводятся со значением ‘ 0 ‘, что подавляет отрисовку осей.

Уф, немалый кусок отхватили! Блок [4] дает нам возможность отдохнуть.

Добавляет к существующему графику заголовок (возможно из нескольких строк) и при необходимости украшает оси x и y текстовыми обозначениями.

И наконец блок [5] преобразует данные графического окна в Postscript-файл. Команда

Файл sci1.xps содержит почти правильный Postscript, но не совсем. Его содержимое должно быть обработано командой Scilab

После обилия нового материала в разделе Scilab: двухмерный график дискретных данных в этом разделе все новости прячутся в блоке [4]:

которая, в свою очередь, уже напоминает gsplot (и mesh() из Tela).

Рисунок : описание картинки смотрите в разделе «Octave: контурный график функции.
Можно взять результат в готовом для печати виде (eps).

служащую «оберткой» для

Но, поскольку нам необходимо знать максимальное и минимальное значение, принимаемое g(u, v) на «решетке», fcontour2d() ни в чем не облегчит нашей задачи. Так что в блоке [4] мы вычисляем g(u, v) на точках «сети», задаваемой векторами x и y :

Остальные блоки используют уже известные функции.

На посвященном Scilab сайте INRIA можно найти дополнительные демонстрации возможностей построения графиков.

Помимо проиллюстрированных выше функций, Scilab предовтавляет много возможностей. Например:

Как и при обсуждении других программ рисования, руководство по PlotMTV полезно иметь под рукой.

Обратите внимания на то, что написание каждой пары ключ-значение в отдельной строке повышает читаемость вызова в целом.

Строковые пары ключ-значение понятны сами по себе. Не вполне очевидные соответсвия вроде linestyle => 0 (= невидимой линии) или markertype => 2 (= крестики) необходимо предварительно найти в руководстве или в в примерах по созданию графиков, которые демонстрируют все доступные стили.

Рисунок : смотрите заголовок окна в разделе «Octave: Трехмерный график функции».
«Зазипованная» версия файла Encapsulated Postscript (eps.gz) тоже имеется.

Блок напоминает блок [2] в разделе Octave: трехмерный график функции, где meshgrid() из Octave заменен на grid() из Tela.

Функция mesh(), рисующая трехмерный график, в качестве первого аргумента принимает матрицу z-значений, а спецификация «решетки» указывается в опциях:

PlotMTV понимает вектора, заключенные в скобки, но символ «решетки» нужно убрать

Между прочим, PlotMTV прекрасно подходит на роль графического сервера [backend] для скриптов и программ «домашнего р о злива». Руководство по PlotMTV неизменно помогает читателю в создании программных интерфейсов к собственным функциям.

Мы узнали о том, как в Octave, Scilab и Tela получить графики функций или экспериментальных данных, готовые для отправки в редакцию. Иногда, из-за ограничений реализации, потребовались довольно хитроумные приемы. Нам, однако, удалось разрешить все проблемы.

Мне кажется, что объем ручной работы, необходимой для создания действительно красивых графиков, всегда будет большим, вне зависимости от используемого программного обеспечения.

Кристоф Шпиль [Christoph Spiel]

Команда переводчиков:
Владимир Меренков, Александр Михайлов, Иван Песин, Сергей Скороходов, Александр Саввин, Роман Шумихин, Александр Куприн

Источник

GNU Octave/Короткое знакомство с GNU Octave

Это руководство рассказывает о том, как установить, запустить и использовать GNU Octave, а также о том, как сообщать об ошибках.

GNU Octave — высокоуровневый язык программирования, предназначенный прежде всего для численных расчётов. Он предоставляет удобный интерфейс командной строки для численного решения линейных и нелинейных задач, а также для выполнения других численных экспериментов.

Кроме того, GNU Octave — свободно распространяемое программное обеспечение. Вы можете распространять и изменять его в соответствии с GNU General Public License, опубликованной Free Software Foundation.

Этот документ соответствует версии 2.9.12+.

Содержание

Запуск Octave [ править ]

На большинстве систем Octave можно запустить, набрав в командной строке команду «octave»:

Octave отобразит начальное сообщение, затем приглашение командной строки сообщит о готовности программы к вводу. Сразу после этого вы можете приступить к вводу команд. Приглашание выглядит следующим образом:

Если у вас возникли проблемы, вы можете просто прервать Octave нажав «Ctrl-C» (далее для краткости пишется «C-c»).

Обозначение «C-c» говорит о том, что удерживая клавишу «Ctrl» нужно нажать клавишу «c».

Чтобы выйти из Octave, наберите «quit» или «exit» в командной строке:

В системах, которые поддерживают контроль над заданиями, можно приостановить Octave, послав ему сигнал SIGTSTP, обычно для этого нужно нажать «C-z».

Простейшие примеры [ править ]

Следующие главы описывают все возможности Octave в подробностях, но прежде чем начать их изучение, может оказаться полезным рассмотрение нескольких примеров с демонстрацией некоторых возможностей Octave.

Если вы новичок в Octave, я бы рекомендовал вам начать обучение с рассмотрения этих примеров. Строки, содержащие пометки типа «octave:13>» — строки ввода, которые должны заканчиваться нажатием клавиши «Enter». После нажатия этой клавиши Octave либо выдаст ответ либо построит график.

Создание матрицы [ править ]

Чтобы создать новую матрицу и сохранит её в переменной, введите команду:

Octave выведет на экран матрицу с аккуратно выровненными колонками. Если команду закончить «;», то Octave не будет выводить результат команды. Например, команда:

создаст матрицу с 3 строками и 2 столбцами, элементы которой примут случайные значения в промежутке между нулём и единицей.

Чтобы отобразить значение любой переменной, просто напишите имя переменной. Например, чтобы отобразить значения, хранящиеся в матрице B, наберите команду:

Арифметические операции с матрицами [ править ]

Octave использует удобную форму записи операторов для представления арифметических операций над матрицами. Например, чтобы умножить матрицу A на число, наберите команду:

Чтобы перемножить две матрицы A и B, наберите команду:

Для того, чтобы выполнить матричное произведение матрицы A на транспонированную матрицу A (A * transpose(A)), наберите команду:

Решение линейных уравнений [ править ]

Для решения системы линейных уравнений A ∗ X = b <\displaystyle

A*X=b> Как построить график в octave. Смотреть фото Как построить график в octave. Смотреть картинку Как построить график в octave. Картинка про Как построить график в octave. Фото Как построить график в octave, используйте оператор левого деления «\»:

Если матрица коэффициентов вырождена, программа выведет сообщение о предупреждении и вычислит решение минимальной нормы.

Интегрирование дифференциальных уравнений [ править ]

<\frac

>=f(x,t)> Как построить график в octave. Смотреть фото Как построить график в octave. Смотреть картинку Как построить график в octave. Картинка про Как построить график в octave. Фото Как построить график в octaveи начальными условиями x ( t 0 ) = x 0 <\displaystyle

x(t_<0>)=x_<0>> Как построить график в octave. Смотреть фото Как построить график в octave. Смотреть картинку Как построить график в octave. Картинка про Как построить график в octave. Фото Как построить график в octave.

f(x,t)> Как построить график в octave. Смотреть фото Как построить график в octave. Смотреть картинку Как построить график в octave. Картинка про Как построить график в octave. Фото Как построить график в octave. Это несложно сделать. Тело функции можно ввести прямо в командную строку. Например, следующие команды определяют правые части двух нелинейных дифференциальных уравнений. Заметьте, что пока вы вводите функцию, Octave изменяет вид приглашения командной строки, чтобы напомнить вам о том, что в данный момент происходит ввод функции.

Задаём начальные условия:

Задаём вектор аргументов t <\displaystyle

t> Как построить график в octave. Смотреть фото Как построить график в octave. Смотреть картинку Как построить график в octave. Картинка про Как построить график в octave. Фото Как построить график в octave(первый элемент вектора аргументов соответствует начальным условиям, записанным выше):

Теперь вводим простую команду для интегрирования дифференциальных уравнений:

Графический вывод [ править ]

Как построить график в octave. Смотреть фото Как построить график в octave. Смотреть картинку Как построить график в octave. Картинка про Как построить график в octave. Фото Как построить график в octave

Чтобы вывести на экран графическое представление решения предыдущего примера, воспользуйтесь командой:

Если вы пользуетесь графическим интерфейсом, Octave автоматически создаст отдельное окно для графика.

Чтобы сохранить график, построенный на экране, воспользуйтесь командой «print». Например:

создаст файл с именем foo.eps в формате EPS, содержащий построенный график. Команда:

выдаст дополнительную информацию о параметрах команды «print», а также о файлах различных форматов, в которых можно сохранять полученные графики.

Редактирование в командной строке [ править ]

Используя командную строку Octave, вы можете вызвать, исправить и повторить предыдущие команды с помощью Emacs-подобных или vi-подобных команд редактирования. По умолчанию используются клавиатурные привязки к командам в стиле Emacs. Например, чтобы вызвать предыдущую команду, нажмите «C-p». Нажатие «C-n» позволит перемещаться по истории введённых команд в прямом направлении. Нажатие клавиш «C-f» и «C-b» перемещает курсор ввода командной строки вправо и влево соответственно, и т. д.

Полное описание возможностей команд редактирования даётся в разделе «Редактирование командной строки».

Справка и документация [ править ]

Octave имеет обширную справочную информацию, доступ к которой можно получить из командной строки Octave.

Для получения справочной информации, вы должны знать имя команды, о которой требуется получить справку. Имя функции может быть не всегда очевидным, хороший способ — набрать для начала команду «help». Она покажет все операторы, зарезервированные слова, функции, встроенные переменные и функции файлов. Другой способ — выполнить поиск с помощью функции «lookfor». Эта функция описывается в разделе «Получение помощи».

После того, как вам станет известно имя функции, о которой вы хотите получить справку, введите его в качестве аргумента команды «help». Например:

отобразит справку для функции «plot».

Для вывода на экран информации, которая не может полностью на нём поместиться, Octave использует пейджеры на подобие less и more. Нажатие «Enter» выводит следующую строку, «Пробел» — следующую страницу. Клавиша «q» закрывает пейджер.

Соглашения [ править ]

Этот раздел объясняет типографические соглашения, используемые в этом руководстве. Возможно вы захотите пропустить этот раздел и вернуться к нему позже.

Шрифты [ править ]

Имена, представляющие аргументы и
метасинтаксические переменныепервый-номерКоманды командной строки оболочки

Запись вычислений [ править ]

В примерах, рассмотренных в данном руководстве, результаты выражений, которые вы вычисляете отмечаются символами „=>“. Например:

Эту запись можно интерпретировать как: «Корень из двух равен 1.4142».

В некоторых случаях, матричные значения, возвращаемые выражениями, отображаются следующим образом:

А в других случаях, чтобы наглядно показать результат, так:

Иногда, чтобы помочь описать одно выражение, показывается другое выражение, которое возвращает идентичный результат. Точное соответствие выражений отображается с помощью символа ‘==’. Например:

Форматированный вывод [ править ]

Большинство приведенных здесь примеров отображают результат своей работы на дисплее сразу после их выполнения. Выводимое на дисплей значение отображено после знака `-|’. Значение возвращенное в результате выполнения выражения, приведенного ниже, приведено после знака `=>’.

Сообщения об ошибках [ править ]

Примеры сообщений об ошибках. Как правило сообщение об ошибке отображаются в терминале. Сообщения об ошибках выводятся на следующую строку, обозначается обычно красным цветом:

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *