русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Построение графиков функции одной переменной в MatLab

1. Графики функций в линейном масштабе

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

,

определенной на отрезке [0, 1]. Вывод функции в виде графика состоит из следующих этапов:

1. Задание вектора значений аргумента х.
2. Вычисление вектора у значений функции y(х).
3. Вызов команды  plot  для построения графика.

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

» х = [0:0.05:1];
» у = ехр(-х).*sin(10*x);
» plot(x, у)

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

Для построения графика функции в рабочей среде MatLab должны быть определены два вектора одинаковой размерности, например х и у. Соответствующий массив х содержит значения аргументов, а у — значения функции от этих аргументов. Команда plot соединяет точки с координатами (x(i), y(i)) прямыми линиями, автоматически масштабируя оси для оптимального расположения графика в окне. При построении графиков удобно расположить на экране основное окно MatLab и окно с графиком рядом так, чтобы они не перекрывались.

Построенный график функции имеет изломы. Для более точного построения графика функцию необходимо вычислить y(х) в большем числе точек на отрезке [0, 1], т.е. задать меньший шаг при вводе вектора х:

» х = [0:0.01:1];
» у = ехр(-х).*sin(10*x);
» plot(x, у)

В результате получается график функции в виде более плавной кривой.
Сравнение нескольких функций удобно производить, отобразив их графики на одних осях. Например, построим на отрезке [-1, -0.3] графики функций

,

при помощи следующей последовательности команд:

» х = [-1:0.005:-0.3];
» f = sin(x.^-2);
» g = sin(1.2*x.^-2);
» plot(x, f, x, g)

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

» х1 = [-1:0.005:-0.3];
» f = sin(x1.^-2);
» х2 = [-1:0.005:0.3];
» g = sin(1.2*x2.^-2);
» plot(x1, f, x2, g)

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

Замечание 1
Использование plot с одним аргументом - вектором - приводит к построению "графика вектора", т.е. зависимости значений элементов вектора от их номеров. Аргументом plot может быть и матрица, в этом случае на одни координатные оси выводятся графики столбцов.
Иногда требуется сравнить поведение двух функций, значения которых сильно отличаются друг от друга. График функции с небольшими значениями практически сливается с осью абсцисс, и установить его вид не удается. В этой ситуации помогает функция plotyy, которая выводит графики в окно с двумя вертикальными осями, имеющими подходящий масштаб.
Сравните, например, две функции:   и 

» х = [0.5:0.01:3];
» f = х.^-3;
» F = 1000*(х+0.5).^-4;
» plotyy(x, f, x, F)

При выполнении этого примера обратите внимание, что цвет графика совпадает с цветом соответствующей ему оси ординат.
Функция plot использует линейный масштаб по обеим координатным осям. Однако MatLab предоставляет пользователю возможность строить графики функций одной переменной в логарифмическом или полулогарифмическом масштабе.

 

2. Графики функций в логарифмических масштабах

Для построения графиков в логарифмическом и полулогарифмическом масштабах служат следующие функции:
- loglog (логарифмический масштаб по обеим осям);
- semilogx (логарифмический масштаб только по оси абсцисс);
-semilogy (логарифмический масштаб только по оси ординат).
Аргументы loglog, semilogx и semilogy задаются в виде пары векторов значений абсцисс и ординат так же, как для функции plot, описанной в предыдущем пункте. Построим, например, графики функций   и    на отрезке [0.1, 5] в логарифмическом масштабе по оси х:

» х = [0.1:0.01:10];
» f = log(0.5*x);
» g = sin(log(x));
» semilogx(x, f, x ,g)

 

3. Задание свойств линий на графиках функций

Построенные графики функций должны быть максимально удобными для восприятия. Часто требуется нанести маркеры, изменить цвет линий, а при подготовке к монохромной печати — задать тип линии (сплошная, пунктирная, штрих-пунктирная и т.д.). MatLab предоставляет возможность управлять видом графиков, построенных при помощи plot, loglog, semilogx и semilogy, для чего служит дополнительный аргумент, помещаемый за каждой парой векторов. Этот аргумент заключается в апострофы и состоит из трех символов, которые определяют: цвет, тип маркера и тип линии. Используется одна, две или три позиции, в зависимости от требуемых изменений. В таблице  приведены возможные значения данного аргумента с указанием результата.

Цвет

Тип маркера

Тип линии

y

желтый

.

точка

-

сплошная

m

розовый

o

кружок

:

пунктирная

c

голубой

х

крестик

-.

штрих-пунктирная

r

красный

+

знак "плюс"

--

штриховая

g

зеленый

*

звездочка

 

 

b

синий

s

квадрат

 

 

w

белый

d

ромб

 

 

k

черный

v

Треугольник вершиной вниз

 

 

 

 

^

Треугольник вершиной вверх

 

 

 

 

Треугольник вершиной влево

 

 

 

 

треугольник вершиной вправо

 

 

 

 

p

пятиконечная звезда

 

 

 

 

h

шестиконечная звезда

 

 

 

Если, например, необходимо построить первый график красными точечными маркерами без линии, а второго график - черной пунктирной линией, то следует использовать команду plot(x, f, 'r.', х, g, 'k:').

 

4. Оформление графиков функций

Удобство использования графиков во многом зависит от дополнительных элементов оформления: координатной сетки, подписей к осям, заголовка и легенды. Сетка наносится командой grid on, подписи к осям размещаются при помощи xlabel, ylabel, заголовок дается командой title. Наличие нескольких графиков на одних осях требует помещения легенды командой legend с информацией о линиях. Все перечисленные команды применимы к графикам как в линейном, так и в логарифмическом и полулогарифмическом масштабах. Следующие команды выводят графики изменения суточной температуры, которые снабжены всей необходимой информацией.

» time = [0 4 7 9 10 11 12 13 13.5 14 14.5 15 16 17 18 20 22];
» temp1 = [14 15 14 16 18 17 20 22 24 28 25 20 16 13 13 14 13];
» temp2 = [12 13 13 14 16 18 20 20 23 25 25 20 16 12 12 11 10];
» plot(time, temp1, 'ro-', time, temp2, 'go-')
» grid on
» title('Суточные температуры')
» xlabel('Время (час.)')
» ylabel('Температура (С)')
» legend('10 мая1,  11 мая')

При добавлении легенды следует учесть, что порядок и количество аргументов команды legend должны соответствовать линиям на графике. Последним дополнительным аргументом может быть положение легенды в, графическом окне:

  • —1 - вне графика в правом верхнем углу графического окна;
  • 0 — выбирается лучшее положение в пределах графика так, чтобы как можно меньше перекрывать сами графики;
  • 1 — в верхнем правом углу графика (это положение используется по умолчанию);
  • 2 — в верхнем левом углу графика;
  • 3 — в нижнем левом углу графика;
  • 4 — в нижнем правом углу графика.

В заголовке графика, легенде и подписях осей допускается добавление формул и изменение стилей шрифта при помощи формата ТеХ.
MatLab выводит графики разным цветом. Монохромный принтер напечатает графики различными оттенками серого цвета, что не всегда удобно. Команда  plot  позволяет легко задать стиль и цвет линий, например

» plot(x,f,'k-',x,g,'k:')

осуществляет построение первого графика сплошной черной линией, а второго - черной пунктирной. Аргументы 'k-' и 'k:' задают стиль и цвет первой и второй линий. Здесь k означает черный цвет, а дефис или двоеточие - сплошную или пунктирную линию. Окно с графиком можно закрыть, нажав на кнопку с крестиком в правом верхнем углу.

Просмотров: 21474

Вернуться воглавление


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.