ОГЛАВЛЕНИЕ
Введение 2
Глава 1. Графические команды и функции 4
Глава 2. Системы линейных алгебраических уравнений 12
Практическая часть 21
Заключение 27
Список литературы 29
Введение
MatLab предоставляет богатый инструментарий по визуализации данных. Используя внутренний язык, можно выводить двумерные и трехмерные графики в декартовых и полярных координатах, выполнять отображение изображений с разной глубиной цвета и разными цветовыми картами, создавать простую анимацию результатов моделирования в процессе вычислений и многое другое.
Документация
по системе и ее приложениям содержит
много тысяч страниц, и поэтому естественно
встает вопрос о том, как ее осваивать.
Работа с системой требует определенной
математической подготовки, так что
обучение можно начинать на втором курсе
вуза. Основные сведения о системе
изложены в руководствах /1/ – /2/: /1/ – это
учебник с описанием вычислительных
возможностей и архитектуры системы,
/2/ – описание ее графических возможностей.
Конечно, можно читать подряд /1/, /2/ и при
необходимости обращаться за уточнениями
к команде help или справочнику /3/, в котором
описаны почти все команды. Но гораздо
более эффективным, на наш взгляд, является
изложение основных вычислительных
процедур с помощью наиболее употребительных
команд системы. Именно так мы и познакомимся
с MATLAB'ом, а точнее примерно с 30-40 его
командами. После этих занятий пользоваться
документацией /1/ и /2/ будет гораздо
легче.
Приложений к системе мы здесь не касаемся, а изучать их можно только после предварительного ознакомления с ней, а также с тем разделом науки, которому посвящено конкретное приложение. Отметим только, что большинство приложений означают для пользователя просто расширение списка доступных ему команд. Очень удобно то, что вся документация по системе и приложениям находится на компакт-диске, с которого происходит их установка, и при желании она может быть размещена также и на винчестере.
Для работы с системой достаточно иметь компьютер PC 486 с оперативной памятью хотя бы 16 Mb и с установленными на нем системами Windows 95 и MATLAB 5.2. В действительности MATLAB может работать и с друогими операционными системами, такими, например, как Macintosh, Unix и OS/2.
За рубежом вышло уже достаточно много учебных пособий по системе, но на русский язык ни одно из них пока не переводилось и даже в центральных библиотеках их теперь нет из-за сокращения финансирования. Изданные у нас пособия (например, /4/ – /12/) в основном следуют руководствам /1/ – /3/, тогда как нам представляется полезным дать менее формальное введение в предмет, опираясь прежде всего на интуицию слушателя.
Глава 1. Графические команды и функции
В состав системы MATLAB входит мощная графическая подсистема, которая поддерживает как средства визуализации двумерной и трехмерной графики на экран терминала, так и средства презентационной графики. Следует выделить несколько уровней работы с графическими объектами. В первую очередь это команды и функции, ориентированные на конечного пользователя и предназначенные для построения графиков в прямоугольных и полярных координатах, гистограмм и столбцовых диаграмм, трехмерных поверхностей и линий уровня, анимации. Графические команды высокого уровня автоматически контролируют масштаб, выбор цветов, не требуя манипуляций со свойствами графических объектов. Соответствующий низкоуровневый интерфейс обеспечивается дескрипторной графикой, когда каждому графическому объекту ставится в соответствие графическая поддержка (дескриптор), на который можно ссылаться при обращении к этому объекту. Используя дескрипторную графику, можно создавать меню, кнопки вызова, текстовые панели и другие объекты графического интерфейса.
Из-за ограниченного объема данного справочного пособия в него включены только графические команды и функции с минимальными элементами дескрипторной графики. Заинтересованному читателю следует обратиться к документации по системе MATLAB, и в первую очередь к только что вышедшей из печати книге “Using MATLAB Graphics” (Natick, 1996).
Элементарные графические функции системы MATLAB позволяют построить на экране и вывести на печатающее устройство следующие типы графиков: линейный, логарифмический, полулогарифмический, полярный.
Для каждого графика можно задать заголовок, нанести обозначение осей и масштабную сетку.
Двумерные графики
PLOT - график в линейном масштабе
LOGLOG - график в логарифмическом масштабе
SEMILOGX, SEMILOGY - график в полулогарифмическом масштабе
POLAR - график в полярных координатах
Трехмерные графики
В системе MATLAB предусмотрено несколько команд и функций для построения трехмерных графиков. Значения элементов числового массива рассматриваются как z-координаты точек над плоскостью, определяемой координатами x и y. Возможно несколько способов соединения этих точек. Первый из них - это соединение точек в сечении (функция plot3), второй - построение сетчатых поверхностей (функции mesh и surf). Поверхность, построенная с помощью функции mesh, - это сетчатая поверхность, ячейки которой имеют цвет фона, а их границы могут иметь цвет, который определяется свойством EdgeColor графического объекта surface. Поверхность, построенная с помощью функции surf, - это сетчатая поверхность, у которой может быть задан цвет не только границы, но и ячейки; последнее управляется свойством FaceColor графического объекта surface. Уровень изложения данной книги не требует от читателя знания объектно-ориентированного программирования. Ее объем не позволяет в полной мере описать графическую подсистему, которая построена на таком подходе. Заинтересованному читателю рекомендуем обратиться к документации по системе MATLAB, и в первую очередь к только что вышедшей из печати книге Using MATLAB Graphics (Natick, 1996).
PLOT3 - построение линий и точек в трехмерном пространстве
MESHGRID - формирование двумерных массивов X и Y
MESH, MESHC, MESHZ - трехмерная сетчатая поверхность
SURF, SURFC - затененная сетчатая поверхность
SURFL - затененная поверхность с подсветкой
AXIS - масштабирование осей и вывод на экран
GRID - нанесение сетки
HOLD - управление режимом сохранения текущего графического окна
SUBPLOT - разбиение графического окна
ZOOM - управление масштабом графика
COLORMAP - палитра цветов
CAXIS - установление соответствия между палитрой цветов и масштабированием осей
SHADING - затенение поверхностей
CONTOURC - формирование массива описания линий уровня
CONTOUR - изображение линий уровня для трехмерной поверхности
CONTOUR3 - изображение трехмерных линий уровня
Специальная графика
Раздел специальной графики включает графические команды и функции для построения столбцовых диаграмм, гистограмм, средств отображения векторов и комплексных элементов, вывода дискретных последовательностей данных, а также движущихся траекторий как для двумерной, так и для трехмерной графики. Этот раздел получил свое дальнейшее развитие в версии системы MATLAB 5.0, где специальные графические средства улучшены и существенно расширены.
BAR - столбцовые диаграммы
ERRORBAR - график с указанием интервала погрешности
HIST - построение гистограммы
STEM - дискретные графики
STAIRS - ступенчатый график
ROSE - гистограмма в полярных координатах
COMPASS, FEATHER - графики векторов
QUIVER - поле градиентов функции
COMET - движение точки по траектории
FILL - закраска многоугольника
COMET3 - движение точки по пространственной траектории
SLICE - сечения функции от трех переменных
WATERFALL - трехмерная поверхность
FILL3 - закраска многоугольника в трехмерном пространстве
VIEWMTX - вычисление матрицы управления углом просмотра
VIEW - управление положением точки просмотра
График в линейном масштабе |
Команда plot(y) строит график элементов одномерного массива y в зависимости от номера элемента; если элементы массива y комплексные, то строится график plot(real(y), imag(y)). Если Y - двумерный действительный массив, то строятся графики для столбцов; в случае комплексных элементов их мнимые части игнорируются.
Команда plot(x, y) соответствует построению обычной функции, когда одномерный массив x соответствует значениям аргумента, а одномерный массив y - значениям функции. Когда один из массивов X или Y либо оба двумерные, реализуются следующие построения:
если массив Y двумерный, а массив x одномерный, то строятся графики для столбцов массива Y в зависимости от элементов вектора x;
если двумерным является массив X, а массив y одномерный, то строятся графики столбцов массива X в зависимости от элементов вектора y;
если оба массива X и Y двумерные, то строятся зависимости столбцов массива Y от столбцов массива X.
Команда plot(x, y, s) позволяет выделить график функции, указав способ отображения линии, способ отображения точек, цвет линий и точек с помощью строковой переменной s, которая может включать до трех символов из следующей таблицы:
Тип линии |
Тип точки |
Цвет |
||||||||||||||||||||||||||||||||||
|
|
|
Если цвет линии не указан, он выбирается по умолчанию из шести первых цветов, с желтого до синего, повторяясь циклически.
Команда plot(x1, y1, s1, x2, y2, s2, ...) позволяет объединить на одном графике несколько функций y1(x1), y2(x2), ..., определив для каждой из них свой способ отображения.
Обращение к командам plot вида plot(x, y, s1, x, y, s2) позволяет для графика y(x) определить дополнительные свойства, для указания которых применения одной строковой переменной s1 недостаточно, например при задании разных цветов для линии и для точек на ней.
|
График в логарифмическом масштабе
Команды loglog(...) равносильны функциям plot, за исключением того, что они используют по обеим осям логарифмический масштаб вместо линейного.
Построение графиков в логарифмическом масштабе необходимо в следующих случаях:
1.Исследование устойчивости систем управления частотными методами;
2. Исследование качества переходных процессов на основе логарифмических амплитудно-частотных характеристик;
3.Анализ помехозащитности технических объектов;
4.Наглядность результатов при их графическом представлении.
В MATLAB для построения графиков в логарифмическом и полулогарифмическом масштабах служит следующие функции:
loglog(…) – логарифмический формат по обеим осям;
semilogx(…) – логарифмический формат по оси х;
semilogy(…) - логарифмический формат по оси у.
Синтаксис этих функций аналогичен соответствующим функциям plot.
График в полулогарифмическом масштабе |
Синтаксис:
semilogx(x, y) |
semilogy(x, y) |
semilogx(x, y, s) |
semilogy(x, y, s) |
semilogx(x1, y1, s1, x2, y2, s2, ...) |
semilogy(x1, y1, s1, x2, y2, s2, ...) |
Описание:
Команды semilogx(...) используют логарифмический масштаб по оси x и линейный масштаб по оси y.
Команды semilogy(...) используют логарифмический масштаб по оси y и линейный масштаб по оси x.
График в полярных координатах |
В полярной системе координат любая точка представляется как конец радиус-вектора, исходящего из начала системы координат, имеющего длину RHO и угол ТНЕТА. Для построения графика функции RHO(THETA) используются приведенные ниже команды. Угол ТНЕТА обычно меняется от 0 до 2*pi. Для построения графиков функций в полярной системе координат используются команды типа polar(…):
polarCTHETA, RHO) – строит график в полярной системе
координат, представляющий собой положение конца радиус-вектора с длиной RHO и углом ТНЕТА;
polarCTHETA,RHO.S) – аналогична предыдущей команде, но позволяет задавать стиль построения с помощью строковой константы S по аналогии с командой plot.
График с двумя осями ординат (одна отображается слева, другая справа) реализуется функцией plotyy(x1,y1,x2,y2) и той же функцией с добавлением параметров масштабирования 'f1' или 'f1','f2', в роли которых могут выступать plot, semilogx, semilogx, loglog.
Трехмерная графика
В трехмерной графике выполняются представления функции z=z(x,y), отличающиеся способом соединения точек: линия, сечения, сетчатая или сплошная поверхность.
Задание осей координат
Создание графического объекта исходит автоматически при обращении к командам, порождающим объекты 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восстанавливает
исходный график.
Линии уровня
В отличие от 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 определяет матрицу раскраски.
