logo
Курс лекций КИТ

Графики и анимация

Maple 9 реализует всевозможные варианты математических графиков. Строятся как графики простых функций в декартовой и полярной системах координат, так и графики, показывающие реалистические образы сложных, пересекающихся в пространстве фигур с их функциональной окраской. Возможны наглядные графические иллюстрации решений самых разнообразных уравнений, включая системы дифференциальных уравнений.

В само ядро Maple 9 встроено ограниченное число функций построения графиков. Это прежде всего функция для построения двумерных графиков plot и функция для построения трехмерных графиков plot3d. Они позволяют строить графики наиболее распространенных типов. Для построения специальных графиков (например, векторных полей градиентов, решения дифференциальных уравнений, построения фазовых портретов и т. д.) в пакеты системы Maple 9 включено большое число различных графических функций. Для их вызова необходимы соответствующие указания.

Графические объекты можно использовать в качестве значений переменных, то есть переменным можно присваивать значения графических объектов и выполнять над ними соответствующие операции (например, с помощью функции show выводить на экран несколько графиков).

Графические функции заданы таким образом, что обеспечивают построение типовых графиков без какой-либо особой подготовки. Для этого нужно лишь указать функцию, график которой строится, и пределы изменения независимых переменных. Однако с помощью дополнительных необязательных параметров можно существенно изменить вид графиков — например, настроить стиль и цвет линий, вывести титульную надпись, изменить вид координатных осей и т. д.

Основная функция построения двумерных графиков plot

В математике широко используются зависимости вида y(x). Их графики строятся на плоскости в виде ряда точек y1(x1), обычно соединяемых отрезками прямых. Таким образом, используется кусочно-линейная интерполяция двумерных графиков. Если число точек графика достаточно велико (десятки или сотни), то приближенность построения не очень заметна.

Для построения двумерных графиков служит функция plot(f, h, v, о),

где f — визуализируемая функция, h — переменная с указанием области ее изменения, v — необязательная переменная с указанием области изменения, о — параметр или набор параметров, задающих стиль построения графика (толщину и цвет кривых, тип кривых, метки на них и т. д.).

Самыми простыми формами задания этой функции являются следующие:

> plot(sin(x), x=-Pi..Pi);

Диапазон изменения независимой переменной х задается диапазоном xmin..xmax, где xmin и xmax — минимальное и максимальное значение х, .. (две точки) — составной символ, указывающий на изменение независимой переменной.

Помимо построения самой кривой у(х) или f(x) можно задать ряд других свойств графиков, например вывод координатных осей, тип и цвет линий графика и др. Это достигается применением параметров графика — специальных указаний для Maple. Графики обычно строятся сразу в достаточно приемлемом виде. Это достигается тем, что многие параметры задаются по умолчанию, и пользователь, по крайней мере начинающий, может о них ничего не знать. Однако язык общения и программирования Maple 9 позволяет задавать управляющие параметры и в явном виде.

Для двумерного графика возможны следующие параметры:

В основном задание параметров особых трудностей не вызывает, за исключением задания титульной надписи с выбором шрифтов по умолчанию — в этом случае не всегда поддерживается вывод символов кириллицы (русского языка). Подбором подходящего шрифта эту проблему удается решить. Модификация графиков с помощью управляющих параметров подробно рассматривается ниже.

Специальный параметр adaptive задает работу специального адаптивного алгоритма для построения графиков наилучшего вида. При этом Maple автоматически учитывает кривизну изменения графика и увеличивает число отрезков прямых в тех частях графиков, где их ход заметно отличается от интерполирующей прямой. При задании adaptive=false адаптивный алгоритм построения графиков отключается, а при adaptive=true включается (значение по умолчанию).

В версии Maple 9 параметр coords задает 15 типов координатных систем для двумерных графиков. По умолчанию используется прямоугольная (декартова) система координат (coords=cartesian). Например:

> plot(sin(x), x=-4*Pi..4*Pi, labels=[x,y],

labelfont=[TIMES,ITALIC,14], thickness=4);

Maple 9 позволяет воспроизводить на одном графике множество кривых. При этом возникает необходимость как-то идентифицировать их. Для этого можно использовать построение линий разными стилями, разными цветами и с разной толщиной. Набор средств выделения кривых позволяет уверенно различать их как на экране цветного дисплея и в распечатках, сделанных цветным струйным принтером, так и при печати монохромными принтерами. Параметр color позволяет использовать обширный набор цветов линий графиков: аquamarine, black, blue, navy, coral, cyan, brown, gold, green, gray, grey, khaki, magenta, maroon, orange, pink, plum, red, sienna, tan, turquoise, violet, wheat, white, yellow.

Для управления отображаемой на графике области служит задание диапазонов принимаемых значений для переменной и функции. В ряде случаев их можно не применять, тогда Maple автоматически задает приемлемые диапазоны. Однако их явное указание позволяет управлять областью графика вручную. Иногда соответствующее задание диапазонов случайно или целенаправленно ведет к отсечению части графика. Правильный выбор диапазонов повышает представительность графиков функций. Рекомендуется вначале пробовать строить графики с автоматическим выбором диапазонов, а уже затем указывать их вручную.

Изредка встречаются графики функций f(x), которые надо построить при изменении значениях от нуля до бесконечности или даже от минус бесконечности до плюс бесконечности. Бесконечность в таких случаях задается как особая константа infinity. В этом случае переменной х, устремляющейся в бесконечность, откладывается значение аrctan(x)..

Некоторые функции, например tan(x), имеют при определенных значениях х разрывы, причем случается, что значения функции в этом месте устремляются в бесконечность. Построение графиков таких функций нередко дает плохо предсказуемые результаты. Графический процессор Maple 9 не всегда в состоянии определить оптимальный диапазон по оси ординат, а график функции выглядит весьма непредставительно.

Среди аргументов функции plot есть специальный параметр discont. Если задать его значение равным true, то качество графиков существенно улучшается, Улучшение достигается разбиением графика на несколько участков, на которых функция непрерывна, и более тщательным контролем за отображаемым диапазоном. При discont=false данный параметр отключен и строятся обычные графики.

 Следует отметить, что вид графика можно улучшить, просто задав диапазон по оси у, например, введя в параметры функции запись у=-10..10). При этом в точках разрыва могут появиться вертикальные линии. Иногда это бывает полезно. Например:

> plot(x/(x^2-1),x=-3..3,y=-3..3,color=magenta,thickness=4);

Важное значение имеет возможность построения на одном рисунке графиков нескольких функций. В простейшем случае для построения таких графиков достаточно перечислить нужные функции и установить для них общие интервалы изменения.

Обычно графики разных функций автоматически строятся разными цветами. Но это не всегда удовлетворяет пользователя — например, при распечатке графиков монохромным принтером некоторые кривые могут выглядеть слишком блеклыми или даже не пропечататься вообще. Используя списки параметров color (цвет линий) и style (стиль линий), можно добиться выразительного выделения кривых. Например:

Два графика на одной координатной плоскости

> plot([x^2,x^3],x=-2..2,linestyle=[1,3],thickness=4);

Однако часто возникает необходимость построения графиков функций, которые представлены просто совокупностями точек. Такая совокупность может быть создана искусственно, либо просто задаваться списком координат х и значений функции.

В данном случае переменная Р имеет вид списка, в котором попарно перечислены координаты точек функции sin(x).

Графики функций, заданных своими именами

Имеется возможность построения графиков функций, заданных только их функциональными именами — даже без указания параметров в круглых скобках.

При этом диапазон по горизонтальной оси устанавливается равным по умолчанию -10.. 10, а по вертикальной оси выбирается автоматически в соответствии с экстремальными значениями функций в указанном диапазоне изменения независимой переменной (условно х).

В ряде случаев для задания функциональных зависимостей используются заданные параметрически уравнения, например х = f1(t) и у =f2(t) при изменении переменной t в некоторых пределах. Точки(х, у) наносятся на график в декартовой системе координат и соединяются отрезками прямых. Для этого используется функция plot в следующей форме:

plot([fl(t),f2(t),t-tmin..tmax].h,v.p)

Если функции f1(£) и f2(0 содержат периодические функции (например, тригонометрические), то для получения замкнутых фигур диапазон изменения переменной t обычно задается равным 0. .2*Pi или -Pi..Pi. К примеру, если задать в качестве функций f1(t) и f2(t) функции sin(t) и cos(t), то будет получен график окружности. Рисунок 11.13 показывает другие, чуть менее тривиальные примеры построения графиков такого рода.

Задание диапазонов для изменений h и v, а также параметров р не обязательно. Но, как и ранее, они позволяют получить вид графика, удовлетворяющий всем требованиям пользователя. Например:

> plot([sin(2*t),cos(3*t),t=0..2*Pi], axes=BOXED, color=blue);

При построении графика значения функции считаются численно, поэтому определение функции не должно содержать символьные переменные. Масштаб по оси OY выбирается автоматически, поэтому если функция содержит вертикальные асимптоты, то масштаб может оказаться слишком мелким. В этом случае необходимо задать в качестве дополнительного параметра интервал, отображаемый по оси OY:

> plot(1/x,x=-3..3,-10..10);

В этом примере строится график функции 1/x, при этом на оси OX отображается отрезок [-3,3], на на оси OY – [-10,10].

На одном рисунке могут быть изображены графики нескольких функций, для этого вместо функции необходимо задать список функций: перечислив их в квадратных скобках через запятую. Пример построения графиков x2 и x3 на одном рисунке:

> plot([x^2,x^3],x=-2..2);

Трехмерные графики функций двух переменных строятся при помощи функции plot3d. Ее синтаксис: plot3d(f(x,y),x=a..b,y=c..d). Пример построения графика функции x*sin(y):

> plot3d(x*sin(y),x=-2..2,y=-Pi..Pi);

На панели инструментов есть ряд кнопок, позволяющих вращать построенный график в пространстве, изменять масштабы по осям координат и переключать режимы отображения осей.

Если необходимо задать интервал, который будет отображаться на оси OZ, необходимо задать еще один параметр view=e..f (в отличие от плоских графиков необходимо написать слово view).