Лабораторная работа
На тему:
"Двумерная графика системы Maple"
Цели работы:
знать команды, используемые для построения графиков функций одной переменной (двумерная графика);
уметь применять указанные команды для отображения результатов вычислений в виде графических образов.
1. Команда plot ()
Команда plot () – многофункциональная команда двумерной графики. Расположена она в системной библиотеке Maple, и поэтому доступна в любое время. Данная команда позволяет строить график одной или нескольких функций одной вещественной переменной, заданных в явном или параметрическом виде, а также отобразить множество точек в декартовой или полярной системе координат. Синтаксис команды: plot (f, h, v, опции);
Здесь f – функция, график которой необходимо отобразить, h – диапазон изменения независимой переменной по горизонтальной оси графика, v – диапазон изменения значения функции вдоль вертикальной оси графика.
Диапазон изменения независимой переменной h задается в виде x = а..b, где а и b – наименьшее и наибольшее значения изменения переменной, а х – имя независимой переменной. Если диапазон не задан (т.е., второй параметр представляет собой просто имя независимой переменной в функции), то по умолчанию принимается интервал ее изменения –10..10. Этот параметр (с диапазоном или нет) обязательно должен присутствовать при задании графика командой plot().
Вертикальный диапазон v ограничивает вывод графика определенной областью изменения функции. Он необязателен, как и опции, задающиеся в виде уравнений имя_опции=значение. При отсутствии явного задания опций принимаются их значения по умолчанию.
С помощью опций определяют вид отображаемого графика: толщину, цвет и тип линии графика, тип осей координат, размещение надписей и т.д. Задаются опции в форме уравнений имя_опции = значение. Набор возможных опций во всех командах двумерного графического вывода, за некоторым исключением, одинаков. В табл. 1 представлены все опции двумерной графики и соответствующие им значения (умалчиваемые значения подчеркнуты).
Таблица 1. Опции двумерной графики
Опция |
Описание |
adaptive |
Для вычисления отображаемых точек кривой используется специальный адаптивный алгоритм: сначала вычисляются значения функции на некотором множестве равноотстоящих точек в заданном интервале изменения независимой переменной, а затем в областях, где график функции сильно отличается от прямой линии, соединяющей соседние точки, вычисляются значения функции в дополнительных точках. По умолчанию этот алгоритм всегда включен (значение опции равно true), но его можно отключить, установив значение опции adaptive равным false. |
axes |
Определяет тип отображаемых осей координат. Опция принимает значения: normal – обычные оси координат, пересекающиеся в точке начала координат (0,0); boxed – график заключен в прямоугольник с нанесенными шкалами по нижней и левой вертикальной граням; frame – оси с точкой пересечения в левом нижнем углу рисунка; none – оси не отображаются. |
axesfont |
Задает шрифт для надписей под засечками вдоль осей координат. Значение этой опции аналогично значению опции font |
color |
Задает цвета кривых, отображаемых на график. В качестве значения этой опции может выступать одно из зарезервированных значений цвета в Maple: aquamarine, black, blue, navy, coral, cyan, brown, gold, green, gray, grey, khaki, magenta, maroon, orange, pink, plum, red, sienna, tan, turquoise, violet, wheat, white и yellow. Можно определить и собственный цвет, соответствующий смешению заданных частей красного, зеленого и синего цветов. Это делается с помощью следующей команды macro (palegreen=COLOR (RGB.5607.7372.5607)), где palegreen – имя константы нового цвета, в котором красный составляет 0.5607 части, зеленый 0,7372 и синий 0.5607, В дальнейшем это имя можно использовать для задания цвета аналогично именам встроенных цветов. |
coords |
При выводе как явно заданной функции, так и параметрически заданной функции по умолчанию используется декартовая система координат (cartesian), т.е. задаваемое уравнение кривой рассматривается именно в этой системе координат. Данная опция меняет тип системы координат. Возможные значения: bipolar, cardiod, cassinian, elliptic, hyperbolic, invcassinian, invelliptic, logarithmic, logcosh, maxwell, parabolic, polar, rose и tangent, описание которых можно получить в справочной системе Maple с помощью команды? coords. |
discont |
Значение по умолчанию false. При установке значения этой опции, равной true, Maple первоначально вызывает команду discont (), которая определяет промежутки непрерывности функции, а затем на них рисуются непрерывные участки графика функции. |
filled |
Установка значения данной опции равным true приводит к тому, что область, ограниченная графиком функции и горизонтальной осью х, закрашивается заданным в опции соlor цветом |
font |
Задает шрифт для вывода текста на рисунке. Значение опции задается в виде списка [семейство, стиль, размер]. Параметр семейство задает гарнитуру шрифта: TIMES, COURIER, HELVETICA или SYMBOL. Параметр стиль определяет стиль шрифта: для гарнитуры TIMES возможные значения ROMAN, BOLD, ITALIC или BOLDITALIC, для гарнитуры COURIER и HELVETICA стиль можно опустить или задать BOLD, OBLIQUE или BOLDOBLIQUE, для шрифта SYMBOL стиль не задается. Последний параметр размер задает размер шрифта в пунктах (points) (один пункт приблизительно равен 1/72 дюйма) |
labels |
Задает названий осей координат в виде списка [х, у]. Параметры х и у задаются в виде строк и соответствуют отображаемым названиям горизонтальной и вертикальной осей. По умолчанию принимают значения имени независимой переменной и имени функции |
labeldirections |
Эта опция определяет направление отображения названий осей и задается в виде списка [х, у], элементы которого могут принимать одно из двух значений HORISONTAL или VERTICAL и определяют расположение надписей осей координат: горизонтально или вертикально. Умалчиваемое значение HORIS0NTAL |
labelfont |
Задает параметры шрифта, которым отображаются названия осей координат. Значение этой опции аналогично значению опции font |
legend |
Задает отображение легенды для нескольких кривых на одном графике в виде списка, в котором i?й строковый элемент соответствует i?й кривой графика |
linestyle |
Определяет тип линии графика. Значение опции – целое число n. При n=0 тип линии соответствует умалчиваемому типу для используемого устройства отображения (обычно сплошная линия), значение 1 соответствует сплошной линии, значение 2?отображению линии точками, 3 – пунктиром и 4 – штрихпунктиром |
numpoints |
Определяет минимальное число вычисляемых точек, по которым строится график (значение по умолчанию равно 50). |
resolution |
Определяет горизонтальное разрешение дисплея в пикселах на дюйм и используется в качестве критерия для завершения адаптивного алгоритма отображения (значение по умолчанию равно 200). |
sample |
Определяет список значений параметров, который используется для «пробного» отображения кривой. Отключение адаптивного алгоритма вычисления точек кривой позволяет явным образом управлять отображением кривой. |
scaling |
Задает масштаб, в котором отображается график. Если значение опции равно CONSTRAINED, то это соответствует заданию абсолютных значений по осям координат, т.е. одна единица измерения по оси независимой переменной равна одной единице измерения по оси значений функции. Значение по умолчанию равно UNCONSTRAINED, и это соответствует тому, что оси растягиваются таким образом, чтобы их размеры соответствовали размерам графического окна вывода. |
style |
Задает отображение графика функции линиями (значение опции равно LINE) или точками (значение опции равно POINT). Значения опции, равные PATCH и PATCHNOGRID, применяются, когда выводится замкнутый многоугольник (графическая структура POLYGONS). В этом случае его внутренняя область закрашивается цветом, установленным в опции color, причем в случае значения PATCHNOGRID его граница не отображается. Если в графическом выводе нет замкнутых многоугольников, то действие этих значений данной опции соответствует значению LINE. |
symbol |
Определяет тип символа, которым помечаются точки графика функции при style=POINT. Принимает значения: BOX для , CROSS для +, CIRCLE для О, POINT для (точка) и DIAMOND для |
symbolsize |
Задает размер символа в пунктах. Его значение может быть любое натуральное число. По умолчанию используются символы размером 10 пунктов. Действие этой опции не распространяется на символ POINT. |
thickness |
Задает толщину линии графика. Значение является целым числом от 0 до 15, соответствуя изменению толщины линии от тонкой до самой жирной. |
tickmarks |
Определяет число точек, не менее которого должно быть помечено по горизонтальной и вертикальной оси координат. Значение задается в виде списка [n, m]. Для каждой из осей можно определить список помечаемых точек. |
title |
Определяет строку, выводимую как заголовок рисунка. По умолчанию заголовок не выводится. В строке используются специальные комбинации символов. Например, \n осуществляет перевод на новую строку, формируя тем самым многострочный заголовок. |
titlefont |
Определяет шрифт для заголовка рисунка. Значение этой опции аналогично значению опции font. |
xtickmarks |
Задает число точек, не менее которого должно быть помечено на горизонтальной оси. Значение опции может быть целым числом или списком значений координат точек горизонтальной оси, которые должны быть помечены. Список может состоять из уравнений, левые части которых определяют координаты помечаемых точек, а правые задают в обратных кавычках отображаемый текст, например, [0=`0.`, 0.5=`1/2`, 1=`1.`]. |
ytickmarks |
Задает число точек, не менее которого должно быть помечено на вертикальной оси. Значение опции может быть целым числом или списком значений координат точек вертикальной оси, которые должны быть помечены. Список может состоять из уравнений, левые части которых определяют координаты помечаемых точек, а правые задают в обратных кавычках отображаемый текст, например, [0=`0.`, 0.5=`1/2`, 1=`1.`]. |
Ниже приводятся примеры работы с командой plot (). Первым примером будет отображение графика функции на интервале [-4,4] изменения независимой переменной х с созданием надписи.
Пример 1. Отображение графика функции с надписью.
> plot (x^2+2*cos (x^2), x=-4..4,
color=green,
title=`Пример вывода\nграфика функции`,
titlefont=[COURIER, 14],
xtickmarks=8,
thickness=6,
axesfont=[HELVETICA, 11],
labels=[«x», «y(x)»],
labeldirections=[HORIZONTAL, VERTICAL],
labelfont=[TIMES, ROMAN, 16]);
Для удобства восприятия в примере 1 (и в некоторых других нижеследующих примерах) команды набраны в столбик, каждая отдельно. На практике команды набираются в строку, одна за одной, без пробелов. Для создания многострочной надписи в строке значения опции title использован символ перехода на новую строку (\n).
Команда plot () отображает графики функций не только на конечном интервале изменения независимой переменной, но и на бесконечном:
>plot (3*cos(x)/x, x=0..infinity, – 1.5..1, color=red, numpoints=1000, thickness=1);
Здесь пришлось ограничить область значений функции диапазоном [-1. 5,1], так как при х, стремящемся к нулю, функция стремится к бесконечности, а также задать больше точек на графике функции, иначе в районе надписи infinity не наблюдалась бы гладкость функции, а были бы явные сломы, которые не соответствуют поведению функции.
В явном виде можно представить не всякую функцию. Многие функции задаются в параметрической форме. Отображение графиков таких функций лишь немного отличается от вывода явно задаваемых функций. Отличие заключается в том, что параметрическая кривая задается в виде списка, где первый и второй элементы являются выражениями через параметр, соответственно, горизонтальной и вертикальной координат, а третий элемент списка задает изменение параметра в виде диапазона. Отображение параметрически заданной кривой показано на примере 2.
Пример 2. Отображение графика параметрически заданной функции.
> plot([cos(t)^5,2*sin (2*t)^7, t=0..2*Pi],
color=orange,
title=`Отображение\nпараметрической\nкривой`,
titlefont=[COURIER, 14],
xtickmarks=4,
thickness=3,
axesfont=[HELVETICA, 11]);
При необходимости вывода нескольких функций на одном графике следует в команде plot () задавать функции в виде множества или списка, а значение опции color в виде списка позволяет задать цвет для вывода графиков функций. Если опция color не задана, то функции отображаются в соответствии со списком цветов по умолчанию.
Пример 3. Отображение графиков нескольких функций.
> plot([x^3+1.5*sin (x^3), 20*exp (-1.5*x)*sin(x)],
x=-1..3.5, – 1..5,
color=[orange, green],
title=`Отображение\nграфиков\nнескольких функций`,
titlefont=[COURIER, 14],
legend=[«x^3+1.5*sin (x^3)», «20*exp (-1.5*x)*sin(x)»],
xtickmarks=4,
thickness=3,
linestyle=[4,1],
axesfont=[HELVETICA, 11],
labels=[«x», «Графики»],
labelfont=[TIMES, ITALIC, 12]);
Рекомендуется при выводе нескольких графиков также отображать легенду заданием списка значений опции legend. Легенду можно всегда скрыть или снова отобразить с помощью команды Show Legend меню Legend.
Команда plot () позволяет отображать на графике отдельные точки, которые задаются в виде списка списков, т.е. списка, элементами которого являются списки. Эти двухэлементные списки определяют координаты точек на плоскости. Для вывода точек необходимо задать значение опции style, равной POINT. Если этого не сделать, то Maple отобразит ломаную линию, соединяющую точки в последовательности их задания, не выделяя их специальными символами. В примере 4 точки, заданные своими координатами на плоскости, отображаются с использованием символа круг symbol = CIRCLE.
Пример 4. Отображение точек на плоскости.
> plot([[1,1], [2,1], [3,2], [-2,2], [-1,3.5], [1. 5,4], [1. 3,3.1], [2,2]],
x=-3..3, – 1..5,
color=[blue],
style=POINT,
symbol=CIRCLE,
symbolsize=12,
title=`Отображение точек\nкомандой plot`,
titlefont=[COURIER, 14],
xtickmarks=4,
axesfont=[HELVETICA, 11],
labels=[«», «Точки»],
labelfont=[TIMES, ITALIC, 16]);
2. Меню для работы с двумерной графикой.
После построения графика функции командой plot () или другой командой двумерной графики из пакета plots, его внешний вид можно изменить. Для этого надо переустановить значения некоторых опций с помощью команд основного меню интерфейса пользователя, контекстной панели инструментов или команд контекстного меню, отображаемого нажатием левой кнопки мыши при наведении указателя в область рисунка.
На рис. 1 показан общий вид интерфейса пользователя с меню и контекстной панелью инструментов для работы с графикой. Также на этом же рисунке отображено контекстное меню, появляющееся при щелчке правой кнопкой мыши, когда указатель расположен в области графического вывода. При выделении двумерной графики на рабочем листе меню Insert, Spreadsheet и Options, находящиеся в строке основного меню, заменяются новыми Style, Legend. Axes, Projection, Animation и Export, которые позволяют изменить основные опции построенного графика, а также сохранить его в различных форматах с помощью команд последнего меню. Все команды этих меню дублируются в контекстном меню, в котором дополнительно присутствует команда Сору копирования графики в Буфер обмена, а некоторая их часть в контекстной панели инструментов для двумерной графики. На рис. 1 показаны опции, которым соответствуют кнопки контекстной панели инструментов. Дополнительно к изменению основных меню сокращается список команд меню Format. Так меняется окно интерфейса пользователя при выделении двумерного графика на рабочем листе.
Команды Line (Линия). Point (Точка), Patch (Заливка) и Patch w/o grid (Заливка без сетки) меню Style устанавливают значение опции style, равной, соответственно, line, point, patch или PATCHNOGRID. На контекстной панели инструментов этим командам соответствуют первые четыре кнопки (рис. 1).
Рис. 1. Интерфейс пользователя при выделении графики
Подменю Symbol (Символ), Line Style (Тип линии) и Line Width (Толщина линии) позволяют установить значения опций symbol, linestyle и thickness, а команда Symbol Size отвечает за установку и изменение размеров символов отображения точек при отображении линий точками, т.е. когда установлена опция linestyle=POINT. Кнопок на контекстной панели инструментов для этих опций не предусмотрено.
Команда Show Legend меню Legend добавляет или удаляет легенду из выделенного графика. Она работает как переключатель: если легенда помещена на график, то слева от команды отображается «галочка», если на графике легенда отсутствует, то отсутствует и «галочка». Команда Edit Legend отображает диалоговое окно Legend Labels, в котором можно изменить надписи легенд для кривых, отображаемых на графике. Для этого следует в раскрывающемся списке Curve выбрать необходимую кривую, а в поле Label ввести новое значение надписи.
Команды меню Axes (Оси) позволяют установить значения BOXED, FRAME, NORMAL и NONE опции axes. На контекстной панели инструментов им соответствуют четыре кнопки, показанные на рис. 1.
Меню Projection (Проекция) устанавливает значения опции scaling. На панели инструментов значения этой опции можно устанавливать с помощью последней кнопки. Если она не нажата, то соответствует значению unconstrained, если нажата – установлено значение constrained.
Меню Animation специально предназначено для анимации изображений и становится доступным, когда в документе Maple графика выводится командой создания анимации animate ().
Командами последнего меню Export можно сохранить выделенный на рабочем листе график в одном из следующих форматов: EPS, GIF, JPG, BMP и WMF.
Все перечисленные команды меню можно выполнить из контекстного меню, в котором кроме этих команд присутствует команда Сору (Копировать), копирующая графический рисунок в Буфер обмена операционной системы Windows для вставки его в документ другого приложения или обработки какой-либо графической программой. Отметим, что скопировать график в Буфер обмена можно и командой Сору меню Edit.
Литература
1. Говорухин В.Н., Цибулин В.Г. Введение в Maple. Математический пакет для всех. – М.: Мир, 1997. – 208 с.
2. Дьяконов В.П. Математическая система Maple V. – М.: Издательство «Солон», 1998.
3. Двайт Г.Б. Таблицы интегралов и другие математические формулы. – М.: Наука. Главная редакция физико-математической литературы, 1983. – 176 с.
4. Матросов А.В. Maple 6. Решение задач высшей математики и механики. – СПб.:БХВ – Петербург, 2001. – 528 с.
5. Манзон Б.М. Maple V Power Edition – М.: Информационно-издательский дом «Филинъ», 1998 г.