Вы находитесь на странице: 1из 11

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

Работа с графиками в MATLAB

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


Построение графика одной переменной (или нескольких таких графиков) в линейном масштабе
осуществляется с помощью команды plot(…).
Рассмотрим использование команды plot(…) на конкретных примерах.
Пример 1. Построить график функции y(t )  e2t cos(10 t ) , где интервал t меняется в интервале
[0;1] с шагом 0, 01 .
 t = [0 : 0.01:1];
 y = exp(-2* t).*cos(10* t);
 plot(t, y)

0.8

0.6

0.4

0.2

-0.2

-0.4

-0.6
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

Пример 2. Построить в одном окне графики двух функций x(t )  2sin(50 t ) и y(t )  e2t cos(10 t) ,
где аргумент меняется в интервале [0; 2] с шагом 0, 01 .
 t = [0 : 0.01: 2];
 y = exp(-2* t).*cos(10* t);
>> x = 2*sin(50* t);
 plot(t, x, t, y)

1.5

0.5

-0.5

-1

-1.5

-2
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2

1
Обсудим построенные графики.
1. Команда plot(t,x) позволяет строить в декартовой системе координат график одномерной
функции x с аргументом t . При этом в скобках на первом месте стоит аргумент, а на втором –
функция.
2. MATLAB (если это не указано специально) самостоятельно выбирает цвет графика, масштаб и
оцифровывает оси абсцисс и ординат.
3. Для функции x(t )  2sin(50 t ) шаг изменения аргумента оказался не достаточно малым, и
поэтому на еѐ графике отчѐтливо видны изломы. Неверный выбор шага изменения аргумента
функции может существенно исказить еѐ график. Если пользователь затрудняется выбрать
подходящий шаг дискретизации аргумента, то при выводе графика функции можно воспользоваться
командой fplot(…), и MATLAB подберѐт шаг самостоятельно.
Если график функции требуется снабдить заранее заданными отличительными признаками,
например, цветом, определѐнным типом линии, расположить на этой линии специальные символы
(маркеры), то также применяется команда plot(…), но более сложной конструкции.
Пример 3. Начертить график функции y(t )  e2t cos(10 t ) в виде штриховой линии красного цвета,
и помеченной маркером типа «кружок». Аргумент t меняется в интервале [0;1] с шагом 0, 03 .
 t = [0 : 0.03 :1];
 y = exp(-2* t).*cos(10* t);
 plot(t, y, 'ro - -')
1

0.8

0.6

0.4

0.2

-0.2

-0.4

-0.6
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

В настоящем примере в команду plot(…) включѐн дополнительный параметр, который


заключается в апострофы. Этот параметр представляет собой последовательность символов,
определяющих цвет линии ( r – это красный цвет), тип маркера ( o – это кружок) и стиль линии
(двойной дефис соответствует штриховой линии). Обратите внимание. Внутри апострофов между
отдельными символами нет никаких разделительных знаков. В таблице содержаться некоторые
данные, необходимые для оформления графиков.
Цвет Тип маркера Стиль линии
b синий . точка  сплошная
c голубой o кружок : пунктирная
g зелѐный x крестик  штрих-пунктирная
k чѐрный  знак «плюс»   штриховая
m розовый s квадрат
r красный d ромб
w белый  треугольник
вершиной вниз
y жѐлтый  треугольник
вершиной вверх
2
2. Оформление графиков
Для того чтобы графики удобно было использовать в дальнейшей работе, их необходимо
соответствующим образом оформить.
На график можно нанести:
 координатную сетку (команда grid on);
 подписи к осям абсцисс и ординат (команды xlabel(…), ylabel(…));
 заголовок (команда title(…));
 легенду (команда legend(…)).
Пример 4. Начертить графики двух функций y1 (t )  sin(t ) и y2 (t )  sin3 (t ) при изменении t в
пределах от 2 до 2 с шагом 0,1 :
>> t = [-2* pi : 0.1* pi : 2* pi];
>> y1 = sin(t);
>> y2 = sin(t). ^ 3;
>> plot(t, y1, ' - m', t, y2, ' - ok')
>> grid on
>> title('Периодические функции')
>> xlabel('Аргумент - время(сек)')
>> ylabel('Амплитуда')
>> legend('10мая', '11мая')

При составлении легенды следует учитывать, что порядок следования и количество аргументов
команды legend(…), заключѐнные в апострофы, должны быть согласованы с конкретными линиями
графика. В данном примере команда legend(‘10мая’,’11мая’) и команда plot(t,y1,’-m’,t,y2,’-ok’)
согласованы как по порядку следования функций (y1 и y2) так и по их количеству. Часто бывает
удобным снабдить график надписью. Для этого необходимо использовать команду gtext(‘…’), где
между апострофами располагают необходимую надпись.
Для оформления графиков также можно использовать меню графического окна. В меню Edit
выбрать строку Figure Properties… . В графическом окне (ниже графика) появится окно Property
Editor – Figure, содержащее настройки оформления рисунка (окна графика). Кликните дважды
3
левой кнопкой мыши по линии графика, появится окно Property Editor – Lineseries, содержащее
настройки линии графика: цвет, толщину, стиль линии, стиль, цвет и размер маркеров и т.д. Двойной
клик левой кнопкой мыши в поле графика вызывает окно настроек осей Property Editor – Axes,
содержащее настройки осей: оцифровку, цвет, размер и тип шрифта подписи и т.д.

3. Сохранение графиков
Построенный график можно сохранить в среде MATLAB и экспортировать (перенести) его в любое
другое приложение Windows.
Рассмотрим, как сохранить графический файл в среде MATLAB.
Для сохранения графика в среде MATLAB следует:
1) в меню File графического окна выбрать строку Save As…;
2) в появившемся окне указать, в какой папке, под каким именем и с каким расширением (тип
сохраняемого файла) пользователь желает сохранить файл;
При сохранении рекомендуется использовать расширения [*.tif] или [*.bmp].

4. Построение нескольких графиков в одном окне


Функция subplot(…) позволяет строить несколько графиков в одном окне или распечатывать их на
одном листе бумаги.
subplot(m,n,p) – разбивает окно графиков на матрицу m на n «подграфиков» и выбирает p -ый
«подграфик» текущим. Подграфики нумеруются с левого в верхней строке. Например, чтобы
представить графические данные в четырѐх разных подобластях окна, необходимо выполнить
следующее:
 t  [pi : 0.1 * pi : pi];
 y1  t.^2;
 y2  t.^3;
 y3  sin(t);
 y4  cos(t);
 subplot(2,2,1); plot(t,y1,' r-' )
 subplot(2,2,2); plot(t,y2,' b - -' )
 subplot(2,2,3); plot(t,y3,' g :' )
 subplot(2,2,4); plot(t,y4,' y - .' )

4
5. 3D-графика
Под 3D-графикой будем понимать построение графической зависимости функции двух переменных
z ( x, y) . График такой функции представляет собой изображение некоторой поверхности в
трѐхмерном пространстве. Для графической визуализации функции двух переменных следует:
1) сформировать матрицу [ x; y] с координатами узлов сетки на прямоугольной области
определения функции. Матрица с координатами узлов сетки генерируется с помощью
команды meshgrid(x,y). Аргументами x и y являются векторы, элементы которых задают
координаты узлов прямоугольной сетки. Если область определения функции – квадрат, то в
meshgrid(…) можно задать интервал и шаг изменения лишь одного из аргументов функции;
2) вычислить значения функции в узлах сетки;
3) использовать для вывода графика одну из графических команд MATLAB;
4) используя команды оформления графика, нанести дополнительную информацию.
Для построения линейчатых поверхностей используется команда plot3(…).
Пример 5. Построить график функции z ( x, y)  x  y3 , где переменные x и y изменяются на
интервале [8;8] с шагом 0,5 . Для построения графика использовать непрерывные линии чѐрного
цвета.
 [x, y] = meshgrid(-8 : 0.5 : 8);
>> z = x + y. ^ 3;
>> plot3(x, y, z, 'k')

5
Как видно из условия задачи, область определения функции z представляет собой квадрат. Поэтому
в команде meshgrid(…) указаны пределы и шаг изменения только одного из аргументов функции. В
команде plot3(…) присутствует дополнительный параметр, заключѐнный в апострофы и
определяющий цвет линий на графике. Следует отметить, что правила применения команды
plot3(…) аналогичны правилам применения команды plot (…) в 2D-графике.
Для построения так называемой каркасной поверхности, которая ограничивает поверхность
геометрического тела и похожа на проволочный каркас, в MATLAB используются команды mesh(…)
и surf(…), имеющие одинаковые опции (входные параметры).
Пример 6. С помощью команды mesh(…) построить каркасную поверхность, заданную функцией
z  sin( x) ( x2  y 2  0,3) , где переменные x и y изменяются на интервале [3;3] с шагом 0,1 .
 [x, y] = meshgrid(-3 : 0.1: 3);
>> z = sin(x). / (x. ^ 2 + y. ^ 2 + 0.3);
>> mesh(x, y, z)

На экране монитора можно видеть, что цвет линий каркасной поверхности зависит от величины
значений функции z .
Отличие команды surf(…) от mesh(…) в том, что она позволяет залить определѐнным цветом
каждую клетку поверхности.
Для более детального анализа помимо указанных графических команд в MATLAB можно также
использовать команды meshс(…), meshz(…), surfc(…), surfl(…), которые имеют такой же набор

6
аргументов. Подробнее с этими функциями можно познакомится, введя в командном окне команду
help «название команды», например, help meshc.

СОДЕРЖАНИЕ ЗАДАНИЯ
1. Построить график функции в заданных пределах изменения ее аргумента

Функция xn xk
вар.
1. arctg ( x ) 2 5
y
1  sin x
2

Варианты индивидуальных заданий взять из таблицы 1 (первая функция).

2. Построить на одном поле графики двух функций, промаркировать точки графиков, задать
типы линий, подписать оси и весь график, создать легенду, нанести координатную сетку, нанести на
график произвольный текст
№ №
Функция xn xk Функция xn xk
вар. вар.
1.
y
arctg ( x ) 2 5 2. 1  0,5 x 2 4
y
1  sin x
2
0,5  sin 2 x

Варианты индивидуальных заданий взять из таблицы 1.

3. Разбить графическое окно на 4 области, в которых построить графики из пункта.2 и графики


функций y=sin(x) и y=cos(x).

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


так, чтобы перекрывались все три диапазона. При задании вида функции необходимо использовать
программный фрагмент (Лабораторная работа №1), нанести координатную сетку, оцифровать оси,
задать легенду для каждой линии графика, сделать надписи по осям и заголовок графика, изменить
тип, цвет, толщину линии графика, нанести маркеры на линии графика.
№ Вид функции
1.  x если x  20


y   x 3 если 1  x  20
 2
4 x в остальных случаях

Варианты индивидуальных заданий взять из таблицы 2.

5. Построить график поверхности по следующим исходным данным


№ Функция Пределы изменения
x y
1 z  sin( x)cos( y) от -2 до 2 от -2 до 2

Разбить графическое окно на 6 областей, в каждой из которых построить график заданной


поверхности, используя функции
1. plot3(X,Y,Z)
2. mesh(X,Y,Z)
3. meshс(X,Y,Z)
4. meshz(X,Y,Z)
5. surf(X,Y,Z)
6. surfс(X,Y,Z)

7
7. surfl(X,Y,Z)

Варианты индивидуальных заданий взять из таблицы 3..

Таблица 1

Функция xn xk
вар.
1. arctg ( x ) 1  0,5 x 2 5
y y
1  sin 2 x 0,5  sin 2 x
2. y  ln x 2  2 x  2 y  e x sin x cos 3 x -3 0
3. sin 2 x e 0,1x  1 2 5
y y
xx 1  cos 2 x
4. y  2 x 3  6 x 2  18x  7 y  2 x 3  3x 2 -2 2
5. y  x 1  x 2  sin x y   ln x 2  4 x  5 1 5

y  x 2  2 x ln x 
6. 1 4
y  e x sin 3x  3 cos 3x 
3 2
x  4x
2
7. sin 3 x 3x 2  4 x  4 0 3
y y 2
x2 x  x 1
8.
y
1  2 x 2 y
1 2 4
1.8  cos 3 x ln x  4 x 3  30
4

9. 1 2 -1,5 1,5
y  x sin x  cos x  x y  3 cos 2 x  cos 3 x
4
10. 1 x  x 0,5  sin 2 x -2 0
y y
1 x  x2  0,5
11.
y
sin 2 x  0,5
2x

y  ctg 3 1  x 2  1 4

12. y  2 sin x  cos 2 x y  xe x cos x  sin x  -3 0


13. 5 x 1 3
y y  3 sin 2 x  sin 3 x
1  cos 2 x
14. 
y  sin 1  x 2  y  x sin xarctgx -2 2
 x 1
y  x 2  1arctgx  x 2 
15. 1 -1 3
y  3sin 3x
2 8 2
Таблица 2.
№ Вид функции № Вид функции
1.  x если x  20 2. 3 x 2 если x  10
 
y   x 3 если 1  x  20 y  3 x если x2
 2 
4 x в остальных случаях 4 x в остальных случаях

8
3.  x если x  20 4.  x
  если x  20
1 2
y если 1  x  20 
 x y   x если 1  x  20
 x 2  2 в остальных случаях cos( x ) в остальных случаях



5. 1 6. 
 x если x  10  x  1 если 0  x  3
 
 
y  3 x если 1  x  8 y  3 x 2  2 если x  5
 
x 1
 в остальных случаях  в остальных случаях
5 x
7.  8. 
 x если x  2 sin( x ) если x  3
 


y   x | если  10  x  3

y  cos( x ) если x  0

 
2 x 2 в остальных случаях  2
  x  2 в остальных случаях

9.  10.  3
 x если x  10  x если x  8
 


y  3 x если 1  x  9

y  2 x 2 если x  0

 
 x 2 в остальных случаях 
  x в остальных случаях

11.  3 12. 
 x если x  5  x  4 если x  20
 

1 
y   если  10  x  1 y  lg( x) если 1  x  20
x 
 
cos(x) в ост. случаях  x в остальных случаях


13.  14. 
8 x если x  5 tg ( x) если x  8
 
  sin( x)
y если 1  x  8
y   x 2 если  5  x  5
 x
  2
  x в остальных случаях
sin( x ) в остальных случаях 

9
15.  16. 
1  3 x если x  0
2
ln( x ) если x  10
 
 
y   x  sin( x ) если  5  x  0 y  3 | cos( x ) | если x  15
 
 2 
 x в остальных случаях 5 в остальных случаях
 
17.  3 18. 
 x если x  8  x  4 если x  20
 


y  2 x 2 если x  0

y  lg( x ) если 1  x  20

 
 x в ост. случаях 
  x в остальных случаях

19.  20. 
 x  4 если x  20  x если x  20
 
  sin( x)
 y если 2  x  20
y  lg( x) если 1  x  20
  1 x
 
 x в остальных случаях  x  x 2 в остальных случаях


21.  22.  cos( x)
tg ( x) если x  8  2 если  3  x  3
 
 sin( x)  sin( x)
y если 1  x  8 y если x  3
 x  x
 2  3
 x в остальных случаях  x в остальных случаях
 
Таблица 3.
№ Функция Пределы изменения
x y
1 z  sin( x)cos( y) от -2 до 2 от -2 до 2
2 z  sin( x 2)cos( y) от -2 до 2 от -2 до 2
3 z  sin(2x)cos( y) от -2 до 2 от -2 до 2
4 z  sin( x)cos( y 2) от -2 до 2 от -2 до 2
5 z  sin( x 2)cos(2 y) от -2 до 2 от -2 до 2
6 z  sin(2x)cos(2 y) от -2 до 2 от -2 до 2
7 z  1  sin( x) x sin( y) y  от -2 до 2 от -2 до 2
8 z  sin( x) x  cos( y) от -2 до 2 от -2 до 2
9 z  sin( x) x  | cos( y) | от -2 до 2 от -2 до 2
10 z  sin( x) x  y от -2 до 2 от -2 до 2
11 z  sin( x) x  | y | от -2 до 2 от -2 до 2
10
12 z  sin( x) x  sin( y) от -2 до 2 от -2 до 2
13 z  sin( x) x  | sin( y) | от -2 до 2 от -2 до 2
14 z  sin( x) x  1  y  от -2 до 2 от -2 до 2
15 z  sin( x) x   y  0.5 от -2 до 2 от -2 до 2

11