Доклад: Графика в системе Maple V
1. Двумерная графика
1.1. Основные возможности двумерной графики
Лидером по графическим возможностям среди математических систем для персональных компьютеров долгое время считалась система Mathematics 2. Однако в реализации Maple V R4 возможности графики системы Maple V приблизились к таковым у системы Mathematica 2 и даже Mathematica 3. Они настолько обширны, что, будь математическая графика Maple V единственным назначением системы, оно вполне оправдало бы ее разработку.
Графика Maple V реализует все мыслимые (и даже «немыслимые») варианты математических графиков — от построения графиков простых функций в Декартовой и в полярной системах координат до создания реалистических образов сложных пересекающихся в пространстве фигур с их функциональной окраской. Возможны наглядные графические иллюстрации решений самых разнообразных уравнений, включая системы дифференциальных уравнений.
В само ядро Maple V встроено ограниченное число функций графики. Это прежде всего функция для построения двумерных графиков (20-типа) — plot и функция для построения трехмерных графиков (ЗО-типа) — plot3d. Они позволяют строить графики наиболее распространенных типов. Для построения графиков специального типа (например, в виде векторных полей градиентов, решения дифференциальных уравнений, построения фазовых портретов и т.д.) в пакеты расширения системы Maple V включено большое число различных графических функций. Для их вызова необходимы соответствующие указания.
Вообще говоря, средства для построения графиков принято считать графическими процедурами или операторами. Однако мы сохраним за ними наименование функций в силу двух принципиально важных свойств:
• графические средства Maple V возвращают некоторые графические объекты, которые размещаются в окне документа в строке вывода или в отдельном графическом объекте;
• эти объекты можно использовать в качестве значений переменных, т.е. переменным можно присваивать значения графических объектов и выполнять над ними соответствующие операции (например, с помощью функции show выводить на экран несколько графиков).
Графические функции заданы таким образом, что обеспечивают построение типовых графиков без какой-либо особой подготовки. Все, что для этого нужно, это указать функцию, график которой строится, и пределы изменения независимых переменных. Однако с помощью дополнительных необязательных параметров — опций можно существенно изменить вид графиков, например, изменить стиль и цвет линий, вывести титульную надпись, изменить вид координатных осей и т.д.
13.1.2. Основная функция двумерной графики — plot
Для построения двумерных графиков служит функция plot. Она задается в виде:
plot(f, h, v) или plot(f, h, v, о),
где f — функция (или функции), чей (чьи) график(и) строятся, h — переменная с указанием области ее изменения по горизонтали, v — заданная опционально переменная с указанием области изменения по вертикали, о — опция или набор опций, задающих стиль построения графика (толщину и цвет кривых, тип кривых, метки на них и т.д.).
Самыми простыми формами задания этой функции служат:
plot(i,xmin..xmax) — построение графика функции f, заданной только именем;
plot(f(x),x=xrnin..xmax) — построение графика функции f(x).
Диапазон изменения независимой переменной х задается как xmin..xmax, где xmin и гпах — минимальное и максимальное значение х, .. (две точки) — составной символ, указывающий на изменение независимой переменной. Разумеется, имя х здесь дано условно — независимая переменная может иметь любое допустимое имя.
Для двумерной графики возможны следующие опции:
axes | Вывод различных типов координат (axes=NORMAL — обычные оси, выводятся по умолчанию, axes=BOXES — график заключается в рамку с оцифрованными осями, axes=FRAME — оси в виде перекрещенных линий и axes=NONE — оси •не выводятся). |
color | Задает цвет кривых (см. далее). |
coords | Задание типа координатных систем (см. далее). |
numpoints | Задает минимальное количество точек графика (по умолчанию numpoints=49). |
resolutions | Задает горизонтальное разрешение устройства вывода (по умолчанию resolutions-200, параметр используется при отключенном адаптивном методе построения графиков). |
scaling | Задает масштаб графика CONSTRAINED (сжатый) или UNCONSTRAINED (несжатый — по умолчанию). |
size | Задает размер шрифта в пунктах. |
style | Задает стиль построения графика (POINT — точечный, LINE — линиями). |
symbol | Задает вид символа для точек графика (возможны значения BOX — прямоугольник, CROSS — крест, CIRCLE — окружность, POINT — точка, DIAMOND — ромб). |
title | Задает построение заголовка графика (title=«string», где string — строка). |
titlefont | Определяет шрифт для заголовка (так же как и для font). |
labelfont | Определяет шрифт для меток (labels) на осях координат (так же как и для font). |
thickness | Определяет толщину линий графиков (0, 1,2,3, по умолчанию 0). |
view=[A, B] | Определяет максимальные и минимальные координаты, в пределах которых график будет отображаться на экране, А = [xmin..xmax], B=[ymin..углах] (по умолчанию отображается вся кривая). |
xtickmarks | Задает минимальное число отметок по оси X. |
ytickmarks | Задает минимальное число отметок по оси Y. |
В основном задание параметров особых трудностей не вызывает. За исключением задания титульной надписи с выбором шрифтов по умолчанию — в этом случае не всегда поддерживается вывод символов кириллицы (русского языка). Подбором подходящего шрифта эту проблему удается решить.
13.1.3. Задание координатных систем 20-графиков и их пересчет
В версии Maple V R4 параметр coords задает 15 типов координатных систем для двумерных графиков. По умолчанию задана прямоугольная (Декартовая) система координат (coords=cartesian). При использовании других координатных систем координаты точек для них (u,v) преобразуются в координаты (х,у) как (u, v) -> (x, у). Ниже приведены наименования систем координат (значении параметра coords) и соответствующие формулы преобразования:
bipolar
х = sinh(v)/(cosh(v)-cos(u)) у = sin(u)/(cosh(v)-cos(u))
cardiod
х = [/2*(u'2-v~2}/(u'2+v'2Y2 у = u*v/(ir2+v"2)-2
cartesian
х = u у = v
cassinian
x = a*2«(l/2)/2*((exp(2*u)+2*exp(l^)*cos(v)+l)«(l/2) +
exp(u)*cos(v)+l)"(l/2) у = a*2»(l/2)/2*((exp(2*u)+2*exp(u)*cos(v)+l)"(l/2) -
--> ЧИТАТЬ ПОЛНОСТЬЮ <--