Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Matlab / 02 Элементы графики +

.docx
Скачиваний:
134
Добавлен:
19.03.2016
Размер:
354.45 Кб
Скачать

Лабораторная работа №2

Matlab: Элементы графики

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

Теоретические сведения

Создание графика

Matlab имеет широкие возможности для графического изображения векторов и матриц, а также для создания комментариев и печати графики.

Функция plot имеет различные формы, связанные с входными параметрами, например plot(y) создает кусочно-линейный график зависимости элементов y от их индексов. Если вы задаете два вектора в качестве аргументов, plot(x,y) создаст график зависимости y от x.

Например, построение графика значений функции sin от 0 до (рис. 1):

t = 0:pi/100:2*pi;

y = sin(t);

plot(t,y)

Рис. 1.

Вызов функции plot с многочисленными парами x-y создает многочисленные графики. Matlab автоматически присваивает каждому графику свой цвет (исключая случаи, когда это делает пользователь), что позволяет различать заданные наборы данных. Например, следующие три строки отображают график близких функций, и каждой кривой соответствует свой цвет (рис. 2):

y2 = sin(t-.25);

y3 = sin(t-.5);

plot(t, y, t, y2, t, y3)

Рис. 2.

Функция semilogx(x,y) строит график в логарифмическом масштабе по оси , векторы и должны иметь одинаковые размеры.

Возможно изменение цвета, стиля линий и маркеров, таких как знаки плюс или кружки, следующим образом (табл. 1):

plot(x, у, 'цвет стиль маркер')

цвет стиль маркер это 1-, 2-, 3- символьная строка (заключенная в одинарные кавычки), составленная из типов цвета, стиля линий и маркеров:

— символы, относящие к цвету: 'c', 'm', 'y', 'r', 'g', 'b', 'w' и 'k'. Они обозна­чают голубой, малиновый, желтый, красный, зеленый, синий, белый и черный цвета соответственно;

— символы, относящиеся к типу линий: ' - ' для сплошной, ' -- ' для разрыв­ной, ': ' для пунктирной, ' -. ' для штрихпунктирной линий и ' none ' для её от­сутствия;

— наиболее часто встречающиеся маркеры ' + ', ' o ', ' * ' и ' x '.

Таблица 1

Стили графиков

Например, выражение:

plot(x,y,'y:+')

строит желтый пунктирный график и помещает маркеры '+' в каждую точку данных. Если вы определяете только тип маркера, но не определяете тип стиля линий, то Matlab выведет только маркеры.

Мнимые и комплексные данные. Если аргумент функции plot комплексное число, то мнимая часть игнорируется, за исключением случая, когда комплексный аргумент один. Для этого специального случая происходит построение графика зависимости реальной части аргумента от мнимой. Поэтому plot(Z), где Z — комплексный вектор или матрица, эквивалентно:

plot(real(Z),imag(Z))

Например:

t = 0:pi/10:2*pi;

plot(exp(i*t),'-o')

отобразит двадцатисторонний многоугольник с кружками на вер­шинах (рис. 5).

Рис. 5

Окна изображений. Добавление кривых на существующий график. Подграфики

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

figure

Для того чтобы сделать существующее окно текущим:

figure(n)

где n — это номер в заголовке окна. В этом случае результаты всех последующих команд будут выводиться в это окно.

Добавление кривых на существующий график. Команда hold позволяет добавлять кривые на существующий график. Когда вы набираете:

hold on

Matlab не стирает существующий график, а добавляет в него новые данные, изменяя оси, если это необходимо. Например, следующий элемент кода вначале создает график функции sin(x), а затем накладывает на него график функции sin(2*x) (рис. 3):

x=0:pi/100:4*pi;

plot(x,sin(x),'r')

hold on

plot(x,sin(2*x),'b')

grid on

Рис. 3.

Подграфики. Функция subplot позволяет выводить множество графиков в одном окне:

subplot(m,n,p)

разбивает окно изображений на матрицу m на n подграфиков и выбирает p-ый подграфик текущим. Графики нумеруются вдоль первого в верхней строке, по­том во второй и т. д. Например, для того, чтобы представить графические данные в четырех разных подобластях окна необходимо выполнить следующее (рис. 4):

x=0:pi/100:4*pi;

subplot(2,2,1)

plot(x,sin(x),'r')

grid on

subplot(2,2,2)

plot(x,sin(2*x),'b')

grid on

subplot(2,2,3)

plot(x,sin(4*x),'m')

grid on

subplot(2,2,4)

plot(x,sin(6*x),'g')

grid on

Рис. 4.

Управление осями. Подписи к осям и заголовки

Функция axis имеет несколько возможностей для настройки масштаба, ориентации и коэффициента сжатия.

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

axis( [xmin xmax ymin ymax] )

В функции axis можно также использовать ключевые слова для управления внешним видом осей. Например:

axis square

создает x и y оси равной длины, а:

axis equal

создает отдельные отметки приращений для x и y осей одинаковой длины. Так функция:

plot(exp(i*t))

следующая либо за axis square, либо за axis equal превращает овал в правильный круг.

axis auto

возвращает значения по умолчанию и переходит в автоматический режим.

axis on

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

axis off выключает обозначения осей и метки промежуточных делений.

grid off выключает сетку координат, а

grid on включает ее заново.

Подписи к осям и заголовки. Функции xlabel(‘имя оси’), ylabel(‘имя оси’), zlabel(‘имя оси’) добавляют подписи к соответствующим осям, функция title(‘название графика’) добавляет заголовок в верхнюю часть окна, а функция text вставляет текст в любое место графика.

Трехмерные графики

Трехмерные поверхности описываются функцией двух переменных . Функции Matlab, предназначенные для построения трехмерных графиков, требуют определения X и Y как матриц, состоящие из повторяющихся строк и столбцов.

Для создания таких матриц служит функция meshgrid, которая преобразует область определения, заданную через один вектор или два вектора x и y, в матрицы X и Y. Строки матрицы X дублируют вектор x, а столбцы Y — вектор y.

Функция записывается следующим образом:

[X,Y]=meshgrid(x,y)

Функции mesh и surface отображают поверхность в трех измерениях. При этом mesh создает каркасную поверхность, где цветные линии соединяют только заданные точки, а функция surface вместе с линиями отображает в цвете и саму поверхность.

Для вычисления двумерной функции sin(R)/R, в области x-y поступают следующим образом (рис. 6):

[X, Y] = meshgrid(-8:.5:8);

R = sqrt(X.^2+Y.^2)+eps;

Z = sin(R)./R;

mesh(X,Y,Z)

Здесь X, Y, Zэто матрицы значений координат поверхности.

В этом примере R — это расстояние от начала координат, которому соответствует центр матрицы. Добавление eps позволяет избежать неопределенности 0/0 в начале координат.

Рис. 6.

При использовании функции (рис. 7):

surface(X,Y,Z)

Рис. 7.

Для построения графика в трехмерном пространстве можно использовать функцию plot3(x,y,z) (рис. 8):

t=0:0.1:30;

x=0.1*t.*cos(t);

y=0.1*t.*sin(t);

z=0.05*t;

plot3(x,y,z);

grid on

Рис. 8.

В этом случае x, y, zэто вектора значений координат функции в пространстве.

Задания

Все задания рекомендуется выполнять в m-файлах.

Задание 1. Определите дискретный аргумент в произвольно выбранном диапазоне. Определите функцию вида:

Выражение

Выражение

1.

16.

2.

17.

3.

18.

4.

19.

5.

20.

6.

21.

7.

22.

8.

23.

9.

24.

10.

25.

11.

26.

12.

27.

13.

28.

14.

29.

15.

30.

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

Наиболее просто такая задача решается следующим образом, например для функции :

t=0:0.01:10; %вектор-строка дискретных значений времени

a=[1 2]; %вектор-строка значений параметра a

%задание функции f как матрицы размерности , в которой строки соответствуют значения функции f в точках дискретизации при разных параметрах a

f(1,:)=a(1)*sin(t);

f(2,:)=a(2)*sin(t);

plot(t, f(1,:), t, f(2,:))

Как изменить цвет и стиль линий на графике? Как вывести графики в разных окнах? Что произойдет, если использовать функцию subplot? Как озаглавить график и оси?

Задание 2. С использованием функций mesh и surface постройте трехмерный график пересечения поверхностей:

,

.

Задание 3. Постройте график поверхности в определенной области изменения независимых переменных :

Задание 4. С использованием функции plot3 постройте трехмерный график векторов , значения элементов которых задайте самостоятельно.

13