
- •1.4. Операции с полиномами
- •2. Элементарная графика в системе matlab
- •3. Основы программирования на языке matlab
- •3.1. Начальные положения
- •3.2. Основные действия, выполняемые с помощью редактора
- •3.3. Основные элементы языка
- •3.4. Основные операторы языка
- •If условие1
- •If условие
- •3.5. Два вида m-файлов: скрипты и функции
2. Элементарная графика в системе matlab
Одно из достоинств системы MATLAB – большое количество графических средств, начиная от команд построения простых графиков функций одной переменной и кончая комбинированными и презентационными графиками с элементами анимации.
Функции одной переменной находят широкое применение в практике математических расчетов, а также в технике компьютерного и математического моделирования. Для отображения таких функций используются графики в декартовой (прямоугольной) системе координат. При выводе на экран задаются координаты узловых точек функции. Эти точки соединяются друг с другом отрезками прямых линий, т.е. при построении графика осуществляется линейная интерполяция для промежуточных точек. В пакете MATLAB совокупность узловых точек функции задается двумя векторами: вектором абсцисс и вектором соответствующих ординат.
Вывод графика на экран в декартовой системе осуществляется командой plot. Эта команда может использоваться в нескольких вариантах.
При вызове функции с двумя аргументами plot(X, Y), где X, Y – векторы одинаковой размерности, будет построен график зависимости Y(X). Например, выполнение последовательности операторов
>> x = 0:0.001:30;
>> y = sin(x);
>> plot(x,y);
приведет к появлению на экране специального окна для вывода графических образов, на котором будет представлена синусоида. Добавление к этой последовательности команды grid on приведет к появлению на экране координатной сетки (рис. 1.1). Гашение сетки осуществляется с помощью команды grid off.
В указанном специальном окне расположен ряд элементов, которые используются для размещения выводимых графических образов, а также ряд интерфейсных инструментов, с помощью которых можно манипулировать размещенным в окне изображением.
Рис. 1.1.
Основным графическим элементом, в рамках которого появляется изображение, является прямоугольная система координат с отметками значений на координатных осях. Заметим, что максимальные значения на осях по умолчанию выбираются системой автоматически в зависимости от диапазонов значений точек, хранимых в векторах x,y.
В одном окне можно строить графики нескольких функций одним вызовом функции plot. Например (рис. 1.2),
>> x = 0:0.001:30;
>> y1 = sin(x);
>> y2 = exp(-0.1*x).*cos(x);
>> plot(x,y1,x,y2);
>> grid on;
Обратим внимание на то, что вывод указанной пары графиков привел к замене содержания предшествующего графического окна. Если это не желательно и есть необходимость в том, чтобы новые графики появлялись в отдельном окне, то это можно сделать, явно указав номер нового окна оператором figure(N), где N – номер нового окна, причем первому автоматически будет присвоен номер 1.
Рис. 1.2.
Например, группа операторов
>> x = 0:0.001:30;
>> z=cos(2*x)-cos(x);
>> figure(2);
>> plot(x,z);
>> grid on;
породит новое окно с наименованием Figure No. 2, куда и будет выведен график соответствующей функции z(x).
Для наложения графиков может также использоваться функция hold с аргументом on (разрешить наложение) или off (запретить наложение). Например, предыдущий график можно построить при помощи следующей совокупности команд:
>> t = 0:pi/100:2*pi;
>> y1 = sin(t); y2 = cos(t);
>> plot(t,y1)
>> hold on
>> plot(t,y2)
Для различной маркировки графиков нескольких функций на одном рисунке MATLAB позволяет задавать тип линии. Это делается с помощью специального аргумента функции plot (строка символов), который определяет различные стили линии, символы маркера и цвета для каждого графика функции. В общем случае функция вызывается следующим образом:
plot(X1,Y1, S1, X2,Y2, S2, …), где S1='color_linestyle_marker'.
Допустимые значения для цвета и типа линий, а так же для типа маркера приведены в таблице 1.1.
Например (рис. 1.3),
>> t = 0:pi/10:2*pi;
>> y1 = sin(t); y2 = cos(t);
>> y3=sin(t).^2;
>> plot(t,y1,t,y2,'-.ok',t,y3,':r+')
>> grid on
Таблица 1.
Цвет линии |
|
Тип маркера |
||
C |
Голубой |
|
. |
точка |
M |
фиолетовый |
|
o |
окружность |
Y |
Желтый |
|
x |
крест |
R |
Красный |
|
+ |
плюс |
G |
Зеленый |
|
* |
звездочка |
B |
Синий |
|
s |
квадрат |
W |
Белый |
|
d |
ромб |
K |
Черный |
|
v |
треугольник (вниз) |
|
|
|
^ |
треугольник (вверх) |
Тип линии |
|
< |
треугольник (влево) |
|
- |
сплошная линия |
|
> |
треугольник (вправо) |
: |
двойной пунктир |
|
p |
пятиугольник |
-. |
штрих-пунктир |
|
h |
шестиугольник |
-- |
Штриховая |
|
|
|
Рис. 1.3.
Для построения графиков функций со значениями x и y, изменяющимися в широких пределах, нередко используются логарифмические масштабы. В таком случае, для построения графиков используется функция loglog. Ее синтаксис аналогичен ранее рассмотренному синтаксису для функции plot. В некоторых случаях предпочтителен полулогарифмический масштаб графиков, когда по одной оси задается логарифмический масштаб, а по другой – линейный. Для построения графиков в полулогарифмическом масштабе используются команды semilogx (строит график функции в логарифмическом масштабе по оси X и линейном по оси Y) и semilogy (строит график функции в логарифмическом масштабе по оси Y и линейном по оси X). Например, цепочка команд
>> x=logspace(-1,3);
>> loglog(x,exp(x))
>> grid on
даёт график, изображённый на рис. 1.4.
Рис. 1.4.
Задание для самостоятельной работы:
Самостоятельно задать произвольную функцию вещественной переменной и выполнить следующие действия по построению её графика:
1. Построить график функции на заданном отрезке значений аргумента, задавая его десятью точками на отрезке. Включить сетку.
2. На одном рисунке построить указанный выше график и график этой же функции, заданный тысячей точек на этом же отрезке.
3. На
другом рисунке построить график функции
на том же отрезке значений аргумента.
4. Добавить построенный в пункте 3 график к первому рисунку.
5. Построить график функции
на отрезе
с использованием полулогарифмической
системы координат.