Добавить материал и получить бесплатное свидетельство о публикации
версия для слабовидящих
Главная / Информатика / Реферат "Построение графических моделей в системе Octave"

Реферат "Построение графических моделей в системе Octave"

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ

ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО

ОБРАЗОВАНИЯ «МОРДОВСКИЙ

ГОСУДАРСТВЕННЫЙ ПЕДАГОГИЧЕСКИЙ ИНСТИТУТ

ИМЕНИ М. Е. ЕВСЕВЬЕВА»





Факультет физико-математический



Кафедра информатики и вычислительной техники



Реферат на тему:

«Построение графических моделей в системе Octave»











Выполнила: О.С. Батурина,

cтудентка III курса группы МДМ-115

Проверила: кан. физ-мат. наук, доцент

Кормилицына Т.В.





2017г

Введение

Octave — свободная система для математических вычислений.

Система Octave был написан с учётом совместимости с MATLAB и реализует многие его возможности:

  • матрицы в качестве основных типов данных;

  • встроенная поддержка комплексных чисел;

  • мощные встроенные математические функции и большие библиотеки функций;

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

Но есть и отличия:

  • комментарии могут начинаться как с символа #, так и с символа %;

  • поддерживаются C-подобные операторы ++--+=*=/=;

  • элементы могут быть адресованы без создания новой переменной, например [1:10](3);

  • строки могут быть заданы как символом «"», так и символом «'».



























Обзор системы Octave

Octave- высокоуровневый интерпретируемый язык программирования, предназначенный для решения задач вычислительной математики. Интерпретатор Octave  запускается из терминала ОС Linux или из его порта в Windows. После запуска Octave пользователь видит окно интерпретатора (рис. 1.1).

В окне интерпретатора пользователь может вводить как отдельные команды языка Octave, так и группы команд, объединяемые в программы. Если строка заканчивается символом ";", результаты на экран не выводятся. Если же в конце строки символ ";" отсутствует,

Окно интерпретатора Octave


Рис. 1.1. 

Использование символов


Рис. 1.2.

результаты работы выводятся на экран (рис. 1.2). Текст в строке после символа \%(процент) является комментарием и интерпретатором не обрабатывается (рис. 1.2).









Простейшие арифметические операции в Octave выполняются с помощью следующих операторов:

+ сложение;

- вычитание;

* умножение;

/ деление слева направо;

\ деление справа налево;

^ возведение в степень.

Вычислить значение арифметического выражения можно вводом его в командную строку и нажатием клавиши ENTER. Обратите внимание, что при вводе вещественных чисел для отделения дробной части используется точка. Если вычисляемое выражение слишком длинное, перед нажатием клавиши ENTER следует набрать три или более точки. Это будет означать продолжение командной строки.

В Octave предусмотрены следующие форматы чисел:

  • Short — краткая запись, применяется по умолчанию;

  • Long — длинная запись;

  • Short E (Short e) — краткая запись в формате с плавающей точкой;

  • Long E (Long e) — длинная запись в формате с плавающей точкой;

  • Short G (Short g) — вторая форма краткой записи в формате с плавающей точкой;

  • Long G (Long g) — вторая форма длинной записи в формате с плавающей точкой;

  • Hex — запись в виде шестнадцатеричного числа;

  • native-Hex — запись в виде шестнадцатеричного числа, в таком виде, в каком оно хранится в памяти компьютера;

  • Bit — запись в виде двоичного числа;

  • native-Bit — запись в виде двоичного числа, в таком виде, в каком оно хранится в памяти компьютера;

  • Bank — запись до сотых долей;

  • Plus — записывается только знак числа;

  • Free — запись без форматирования, чаще всего этот формат применяют для представления комплексного числа (подробно о комплексных числах см. п. 2.5.2);

  • Compact — запись в формате, не превышающем шесть позиций, включая десятичную точку, если целая часть числа превышает четыре знака, число будет записано в экспоненциальной форме.

Возможны два варианта решения любой задачи в Octave:

  1. Терминальный режим. В этом режиме в окно интерпретатора последовательно вводятся отдельные команды.

  2. Программный режим. В этом режиме создаётся текстовый файл с расширением .m, в котором хранятся последовательно выполняемые команды Octave. Затем этот текстовый файл (программа на языке Octave) запускается на выполнение в среде Octave.

Пример. Решить систему линейных алгебраических уравнений (СЛАУ)

\left\{ \begin{array}{l} 3*x_{1}+5*x_{2}-7*x_{3}=11\\ 3*x_{1}-4*x_{2}+33*x_{3}=25\\ 22*x_{1}-11*x_{2}+17*x_{3}=22\\ \end{array} \right.

Для решения СЛАУ в окне интерпретатора Octave последовательно введём следующие команды:

% Определение матрицы коэффициентов системы линейных уравнений.

A=[3 5 -7; 3 -4 33; 22 -11 17];

b=[11; 25; 22]; % Вектор правых частей СЛАУ.

x=A^(-1)*b % Решение системы методом обратной матрицы.

x=

1.56361

2.55742

0.92542

octave -3.2.3:27 > A*x % Проверка.

ans =

11.000

25.000

22.000

Листинг 1.Решение СЛАУ примера 1

Программа для решения примера 1.1




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

Теперь рассмотрим, как решить эту же задачу в программном режиме. Вызовем любой текстовый редактор. (Именно текстовый редактор! Не путайте с текстовыми процессорами типа Microsoft Word или OpenOffice.org/LibreOffice Writer.) Например gedit, в окне которого последовательно введём следующие команды:

A=[3 5 -7; 3 -4 33; 22 -11 17]

b =[11; 25; 22]

x=A^(-1)*b

A*x

Сохраним введённые команды в виде файла с расширением .m, например, /home/evgeniy/prim1_1.m (рис. 1.3). Теперь эту программу необходимо запустить на выполнение из интерпретатора. Для этого в окне интерпретатора введём команды:

cd ’/home/evgeniy’% Переход в каталог, где хранится программа.

prim1_1 % Запуск программы.

Окно терминала после запуска программы prim1_1


Рис. 1.4. Окно терминала после запуска программы prim1_1

Окно интерпретатора примет вид, представленный на рис. 1.4. Просмотрев результаты работы программы, нажмите q для возвращения в режим ввода команд терминала.







  1. Построение графических моделей

2.1. Построение двумерных графиков

Пример. Построить график функции y=\sin(x)+\frac{1}{3} \sin(3x)+\frac{1}{5}\sin(5x) на интервале [-10; 10].

Для того, чтобы построить график функции f (x) необходимо сформировать два массива x и y одинаковой размерности, а затем обратиться к функции plot.

Решение этой задачи представлено ниже:

x = -10:0.1:10; % Формирование массива x.

y=sin(x)+sin (3*x)/3+ sin (5*x )/5; % Формирование массива y.

plot(x, y) % Построение графика функции.

Листинг 4.1. Построение графика (пример 4.1).

В результате обращения к функции plot(x, y) будет создано окно с именем Figure 1, в котором будет построен график функции y=\sin(x)+\frac{1}{3} \sin(3x)+\frac{1}{5}\sin(5x).

График формируется путём соединения соседних точек прямыми линиями. Чем больше будет интервал между соседними точками (чем меньше будет точек), тем больше будет заметно, что график представляет из себя ломанную.

Если повторно обратиться к функции plot, то в этом же окне будет стёрт первый график и нарисован второй. Для построения нескольких графиков в одной системе координат можно поступить одним из следующих способов:

  1. Обратиться к функции plot следующим образом plot(x1, y 1, x2, y 2, . . ., xn, yn), где x1, y 1 — массивы абсцисс и ординат первого графика, x2, y 2 — массивы абсцисс и ординат второго графика, . . ., xn, yn — массивы абсцисс и ординат n-ого графика.

  2. Каждый график изображать с помощью функции plot(x, y), но перед обращением к функциям plot(x2, y 2), plot(x3, y 3), . . ., plot(xn, yn) вызвать команду hold on1, которая блокирует режим очистки окна.

Рассмотрим построение нескольких графиков этими способами на примере решения следующей задачи.

Графики функции: v = sin x, w = cos x, r = sin\frac{x}{2}, p =\frac{3}{2}cos x

Графики функций

При определении строки, отвечающей за вывод линии, следует учитывать следующее:

  • не важен порядок символа цвета и символа маркера;

  • если присутствует символ "-", то линия всегда будет сплошная, при этом, если присутствует символ маркера, то все изображаемые точки ещё будут помечаться маркером, если символа маркера нет, то соседние точки просто будут соединяться линиями;

  • если символ маркера "-" отсутствует, то линия может быть, как сплошная, так и точечная; это зависит от наличия символа маркера, если символа маркера нет, то будет сплошная линия, иначе — точечная.

Если необходима легенда для графика, то её следует включить в строку форматов, заключённую в символы ";". Например, команда plot(x = -pi : 0.1 : pi, sin(x), выведет на экран график функции y = sin(x) чёрного цвета на интервале [-\pi; \pi] c легендой  

Для того, чтобы чтобы вывести график в новом окне, перед функцией plot, следует вызвать функцию figure().





Внимание! При работе с графиками в Octave необходимо понимать следующее: щелчок по кнопке закрытия окна с графиками приводит не к уничтожению (закрытию) окна, а к его скрытию. При повторном вызове команды рисования графиков происходит восстановление окна, в котором и изображаются графики. Корректное закрытие графического окна можно осуществить в Octave только программно.

Графическое окно создаётся функцией figure : h =figure ();

Здесь h — переменная, в которой будет храниться дескриптор (номер) окна. Для дальнейших операций с окном надо будет использовать именно переменную, в которой хранится дескриптор.

Уничтожение (закрытие) окна осуществляется с помощью функции delete(h), где h — имя дескриптора закрываемого окна.

В Octave есть функция pause(n), которая приостанавливает выполнение программы на n секунд. Её логично вставлять перед функцией закрытия окна.

Octave представляет дополнительные возможности для оформления графиков:

  • командаgrid on наносит сетку на график, grid off убирает сетку с графика;

  • функция axis[xmin, xmax, ymin, ymax] выводит только часть графика, определяемую прямоугольной областью x_{min}\leq x \leq x_{max},y_{min}\leq y \leq y_{max};

  • функция title(’Заголовок’) предназначена для вывода заголовка графика;

  • функции xlabel(’Подпись\ под\ осью \ х’), ylabel(’Подпись\ под\ осью\ y’) служат для подписей осей xи y соответственно;

  • функция text(x,y,’текст’) выводит текст левее точки с координатами (x, y);

  • функция legend(’легенда1’, ’легенда2’, . . ., ’легендаn’, m) выводит легенды для каждого из графиков, параметр m определяет месторасположение легенды в графическом окне: 1 — в правом верхнем углу графика (значение по умолчанию); 2 — в левом верхнем углу графика; 3 — в левом нижнем углу графика; 4 — в правом нижнем углу графика.



2.2.Построение графиков в полярной системе координат

Полярная система координат состоит из заданной фиксированной точки O, называемой полюсом, концентрических окружностей с центром в полюсе и лучей, выходящих из точки O, один из которых, OX, называют полярной осью. Положение любой точки M в полярных координатах можно задать положительным числом ρ = |OM | (полярный радиус) и числом ϕ, равным величине угла XOM (полярный угол). Числа ρ и ϕ называют полярными координатами точки M и обозначают M (ρ, ϕ).

Для формирования графика в полярной системе координат необходимо сформировать массивы значений полярного угла и полярного радиуса и обратиться к функции polar: polar(phi, ro, s), где phi — массив полярных углов; ro — массив полярных радиусов; s — строка, состоящая из трёх символов, которые определяют цвет линии, тип маркера и тип линии

Пример 4.11. Построить графики архимедовой спирали, гиперболической спирали и логарифмической спирали в полярных координатах.

Уравнение архимедовой спирали в полярных координатах имеет вид: \rho=\alpha\varphi, гиперболической — \rho=\frac{\alpha}{\varphi}. Соотношение \rho=\alpha e^{k\varphi}, k=\ctg\alpha является уравнением логарифмической спирали в полярных координатах. Частным случаем логарифмической спирали (\alpha=\frac{\pi}{2}, k=0) является уравнение окружности (\rho=\alpha).

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

h=figure( )

clear all;

% Формируем массивы fi1, fi2, fi3, fi4, ro1, ro2, ro3, ro4.

fi1 =0:pi/20:6*pi; fi 2=pi/3:pi /200:6*pi; fi3 =0:pi/20:4*pi;

fi4 = -pi:pi/20:pi; ro1=4* f i 1; ro2 =0.5./fi2; ro3=4*exp(0.2*fi3);

for i = 1:41 ro4(i) =4; endfor

% Делим графическое окно на 4 части и объявляем первый график текущим.

subplot(2, 2, 1);

polar(fi1, ro1); % Строим график архимедовой спирали.

title(’Graph of Archimedean spiral’); % Подписываем график.

subplot(2, 2, 2); % Второй график объявляем текущим.

polar(fi2, ro2); % Строим график гиперболической спирали.

title(’Graph of the hyperbolic spiral’); % Подписываем график.

subplot(2, 2, 3); % Третий график объявляем текущим.

polar(fi3, ro3); % Строим график логарифмической спирали.

title(’Graph of the logarithmic spiral’); % Подписываем график.

subplot(2, 2, 4); % Четвёртый график объявляем текущим.

polar(fi4, ro4); % Строим график окружности.

title(’Graph the circle’); % Подписываем график.

2.3.Построение графиков, заданных в параметрической форме

Задание функции y(x) с помощью равенств x = f (t) и y = g(t) называют параметрическим, а вспомогательную величину t — параметром. Построение графика функции, заданной параметрически, можно осуществлять следующим образом:

  1. Определить массив t.

  2. Определить массивы x = f (t) и y = g(t).

  3. Построить график функции y(x) с помощью функции plot(x, y).

В качестве примера рассмотрим построение график эпициклоиды и астроиды.

Пример 4.12. Построить график эпициклоиды. Уравнение эпициклоиды в параметрической форме имеет вид x = 4 cos t - cos 4t, y = 4 sin t -sin 4tt\in[0; 2\pi]. Ниже представлен график.

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





Для формирования прямоугольной сетки в Octave есть функция meshgrid. Рассмотрим построение трёхмерного графика на следующем примере.

Пример  z(x,y)=3x^{2}-2sin^{2}y, x \in [-2,2], y \in [-3,3].

Для формирования сетки воспользуемся функцией meshgrid.


>>>[x y]=meshgrid(-2:2,-3:3)

x =

-2 -1 0 1 2

-2 -1 0 1 2

-2 -1 0 1 2

-2 -1 0 1 2

-2 -1 0 1 2

-2 -1 0 1 2

-2 -1 0 1 2

y =

-3 -3 -3 -3 -3

-2 -2 -2 -2 -2

-1 -1 -1 -1 -1

0 0 0 0 0

1 1 1 1 1

2 2 2 2 2

3 3 3 3 3

После формирования сетки вычислим значение функции во всех узловых точках


>>> z=3*x.*x-2*sin(y).^2

z =

11.96017 2.96017 -0.03983 2.96017 11.96017

10.34636 1.34636 -1.65364 1.34636 10.34636

10.58385 1.58385 -1.41615 1.58385 10.58385

12.00000 3.00000 0.00000 3.00000 12.00000

10.58385 1.58385 -1.41615 1.58385 10.58385

10.34636 1.34636 -1.65364 1.34636 10.34636

11.96017 2.96017 -0.03983 2.96017 11.96017

Листинг .

График функции: z(x, y) = 3x^2-2sin^{2y}

График функции



Для построения каркасного графика следует обратиться к функции mesh: mesh(x, y, z);

[x y]= meshgrid(- 2:0.1:2, -3:0.1:3);

z=3*x.*x-2*sin(y).^2

mesh(x, y, z);

Листинг 4.14. Построение графика поверхности (пример 4.14).

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

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















Заключение

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









































Список использованной литературы

1.Алексеев Е. Р., О. В. Чеснокова «Введение в Octave для инженеров и математиков» М.: ALT Linux, 2012. — 368 с.: ил. Учебник Octave на русском.

2.Поселов Д.А. Информатика. Энциклопедический словарь. – М.: Педагогика-Пресс, 2013г.

3.Шамрай З.Н. « Краткое руководство по работе с пакетами GNU Octave и Gnuplot», 2013.

4.Официальный сайт издательства "Открытые Системы". Интернет университет информационных технологий.

5.Электронный ресурс: http://www.intuit.ru/studies/courses/3677/919/lecture.

6.Картинки Google [Электронный ресурс]: бесплатные картинки по разным темам. - Режим доступа:www.google.com/imghp?hl=ru





















  • Информатика
Описание:

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

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

Скачать материал
Автор Батурина Ольга Сергеевна
Дата добавления 31.10.2017
Раздел Информатика
Подраздел Конспекты
Просмотров 389
Номер материала MA-071980
Скачать свидетельство о публикации

Оставьте свой комментарий:

Введите символы, которые изображены на картинке:

Получить новый код
* Обязательные для заполнения.


Комментарии:

Популярные курсы