Файл: М.А. Тынкевич Система Matlab Справочное пособие к курсу Численные методы анализа.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 01.06.2024
Просмотров: 105
Скачиваний: 0
39
|
1 |
40 |
0.8 |
30 |
0.6 |
20 |
0.4 |
|
|
10 |
0.2 |
|
|
|
0 |
0 |
2 |
1 |
|
|
1 |
|
2 |
0.5 |
|
|
|
||
|
|
1 |
|
1 |
|
0 |
|
0.5 |
0 |
|
|
-0.5 |
0 |
|
-1 |
0 |
|
|
|
-1 |
|||
|
-0.5 |
|
|
||
|
|
|
|
-2 -2 |
|
|
|
-1 -1 |
|
|
|
|
|
Рис.9.6 |
|
|
Рис.9.7 |
mesh(x,y,z,c), mesh(z,c), mesh(z) определяют задание сетчатой по-
верхности (массив с определяет цвета узлов поверхности; если x,y не ука-
заны, то x=1:n, y=1:m, где [m,n]=size(z).
»[x,y]=meshgrid(-8:0.5:8); Аналогичная функция meshс в до-
»t=sqrt(x.^2+y.^2)+0.001; полнение к поверхности строит про-
» z=sin(t)./t; |
екции линий уровня, а meshz дела- |
|
» mesh(x,y,z) %Рис.9.8 |
ет срез поверхности |
до нулевого |
|
уровня (своеобразный |
пьедестал). |
Рис.9.8
40
» meshc(x,y,z) %Рис.9.9 |
» meshz(x,y,z) %Рис.9.10 |
Рис.9.9 |
Рис.9.10 |
surf(x,y,z,c), surf(z,c), surf(z) определяют задание сплошной поверх-
ности, отличаясь от mesh системой окраски; аналогичная функция surfс(...) задает проекции линий уровня.
Реализация трехмерной графики может сопровождаться множеством вспомогательных команд, например:
hidden on/off включает или выключает режим удаления невидимых линий (по умолчанию on);
shading faceted / flat / interp устанавливает затенение поверхностей (по умолчанию faceted дает равномерную окраску ячеек с черными гранями, flat – цветами узлов сетки, interp – интерполяцией цветов.
9.3. Задание осей координат
Создание графического объекта исходит автоматически при обращении к командам, порождающим объекты Line и Surface, но может выполняться и командой axec(‘<имя свойства>’,<значение>, ...). Есть и команды более высокого уровня:
axis([xmin xmax ymin ymax]), axis([xmin xmax ymin ymax zmin zmax]) устанавливает масштаб по осям;
axes off / on выключает (включает) вывод на координатные оси обозначений и маркеров;
grid on/off , grid включает (выключает) или переключает режим нанесения координатной сетки на осях;
box on/off, box включает (выключает) или переключает режим рисования контура параллелепипеда, трехмерный объект;
zoom on/off включает (выключает) режим интерактивного масштабирования графиков (левая мышь около точки увеличивает масштаб вдвое, правая – уменьшает; удержанием левой мыши можно выделить прямоугольную область для детального просмотра; zoom out восстанавливает исходный график.
41
9.4.Линии уровня
Вотличие от meshс (...) и surfс(...) функция contour рисует только линии уровня соответствующих поверхностей и выступает в многообразии
синтаксических форм: contour(X,Y,Z) - для массива Z =Z(X,Y), contour(X,Y,Z,n) – то же с указанием числа линий уровня (по умолчанию 10), contour(X,Y,Z,v) – то же для массива указанных значений ; contour(Z), contour(Z,n), contour(Z,v) – аналогичные функции без указа-
ния диапазонов для аргументов и contour(...,LineSpec) - аналогичные функции c указанием типа и цвета линий (см. plot); [C,h]=contour (...) возвращает массив С и вектор дескрипторов, позволяя тем самым продолжить работу с рисунком (давать оцифровку линий, заголовки и др.).
Функция contourf(...) закрашивает области между линиями уровня, аналогична contourf(...) с разницей в формате[C,h, cf]=contour (...), где cf
определяет матрицу раскраски. |
|
» [x,y]=meshgrid(-8:0.5:8); |
» [x,y]=meshgrid(-2:0.25:2); |
» t=sqrt(x.^2+y.^2)+0.001; |
» t=sqrt(x.^2+y.^2)+0.001; |
» z=sin(t).^3./t; |
» z=sin(t).^3./t; |
» [c,h]=contour(x,y,z,20); |
» [c,h,cf]=contourf(x,y,z,4); |
8 |
|
|
|
|
|
|
|
|
6 |
|
|
|
|
|
|
|
|
4 |
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
0 |
|
|
|
|
|
|
|
|
-2 |
|
|
|
|
|
|
|
|
-4 |
|
|
|
|
|
|
|
|
-6 |
|
|
|
|
|
|
|
|
-8 |
-6 |
-4 |
-2 |
0 |
2 |
4 |
6 |
8 |
-8 |
||||||||
|
|
|
Рис.9.11 |
|
|
|
||
|
0.8 |
|
|
|
|
|
|
|
|
0.6 |
|
|
|
|
|
|
|
|
0.4 |
|
|
|
|
|
|
|
|
0.2 |
|
|
|
|
|
|
|
|
0 |
|
|
|
|
|
|
|
|
-0.2 |
|
|
|
|
|
|
|
|
|
5 |
|
|
|
|
|
5 |
|
|
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
0 |
|
|
|
|
|
-5 |
|
|
|
|
|
|
|
|
|
-5 |
|
|
|
|
|
|
|
|
|
|
|
|
Рис.9.13 |
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
1.5 |
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
0.5 |
|
|
|
|
|
|
|
|
0 |
|
|
|
|
|
|
|
|
-0.5 |
|
|
|
|
|
|
|
|
-1 |
|
|
|
|
|
|
|
|
-1.5 |
|
|
|
|
|
|
|
|
-2 |
-1.5 |
-1 |
-0.5 |
0 |
0.5 |
1 |
1.5 |
2 |
-2 |
||||||||
|
|
Рис.9.12 |
|
|
|
|
|
Функция contour3(...) по синтаксису полностью аналогична contour(...), но изображает не проекции линий уровня, а рисует их в пространственной интерпретации; так команда
[c,h]=contour3(x,y,z,20); дает фигуру (рис.9.13).
42
9.5. Дополнительные возможности
Создание нового графического окна figure; командой figure(n) можно выбирать некоторое из созданных окон в качестве текущего.
Включение (выключение) режима сохранения текущего графика : hold on/off, hold .
Вывод заголовков для графиков (в текущем окне):
|
title(‘текст’), title(<имя функции-строки>’), title(..., ‘Property- |
||||||||
Name’,’PropertyValue’,...), h=title(...). |
|
|
|
|
|
|
|
||
|
Вывод графиков |
в нескольких |
4 |
|
4 |
y=4-0.3*(x-1) |
|
||
|
|
|
|
|
|
|
|
||
окнах |
рисунка: |
subplot(m,n,k), |
3.5 |
|
|
3.5 |
|
|
|
|
|
|
|
|
|||||
subplot(mnk) – m – число окон по го- |
|
|
|
|
|
||||
|
|
|
|
|
|
|
|||
ризонтали, n – по вертикали, k – номер |
3 |
|
|
3 |
|
|
|
||
|
|
|
|
|
|
|
|
||
окна: |
|
|
2.5 |
|
|
2.5 |
|
|
|
|
|
|
|
|
|
|
|
||
|
» subplot(121) |
|
2 |
|
|
2 |
|
|
|
|
» plot([1:0.3:4]) |
|
1.5 |
|
|
1.5 |
|
|
|
|
» subplot(122) |
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
» plot([4:-0.3:1]) |
|
0 |
5 10 15 0 5 10 15 |
|
||||
|
» title ('y=4-0.3(x-1)') |
1 |
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
Рис.9.14 |
||||||
|
|
|
|
|
Вывод текста для обозначения координатной оси : xlabel(...), ylabel(...), zlabel(...) – синтаксис аналогичен title(...).
Вывод текста в указанной позиции графика: text(x,y,’текст’), text(x,y,z,’текст’), text(...‘PropertyName’,’PropertyValue’,...), h=text(...).)
- x,y,z –координаты начала текста.
Вывод текста под управлением мыши: gtext(’текст’), h= gtext(’текст’) – выведенный текст можно перемещать мышью.
Вывод легенды legend(‘текст1’,‘текст2’,...), legend(M), legend(h,M), legend off, legend(...,pos), h= legend(...) – здесь М – строковый массив
(длина строк одинакова), off удаляет пояснения к графику, pos определяет позицию легенды ( -1 - справа от графика, 0 – в одном из 4 углов с минимумом потерь точек графика, 1-4 – в указанном углу, [x y] – в указанном месте); можно перетаскивать легенду мышью.
»subplot(111)
»t=[0:pi/30:2*pi];
»a=sin(t); b=cos(t);
»x=0:60;
»plot(x,a+b),hold on
»hp=plot(x,a', 'g', x,b','r'); set(hp,'LineWidth',2)
»legend('a+b','a=sin(t)','b=cos(t)')
»title('y=sin(t)+cos(t)','FontSize',12,'FontWeight','bold')
|
|
|
43 |
|
|
|
1.5 |
|
|
y=sin(t)+cos(t) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
a+b |
|
|
|
|
|
|
a=sin(t) |
1 |
|
|
|
|
|
b=cos(t) |
|
|
|
|
|
|
|
0.5 |
|
|
|
|
|
|
0 |
|
|
|
|
|
|
-0.5 |
|
|
|
|
|
|
-1 |
|
|
|
|
|
|
-1.5 |
10 |
20 |
30 |
40 |
50 |
60 |
0 |
||||||
|
|
|
Рис.9.15 |
|
|
Маркировка линий уровня, создаваемых функциями contour, contour3, contourf : clabel(C,h), clabel(C,h,v), clabel(C,h,’manual’), clabel(C), clabel(C,v), clabel(C,’manual’) – при наличии h маркировка на линиях, при наличии ’manual’ - принудительная маркировка нажатием левой мыши или пробела (правая мышь или Return завершает маркировку).
9.6. Специальная графика
Раздел специальной графики включает команды для построения диаграмм, гистограмм и прочих дискретных графиков.
Столбцовые диаграммы реализуются функциями bar и barh: bar(y), bar(x,y) , h=bar(...) – здесь y –массив (одноили двумерный),
x – одномерный, упорядоченный по возрастанию массив (число смежных по горизонтали столбцов диаграммы равно числу столбцов массива у); можно указать параметры относительной ширины столбцов (1 – касание, >1 – перекрытие, <1 – c промежутками), или стиля (‘group’,’stack’) :
» x=0:0.1:6; |
» x=0:0.1:6; |
||||||
» y1=sin(x); y2=cos(x); y3=exp(-x./2); |
» y1=sin(x); y2=cos(x); y3=exp(-x./2); |
||||||
» y=[y1;y2;y3]; |
» y=[y1;y2;y3]; |
||||||
1 |
|
|
|
2.5 |
|
|
|
0.8 |
|
|
|
2 |
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
||
0.6 |
|
|
|
1.5 |
|
|
|
|
|
|
|
|
|
||
0.4 |
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
0.2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
0 |
|
|
|
0.5 |
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
||
-0.2 |
|
|
|
0 |
|
|
|
|
|
|
|
|
|
||
-0.4 |
|
|
|
|
|
|
|
|
|
|
-0.5 |
|
|
|
|
-0.6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
-1 |
|
|
|
|
-0.8 |
|
|
|
|
|
|
|
|
|
|
|
|
|
||
-1 |
|
|
|
-1.5 |
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
||
-1 0 1 2 3 4 5 6 7 |
-1 0 1 2 3 4 5 6 7 |
Рис.9.16 |
Рис.9.17 |