Графики параметрических и кусочно-заданных функций
Графика ML
Визуализация вычислений является неотъемлемой частью процесса проектирования. МL обладает мощными графическими возможностями, и пользователю пакета предоставляется широкий выбор средств для создания графических иллюстраций. Вывод графической информации в ML осуществляется в отдельное окно, которое создается автоматически, когда используется какая-либо графическая функция. Для оформления и редактирования графиков предусмотрены специальные команды.
Построение простейших графиков функций одной переменной
Графики параметрических и кусочно-заданных функций
Самая простая команда для построения графика - команда Plot(Y). Результатом является графическое представление элементов вектора Y. По оси Х в этом случае откладываются только номера элементов. Поэтому такой график используется редко.
Чтобы построить график какой-либо функции на определенном интервалес отметками по оси Х, надо получить вектор из значений аргумента, потом получить вектор значений функции, а затем графически отобразить его. Для этого используется команда Plot(X,Y). Система ML автоматически создаст графическое окно, построит оси координат, выберет наиболее оптимальный масштаб и выведет график цветом по умолчанию. График строится по координатам x, y и соединяется отрезками прямых. Для того, чтобы график не имел резких переходов, надо задавать мелкий шаг изменения значений аргумента.
Будем строить график функции sin(x)на участке от 0 до 2π.
Для получения вектора значений аргумента можно воспользоваться любым из известных нам способов.
Если известно количество значений, которое необходимо получить на определенном участке, то удобно воспользоваться функцией linspace. Если известен только участок, то можно самостоятельно задать шаг изменения аргумента на этом отрезке и использовать способ задания вектора двоеточием (нач.зн : шаг : конечное значение).
Зададим вектор, состоящий из 100 элементов на отрезке от 0 до 2*pi. Получим вектор Y, элементы которого соответствуют значениям синусов элементов вектора X. Применим команду plot.
>>Х = linspace(0, 2*pi, 100); % создание вектора на отрезке 0-2pi
>>Y = sin(X); % создание вектора значений функции
>>Plot(X, Y)
Полученный график недостаточно информативен. Здесь нет общего заголовка, заголовков осей, нет линий сетки, нет цвета линии, нет фона.
Все это можно сделать 2-мя способами: либо использовать специальные команды, либо воспользоваться специальной панелью настройки внешнего вида (п.м. Edit/ Figure Properties). Там существуют многочисленные возможности настройки осей графика.
При открытии панели настройки графических объектов (Current Objekt Properties) можно установить цвет и размер шрифта, тип и толщину линии и т.п.. На этой же панели можно выбрать и тип, и цвет маркера. В некоторых версиях можно также установить тип графика. Возможности этих панелей ограничены версией пакета.
Во всех версиях можно воспользоваться командами, например, для установки сетки - grid on. Команда grid on включает сетку, а командойgrid off можно отключить сетку.
Можно добавить общее название графика командой title(<заголовок>)
Названия осей задаются командами:
xlabel(<название оси x>); ylabel(<название оси y>)
Команда text(<координата x>,<координата y>, <текст>) выводит текст, начиная с позиции, заданной координатами
x и y.
Заголовок, название оси x, название осиy – параметры строкового типа (записываются в апострофах).
Например,
>> text(-1, 0.5, ' hhhhh ')
Для указания цвета, типа линий и маркера в команде Plot надо дописать параметр:
Plot(x, y, ‘<тип маркера, обозначение цвета и тип линий>’)
Этот дополнительный параметр может принимать следующие значения:
Тип маркера | Цвет линии | Тип линии |
Точка (.) Плюс (+) Кружок (o) Крестик (x) Звездочка (*) Квадрат (s) Ромб (d) Треугольник с верш. вниз (v) Треугольник с верш. вверх (^) Пятиконечная звезда (p) Шестиконечная звезда (h) | Красный (r) Желтый (y) Зеленый (g) Синий (b) Голубой (c) Розовый (m) Черный (k) Белый (n) | Сплошная(-) Штрих(--) Пунктир(:) Штрих-пунктир(-.) |
Например,
plot(x, y, ‘ * r -’)
Порядок указания атрибутов приведен выше. Если указан только цвет, то график строится сплошной линией заданного цвета. Если указан символ, определяющий тип маркера, но не указан символ для типа линии, то на графике отображаются только маркеры, не соединённые линиями. По умолчанию цвет построения синий.
Командой plot можно на графике отметить какую-либо точку, указав координаты, тип и цвет маркера, если a и b – координаты точки:
plot(a, b, ‘ * g’) % звездочка зеленого цвета (график из одной точки)
Отображение нескольких кривых на одном графике (в одних осях)
Иногда необходимо построить несколько графиков в одном графическом окне. Команда plot(X,Y) при вызове каждый раз создает новый график в текущем графическом окне.
В одних осях можно построить любое количество графиков. Для этого в команде plot нужно последовательно указать пары векторов и атрибуты для желаемого количества графиков.
В этом случае целесообразно идентифицировать каждый график. Это можно сделать с помощью команды legend. Она размещает на графике легенду с информацией о линиях. Аргументы команды текстовые. Их число и порядок соответствуют линиям графика. Можно использовать еще и числовой параметр, который отвечает за месторасположения легенды в графическом окне. Он может принимать значения: -1, 0, 1, 2, 3, 4. По умолчанию он равен -1 и легенда располагается в правом верхнем углу.
Построим 2 графика в одних осях: красными звездочками, соединенными линиями sin(x), а зелеными крестиками без соединительных линий - cos(x) :
>> X=linspace(0,2*pi,100); %задаем вектор аргумента
>> Y=sin(x); % задаем формулу для вычисления значений функции
>> plot(X, Y,'*r-',X,cos(X),'+g') % строим график
>>legend('sin(x)','cos(x)') %легенда
Иногда бывает нужно последовательно построить несколько графиков в одних осях. Для последовательного построения графиков в одних осях надо установить режим сохранения текущего графика – hold on. Команда hold off снимает сохранение.
Графики этих же функций построим последовательно:
X=linspace(0,2*pi,100); %задаем вектор аргумента
Y=sin(X); % задаем формулу для вычисления значений функции
Z=cos(X);
plot(X, Y,'*r-') % строим график sin
hold on;
plot(X, Z,'+g') % строим график cos
legend('sin(X)','cos(X)')% легенда
Hold off
График, задаваемый значениями вектора Z, будет наложен на график, отображающий значения вектора Y.
Кривая – окружность радиуса 2*pi
Спираль
%на одном графике окружность и спираль
t=0:0.1:2*pi;
x=2*pi*cos(t);
y=2*pi*sin(t);
u=t.*cos(4*t);
v=t.*sin(4*t);
plot(x,y,'pr','MarkerSize',10)
hold on
plot(u,v,'b-','LineWidth',3)
Для построения графиков можно использовать также и другие функции, с которыми мы познакомимся позже.
Можно построить график с использованием функции ezplot (<символьное выражение>,[<интервал>]).
Функция работает с символьным выражением, задающим формулу функции, которая заключается в апострофы.
>> ezplot('sin(X)',[0 2*pi])
Можно также воспользоваться функцией fplot()
Функция работает либо с символьным выражением, либо с именем функции, которая записана в файле, либо с анонимной функцией, определенной в выражении f=@(x) (sin(x)); В этом случае передается указатель на функцию, которая отображена на графике.
fplot('sin(X)',[0 2*pi]) %функция задана символьным выражением
>> f=@(X) (sin(X)) % функция задана как анонимная
>> fplot(f,[0 2*pi])
Ezplot тоже может работать с анонимной функцией
До сих пор мы строили графики в одном графическом окне. При необходимости построения каждого графика в отдельном окне, надо набрать команду: figure(номер). Сначала открывается графическое окно с именем figure1, и оно становится текущим (то, где ведется построение). Для получения нового окна, надо снова задать эту команду, при выполнении которой открывается окно figure2. При этом не произойдет наложение на прежнее графическое изображение, а откроется новое окно со следующим номером. Для очистки графического окна служит команда clf.
Для построения графика, заданного кусочно, необходимо задать каждую из 3-х ветвей, т.е. получить три пары векторов x1, y1, x2, y2 и x3, y3. Затем построить графики всех трех ветвей уже известным образом командой plot(x1, y1, x2,y2,x3,y3). Добавить в команду атрибуты, отвечающие за цвет и тип линии, а также вывести поясняющий текст.
Дата добавления: 2016-04-02; просмотров: 1192;