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

Учебно-Технологический_Практикум_УТС.Б_3

.pdf
Скачиваний:
30
Добавлен:
10.02.2015
Размер:
1.7 Mб
Скачать

Рис. 1.1.7. Оформление графика с помощью редактора свойств графического окна MATLAB.

1.1.4 ПОСТРОЕНИЕ 2D ГРАФИКОВ В ПОЛЯРНОЙ СИСТЕМЕ КООРДИНАТ. ФУНКЦИЯ POLAR

В полярной системе координат – вектор(аргумент) - точка на плоскости определяется концом радиус вектора R, который вращается относительно начала координат по или против часовой стрелки на угол ар-

11

гумента PHI. Для построения графика функции R(PHI) используются команды типа POLAR.

Угол PHI обычно меняется от 0 до 2*pi или кратно полному обороту вектора R.

ФОРМАТЫ ВЫЗОВА:

1.polar(PHI, R) - строит график в полярной системе координат, который представляет собой годограф радиус-вектора R при изменении аргумента PHI. Аргументы функции POLAR - R и PHI – вектора одинакового размера.

2.polar(PHI,R,S) - строит график в полярной системе координат, но дополнительно позволяет задавать стиль построения графика с помощью строки атрибутов S. Cтрока атрибутов определяет тип линии, цвет линии, вид «точек», которыми строится линия и аналогична строке атрибутов для функции PLOT - см. п. 1.1.2.

ПРИМЕР.

Построить график r = (1-cos(a*phi)), a=1,2,3,4.

Решение: phi=0:pi/50:2*pi; a = 1:4;

PHI=[a(1)*phi;a(2)*phi;a(3)*phi;a(4)*phi]; R=[1-cos(PHI(1,:));1-cos(PHI(2,:));1-cos(PHI(3,:));1-cos(PHI(4,:))]; figure

polar(phi,R(1,:)); title('Функция r=1-cos(phi))') figure

polar(phi,R(2,:)); title('Функция r=1-cos(2*phi))') figure

polar(phi,R(3,:)); title('Функция r=1-cos(3*phi))') figure

polar(phi,R(4,:)); title('Функция r=1-cos(4*phi))')

Все графики поместим в одно графическое окно в виде матрицы [2х2], использую кнопку Tile на инструментальной панели любого графического окна и стрелку Dock/Undock.

Результат представлен на Рис. 1.1.8.

12

Рис. 1.1.8. Графики функции r=(1-cos(a*phi))

1.1.5. 3D ГРАФИКА В MATLAB. ФУНКЦИИ MESHGRID, PLOT3, MESH, MESHC, CONTOUR3, SURF, SURFL

Функция MESHGRID

В MATLAB построение 3D поверхностей производится в аксонометрической проекции в декартовой системе координат {X},{Y},{Z}. Узлы координатной сетки на плоскости [X,Y], в которых вычисляется значение Z, определяются парой матриц X,Y, столбцы которых являются координатами узлов сетки. Генерацию матриц узлов координатной сетки выполняет функция MESHGRID.

Основная форма вызова функции:

13

[X,Y]=meshgrid(x,y), где x,y – вектора координат узлов сетки по осям {X} и {Y} соответственно.

ПРИМЕР.

Сформировать матрицы [X,Y] узлов сетки для x =[1,2,3,4] и y=[4,5,6,7].

Решение. x=1:4; y=4:7;

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

X =

 

 

 

1

2

3

4

1

2

3

4

1

2

3

4

1

2

3

4

Y =

 

 

 

4

4

4

4

5

5

5

5

6

6

6

6

7

7

7

7

Видно, что координатами узлов будут пары [1,4],[1,5], [1,6], [1,7], [2,4],…[4,7]. При формировании узлов координатной сетки следует учитывать, что размер векторов x,y узлов осей должен быть одинаковым. Узлы координатной сетки примера показаны на Рис. 1.1.9.

Рис. 1.1.9. Узлы координатной сетки

Функция PLOT3

Функция PLOT3 строит сечение поверхности Z(X,Y) или поверхность Z(X,Y) как последовательность сечений поверхности Z(X,Y) вертикальной плоскостью, параллельной плоскости Y0Z . Сами сечения

14

строятся отрезками прямых, как и при построении графиков функцией

PLOT.

ФОРМАТЫ ВЫЗОВА:

1.plot3(X,Y,Z) где X,Y – матрицы узлов координатной сетки, Z

– матрица значений функции Z(X,Y) в точках узлов – строит по-

верхность Z(X,Y);

2.plot3(X,Y,Z) где X,Y – вектора координат узлов на плоскости X0Y, Z – вектор значений функции Z(X,Y) в точках узлов – строит

сечение поверхности Z(X,Y);

3. plot3(X,Y,Z,S) дополнительно позволяет задавать стиль построения графика с помощью строки атрибутов S. Cтрока атрибутов определяет тип линии, цвет линии, вид «точек», которыми строится линия сечения и аналогична строке атрибутов для функции PLOT.

ПРИМЕР.

Построить поверхность функции Z=exp(-X.^2-Y.^2), -2<=X,Y<=2.

Решение.

x=[-2:0.1:2]; y =[-2:0.1:2]; [X,Y]=meshgrid(x,y); Z=exp(-X.^2-Y.^2); plot3(X,Y,Z);

График поверхности показан на Рис. 1.1.10.

Рис. 1.1.10. График поверхности, построенный функцией PLOT3

15

ПРИМЕР.

Построить сечения поверхности функции Z=exp(-X.^2-Y.^2), плоскостями ортогональными плоскости X0Y с координатами узлов:

1. X=1, -2=<Y<=2, 2. -2<=X<=2, Y= -1, 3. X=Y, -2<=X,Y<=2.

Решение.

X=ones(1,41); Y =[-2:0.1:2]; Z=exp(-X.^2-Y.^2); plot3(X,Y,Z,'-h');

hold on

X =[-2:0.1:2]; Y= -1*ones(1,41); Z=exp(-X.^2-Y.^2); plot3(X,Y,Z,'-s');

X =[-2:0.1:2];Y =[-2:0.1:2]; Z=exp(-X.^2-Y.^2); plot3(X,Y,Z,'-d');

grid on

xlabel('X'); ylabel('Y'); zlabel('Z'); title('Сечения поверхности Z=exp(-X^2-Y^2)')

legend('X=1,-2<=Y<=2','-2<=X<=2,Y=-1','-2<=X<=2,-2<=Y<=2')

График показан на Рис. 1.1.11.

Рис. 1.1.11. График сечений поверхности, построенный функцией

PLOT3

Функция MESH

Функция MESH строит поверхность Z(X,Y) как последовательность сечений поверхности Z(X,Y) вертикальными плоскостями, параллельными плоскости Y0Z и X0Z .

16

ФОРМАТЫ ВЫЗОВА:

1.mesh(X,Y,Z) где X,Y – матрицы узлов координатной сетки, Z

– матрица значений функции Z(X,Y) в точках узлов – строит по-

верхность Z(X,Y); Цвет узлов поверхности зависит от значения Z.

2.mesh(X,Y,Z,C) где X,Y – матрицы узлов координатной сетки, Z – матрица значений функции Z(X,Y) в точках узлов – строит по-

верхность Z(X,Y) с цветами узлов поверхности, заданными матрицей C. При C=Z эквивалентно mesh(X,Y,Z).

ПРИМЕР.

Построить поверхность функции Z=exp(-X.^2-Y.^2), -2<=X,Y<=2.

Решение.

x=[-2:0.1:2]; y =[-2:0.1:2]; [X,Y]=meshgrid(x,y); Z=exp(-X.^2-Y.^2); mesh(X,Y,Z);

Рис. 1.1.12. График поверхности, построенный функцией MESH

Функция MESHC

Функция MESHC строит поверхность Z(X,Y) как последовательность сечений поверхности Z(X,Y) вертикальными плоскостями, параллель-

17

ными плоскости Y0Z и X0Z. На плоскость X0Y выводятся линии равного уровня.

ФОРМАТЫ ВЫЗОВА:

1.meshc(X,Y,Z) где X,Y – матрицы узлов координатной сетки, Z

– матрица значений функции Z(X,Y) в точках узлов – строит

поверхность Z(X,Y); Цвет узлов поверхности зависит от значения Z. На плоскость X0Y выводятся линии равного уровня.

2.meshс(X,Y,Z,C) где X,Y – матрицы узлов координатной сетки, Z – матрица значений функции Z(X,Y) в точках узлов –

строит поверхность Z(X,Y) с цветами узлов поверхности,

заданными матрицей C. На плоскость X0Y выводятся линии

равного уровня. ПРИМЕР.

Построить поверхность функции Z=X.*exp(-X.^2-Y.^2), -2<=X,Y<=2.

Решение.

x=[-2:0.1:2]; y =[-2:0.1:2]; [X,Y]=meshgrid(x,y); Z=X.*exp(-X.^2-Y.^2); meshc(X,Y,Z);

colorbar;

Результат показан на Рис. 1.1.13.

Рис. 1.1.13. График поверхности, построенный функцией MESHС

Команда COLORBAR – выводит в графическое окно цветовую шкалу соответствия цвета и значения функции.

18

Функция CONTOUR3

Функция CONTOUR3 строит поверхность Z(X,Y) как последовательность сечений поверхности Z(X,Y) горизонтальными плоскостями, параллельными плоскости X0Y.

ФОРМАТЫ ВЫЗОВА:

1.contour3(X,Y,Z) где X,Y – матрицы узлов координатной сетки, Z – матрица значений функции Z(X,Y) в точках узлов – строит поверхность Z(X,Y) как последовательность сечений поверхности горизонтальными плоскостями, параллельными плоскости X0Y ; Цвет узлов поверхности зависит от значе-

ния Z. По умолчанию, число плоскостей сечения равно 10.

2.contour3 (X,Y,Z,N) - дополнительно задается N – число плоскостей сечения – линий равного уровня.

ПРИМЕР.

Построить поверхность функции Z=exp(-X.^2-Y.^2), -2<=X,Y<=2.

Решение.

x=[-2:0.1:2]; y =[-2:0.1:2]; [X,Y]=meshgrid(x,y); Z=exp(-X.^2-Y.^2); contour3(X,Y,Z,30); colorbar;

Результат показан на Рис. 1.1.14.

Рис. 1.1.14. График поверхности, построенный функцией CONTOUR3

19

Функция SURF

Функция SURF строит поверхность Z(X,Y) аналогично функции MESH, но ячейки сетки поверхности закрашиваются.

ФОРМАТЫ ВЫЗОВА:

1.surf(X,Y,Z) где X,Y – матрицы узлов координатной сетки, Z – матрица значений функции Z(X,Y) в точках узлов – строит

поверхность Z(X,Y); Цвет ячеек сетки поверхности зависит от значения Z.

2.surf(X,Y,Z,C) где X,Y – матрицы узлов координатной сетки, Z

– матрица значений функции Z(X,Y) в точках узлов – строит

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

ПРИМЕР.

Построить поверхность функции Z=X.*exp(-X.^2-Y.^2), -2<=X,Y<=2.

Решение.

x=[-2:0.1:2]; y =[-2:0.1:2]; [X,Y]=meshgrid(x,y); Z=X.*exp(-X.^2-Y.^2); surf(X,Y,Z);

colorbar;

Результат показан на Рис. 1.1.15.

Рис. 1.1.15. График поверхности, построенный функцией SURF

20