Учебное пособие: Матричная математическая система MATLAB
type Имя_M-файла
Например, если вы хотите просмотреть текст файла демонстрационного примера e2pi, то нужно выполнить команду:
>> type e2pi
Используя команду help, можно получить справку по любой конкретной функции или команде.
Особенности двумерной графики MATLAB
Для визуализации вычислений в MATLAB широко используется машинная графика. Графика в MATLAB имеется двух типов:
• обычная двумерная и трехмерная растровая графика;
• специальная дескрипторная (handle) графика.
Остановимся на обычной графике. С ней связано представление о графических объектах, имеющих определенные свойства. В большинстве случаев об объектах можно забыть, если только не занимаеться объектно-ориентированным программированием задач графики. Связано это с тем, что большинство команд высокоуровневой графики, ориентированной на конечного пользователя, автоматически устанавливают свойства графических объектов и обеспечивают воспроизведение графики в нужной системе координат, палитре цветов, масштабе и т. д. Применение графики MATLAB практически исключает необходимость в сложных математических вычислениях, обычно необходимых для построения графиков.
Средства графики в новых версиях MATLAB существенно дополнены. Новая позиция Graphics меню содержит три команды:
• New Figure – открывает пустое окно графики;
• Plot Tools – открывает окно нового мощного редактора графики;
• More Plots… – открывает окно доступа к различным видам графики.
Первая команда очевидна, а две другие будут детально описаны ниже.
На более низком уровне решения задач используется ориентированная на опытного программиста дескрипторная графика (Handle Graphics), при которой каждому графическому объекту в соответствие ставится особое описание – дескриптор, на который возможны ссылки при использовании графического объекта. Дескрипторная графика позволяет осуществлять визуальное программирование объектов пользовательского интерфейса – управляющих кнопок, текстовых панелей и т. д.
Графики функций одной переменной
Графики в MATLAB строятся в отдельных масштабируемых и перемещаемых окнах. Возьмем вначале простейший пример – построение графика синусоиды. Следует помнить, что MATLAB (как и другие СКМ) строит графики функций по ряду точек, соединяя их отрезками прямых, то есть осуществляя линейную интерполяцию функции в интервале между смежными точками. Зададим интервал изменения аргумента x от 0 до 10 с шагом 0,1. Для построения графика достаточно вначале задать вектор x=0:0.1:15, а затем использовать команду построения графиков plot(sin(x)).
Итак, для построения графика синусоиды надо исполнить следующие команды:
x=0:0.1:15; y=sin(x); plot(x,y)
При этом будут построены окно графика и сам график синусоидальной функции. В этих примерах вектор x задает интервал изменения независимой переменной от 0 до 15 с шагом 0,1. Почему взят такой шаг, а не, скажем, 1? Дело в том, что plot из окна командного режима работы MATLAB строит не истинный график функции sin(x), а лишь заданное числом элементов вектора x число точек. Эти точки затем просто соединяются отрезками прямых того или иного стиля и цвета, то есть осуществляется кусочно-линейная интерполяция данных графика. При 100 точках полученная кривая глазом воспринимается как вполне плавная, но при 10–20 точках она будет выглядеть состоящей из отрезков прямых.
Графики ряда функций
Построим графики сразу трех функций: sin(x), cos(x) и sin(x)/x. Прежде всего отметим, что эти функции могут быть обозначены переменными, не имеющими явного указания аргумента в виде y(x):
>> y1=sin(x); y2=cos(x); y3=sin(x)/x;
Такая возможность обусловлена тем, что эти переменные являются векторами – как и переменная x. Теперь можно использовать одну из ряда форм команды
plot:
plot(a1,f1,a2,f2,a3,f3,...),
где a1, a2, a3, … – векторы аргументов функций (в нашем случае все они – x), а f1, f2, f3, … – векторы значений функций, графики которых строятся в одном окне. В нашем случае для построения графиков указанных функций мы должны записать следующее:
>> plot(x,y1,x,y2,x,y3)
Можно ожидать, что MATLAB в этом случае построит, как обычно, точки графиков этих функций и соединит их отрезками линий. Но, увы, если мы выполним эти команды, то никакого графика не получим вообще. Не исключен даже сбой в работе системы. Причина этого казуса – если x представляет собой массив (вектор), то нельзя использовать оператор матричного деления /.
Этот пример еще раз наглядно указывает на то, что чисто поверхностное применение даже такой мощной системы, как MATLAB, иногда приводит к досадным срывам. Чтобы все же получить график, надо вычислять отношение sin(x) к x с помощью оператора поэлементного деления массивов ./. Этот случай поясняет рисунок. Кстати, на нем показана открытой позиция Tools (Инструменты) меню графического окна, которая открывает доступ к многочисленным командам форматирования графиков.
Обратим внимание на то, что хотя на этот раз MATLAB построил графики всех трех функций, в окне командного режима появилось предупреждение о делении на 0 – в момент, когда x=0 – «Warning: Divide by zero.». Таким образом, plot «не знает» о том, что неопределенность sin(x)/x=0/0 устранимая и дает 1. Это недостаток практически всех систем для численных вычислений.
Построение графиков трех функций
Графическая функция fplot
Разумеется, MATLAB имеет средства для построения графиков и таких функций, как sin(x)/x, которые имеют устранимые неопределенности. Не обсуждая эти средства подробно, просто покажем, как это делается, с помощью другой графической команды – fplot:
fplot('f(x)', [xmin xmax])
Она позволяет строить график функции f(x), заданной в символьном виде, в интервале изменения аргумента x от xmin до xmax без фиксированного шага изменения x. Один из вариантов ее применения демонстрирует рисунке. Хотя в процессе вычислений предупреждение об ошибке (деление на 0) выводится, но график строится правильно, при x=0 sin(x)/x=1. Обратите также внимание на две используемые команды: clear (Очистить) – очистка графического окна и grid on (Сетка) – включение отображения сетки, которая строится пунктирными линиями.
На рисунке представлено также меню Insert (Вставка) окна графики. С его помощью можно задать вставки в графическое окно различных объектов, например легенд – обозначений кривых графиков, шкалы цветов и т. д. На рисунке представлены примеры вставки легенды и шкалы цветов Colorbar.
Обратим внимание и на позицию File (Файл) меню окна графики. Она содержит типовые файловые операции. Однако они относятся не к файлам документов, а к файлам графиков. В частности, можно присваивать имя записываемым на диск рисункам с графиками.
Знакомство с трехмерной графикой MATLAB
Построение трехмерных графиков
Столь же просто обеспечивается построение графиков сложных поверхностей, представленных функцией двух переменных z=f(x,y). Такую графику называют трехмерной, или 3D-графикой. Надо только знать, какой командой реализуется тот или иной график. Например, для построения графика поверхности и ее проекции в виде контурного графика на плоскость под поверхностью достаточно использовать следующий фрагмент программы:
% Пример построения поверхности и ее проекции
[X,Y]=meshgrid(-5:0.1:5);
Z=X.*sin(X+Y);
meshc(X,Y,Z)
Первая задает разметку сетки будущей поверхности с интервалом изменения x и y от –5 до 5 с шагом 0,1. Вторая задает выражение для вычисления значений z в узлах сетки. Наконец, третья команда строит собственно график поверхности. Окно с построенным графиком показано на рисунке. Раньше пришлось бы убить много дней на составление и отладку нужной для построения такого графика программы. В MATLAB же можно в считанные секунды изменить задающую поверхность функцию Z(X, Y) и тут же получить новый график поверхности с окраской, в данном случае заданной вектором Z, и с ее проекцией на плоскость XY.
Вращение графиков мышью
Можно поворачивать построенную фигуру мышью и наблюдать ее под разными углами. Рассмотрим эту возможность на примере построения логотипа системы MATLAB – мембраны. Для этого, введя команду logo, получим исходный график, представленный на рисунке.
Для вращения графика достаточно активизировать последнюю справа кнопкупанели инструментов с изображением пунктирной окружности со стрелкой. Теперь, введя курсор мыши в область графика и нажав левую кнопку мыши, можно круговыми движениями заставить график вращаться.
Любопытно, что в новых версиях MATLAB вращать можно и двумерные графики, наблюдая поворот плоскости, в которой они построены.
Контекстное меню графиков
Для переключения в режим редактирования графика нужно щелкнуть на кнопке Edit Plot (Редактировать график) с изображением курсора-стрелки. В этом режиме графиком можно управлять с помощью контекстного меню, вызываемого щелчком правой кнопки мыши. Вид этого меню при курсоре, расположенном в области трехмерного графика вне построенных трехмерных графических объектов, показан на рисунке. С помощью мыши можно также выделить график. Щелчок левой клавишей выводит набор точек (прямоугольников) в области рисунка. Теперь на график можно наносить стрелки, поясняющие надписи (кнопка с буквой A) и т. д.
Еще раз напоминаем, что контекстное меню правой клавиши мыши позволяет оперативно выполнять любые команды, в том числе и не относящиеся к графике.
Интерфейс основного окна MATLAB
Средства панели инструментов
Как любая программа, MATLAB имеет основное окно с титульной строкой, строкой меню, панелью инструментов, строкой статуса и другими компонентами. Начинающим пользователям удобно знакомиться с работой в системе с помощью панели инструментов, расположенной под строкой меню. Она дает наиболее простой и удобный, особенно для начинающих пользователей, способ работы с системой MATLAB.
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9