Графические возможности системы matlab (2ч)
Лабораторная работа 2
ГРАФИЧЕСКИЕ ВОЗМОЖНОСТИ СИСТЕМЫ MATLAB (2ч)
Цель и содержание работы: познакомиться с возможностями графической визуализации вычислений в пакете MATLAB.
Теоретическое обоснование
Одно из достоинств системы MATLAB — обилие средств графики, начиная от команд построения простых графиков функций одной переменной в декартовой системе координат и кончая комбинированными и презентационными графиками с элементами анимации, а также средствами проектирования графического пользовательского интерфейса. Особое внимание в системе уделено трехмерной графике с функциональной окраской отображаемых фигур и имитацией различных световых эффектов.
MATLAB строит графики функций по ряду точек, соединяя их отрезками прямых, т. е. осуществляя линейную интерполяцию функции в интервале между смежными точками.
Графики MATLAB строит в отдельных окнах Figure , называемых графическими окнами. В главном меню окна Figure вкладка Tools (Инструменты) позволяет вывести или скрыть инструментальную панель, видимую в верхней части окна графики на рисунке 2.1. Средства этой панели позволяют легко управлять параметрами графиков и наносить на них указатели, дополнительные фигуры и текстовые комментарии в любом месте.
Графики в MATLAB можно строить как в командном режиме, так и вызывая их из М-файлов. Для построения двумерных графиков используется команда plot. В общем случае синтаксис команды plot выглядит следующим образом: plot ( x , y , ’цвет_стиль_маркер‘),
где x – аргумент функции;
y – значение функции.
Рисунок 2.1 – Пример построения графика синусоиды
Цвет, стиль линий графика и маркер определены в таблице 2.1.
Таблица 2.1 – Цвет, стиль линии и тип маркера на графике
Цвет | Тип маркера | Стиль линии | |||
r | Красный | . | Точка | - | Сплошная |
y | Желтый | о | Окружность | ; | Двойной пунктир |
g | Зеленый | X | Крест | -. | Штрих-пунктир |
c | Голубой | + | Плюс | -- | Штриховая |
b | Синий | * | Звездочка |
| |
m | Фиолетовый | S | Квадрат | ||
k | Черный | D | Ромб | ||
w | Белый | V | Треугольник (вниз) | ||
| ^ | Треугольник (вверх) | |||
< | Треугольник (влево) | ||||
> | Треугольник (вправо) | ||||
p | Пятиугольник | ||||
H | Шестиугольник |
Вызов функции plot с несколькими парами x и y создает, соответственно, несколько графиков в одной координатной плоскости. При этом MATLAB автоматически присваивает каждому графику свой цвет, что позволяет различать заданные наборы данных. Например,
plot(t, f, ‘r-*’, t, y ‘b--+’, t, s, ‘g-.o’)
В этом случае на одной координатной плоскости будут выведены графики трех функций: f(t) – красный с маркером *; y(t) – синий с маркером +; s(t) – зеленый с маркером о. При этом стиль линий также будет различным. Если не указывать параметры ‘цвет_стиль_маркер’, то цвет будет присвоен автоматически, линия будет сплошной, а маркер отсутствовать.
Функции xlabel , ylable , zlable добавляют подписи к соответствующим осям, функция title добавляет заголовок в верхнюю часть окна, а функция text вставляет текст в любое место графика.
Трехмерные поверхности описываются функцией двух переменных z(x, у). Специфика построения трехмерных графиков требует не просто задания ряда значений векторов х и у, а определения для X и Y двумерных массивов – матриц. Для создания таких массивов служит функция meshgrid. В основном она используется совместно с функциями построения трехмерных графиков. Функция meshgrid создает матрицы Х и Y, состоящие из повторяющихся строк и столбцов соответственно. Строки матрицы Х дублируют вектор х, а столбцы Y – вектор y. Синтаксис функции meshgrid : [X,Y] = meshgrid(x,y)
Для построения графиков поверхностей используются функции mesh и surface, которые отображают поверхность в трех измерениях. MATLAB определяет поверхность как z координаты точек над координатной сеткой плоскости x – y, используя прямые линии для соединения соседних точек. При этом mesh создает каркасную поверхность, где цветные линии соединяют только заданные точки, а функция surface вместе с линиями отображает в цвете и саму поверхность. Для установки палитры цветов трехмерных графиков используют команду colormap, записываемую в следующей форме
сolormap цвет,
где параметр «цвет» принимает значения, представленные в таблице 2.2.
Таблица 2.2 – Значения параметра «цвет» для функции сolormap
Значение параметра | Палитра цветов графика |
hsv | цвета радуги |
hot | чередование черного, красного, желтого и белого цветов |
gray | линейная палитра в оттенках серого цвета |
bone | серые цвета с оттенком синего |
copper | линейная палитра с оттенками меди |
pink | розовые цвета с оттенками пастели |
white | палитра белого цвета |
flag | чередование красного, белого, синего и черного цветов |
lines | палитра с чередованием цветов линий |
colorcube | расширенная палитра RGB |
jet | разновидность палитры HSV |
prism | призматическая палитра цветов |
cool | оттенки голубого и фиолетового цветов |
autumn | оттенки красного и желтого цветов |
spring | оттенки желтого и фиолетового цветов |
winter | оттенки синего и зеленого цветов |
summer | оттенки зеленого и желтого цветов |
Уже построенные графики удобно редактировать в графическом окне Figure . Для этого используется панель инструментов, с помощью которой можно менять толщину, цвет, маркер линий.
Также на панели инструментов есть «графическая лупа» («+» « – » ), позволяющая увеличивать и уменьшать отдельные части графика.
MATLAB позволяет одном графическом окне одновременно вывести несколько графиков. Для этого графическое окно разбивается на необходимое количество окон командой
subplot(m,n,p) или subplot(m n p) .
Эта команда разбивает графическое окно на т х п подокон, при этом m — число подокон по горизонтали, n — число подокон по вертикали, а р— номер подокна, в которое будет выводиться текущий график (подокна отсчитываются последовательно по строкам). Например
>> х=-5:0.1:5;
subplot(1.2.1), plot(x.sin(x))
subplot(1.2.2), plot(sin(5*x).cos(2*x+0.2))
При этом графическое окно разобьется на два подокна, в первом будет выведен график функции sin(x), во втором – зависимость cos(2x+0,2) от sin(5x).
Аппаратура и материалы: ПК не ниже Pentium II, OC семейства Windows, математический пакет MATLAB 7.
Техника безопасности
Соблюдать требования по охране труда при работе в компьютерных классах (инструкция № 140).
Задания
1. Построить график функции одной переменной y=sin(x). Построить несколько графиков, sin(x) и cos(x). в одной координатной плоскости. Отредактировать графики.
2. Построить графики функций двух переменных: , где x и y изменяются от -8 до 8 с шагом 0,5;
, где a и b изменяются от -5 до 5 с шагом 0,15.
Методика выполнения задания 1
1.1. В Окне команд ( Command Window ) задайте интервал изменения аргумента х от 0 до 10 с шагом 0,1. Для построения графика достаточно вначале задать вектор х, а затем использовать команду построения графиков plot(sin(x)):
>> х = 0:0.1:10;
>> plot(sin(x))
Результат показан на рисунке 2.1.
Вектор х задает интервал изменения независимой переменной от 0 до 10 с шагом 0.1. Почему взят такой шаг, а не, скажем, 1? Дело в том, что plot строит не истинный график функции sin(x), а лишь заданное числом элементов вектора х число точек. Эти точки затем просто соединяются отрезками прямых, т. е. осуществляется кусочно-линейная интерполяция данных графика. При 100 точках полученная кривая глазом воспринимается как вполне плавная, но при 10-20 точках она будет выглядеть состоящей из отрезков прямых.
1.2. Добавьте на график линии сетки. Для этого введите команду
>> grid on.
В результате окно графика изменится, появятся линии сетки.
1.3. Сохраните полученный график. Для этого нажмите Файл ( File ). Затем нажмите Сохранить как ( Save As ). В появившемся окне папки work сохраните график под произвольным именем. Необходимо помнить, что имя файла в MATLAB не должно содержать букв русского алфавита. Файлы графиков имеют расширение . fig.
1.4. На одной координатной плоскости можно построить графики нескольких функций. Добавим к построенному графику функции sin(x) график функции cos(x). График sin(x) сделаем красным с маркерами в виде шестиугольников, cos(x) – зеленым с маркерами в виде ромбов.
Создайте новый М-файл. Введите в него следующие команды:
х = 0:0.1:10
y1=sin(x);
y2=cos(x);
plot(x,y1,’r-H‘,x,y2,’g-D‘)
grid on
В результате в окне Figure появятся искомые графики двух функций (рисунок 2.2).
1.5. На практике иногда приходится редактировать полученные графики для их вывода на печать, лучшего визуального восприятия или повышения информативности. К полученным графикам добавьте наименование осей, пояснительные надписи, измените цвет и толщину линий, вид и размер маркеров.
Для добавлений наименований осей в окне Figure на панели инструментов нажмите кнопку Edit Plot (Редактирование графика), стрелка влево и вверх. Теперь в строке меню нажмите Вставка ( Insert ).
Рисунок 2.2 – Два графика на одной координатной плоскости
В появившемся контекстном меню выберите X Label и введите текст «Значение Х». Под горизонтальной осью появится надпись Значение Х. Аналогично подпишите вертикальную ось. Для этого в контекстном меню Вставка ( Insert ) выберите Y Label и введите текст «Значения функций».
1.6. Подпишите графики. В контекстном меню Вставка ( Insert ) выберите Text Arrow (Стрелка с надписью). Протяните стрелку с помощью курсора к нужному графику и в поле текста стрелки вставьте соответственно sin(x) и cos(x) (рисунок 2.3).
1.7. Измените толщину линий графиков, тип маркеров. Для этого нажмите кнопку Edit Plot (Редактирование графика). Выделите левой кнопкой мыши интересующий график, правой кнопкой вызовите контекстное меню для него (рисунок 2.3). В появившемся контекстном меню можно менять цвет графика (Color), толщину линий (Line Width), стиль линий (Line Style), тип маркера (Метка). В появившемся контекстном меню можно менять цвет графика (Color), толщину линий (Line Width), стиль линий (Line Style), тип маркера (Метка).
Рисунок 2.3 – Редактирование графиков
Установите для графика функции sin(x) следующие параметры: цвет – красный; толщина линии – 2.0; стиль линии – сплошной (solid); маркер отсутствует. Для графика функции cos(x): цвет – темно-зеленый; толщина – 2.0; стиль – сплошной; маркер – круг; размер маркера – 5.
1.8. Сохраните полученные графики.