Построить график системы уравнений в maple
Для построения графиков функции f(x) одной переменной (в интервале по оси Ох и в интервале по оси Оу ) используется команда plot(f(x), x=a..b, y=c..d, parameters), где parameters – параметры управления изображением. Если их не указывать, то будут использованы установки по умолчанию. Настройка изображения также может осуществляться с панели инструментов.
Основные параметры команды plot :
1) title=”text”, где text- заголовок рисунка (текст можно оставлять без кавычек, если он содержит только латинские буквы без пробелов).
2) coords=polar – установка полярных координат (по умолчанию установлены декартовы).
3) axes – установка типа координатных осей: axes=NORMAL – обычные оси; axes=BOXED – график в рамке со шкалой; axes=FRAME – оси с центром в левом нижнем углу рисунка; axes=NONE – без осей.
4) scaling – установка масштаба рисунка: scaling=CONSTRAINED – одинаковый масштаб по осям; scaling=UNCONSTRAINED – график масштабируется по размерам окна.
5) style=LINE(POINT) – вывод линиями (или точками).
6) numpoints=n – число вычисляемых точек графика (по умолчанию n=49 ).
7) сolor – установка цвета линии: английское название цвета, например, yellow – желтый и т.д.
8) xtickmarks=nx и ytickmarks=ny – число меток по оси Оx и оси Оy , соответственно.
9) thickness=n, где n=1,2,3… — толщина линии (по умолчанию n=1 ).
10) linestyle=n – тип линии: непрерывная, пунктирная и т.д. ( n=1 – непрерывная, установлено по умолчанию).
11) symbol=s – тип символа, которым помечают точки: BOX, CROSS, CIRCLE, POINT, DIAMOND .
12) font=[f,style,size] – установка типа шрифта для вывода текста: f задает название шрифтов: TIMES, COURIER, HELVETICA, SYMBOL; style задает стиль шрифта: BOLD, ITALIC, UNDERLINE; size – размер шрифта в pt.
13) labels=[tx,ty] – надписи по осям координат: tx – по оси Оx и ty – по оси Оy .
14) discont=true – указание для построения бесконечных разрывов.
С помощью команды plot можно строить помимо графиков функций y=f(x), заданной явно, также графики функций, заданных параметрически y=y(t), x=x(t) , если записать команду plot([y=y(t), x=x(t), t=a..b], parameters) .
Задание 1.1.
Построить график жирной линией в интервале от -4 p до 4 p . Наберите:
> plot(sin(x)/x, x=-4*Pi..4*Pi, labels=[x,y],
Построить график разрывной функции .
Замечание : на рисунке автоматически появляются вертикальные асимптоты.
Построить график параметрической кривой , , в рамке. Наберите:
> plot([sin(2*t),cos(3*t),t=0..2*Pi], axes=BOXED, color=blue);
Построить в полярных координатах график кардиоиды с названием. Наберите:
> plot(1+cos(x), x=0..2*Pi, title=»Cardioida», coords=polar, color=coral, thickness=2);
Построение графика функции, заданной неявно.
Функция задана неявно, если она задана уравнением . Для построения графика неявной функции используется команда implicitplot из графического пакета plots: implicitplot(F(x,y)=0, x=x1..x2, y=y1..y2).
Вывод текстовых комментариев на рисунок.
В пакете plots имеется команда textplot для вывода текстовых комментариев на рисунок: textplot([xo,yo,’text’], options), где xo, yo – координаты точки, с которой начинается вывод текста ’text’ .
Вывод нескольких графических объектов на один рисунок.
Часто бывает необходимо совместить на одном рисунке несколько графических объектов, полученных при помощи различных команд, например, добавить графику, нарисованному командой plot , текстовые надписи, полученные командой textplot . Для этого результат действия команды присваивается некоторой переменной:
При этом на экран вывод не производится. Для вывода графических изображений необходимо выполнить команду из пакета plots:
> with(plots): display([p,t], options) .
Построение двумерной области, заданной неравенствами.
Если необходимо построить двумерную область, заданную системой неравенств , то для этого можно использовать команду inequal из пакета plots . В команде inequals( c1,…,fn(x,y)>cn>, x=x1…x2, y=y1..y2, options) в фигурных скобках указывается система неравенств, определяющих область, затем размеры координатных осей и параметры. Параметры регулируют цвета открытых и закрытых границ, цвета внешней и внутренней областей, а также толщину линий границ:
optionsfeasible=(color=red) – установка цвета внутренней области;
optionsexcluded=(color=yellow) – установка цвета внешней области;
optionsopen(color=blue, thickness=2) – установка цвета и толщины линии открытой границы;
optionsclosed(color=green,thickness=3) – установка цвета и толщины линии закрытой границы.
Задание 1.2.
2. Построить на одном рисунке графики астроиды , () вписанной в эллипс . Выведите название линий Astroida и Ellips жирным шрифтом вместе с его уравнением курсивом. Для этого наберите следующие строки:
> el:=implicitplot(eq, x=-4..4, y=-2..2, scaling=CONSTRAINED,
color=blue, scaling=CONSTRAINED, thickness=2):
ITALIC, 10], align=RIGHT):
3. Построить область, ограниченную линиями: , , .
Исправляем ошибки: Нашли опечатку? Выделите ее мышкой и нажмите Ctrl+Enter
Решение уравнений
Методы нахождения корней полиномов, решения уравнений, содержащих элементарные и специальные функции и систем сложных уравнений
Системы уравнений
Maple может решать системы линейных и нелинейных уравнений, но это хитрое дело, поскольку, чтобы разобраться в происходящем, надо рисовать уравнения, а это сложнее, так как пространство решений – многомерное.
Применяются команды solve и fsolve , но в этом случае им задаются наборы (в фигурных скобках) уравнений и переменных.
В первом примере используем solve для простой задачи линейной алгебры: John вдвое старше Kimberly. Возраст Kimberly плюс возраст John равен 27. Найти возраст каждого. Если использовать пакет LinearAlgebra, то придется рассматривать матрицу, но можно применить solve (и fsolve ), которые могут непосредственно работать с уравнениями:
Поскольку не надо беспокоиться о переводе в матричный вид, то получился иной метод решения систем линейных уравнений.
solve и fsolve можно применять для решения нелинейных систем, т. е. систем уравнений, в которых переменные – квадраты, кубы, синусы, экспоненты и т. п. Например, вот система двух нелинейных уравнений:
Вначале попробуем применить команду solve :
Maple сделал по-умному: чтобы получить уравнение для х , он исключил у из Е2 с помощью Е1 . Затем он факторизовал это квадратное уравнение, выдал ответ (x,y)=(3,4) и свел оставшуюся часть задачи к кубической. Если завершить задачу командой evalf , получим:
Но если нарисовать кубическую часть в RootOf (для оценки положения корней), то увидите, что есть еще два решения. Где же они? Примените fsolve и получите:
что еще хуже, так как дает один корень. Для поиска корней можно задавать примерно правильные числа в качестве подсказок для fsolve :
Простой способ заставить Maple дать все 4 корня: повторяйте процедуру, заменяя все целые числа на числа с плавающей точкой:
Будьте изобретательны
и пробуйте разные пути решения задачи,
возможно, один сработает.
В Maple есть другой полезный инструмент для случая двух нелинейных уравнений с двумя неизвестными. Точно так же, как в задачах с одной переменной, полезно сначала строить график, чтобы увидеть, где есть решения. В данном случае двумерные графики помогут искать корни двух неизвестных величин. Примените команду построения графиков implicitplot , которая берет уравнение с двумя переменными, вроде x 2 – y = 5, и строит определяющую их кривую в плоскости xy (для добавления команды графики надо вначале загрузить пакет графики with(plots) ):
Для графического поиска решений постройте оба уравнения на одном графике и посмотрите, где две кривые пересекают друг друга.
Из картинки ясно, что две параболы пересекаются в четырех местах, поэтому должно быть четыре решения. Окно графика должно быть достаточным, чтобы увидеть всю картинку. А если оно мало, то получится вот что:
Если у вас есть три нелинейных уравнения с тремя переменными, implicitplot3d может сделать нечто подобное (см. Maple help).
Найдите все решения (Re и Im) системы уравнений
Чтобы определить количество искомых корней, сначала постройте график с помощью implicitplot .
Вот еще нелинейная система:
Вначале попробуем solve :
(Maple на мгновение задумается, но ничего не произойдет.) Теперь попробуем fsolve с диапазонами для каждой переменной:
Похоже, что (x, y, z) = (1, 1, 3) достаточно близко к решению. Предупреждение: в трех и более измерениях Maple может ошибиться и работать, несмотря на то, что:
(a) известно, что здесь есть решение и
(b) указано, где искать приближенное значение корня.
Для лучшего понимания, где следует искать решение, можно применить implicitplot3d :
Щелкните на рисунке и покрутите его, чтобы разглядеть подробнее. После этого перерисуйте график так, чтобы он был вблизи известного решения: [x, y, z]=[1, 1, 3]:
В середине графика все три поверхности – E1 , E2 и E3 – пересекаются в точке. Это и есть то, что искали с помощью implicitplot3d , но в целом рассматривать трехмерные задачи сложно.
Пусть гладкая функция y(x) представлена тремя точками (x 1 , y 1 ), (x 2 , y 2 ), (x 3 , y 3 ). Предположим, что эти точки определяют параболу вида y(x) = a + bx + cx 2 и что есть три аппроксимирующих уравнения для нахождения коэффициентов параболы a, b, c. Постройте эти три уравнения и используйте solve , чтобы найти формулы для a, b, c, а затем определите выражение Maple для параболы.
Задание выглядит вполне приемлемо для равноотстоящих точек. Пусть x 2 = x 1 + h и x 3 = x 1 + 2h . Упростим выражения для a, b, c. В результате получили приближенную форму функции, с которой можно работать:
(a) Оцените площадь под кривой между x 1 и x 3 путем интегрирования параболы между этими двумя пределами. Получится правило Симпсона. Чтобы посмотреть, хорош ли этот приближенный интеграл, задайте x 1 = 0, x 2 = 0.5, x 3 = 1.0 и y 1 = cos(x 1 ), y 2 = cos(x 2 ), y 3 = cos(x 3 ) , при этом приближенное значение площади будет близко к Дает ли формула приближенного интегрирования хороший результат?
(b) Оцените производную функции у(х) в средней точке х 2 путем дифференцирования параболы и вычисления значения производной в x = x 2 . Она называется формулой центральных разностей для первой производной. Проверьте ее точность при x 2 = 0.5, используя x 1 = 0.4 и x 3 = 0.6 с функцией
(c) Повторно дифференцируя формулу параболы, оцените вторую производную функции у(х) в x 2 . Это центральная вторая производная для равноотстоящих точек. Проверьте ее точность, как в части (b).
Эти формулы дифференцирования и интегрирования понадобятся в курсе физики.
Построить график системы уравнений в maple
Для построения двухмерных графиков служит функция plot . Она задается в виде plot ( f , h , v ) plot (, h , v , o )
Где f — визуализируемая функция, h -переменная с указанием области ее изменения, v — необязательная переменная с указателем области ее изменения, o – параметр или набор параметров, задающих стиль построения графика (толщину или цвет кривых, тип кривых, метки на них и т.д).

Рис.8.1 Построение графиков функции с явным указанием масштаба
С помощью параметра у можно задать масштаб графика по вертикали. Это иллюстрирует рис.8.1 ,который за одно показывает применение дополнительных праметров plot при построении двухмерных графиков .на рис.8.1 представлено контекстное меню правой клавиши мыши ,которое позволяет менят множество параметров графика.
Также важное значение имеет возможность построения на одном рисунке графиков нескольких функций. В этом случае(рис.8.2) для построения таких графиковв достаточно перечислить нужные функции и установить для них общие интервалы изменения. Для того чтобы изменить цвет или стиль линей достаточно воспользоваться контекстным меню правой кноки мыши(рис.8.2).

Рис.8.2 графики трех функций на одном рисунке
Построение трехмерных графиков
Трехмерными графиками называют графики, отображающие функции двух переменных z ( x , y ). Для построения графиков трехмерных поверхностей Maple имеет встроенную функцию Plot 3 d . Она может использоваться в следующих форматах:
В двух первых Plot 3 d применяется для построения обычного графика одной поверхности, в других формах- для построения графика с параметрическойформой задания поверхности. В приведенных формах записи f , g , h -функции;
Expr 1- выражение, отражающее зависимость от х и у; exprf , exprg , exprh — выражения, задающие поверхность параметрически ; s , t , a , b — числовые константы действительного типа; c и d — числовые константы или выражения действительного типа; x , y , s , t — имена независимых переменных; р- управляющие параметры.


Рис 8.3 простейшее построение поверхностей
На рис.8.3 показаны два примера простейших построений графиков поверхности. По умолчанию в Maple строиться поверхность с функциональной окраской и стилем style = SurfacewithLine ( верхний пример).На рис.8.3 также показано контекстное меню правой клавиши мыши, показывающие возможные команды, влияющие на вид трехмерных графиков. В частности, на стиль построения поверхности.
Сейчас остановимся на примере применительно к графике в полярной системе координат.
юНа рис 8.4 демонстрируется одна из таких фигур. Это семейство из 10 кардиоид разного размера построенных функцией polarplot .
Параметр Scalling = constrained обеспечивает правильное отображение фигур . Каждая кардиоида вписывается в огибающую ее окружность. Размер кардиоид задается значением а.

Рис.8.4 семейство кардиоид на одном графике
Построение анимации 2 D графиков
В maple возможна анимация двумерных графиков. Причем ,если в предыдущей версии его можно было сделать только в отдельном окне,то теперь анимация работает в самом документе и при этом пользователь может продолжить свою работу. Ниже мы видим пример анимации.

Animate ( F , x , t ). здесь F = F ( x , t ) – функиция двух переменных; x , t — диапозоны изменения x и t . При анимации происходит следующее: изменяются значения t и при фиксированных значениях t график F ( x , t ). Чтобы запустить анимацию достаточно использовать правую кнопку мыши. Как показано ниже.

Построение анимации 3 D графиков
Аналогичным образом может осуществляться и анимирование трехмерных фигур. Для
этого используется функция animate3d:
Здесь F — описание функции (или функций); x, y и t — диапазоны изменения пе-
ременных x, y и t. Для задания числа кадров N надо использовать необязательный
параметр 0 в виде frame=N.
Ниже покажем построение трехмерного анимационного графика. После задания
функции, график которой строится, необходимо выделить график и запустить проиг-
рыватель, как и для анимации двумерных графиков.

Чтобы запустить анимацию достаточно использовать правую кнопку мыши как показано ниже.

Функция PDEplot из пакета DEtools
Еще одна функция пакета DEtools — DEtools[PDEplot] — служит для построения графиков решения систем с квазилинейными дифференциальными уравнениями первого
порядка в частных производных.
Эта функция используется в следующем виде:
PDEplot(pdiffeq, van, icurve, srange, o)
PDEplot(pdiffeq, van, icurve, srange, xrange, yrange, urange, o).
Здесь помимо упоминавшихся ранее параметров используются следующие: pdiffeq
— квазилинейные дифференциальные уравнения первого порядка (PDE), van — независи-
мая переменная и icurve начальные условия для параметрических кривых трехмерной
поверхности. Помимо опций, указанных для функции DEplot, здесь могут использо-
ваться следующие опции:
basechar = TRUE,FALSE,ONLY — устанавливает показ базовых характеристик
basecolor, basecolor — устанавливает цвет базовых характеристик;
initcolor, initcolor — инициализация цветов;
numchar = integer — задает число отрезков кривых, которое не должно быть меньше 4
(по умолчанию 20);
numstep = [integerl,integerZ] — задает число шагов интегрирования (по умолчанию
На следующем примере продемонстрируем применение функции PDEplot. Этот
32II.3. Графическое представление решений дифференциальных уравнений
пример показывает, насколько необычным может быть решение даже простой системы
дифференциальных уравнений в частных производных.
Как построить график в maple по уравнению
Для построения графиков функции f(x) одной переменной (в интервале по оси Ох и в интервале по оси Оу ) используется команда plot(f(x), x=a..b, y=c..d, parameters), где parameters – параметры управления изображением. Если их не указывать, то будут использованы установки по умолчанию. Настройка изображения также может осуществляться с панели инструментов.
Основные параметры команды plot :
1) title=”text”, где text- заголовок рисунка (текст можно оставлять без кавычек, если он содержит только латинские буквы без пробелов).
2) coords=polar – установка полярных координат (по умолчанию установлены декартовы).
3) axes – установка типа координатных осей: axes=NORMAL – обычные оси; axes=BOXED – график в рамке со шкалой; axes=FRAME – оси с центром в левом нижнем углу рисунка; axes=NONE – без осей.
4) scaling – установка масштаба рисунка: scaling=CONSTRAINED – одинаковый масштаб по осям; scaling=UNCONSTRAINED – график масштабируется по размерам окна.
5) style=LINE(POINT) – вывод линиями (или точками).
6) numpoints=n – число вычисляемых точек графика (по умолчанию n=49 ).
7) сolor – установка цвета линии: английское название цвета, например, yellow – желтый и т.д.
8) xtickmarks=nx и ytickmarks=ny – число меток по оси Оx и оси Оy , соответственно.
9) thickness=n, где n=1,2,3… — толщина линии (по умолчанию n=1 ).
10) linestyle=n – тип линии: непрерывная, пунктирная и т.д. ( n=1 – непрерывная, установлено по умолчанию).
11) symbol=s – тип символа, которым помечают точки: BOX, CROSS, CIRCLE, POINT, DIAMOND .
12) font=[f,style,size] – установка типа шрифта для вывода текста: f задает название шрифтов: TIMES, COURIER, HELVETICA, SYMBOL; style задает стиль шрифта: BOLD, ITALIC, UNDERLINE; size – размер шрифта в pt.
13) labels=[tx,ty] – надписи по осям координат: tx – по оси Оx и ty – по оси Оy .
14) discont=true – указание для построения бесконечных разрывов.
С помощью команды plot можно строить помимо графиков функций y=f(x), заданной явно, также графики функций, заданных параметрически y=y(t), x=x(t) , если записать команду plot([y=y(t), x=x(t), t=a..b], parameters) .
Задание 1.1.
Построить график жирной линией в интервале от -4 p до 4 p . Наберите:
> plot(sin(x)/x, x=-4*Pi..4*Pi, labels=[x,y],
Построить график разрывной функции .
Замечание : на рисунке автоматически появляются вертикальные асимптоты.
Построить график параметрической кривой , , в рамке. Наберите:
> plot([sin(2*t),cos(3*t),t=0..2*Pi], axes=BOXED, color=blue);
Построить в полярных координатах график кардиоиды с названием. Наберите:
> plot(1+cos(x), x=0..2*Pi, title=»Cardioida», coords=polar, color=coral, thickness=2);
Построение графика функции, заданной неявно.
Функция задана неявно, если она задана уравнением . Для построения графика неявной функции используется команда implicitplot из графического пакета plots: implicitplot(F(x,y)=0, x=x1..x2, y=y1..y2).
Вывод текстовых комментариев на рисунок.
В пакете plots имеется команда textplot для вывода текстовых комментариев на рисунок: textplot([xo,yo,’text’], options), где xo, yo – координаты точки, с которой начинается вывод текста ’text’ .
Вывод нескольких графических объектов на один рисунок.
Часто бывает необходимо совместить на одном рисунке несколько графических объектов, полученных при помощи различных команд, например, добавить графику, нарисованному командой plot , текстовые надписи, полученные командой textplot . Для этого результат действия команды присваивается некоторой переменной:
При этом на экран вывод не производится. Для вывода графических изображений необходимо выполнить команду из пакета plots:
> with(plots): display([p,t], options) .
Построение двумерной области, заданной неравенствами.
Если необходимо построить двумерную область, заданную системой неравенств , то для этого можно использовать команду inequal из пакета plots . В команде inequals( c1,…,fn(x,y)>cn>, x=x1…x2, y=y1..y2, options) в фигурных скобках указывается система неравенств, определяющих область, затем размеры координатных осей и параметры. Параметры регулируют цвета открытых и закрытых границ, цвета внешней и внутренней областей, а также толщину линий границ:
optionsfeasible=(color=red) – установка цвета внутренней области;
optionsexcluded=(color=yellow) – установка цвета внешней области;
optionsopen(color=blue, thickness=2) – установка цвета и толщины линии открытой границы;
optionsclosed(color=green,thickness=3) – установка цвета и толщины линии закрытой границы.
Задание 1.2.
2. Построить на одном рисунке графики астроиды , () вписанной в эллипс . Выведите название линий Astroida и Ellips жирным шрифтом вместе с его уравнением курсивом. Для этого наберите следующие строки:
> el:=implicitplot(eq, x=-4..4, y=-2..2, scaling=CONSTRAINED,
color=blue, scaling=CONSTRAINED, thickness=2):
ITALIC, 10], align=RIGHT):
3. Построить область, ограниченную линиями: , , .
Исправляем ошибки: Нашли опечатку? Выделите ее мышкой и нажмите Ctrl+Enter
Типовые средства построения графиков
Основные возможности двумерной графики
Maple 7 реализует все мыслимые (и даже «немыслимые») варианты математических графиков. Строятся как графики простых функций в декартовой и полярной системах координат, так и графики, показывающие реалистические образы сложных, пересекающихся в пространстве фигур с их функциональной окраской. Возможны наглядные графические иллюстрации решений самых разнообразных уравнений, включая системы дифференциальных уравнений.
В само ядро Maple 7 встроено ограниченное число функций построения графиков. Это прежде всего функция для построения двумерных графиков plot и функция для построения трехмерных графиков plotSd . Они позволяют строить графики наиболее распространенных типов. Для построения специальных графиков (например, векторных полей градиентов, решения дифференциальных уравнений, построения фазовых портретов и т. д.) в пакеты системы Maple 7 включено большое число различных графических функций. Для их вызова необходимы соответствующие указания.
Вообще говоря, средства для построения графиков в большинстве языков программирования принято считать графическими процедурами, или операторами. Однако мы сохраним за ними наименование функций, в силу двух принципиально важных свойств:
О графические средства Maple V возвращают некоторые графические объекты, которые размещаются в окне документа — в строке вывода или в отдельном графическом объекте;
О эти объекты можно использовать в качестве значений переменных, то есть переменным можно присваивать значения графических объектов и выполнять над ними соответствующие операции (например, с помощью функции show выводить на экран несколько графиков).
Графические функции заданы таким образом, что обеспечивают построение типовых графиков без какой-либо особой подготовки. Для этого нужно лишь указать функцию, график которой строится, и пределы изменения независимых переменных. Однако с помощью дополнительных необязательных параметров можно существенно изменить вид графиков — например, настроить стиль и цвет линий, вывести титульную надпись, изменить вид координатных осей и т. д.
Основная функция построения двумерных графиков plot
В математике широко используются зависимости вида y(x) или у(х). Их графики строятся на плоскости в виде ряда точек y 1 (x 1 ) , обычно соединяемых отрезками прямых. Таким образом, используется кусочно-линейная интерполяция двумерных графиков. Если число точек графика достаточно велико (десятки или сотни), то приближенность построения не очень заметна.
Для построения двумерных графиков служит функция plot . Она задается в виде:
где f — визуализируемая функция (или функции), h — переменная с указанием области ее изменения, v — необязательная переменная с указанием области изменения, о — параметр или набор параметров, задающих стиль построения графика (толщину и цвет кривых, тип кривых, метки на них и т. д.).
Самыми простыми формами задания этой функции являются следующие:
Диапазон изменения независимой переменной х задается как xmin. xmax , где xmin и xmax — минимальное и максимальное значение х, .. (две точки) — составной символ, указывающий на изменение независимой переменной. Разумеется, имя х здесь дано условно — независимая переменная может иметь любое допустимое имя.
Помимо построения самой кривой у(х) или f(x) необходимо задать ряд других свойств графиков, например вывод координатных осей, тип и цвет линий графика и др. Это достигается применением параметров графика — специальных указаний для Maple. Графики обычно (хотя и не всегда) строятся сразу в достаточно приемлемом виде. Это достигается тем, что многие параметры задаются по умолчанию и пользователь, по крайней мере начинающий, может о них ничего не знать. Однако язык общения и программирования Maple 7 позволяет задавать управляющие параметры и в явном виде.
Для двумерного графика возможны следующие параметры:
В основном задание параметров особых трудностей не вызывает, за исключением задания титульной надписи с выбором шрифтов по умолчанию — в этом случае не всегда поддерживается вывод символов кириллицы (русского языка). Подбором подходящего шрифта эту проблему удается решить. Модификация графиков с помощью управляющих параметров подробно рассматривается ниже.
Специальный параметр adaptive задает работу специального адаптивного алгоритма для построения графиков наилучшего вида. При этом Maple автоматически учитывает кривизну изменения графика и увеличивает число отрезков прямых в тех частях графиков, где их ход заметно отличается от интерполирующей прямой. При задании adaptive=false адаптивный алгоритм построения графиков отключается, а при adaptive=true включается (значение по умолчанию).
Задание координатных систем двумерных графиков
В версии Maple 7 параметр coords задает 15 типов координатных систем для двумерных графиков. По умолчанию используется прямоугольная (декартова) система координат ( coords=cartesian). При использовании других координатных систем координаты точек для них(и, v) преобразуются в координаты (х, у) как (n, v) —> (х, у) . Ниже приведены наименования систем координат (значений параметра coords ) и соответствующие формулы преобразования.
x = sinh(v)/(cosh(v)-cos(u)) у — sin(u)/(cosh(v)-cos(u))
Maple: Исследование функций и построение графиков

Важным разделом математики является исследование аналитических функций. Оно обычно заключается в определении координат особых точек функции и ее значений в этих точках, а также в выяснении особенностей функции, таких как наличие точек разрыва, асимптот, точек перегибов, разрывов и т. д.
Maple 16, как и более ранние версии этого пакета, позволяют студенту полностью исследовать функции и строить их графики.
С помощью функции fsolve легко находятся значения независимой переменной x функций вида f(x), при которых f(x)=0 (корни этого уравнения). При этом данная функция позволяет (в отличие от функции solve) изолировать корни функции f(x) указанием примерного интервала их существования. Ряд функций служит для вычисления экстремумов, максимумов и минимумов функций, а также для определения их непрерывности.
Для исследования функций на непрерывность Maple 16 имеет функцию iscont, записываемую в ряде форм: iscont(expr, x=a..b), iscont(expr, x=a..b, ‘closed’) и iscont( expr, x=a.. b, ‘open’).
Функции, не имеющие непрерывности, доставляют много хлопот. В Maple 16 функция discont(f, х) позволяет определить точки, в которых нарушается непрерывность функции f(x). Она вычисляет все точки в пределах изменениях от $$-\infty$$ до $$\infty.$$ Результаты вычислений могут содержать особые экстра переменные с именами вида _Zn- и _NNn-. В частности, они позволяют оценить периодические нарушения непрерывности функций.
Многие операции, такие как интегрирование и дифференцирование, чувствительны к особенностям функций, в частности к их разрывам и особым точкам. Функция singular(ехрr, vars) позволяет найти особые (сингулярные) точки выражения ехрг, в которых она испытывает разрывы. Дополнительно в числе параметров может указываться необязательный список переменных.
Функция extrema позволяет найти экстремумы выражения ехрr (как максимумы, так и минимумы) при ограничениях constraints и переменных vars, по которым ищется экстремум: extrema(expr, constraints), extrema(expr, constraints, vars) и extrema(expr, constraints, vars, ‘s’).
Ограничения constraints и переменные vars могут задаваться одиночными объектами или списками ряда ограничений и переменных. Найденные координаты точки экстремума присваиваются переменной ‘s’. При отсутствии ограничений в виде равенств или неравенств вместо них записывается пустой список <>.
Функция extrema возвращает как значения экстремумов, так и значения аргументов, при которых экстремумы наблюдаются.
Часто нужно найти минимум или максимум заданной функции. Для поиска минимумов и максимумов выражений (функций) ехрr служат функции стандартной библиотеки: minimize(expr, opt1, opt2, …, optn) и maximize(expr, opt1, opt2, …, optn).
Эти функции могут разыскивать максимумы и минимумы для функций как одной, так и нескольких переменных. С помощью опций optl, opt2, … , optn можно указывать дополнительные данные для поиска.
Для вычисления пределов функции f в точке x=a используются следующие функции: limit(f, x=a, dir) и Limit(f, x=a, dir).
Здесь f — алгебраическое выражение, х — имя переменной, dir — параметр, указывающий на направление поиска предела (left — слева, right — справа, real — в области вещественных значений, complex — в области комплексных значений). Значением а может быть бесконечность (как положительная, так и отрицательная).
Для нахождения производной применяют дифференциальный оператор, который можно записывать в следующих формах: D(f) или D[i](f), где параметр f — выражение или имя функции, i — положительное целое число, выражение или последовательность. Этот оператор позволяет сократить запись, т.е. D(f)=unapply(diff(f(x), x), x) а в форме D(f)(x) = diff(f(x), x). Для нахождения n–й производной используют ([email protected]@n)(f).
Для построения двумерных графиков служит функция plot. Она задается в виде: plot(f, h, v) и plot(f, h, v,…) ,где f — визуализируемая функция (или функции), h — переменная с указанием области ее изменения по горизонтали, v — необязательная переменная с указанием области изменения функции по вертикали, далее может следовать параметр или набор параметров, задающих стиль построения графика (толщину и цвет кривых, тип кривых, метки на них и т.д.). Обычно записывают plot(f(x), x=a..b). Диапазон изменения независимой переменной x задается как a..b, где a и b — минимальное и максимальное значение x, .. (две точки) — составной символ, указывающий на изменение независимой переменной. Разумеется, имя х здесь дано условно — независимая переменная может иметь любое допустимое имя.
Помимо построения самой кривой f(x) необходимо задать ряд других свойств графиков, например вывод координатных осей, тип и цвет линий графика и др. Это достигается применением параметров графика — специальных указаний для Maple. Графики обычно (хотя и не всегда) строятся сразу в достаточно приемлемом виде. Это достигается тем, что многие параметры задаются по умолчанию и пользователь, по крайней мере начинающий, может о них ничего не знать. Однако язык Maple 16 позволяет задавать управляющие параметры и в явном виде.
Пример
Исследовать функцию и построить график
Исследуем функцию средствами Maple 16:
Построим график функции при помощи Maple 16:
Как строить графики в maple
Система Maple поддерживает как двумерную, так и трехмерную графику (Рисунок 2.21). Таким образом, можно представить явные, неявные и параметрические функции, а также многомерные функции и просто наборы данных в графическом виде и визуально искать закономерности.
Графические средства Maple позволяют строить двумерные графики сразу нескольких функций, создавать графики конформных преобразований функций с комплексными числами и строить графики функций в логарифмической, двойной логарифмической, параметрической, фазовой, полярной и контурной форме. Можно графически представлять неравенства, неявно заданные функции, решения дифференциальных уравнений и корневые годографы.
Maple может строить поверхности и кривые в трехмерном представлении, включая поверхности, заданные явной и параметрической функциями, а также решениями дифференциальных уравнений. При этом представлять можно не только в статическом виде, но и в виде двух- или трехмерной анимации. Эту особенность системы можно использовать для отображения процессов, протекающих в режиме реального времени.

Рисунок 2.21 – Применение трёхмерной графики в Maple
Отметим, что для подготовки результата и документирования исследований в системе имеются все возможности выбора шрифтов для названий, надписей и другой текстовой информации на графиках. При этом можно варьировать не только шрифты, но и яркость, цвет и масштаб графика.
Глава 8
Эта глава книги посвящена уникальным возможностям системы Maple 9.5/10 в визуализации самых разнообразных вычислений. Рассмотрены возможности и опции двумерной и трехмерной графики, в том числе использующей функциональную окраску. Особое внимание уделено визуализации математических и физических понятий и реализации различных возможностей машинной графики.
8.1. Двумерная графика
8.1.1. Введение в двумерную графику
Средства для построения графиков в большинстве языков программирования принято считать графическими процедурами или операторами. Однако в СКМ Maple 9.5/10 мы сохраним за ними наименование функций, в силу двух принципиально важных свойств:
• графические средства Maple возвращают некоторые графические объекты, которые размешаются в окне документа — в строке вывода или в отдельном графическом объекте;
• эти объекты можно использовать в качестве значений переменных, то есть переменным можно присваивать значения графических объектов и выполнять над ними соответствующие операции (например, с помощью функции snow выводить на экран несколько графиков).
Графические функции заданы таким образом, что обеспечивают построение типовых графиков без какой-либо особой подготовки. Для этого нужно лишь указать функцию, график которой строится, и пределы изменения независимых переменных. Однако с помощью дополнительных необязательных параметров (опций) можно существенно изменить вид графиков — например, настроить стиль и цвет линий, вывести титульную надпись, изменить вид координатных осей и т.д.
В Maple введены функции быстрого построения графиков. Так, функция smartplot(f) предназначена для создания двумерных графиков. Параметр f может задаваться в виде одиночного выражения или набора выражений, разделяемых запятыми. Задание управляющих параметров в этих графических функциях не предусмотрено; таким образом, их можно считать первичными или черновыми. Для функции построения двумерного графика по умолчанию задан диапазон изменения аргумента -8..8.
8.1.2. Функция plot для построения двумерных графиков
Для построения двумерных графиков служит функция plot. Она задается в виде
где f — визуализируемая функция (или функции), h — переменная с указанием области ее изменения, v — необязательная переменная с указанием области изменения, о — параметр или набор параметров, задающих стиль построения графика (толщину и цвет кривых, тип кривых, метки на них и т.д.).
Самыми простыми формами задания этой функции являются следующие:
• plot(f,xmin..xmax) — построение графика функции f, заданной только своим именем в интервале изменения х от xmin до xmax;
• plot(f(x),x=xmin..xmax) — построение графика функции f(x) в интервале изменения х от xmin до xmax.
Выше приводилось множество примеров применения этой функции. Для нее возможны следующие дополнительные параметры:
• adaptive — включение адаптивного алгоритма построения графиков (детали см. ниже);
• axes — вывод различных типов координат (axes=NORMAL — обычные оси, выводятся по умолчанию, axes=BOXES — график заключается в рамку с осями-шкалами, axes=FRAME — оси в виде перекрещенных линий, axes=NONE — оси не выводятся);
• axesfont — задание шрифтов для подписи делений на координатных осях (см. также параметр font);
• color — задает цвет кривых (см. далее);
• coords — задание типа координатной системы (см. далее);
• discont — задает построение непрерывного графика (значения true или false);
• filled — при filled=true задает окраску цветом, заданным параметром color, для области, ограниченной построенной линией и горизонтальной координатной осью х;
• font — задание шрифта в виде [семейство, стиль, размер];
• labels — задание надписей по координатным осям в виде [X,Y], где Х и Y -надписи по осям х и у графика;
• labeldirections — задает направление надписей по осям [X,Y], где X и Y может иметь строковые значения HORISONTAL (горизонтально) и VERTICAL (вертикально);
• labelfont — задает тип шрифта метод (см. font);
• legend — задает вывод легенды (обозначения кривых);
• linestyle — задание стиля линий (1 — сплошная, 2 — точками, 3 — пунктиром и 4 — штрих-пунктиром);
• numpoints — задает минимальное количество точек на графике (по умолчанию numpoints=49);
• resolutions — задает горизонтальное разрешение устройства вывода (по умолчанию resolutions=200, параметр используется при отключенном адаптивном методе построения графиков);
• sample — задает список параметров для предварительного представления кривых;
• scaling — задает масштаб графика: CONSTRAINED (сжатый) или UNCONSTRAINED (несжатый — по умолчанию);
• size — задает размер шрифта в пунктах;
• style — задает стиль построения графика (POINT — точечный, LINE — линиями);
• symbol — задает вид символа для точек графика (возможны значения BOX — прямоугольник, CROSS — крест, CIRCLE — окружность, POINT — точка, DIAMOND — ромб);
• symbolsize — установка размеров символов для точек графика (в пунктах, по умолчанию 10);
• title — задает построение заголовка графика (title=»string», где string — строка),
• titlefont — определяет шрифт для заголовка (см. font);
• thickness — определяет толщину линий графиков (0, 1, 2, 3, значение по умолчанию — 0);
• view=[A, В] — определяет максимальные и минимальные координаты, в пределах которых график будет отображаться на экране, А=[xmin..xmax], B=[ymin..ymax] (по умолчанию отображается вся кривая);
• xtickmarks — задает минимальное число отметок по оси х;
• ytickmarks — задает минимальное число отметок по оси у.
Параметр adaptive задает работу специального адаптивного алгоритма для построения графиков наилучшего вида. При этом Maple автоматически учитывает кривизну изменения графика и увеличивает число отрезков прямых в тех частях графиков, где их ход заметно отличается от интерполирующей прямой. При задании adaptive=false адаптивный алгоритм построения графиков отключается, а при adaptive=true включается (значение по умолчанию).
С помощью параметра у = ymin..ymax можно задать масштаб графика по вертикали.
Это иллюстрирует рис. 8.1, который заодно показывает применение дополнительных параметров функции plot при построении двумерных графиков.

Рис. 8.1. Построение графиков функции с явным указанием масштаба
Изредка встречаются графики функций f(x), которые надо построить при изменении значения x от нуля до бесконечности или даже от минус бесконечности до плюс бесконечности. Бесконечность в таких случаях задается как особая константа infinity. В этом случае переменной x, устремляющейся в бесконечность, откладывается значение arctan(x). Рисунок 8.1 (второй пример) иллюстрирует сказанное.
В версии Maple 9.5 параметр coords задает 15 типов координатных систем для двумерных графиков. По умолчанию используется прямоугольная (декартова) система координат (coords=cartesian). При использовании других координатных систем координаты точек для них (u, v) преобразуются в координаты (х, y) как (u,v)→(x,y). Формулы преобразования координат можно найти в справке.
8.1.3. Управление стилем и цветом линий двумерных графиков
Maple 9 5 позволяет воспроизводить на одном графике множество кривых с разным стилем, который задается параметром style:
• POINT или point — график выводится по точкам;
• LINE или line — график выводится линией.
Если задано построение графика точками, то параметр symbol позволяет представить точки в виде различных символов, например прямоугольников, крестов, окружностей или ромбов. Другой параметр — color — позволяет использовать обширный набор цветов линий графиков:
Различные цветовые оттенки получаются использованием RGB-комбинаций базовых цветов: red — красный, gray — зеленый, blue — синий. Приведем перевод ряда других составных цветов: black — черный, white — белый, khaki — цвет «хаки», gold — золотистый, orange — оранжевый, violet — фиолетовый, yellow — желтый и т.д. Естественно, что черно-белой печати рисунков вместо цветов получаются градации серого цвета.
8.1.4. Графики функций с разрывами
Некоторые функции, например tan(x), имеют при определенных значениях х разрывы, причем случается, что значения функции в этом месте устремляются в бесконечность. Функция tan(x), к примеру, в точках разрывов устремляется к +∞ и -∞. Построение графиков таких функций нередко дает плохо предсказуемые результаты. Графический процессор Maple не всегда в состоянии определить оптимальный диапазон по оси ординат, а график функции выглядит весьма непредставительно, если не сказать безобразно (рис. 8.2, первый пример)

Рис. 8 2 Построение графиков функций с разрывами
Среди аргументов функции plot есть специальный параметр discont. Если задать его значение равным true, то качество графиков существенно улучшается, см. второй пример на рис. 8.2. Улучшение достигается разбиением графика на несколько участков, на которых функция непрерывна, и более тщательным контролем за отображаемым диапазоном. При discont=false данный параметр отключен и строятся обычные графики.
Следует отметить, что вид графика можно улучшить, просто задав диапазон по оси у (например, введя в параметры функции запись у=-8..10). При этом в точках разрыва могут появится вертикальные линии. Впрочем, иногда это бывает полезно.
8.1.5. Графики нескольких функций на одном рисунке
Важное значение имеет возможность построения на одном рисунке графиков нескольких функций. В простейшем случае (рис. 8.3, первый пример) для построения таких графиков достаточно перечислить нужные функции и установить для них общие интервалы изменения.

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

Рис. 8.4. Построение графиков функций, заданных отдельными точками
Во втором примере (рис. 8.4, снизу) показано построение только точек заданной функциональной зависимости. Они представлены маленькими кружками. Читателю предлагается самостоятельно совместить оба подхода к построению графиков по точкам и создать график в виде отрезков прямых, соединяющих заданные точки функции, представленные кружками или крестиками.
8.2. Специальные типы двумерных графиков
8.2.1. Графики функций, заданных своими именами
Способность Maple к упрощению работы пользователя просто поразительна — жаль только, что многие возможности этого становятся ясными после основательного изучения программы. Применительно к графикам одной из таких возможностей является построение графиков функций, заданных только их функциональными именами — даже без указания параметров в круглых скобках. Такую возможность наглядно демонстрирует рис. 8.5.

Рис. 8.5 Построение графиков четырех функций, заданных только их именами
Этот пример показывает, что возможно построение графиков функций даже без указания в команде plot диапазонов. При этом диапазон по горизонтальной оси устанавливается равным по умолчанию -8..10, а по вертикальной оси выбирается автоматически в соответствии с экстремальными значениями функций в указанном диапазоне изменения независимой переменной (условно x).
8.2.2. Графики функций, заданных процедурами
Некоторые виды функций, например, кусочные, удобно задавать процедурами. Построение графиков функций, заданных процедурами, не вызывает никаких трудностей и иллюстрируется рис. 8.6.

Рис. 8.6. Построение графика функций, заданных процедурами
Здесь, пожалуй, полезно обратить внимание на то, что когда в функции plot указывается имя процедуры без списка ее параметров.
8.2.3. Графики функций, заданных функциональными операторами
Еще одна «экзотическая» возможность функции plot — построение графиков функций, заданных функциональными операторами. Она иллюстрируется рис. 8.7.

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

Рис. 8.8. Построение функций, заданных параметрически
Если функции f1(t) и f2(t) содержат периодические функции (например, тригонометрические), то для получения замкнутых фигур диапазон изменения переменной t обычно задается равным 0..2*Pi или -Pi..Pi. К примеру, если задать в качестве функций f1(t) и f2(t) функции sin(t) и cos(t), то будет получен график окружности. Рис. 8.8 показывает другие, чуть менее тривиальные примеры построения графиков такого рода.
Задание диапазонов для изменений h и v, а также параметров p не обязательно. Но, как и ранее, они позволяют получить вид графика, удовлетворяющий всем требованиям пользователя.
8.2.5. Графики функций в полярной системе координат
Графики в полярной системе координат представляют собой линии, которые описывает конец радиус-вектора r(t) при изменении угла t в определенных пределах — от tmin до tmax. Построение таких графиков также производится функцией plot, которая для этого записывается в следующем виде:
Здесь существенным моментом является задание полярной системы координат параметр coords=polar. Рис. 8.9 дает примеры построения графиков функций в полярной системе координат.

Рис. 8.9. Построение графиков функций в полярной системе координат
Графики параметрических функций и функций в полярной системе координат отличаются огромным разнообразием. Снежинки и узоры мороза на стеклах, некоторые виды кристаллов и многие иные физические объекты подчиняются математическим закономерностям, положенным в основу построения таких графиков.
8.3. Построение трехмерных графиков
8.3.1. Функция plot3d
Трехмерными графиками называют графики, отображающие функции двух переменных z(x, y). Каждая точка z, таких графиков является высотой (аппликатой) точки, лежащей в плоскости XY и представленной координатами (хi, уi). Поскольку экран монитора компьютера в первом приближении является плоским, то на деле трехмерные графики представляют собой специальные проекции объемных объектов.
Для построения графиков трехмерных поверхностей Maple имеет встроенную в ядро функцию plot3d. Она может использоваться в следующих форматах:
В двух первых формах plot3d применяется для построения обычного графика одной поверхности, в других формах — для построения графика с параметрической формой задания поверхности. В приведенных формах записи f, g и h — функции; expr1 — выражение, отражающее зависимость от х и у; exprf, exprg и exprh — выражения, задающие поверхность параметрически; s, t, а и b — числовые константы действительного типа; c и d — числовые константы или выражения действительного типа; х, у, s и t — имена независимых переменных; р — управляющие параметры.
8.3.2. Параметры функции plot3d
С помощью параметров р можно в широких пределах управлять видом трехмерных графиков, выводя или убирая линии каркасной сетки, вводя функциональную окраску поверхностей, меняя угол их обзора и параметры освещения, изменяя вид координатных осей и т.д. Следующие параметры функции plot3d задаются аналогично их заданию для функции plot:
Однако функция plot3d имеет ряд дополнительных специфических параметров
• ambientlight=[r,g,b] — задает интенсивность красного (r), зеленого (g) и синего (b) цветов подсветки в относительных единицах (от 0 до 1);
• axes=f — задает вид координатных осей (BOXED, NORMAL, FRAME и NONE, по умолчанию NONE);
• grid=[m,n] — задает число линий каркаса поверхности;
• gridstyle=x — задает стиль линий каркаса х (‘rectangular’ или ‘triangular’);
• labels=[x,y,z] — задает надписи по осям (х, у и z — строки, по умолчанию пустые);
• light=[phi,theta,r,g,b] — задает углы, под которыми расположен источник освещения поверхности, и интенсивности составляющих цвета (r, g и b);
• lightmodel=x — задает схему освещения (соответственно ‘none’, ‘light1’, ‘light2’, ‘light3’ и ‘light4’);
• orientation=[theta,phi] — задает углы ориентации поверхности (по умолчанию 45°);
• projections — задает перспективу при обзоре поверхности (r может быть числом 0 или 1, задающим включение или выключение перспективы, а также одной из строк ‘FISHEYE’, ‘NORMAL’ или ‘ORTHOGONAL’ (это соответствует численным значениям r, равным 0, 0,5, или 1, причем по умолчанию задано projection=ORTHOGONAL);
• shading=s — задает направления, по которым меняется цвет функциональной окраски (значения s могут быть XYZ, XY, Z, ZGREYSCALE, ZHUE, NONE);
• tickmarks=[l,n,m] — задает характер маркировки по осям х, у и z (числа l, n и m имеют значения не менее 1);
• view=zmin..zmax или view=[xmin..xmax, ymin, ymax, zmin..zmax] — задает минимальные и максимальные координаты поверхности для ее видимых участков.
Для трехмерных графиков возможно задание множества типов координатных систем с помощью параметра coords=Тип_координатной_системы. Поскольку на экране монитора поверхность отображается только в прямоугольной системе координат и характеризуется координатами х, у и z, то для представления поверхности, заданной в иной системе координат с координатами u, v и w, используются известные формулы для преобразования (u, v, w) -> (х, у, z). Их можно найти в справке. Вид графиков трехмерных поверхностей очень сильно различается в разных координатных системах. По умолчанию трехмерные графики строятся в прямоугольной системе координат — rectangular.
8.3.3. Построение поверхностей с разными стилями
На рис. 8.10 показано два примера простейших построений графиков трехмерной поверхности. По умолчанию в Maple строится поверхность с функциональной окраской и стилем style=patch (верхний рисунок) Функциональная окраска делает рисунки более информативными, но, увы, на рисунках в книге она превращается в окраску оттенками серого цвета. На рис. 8.10 показано также контекстное меню правой клавиши мыши, показывающее возможное команды, влияющие на вид трехмерных графиков.

Рис. 8.10 Примеры простейшего построения трехмерных поверхностей
Параметр style=hidden строит каркасную поверхность с функциональной окраской тонких линий каркаса и удалением невидимых линий. Чтобы график выглядел более четким, построение во втором примере задано линиями черного цвета с помощью параметра color=black (см. нижний рисунок на рис. 8.10).
Помимо значения patch для построения трехмерных поверхностей можно задавать ряд других стилей: point — точками, contour — контурными линиями, line — линиями, hidden — линиями каркаса с удалением невидимых линий, wireframe — линиями каркаса со всеми видимыми линиями, patchnogrid — с раскраской, но без линий каркаса, patchcontour — раскраска с линиями равного уровня.
Цвет трехмерного графика может задаваться (как и для двумерного) параметром color=c, где с — цвет (оттенки цвета перечислялись ранее). Возможно еще два алгоритма задания цвета:
HUE — алгоритм с заданием цвета в виде color=f(x,y);
RGB — алгоритм с заданием цвета в виде color=[exprr,exprg,exprb], где выражения exprr, exprg и exprb задают относительную значимость (от 0 до 1) основных цветов (красного — exprr, зеленого — exprg и синего — exprb)
Удачный выбор углов обзора фигуры и применение функциональной окраски позволяют придать построениям трехмерных фигур весьма эффектный и реалистический вид.
8.3.4. Построение фигур в различных системах координат
Как отмечалось, вид графика трехмерной поверхности существенно зависит от выбора координатной системы. Рис. 8.11 показывает пример построения нелинейного конуса в цилиндрической системе координат. Для задания такой системы координат используется параметр coords=cylindrical.

Рис. 8.11. Нелинейная цилиндрическая поверхность
При построении этой фигуры также использована цветная функциональная окраска. Кроме того, этот пример иллюстрирует вывод над рисунком титульной надписи (кстати, сделанной на русском языке).
Приведем еще один пример построения трехмерной поверхности — на этот раз в сферической системе координат (рис. 8.12). Здесь функция задана вообще элементарно просто — в виде числа 1. Но, поскольку выбрана сферическая система координат, в результате строится поверхность шара единичного радиуса. Обратите внимание на возможность построения только части сферы за счет ограничения изменения переменных координатной системы.

Рис. 8.12. Построение шарообразной поверхности в сферическом системе координат
Полезно просмотреть построение графиков в различных системах координат. При этом можно получить самые необычные фигуры.
8.3.5. Графики параметрически заданных поверхностей
На рис. 8.13 показано построение простого тороида — цилиндра, свернутого в кольцо. Здесь также использован прием удаления части фигуры, что делает ее представление более наглядным и красочным. Кроме того, введены параметры, задающие функциональную окраску.
Рисунок 8.13 дает полное и наглядное представление об этой фигуре — причем не только снаружи, но и изнутри.

Рис. 8.13. Тор с функциональной окраской поверхности
8.3.6. Масштабирование трехмерных фигур и изменение углов их обзора
Полезно обратить внимание на параметр масштаба scaling=constrained, явно введенную в документ рис. 8.13. Ее можно было бы и не вводить, поскольку этот параметр изначально задается по умолчанию. Она выравнивает масштабы представления фигуры по осям координат, обычно используется по умолчанию и позволяет снизить до минимума геометрические искажения фигур — тор, например, при этом виден как круглая труба, свернутая в кольцо. У таких графиков есть специфический недостаток — они занимают малую часть окна вывода.
Задание параметра scaling=unconstrained означает отказ от равного масштаба по осям. График при этом увеличивается в размерах, но становятся заметны его искажения по осям координат. В итоге он тор превращается в толстую сплющенную трубу с эллиптическим сечением (рис. 8.14).

Рис. 8.14. Тор, построенный с применением значения параметра scaling=unconstrained
Весьма важным является учет углов, под которыми наблюдается трехмерная поверхность или объект. К примеру, построение рис. 8.14 неудачно в том плане, что оно не показывает наличия у тора дырки. Простейший и очень удобный способ изменить угол обзора заключается во вращении фигуры на рисунке мышью при нажатой левой кнопке. При этом можно повернуть фигуру так, что ее геометрические особенности будут отчетливо видны. Попробуйте проделать это.
В Maple есть способ явно задать углы обзора с помощью параметра orientation=[theta, phi], где theta и phi — углы, через которые задаются параметрические уравнения трехмерной фигуры или поверхности. Рисунок 8.15 дает пример такого задания фигуры, которую можно назвать «квадратным» тором.

Рис. 8.15. «Квадратный» тор, представленный под заданными углами обзора
Обратите внимание, что значения заданных углов обзора повторяются в полях углов на контекстной панели инструментов. Разумеется, последние будут меняться, если начать вращать фигуру на рисунке мышью.
8.3.7. Занимательные фигуры — трехмерные графики
Параметрическое задание уравнений поверхности открывает почти неисчерпаемые возможности построения занимательных и сложных фигур самого различного вида. Приведем пару построений такого рода.
На рис. 8.16 показан тор, сечение которого имеет вид сплюснутой шестиконечной звезды. Вырез в фигуре дает прекрасный обзор ее внутренней поверхности, а цветная функциональная окраска и линии сетки, построенные с применением алгоритма удаления невидимых линий, дают весьма реалистичный вид фигуры. Замените параметр scaling=unconstrained на scaling=constrained, и вы получите тор с неискаженным сечением.

Рис. 8 16. Тор с сечением в виде шестиконечной звезды
На рис. 8.17 показан еще один тор. На этот раз он круглого сечения, но сверху к снизу имеет вид пятиконечной звезды.

Рис. 8.17. Тор круглого сечения в виде пятиконечной звезды
Быстрое (не в смысле ускорения самого построения, а лишь в смысле более быстрою задания построения графиков) построение трехмерных графиков обеспечивает функция smartplot3d.
8.3.8. Построение ряда трехмерных фигур на одном графике
Функция plot3d позволяет строить одновременно несколько фигур, пересекающихся в пространстве. Для этого достаточно вместо описания одной поверхности задать список описаний ряда поверхностей. При этом функция plot3d обладает уникальной возможностью — автоматически вычисляет точки пересечения фигур и показывает только видимые части поверхностей. Это создает изображения, выглядящие вполне естественно. Пример такого построения для двух функций показан на рис. 8.18.

Рис. 8.18. Пример построения двух трехмерных фигур, пересекающихся в пространстве
8.4. Работа с графическими структурами
8.4.1. Работа с графическими структурами двумерной графики
Функции PLOT и PLOT3D (с именами, набранными большими буквами) позволяют создавать графические структуры, содержащие ряд графических объектов s1, s2, s3 и т.д. Каждый объект может представлять собой точку или фигуру, полигон, надпись и т.д., позиционированную с высокой точностью в заданной системе координат. Координатные оси также относятся к графическим объектам. Важно отметить, что функции PLOT и PLOT3D одновременно являются данными, описывающими графики. Их можно записывать в виде файлов и (после открытия файлов) представлять в виде графиков. Особые свойства этих функций подчеркиваются их записью прописными буквами.
Графическая структура двумерной графики задается в виде
где s1, s2, s3 … — графические объекты (или элементарные структуры — примитивы), о — общие для структуры параметры).
Основными объектами являются:
• POINTS([x1,y1],[x2,y2],…[xn,yn]) — построение точек, заданных их координатами;
• CURVES([[x11,y11],…[x1n,y1n]], [[x21,y21],…[x2n,y2n]],… [[xm1,ym1],…[xmn,ymn]]) — построение кривых по точкам;
• POLYGONS([[x11,у11],…[х1n,y1n]], [[х21,у21],…[х2n,у2n]],…[[xm1,ym1],…[xmn,ymn]]) — построение замкнутой области-полигона (многоугольника, так как последняя точка должна совпадать с первой);
• ТЕХТ([х,у],`string`,horizontal,vertical) — вывод текстовой надписи `string`, позиционированной в точке с координатами [х,у], с горизонтальной или вертикальной ориентацией. Параметр horizontal может иметь значения ALIGNLEFT или ALIGNRIGHT, указывающие, в какую сторону (влево или вправо) идет надпись. Аналогично, параметр vertical может иметь значения ALIGNABOVE или ALIGNBELOW, указывающие в каком направлении (вверх или вниз) идет надпись.
При задании графических объектов (структур) s1, s2, s3 и т.д. можно использовать описанные выше параметры и параметры, например, для задания стиля построения — STYLE (POINT, LINE, PATCH, PATCHNOGRID); толщины линий — THICKNESS (кроме координатных осей); символа, которым строятся точки кривых — SYMBOL (BOX, CROSS, CIRCLE, POINT, DIAMOND и DEFAULT); стиля линий — LINESTYLE; цвета — COLOR (например, COLOR(HUE,0) для закраски непрерывной области), типа шрифта — FONT; вывода титульной надписи — TITLE(string); имени объекта — NAME(string); стиля координатных осей — AXESSTYLE (BOX, FRAME, NORMAL, NONE или DEFAULT) и т.д.
Следует отметить, что параметры в графических структурах задаются несколько иначе — с помощью круглых скобок. Например, для задания шрифта TIMES ROMAN с размером символов 16 пунктов надо записать FONT(TIMES, ROMAN, 16), для задания стиля координатных осей в виде прямоугольника — AXES-STYLE (BOX) и т.д.
На рис. 8.19 показан пример графических построений при использовании основных структур двумерной графики.

Рис. 8.19. Пример использования двумерных структур
Как видно из этого примера, графическая двумерная структура позволяет задавать практически любые двумерные графики и текстовые надписи в пределах одного рисунка.
8.4.2. Работа с графическими структурами трехмерной графики
Графические структуры трехмерной графики строятся функцией PLOT3D:
В качестве элементарных графических структур можно использовать уже описанные выше объекты POINTS, CURVES, POLYGONS и TEXT — разумеется, с добавлением в списки параметров третьей координаты. Пример такого построения дан на рис. 8.20.

Рис 8.20 Пример создания структуры трехмерной графики
Кроме того, могут использоваться некоторые специальные трехмерные структуры. Одна из них — структура GRID:
GRID(a..b,c..d,listlist) — задание поверхности над участком координатной плоскости, ограниченной отрезками [a, b] и [с, d], по данным, заданным переменной-списком listlist:=[[z11,…z1n], [z21,…z2n],…[zm1…zmn]] с размерностью n×m. Заметим, что эта переменная задает координату z для равноотстоящих точек поверхности.
На рис. 8.21 показан пример создания структуры трехмерной графики на базе GRID. Изображение представляет собой линии, соединяющие заданные точки.

Рис. 8.21. Пример задания графической структуры типа GRID
Еще один тип трехмерной графической структуры — это MESH:
MESH(listlist) — задание трехмерной поверхности по данным списочной переменной listlist, содержащей полные координаты всех точек поверхности (возможно задание последней при неравномерной сетке).
Обычная форма задания этой структуры следующая:
Пример задания такой структуры представлен на рис. 8.22.

Рис. 8.22. Пример задания графической структуры типа MESH
Описанные структуры могут использоваться и в программных модулях. Много таких примеров описано в книгах, поставляемых с системой Maple.
8.5. Применение графики пакета plots
8.5.1. Пакет plots и его возможности
Пакет plots содержит почти полсотни графических функций, существенно расширяющих возможности построения двумерных и трехмерных графиков в Maple:
[animate, animate3d, animatecurve, arrow, changecoords, complexplot, complexplot3d, conformal, conformal3d, contourplot, contourplot3d, coordplot, coordplot3d, cylinderplot, densityplot, display, display3d, fieldplot, fieldplot3d, gradplot, gradplot3d, graphplot3d, implicitplot, implicitplot3d, inequal, interactive, listcontplot, listcontplot3d, listdensityplot, listplot, listplot3d, loglogplot, logplot, matrixplot, odeplot, pareto, plotcompare, pointplot, pointplot3d, polarplot, polygonplot, polygonplot3d, polyhedra_supported, polyhedraplot, replot, rootlocus, semilogplot, setoptions, setoptions3d, spacecurve, sparsematrixplot, sphereplot, surfdata, textplot, textplot3d, tubeplot]
Ввиду важности этого пакета отметим назначение всех его функций:
• animate — создает анимацию двумерных графиков функций;
• animate3d — создает анимацию трехмерных графиков функций;
• animatecurve — создает анимацию кривых;
• changecoords — смена системы координат;
• complexplot — построение двумерного графика на комплексной плоскости;
• complexplot3d — построение трехмерного графика в комплексном пространстве;
• conformal — конформный график комплексной функции;
• contourplot — построение контурного графика,
• contourplot3d — построение трехмерного контурного графика;
• coordplot — построение координатной системы двумерных графиков;
• coordplot3d — построение координатной системы трехмерных графиков;
• cylinderplot — построение графика поверхности в цилиндрических координатах;
• densityplot — построение двумерного графика плотности;
• display — построение графика для списка графических объектов;
• display3d — построение графика для списка трехмерных графических объектов;
• fieldplot — построение графика двумерного векторного поля;
• fieldplot3d — построение графика трехмерного векторного поля;
• gradplot — построение графика двумерного векторного поля градиента;
• gradplot3d — построение графика трехмерного векторного поля градиента;
• implicitplot — построение двумерного графика неявной функции;
• implicitplot3d — построение трехмерного графика неявной функции;
• inequal — построение графика решения системы неравенств;
• listcontplot — построение двумерного контурного графика для сетки значений;
• listcontplot3d — построение трехмерного контурного графика для сетки значений;
• listdensityplot — построение двумерного графика плотности для сетки значений;
• listplot — построение двумерного графика для списка значений:
• listplot3d — построение трехмерного графика для списка значений;
• loglogplot — построение логарифмического двумерного графика функции;
• logplot — построение полулогарифмического двумерного графика функции;
• matrixplot — построение трехмерного графика со значениями Z, определенными матрицей;
• odeplot — построение двумерного или трехмерного графика решения дифференциальных уравнений;
• pareto — построение диаграммы (гистограммы и графика линиями);
• pointplot — построение точками двумерного графика;
• pointplot3d — построение точками трехмерного графика;
• polarplot — построение графика двумерной кривой в полярной системе координат;
• polygonplot — построение графика одного или нескольких многоугольников с вершинами, задаваемыми списками их координат;
• polygonplot3d — построение одного или нескольких многоугольников в пространстве;
• polyhedraplot — построение трехмерного многогранника;
• replot — перестроение графика заново;
• rootlocus — построение графика корней уравнения с комплексными неизвестными;
• semilogplot — построение графика функции с логарифмическим масштабом по оси абсцисс;
• setoptions — установка параметров по умолчанию для двумерных графиков;
• setoptions3d — установка параметров по умолчанию для трехмерных графиков;
• spacecurve — построение трехмерных кривых;
• sparsematrixplot — построение двумерного графика, отличных от нуля значений матрицы;
• sphereplot — построение графика трехмерной поверхности в сферических координатах;
• surfdata — построение трехмерного графика поверхности по численным данным;
• textplot — вывод текста на заданное место двумерного графика;
• textplot3d — вывод текста на заданное место трехмерного графика;
• tubeplot — построение трехмерного графика типа «трубы».
Среди этих функций надо отметить, прежде всего, средства построения графиков ряда новых типов (например, графиков в комплексной плоскости, в виде линий равного уровня, векторных полей и т.д.), а также средства объединения различных графиков в один. Особый интерес представляют две первые функции, обеспечивающие анимацию как двумерных (animate), так и трехмерных графиков (animate3d). Этот пакет вполне заслуживает описания в отдельной книге. Но, учитывая ограниченный объем данной книги, мы рассмотрим лишь несколько характерных примеров его применения. Заметим, что для использования приведенных функций нужен вызов пакета, например, командой with(plots)
8.5.2. Построение графиков функций в полярной системе координат
В пакете plots есть функция для построения двумерных (2D) графиков в полярной системе координат. Она имеет вид polarplot(L,o), где L — объекты для задания функции, график которой строится, и о — необязательные параметры. На рис. 8.23 сверху представлен пример построения графика с помощью функции polarplot.

Рис. 8.23. Графики, построенные с помощью функций polarplot и implicitplot
В первом примере для большей выразительности опущено построение координатных осей, а график выведен линией удвоенной толщины. График очень напоминает лист клена, весьма почитаемого в Канаде и ставшего эмблемой СКМ Maple.
8.5.3. Импликативная графика
В математике часто встречается особый тип задания геометрических фигур, при котором переменные х и у связаны неявной зависимостью. Например, окружность задается выражениемх²+y²=R², где R — радиус окружности. Для задания двумерного графика такого вида служит функция импликативной графики:
Пример построения окружности с помощью этой функции показан на рис. 8.23 снизу. Ниже мы рассмотрим подобную функцию и для трехмерного графика.
8.5.4. Построение графиков линиями равного уровня
Графики, построенные с помощью линий равного уровня (их также называют контурными графиками) часто используются в картографии. Эти графики получаются, если мысленно провести через трехмерную поверхность ряд равноотстоящих плоскостей, параллельных плоскости, образованной осями X и Y графика. Линии равных высот образуются в результате пересечения этих плоскостей с трехмерной поверхностью.
Для построения таких графиков используется функция contourplot, которая может использоваться в нескольких форматах:
Здесь f, g и h — функции; expr1 — выражение, описывающее зависимость высоты поверхности от координат x и y: exprf, exprg и exprh — выражения, зависящие от s и t, описывающие поверхность в параметрической форме; а и b — константы вещественного типа; c и d — константы или выражения вещественного типа; х, у, s и t — имена независимых переменных.
На рис. 8.24 показано построение графика линиями равного уровня для одной функции. Параметр filled=true обеспечивает автоматическую функциональную окраску замкнутых фигур, образованных линиями равного уровня. Порою это придает графику большую выразительность, чем при построении только линии равного уровня.

Рис. 8.24. Пример построения графика функции линиями равного уровня
К сожалению, в данном варианте окраски сами контурные линии получаются черными и их невозможно отличить. Однако если убрать параметр filled=true, то контурные линии (и линии легенды) будут иметь разный цвет и легко различаться. Оцифровка линий контурного графика, увы, не предусмотрена.
Функция contourplot позволяет строить и графики ряда функции. Пример такого построения показан на рис. 8.25. Множество окружностей на этом рисунке создается четырьмя поверхностями, заданными функциями с1, с2, c3 и с4.

Рис. 8.25. Пример построения графиков многих функций линиями равного уровня
Обратите внимание, что на многих графиках Maple по умолчанию вписывает легенду, то есть список линий с обозначениями. Иногда (как, например, на рис. 8.25), этот список оказывается просто некстати. Легенду можно убрать, расширив заодно место для графика, сняв флажок Show Legend в контекстном меню Legend правой клавиши мыши (это меню видно на рис. 8.25). Заодно запомните, что легенду можно редактировать, выполнив команду Edit Legend.
Следует отметить, что хотя графики в виде линий равного уровня выглядят не так эстетично и естественно, как обычные графики трехмерных поверхностей (ибо требуют осмысления результатов), у них есть один существенный плюс — экстремумы функций на таких графиках выявляются порой более четко, чем на обычных графиках. Например, небольшая возвышенность или впадина за большой «горой» на обычном графике может оказаться невидимой, поскольку заслоняется «горой». На графике линий равного уровня этого эффекта нет. Однако выразительность таких графиков сильно зависит от числа контурных линий.
8.5.5. График плотности
Иногда поверхности отображаются на плоскости как графики плотности — чем выше высота поверхности, тем плотнее (темнее) окраска. Такой вид графиков создается функцией densityplot. Она может записываться в двух форматах:
где назначение параметров соответствует указанному выше для функции contourplot.
На рис. 8.26 (верхняя часть) дан пример построения графика такого типа. Нетрудно заметить, что в плоскости XY график разбит на квадраты, плотность окраски которых различна. В нашем случае плотность окраски задается оттенками серого цвета.

Рис. 8.26. Графики плотности и поля векторов
Обычно графики такого типа не очень выразительны, но имеют свои области применения. К примеру, оттенки окраски полупрозрачной жидкости могут указывать на рельеф поверхности дна емкости, в которой находится эта жидкость.
8.5.6. Двумерный график векторного поля
Еще один распространенный способ представления трехмерных поверхностей — графики полей векторов. Они часто применяются для отображения полей, например электрических зарядов. Особенность таких графиков в том, что для их построения используют стрелки, направление которых соответствует направлению изменения градиента поля, а длина — значению градиента. Так что термин «поле векторов» надо понимать в смысле, что поле графика заполнено векторами.
Для построения таких графиков в двумерной системе координат используется функция fieldplot:
где f — вектор или множество векторов, задающих построение; r1 и r2 — пределы.
На рис. 8.26 в нижней части документа показан вид одного из таких графиков. Следует отметить, что для получения достаточного числа отчетливо видных стрелок надо поработать с форматированием графиков. Иначе графики этого типа могут оказаться не очень представительными. Так, слишком короткие стрелки превращаются в черточки и даже точки, не имеющие острия, что лишает графики наглядности.
8.5.7. Трехмерный график типа implicitplot3d
Трехмерные поверхности также могут задаваться уравнениями неявного вида. В этом случае для построения их графиков используется функция implicitplot3d:
На рис. 8.27 показаны два примера построения любопытных объемных фигур с помощью функции implicitplot3d.

Рис. 8.27. Примеры применения функции implicitplot3d
Эти примеры, взятые из справки, хорошо иллюстрируют технику применения функции implicitplot3d. С ее помощью можно строить весьма своеобразные фигуры, что, впрочем, видно и из приведенных примеров. Для наглядности фигур рис. 8.40 они несколько развернуты в пространстве с помощью мыши.
8.5.8. Графики в разных системах координат
В пакете plots имеется множество функций для построения графиков в различных системах координат Объем книги не позволяет воспроизвести примеры всех видов таких графиков, ибо их многие сотни. Да это и не надо — во встроенных в справочную систему примерах можно найти все нужные сведения. Так что ограничимся лишь парой примеров применения функции tubeplot(C, options), позволяющей строить весьма наглядные фигуры в пространстве, напоминающие трубы или иные объекты, образованные фигурами вращения.
На рис. 8.28 показана одна из таких фигур. Она поразительно напоминает раковину улитки. Функциональная окраска достигнута доработкой графика с помощью панели форматирования — она, как и контекстное меню правой клавиши мыши, показана на рис. 8.28.

Рис. 8.28. Построение графика — «раковина улитки»
Эта функция может использоваться и для построения ряда трубчатых объектов в пространстве. При этом автоматически задается алгоритм удаления невидимых линий даже для достаточно сложных фигур. Это наглядно иллюстрирует пример на рис. 8.29, показывающий фигуру «цепи». Не правда ли, реалистичность этой фигуры поражает воображение?

Рис. 8.29. Фигура «цепи», построенная с применением функции tubeplot
Можно долго размышлять о том, как те или иные математические закономерности описывают предметы реального мира, положенные в основу тех или иных геометрических объектов или, возможно, о гениальности людей, сумевших найти такие закономерности для многих из таких объектов. В наше время Maple открывает огромные возможности для таких людей.
8.5.9. Графики типа трехмерного поля из векторов
Наглядность ряда графиков можно существенно увеличить, строя их в трехмерном представлении. Например, для такого построения графиков полей из векторов можно использовать графическую функцию fieldplot3d. В отличие от функции fieldplot она строит стрелки как бы в трехмерном пространстве (рис. 8.30). Возможности смены осей о оформления «ящика» графика иллюстрирует контекстное меню правой клавиши мыши, показанное на рис. 8.30.

Рис. 8.30. Построение поля в трехмерном пространстве с помощью векторов
Все сказанное об особенностях таких двумерных графиков остается справедливым и для графиков трехмерных. В частности, для обеспечения достаточной наглядности нужно тщательно отлаживать форматы представления таких графиков.
8.5.10. Контурные трехмерные графики
В отличие от векторных графиков, контурные графики поверхностей, наложенные на сами эти поверхности, нередко повышают восприимчивость таких поверхностей — подобно изображению линий каркаса. Для одновременного построения поверхности и контурных линий на них служит функция contourplot3d. Пример ее применения показан на рис. 8.31.

Рис. 8.31. График поверхности с контурными линиями
Для повышения наглядности этот график доработан с помощью контекстной панели инструментов графиков. В частности, включена функциональная окраска и подобраны углы обзора фигуры, при которых отчетливо видны ее впадина и пик. О возможностях переформатирования графика свидетельствует контекстное меню, показанное на рис. 8.31.
8.5.11. Визуализация сложных пространственных фигур
Приведенные выше достаточно простые примеры дают представление о высоком качестве визуализации геометрических фигур с помощью пакета plots. Здесь мы рассмотрим еще несколько примеров визуализации трехмерных фигур. Многие видели катушки индуктивности, у которых провод того или иного диаметра намотан на тороидальный магнитный сердечник. Некую математическую абстракцию такой катушки иллюстрирует рис. 8.32.

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

Рис. 8.33. Тор с тонкой обмоткой
В ряде случаев наглядно представленные фигуры можно строить путем объединения однотипных фигур. Пример графика подобного рода представлен на рис. 8.34. Здесь готовится список графических объектов s, смещенных по вертикали. С помощью функции display они воспроизводятся на одном графике, что повышает реалистичность изображения.

Рис. 8.34. Построение фигуры, напоминающей шину автомобиля
Последний пример имеет еще одну важную особенность — он иллюстрирует задание графической процедуры, в теле которой используются функции пакета plots. Параметр n этой процедуры задает число элементарных фигур, из которых строится полная фигура. Таким образом, высотой фигуры (или шириной «шины») можно управлять. Возможность задания практически любых графических процедур средствами Maple-языка существенно расширяет возможности Maple.
Наглядность таких графикой, как графики плотности и векторных полей может быть улучшена их совместным применением. Такой пример показан на рис. 8.35.

Рис. 8.35. Пример совместного применения графиков плотности и векторного поля
Этот пример иллюстрирует использование «жирных» стрелок для обозначения векторного поля. Наглядность графика повышается благодаря наложению стрелок на график плотности, который лучше, чем собственно стрелки, дает представление о плавности изменения высоты поверхности, заданной функцией f.
8.5.12. Новая функция сравнения двух зависимостей от комплексного аргумента
В пакет Plots СКМ Maple 9.5 введена новая функция для сравнения двух зависимостей f(z) и g(z) комплексного аргумента z. Функция может использоваться в нескольких формах:
Здесь a, b, c, d — константы реального типа. Функция на одном рисунке строит графики действительной и мнимой частей зависимостей f(z) и g(z). С помощью опций можно менять цветовую гамму рисунков, их ориентацию в пространстве и др. характеристики графиков. В справке по данной функции дается множестве примеров ее применения, так что ограничимся одним, показанным на рис. 8.36.

Рис. 8.16. Пример графического сопоставления двух зависимостей от комплексного аргумента
Сравнение графиков двух зависимостей, представленных на рис. 8.36 наглядно выявляет существенные отличия этих зависимостей. Достаточно отметить, что на графиках действительных частей зависимостей в одном случае видна выпуклая, а в другом случае вогнутая поверхности. Еще сильнее отличия в графиках мнимых частей сопоставляемых зависимостей.
8.6. Динамическая графика
8.6.1. Анимация двумерных графиков
Визуализация графических построений и результатов моделирования различных объектов и явлений существенно повышается при использовании средств «оживления» (анимации) изображений. Пакет plots имеет две простые функции для создания динамических (анимированных) графиков.
Первая из этих функций служит для создания анимации графиков, представляющих функцию одной переменной F(x):
Эта функция просто позволяет наблюдать медленное построение графика. Формат ее применения подобен используемому в функции plot.
При вызове данной функции вначале строится пустой шаблон графика. Если активизировать шаблон мышью, то в строке главного меню появляется меню Animation. Меню Animation содержит команды управления анимацией. Такое же подменю появляется и в контекстном (рис. 8.37).

Рис. 8.37. Пример анимационного построения графика функцией animatecurve
Указанное подменю содержит следующие команды анимации:
• Play — запуск построения графика;
• Next — выполнение следующего шага анимации;
• Backward/Forward — переключение направления анимации (назад/вперед);
• Faster — ускорение анимации;
• Slower — замедление анимации;
• Continiuus/Single cycle — цикличность анимации.
При исполнении команды Play происходит построение кривой (или нескольких кривых). В зависимости от выбора команд Faster или Slower построение идет быстро или медленно. Команда Next выполняет один шаг анимации — построение очередного фрагмента кривой. Переключатель Backward/Forward позволяет задать направление построения кривой — от начала к концу или от конца к началу. Построение может быть непрерывным или циклическим в зависимости от состояния позиции Continiuus/Single cycle в подменю управления анимацией. При циклической анимации число циклов задается параметром frames=n.
8.6.2. Проигрыватель анимированной графики
При включенном выводе панели форматирования во время анимации она приобретает вид панели проигрывателя клипов (рис. 8.37). Эта панель имеет кнопки управления с обозначениями, принятыми у современных проигрывателей, например магнитофонов
1. Поле координат перемещающейся точки графика.
2. Остановка анимации
3. Пуск анимации
4. Переход к следующему кадру (фрейму).
5. Установка направления анимации от конца в начало.
6. Установка направления анимации из начала в конец (по умолчанию).
7. Уменьшение времени шага анимации.
8. Увеличение времени шага анимации.
9. Установка одиночного цикла анимации.
10. Установка серии циклов анимации.
Итак, кнопки проигрывателя по существу повторяют команды подменю управления анимацией.
Нажав кнопку пуска (с треугольником, острием обращенным вправо), можно наблюдать изменение вида кривой для функции sin(х)/(х). Другие кнопки управляют характером анимации. Проигрыватель дает удобные средства для демонстрации анимации, например, во время занятий со школьниками или студентами.
8.6.3. Построение двумерных анимированных графиков
Более обширные возможности анимации двумерных графиков обеспечивает функция animate:
В ней параметр x задает пределы изменения переменной х, а параметр t — пределы изменения дополнительной переменной t. Суть анимации при использовании данной функции заключается в построении серии кадров (как в мультфильме), причем каждый кадр связан со значением изменяемой во времени переменной t. Если надо явно задать число кадров анимации N, то в качестве о следует использовать frame=N.
Рисунок 8.38 показывает применение функции animate.

Рис. 8.38. Анимация функции sin(i*x)/(i*x) на фоне неподвижной синусоиды
В документе рис. 8.38 строятся две функции — не создающая анимации функция sin(x) и создающая анимацию функция sin(i*x)/(i*x), причем в качестве переменной t задана переменная i. Именно ее изменение и создает эффект анимации. Проигрыватель анимационных клипов и меню, описанные выше, могут использоваться для управления и этим видом анимации. Обратите внимание на вызов графических функций в этом примере командой with и на синтаксис записи этих функций.
К сожалению, картинки в книгах всегда неподвижны и воспроизвести эффект анимации невозможно. Можно лишь представить несколько текущих кадров анимации. Представленная на рис. 8.38 картина соответствует последнему кадру анимации.
Анимация графиков может найти самое широкое применение при создании учебных материалов. С ее помощью можно акцентировать внимание на отдельных параметрах графиков и образующих их функций и наглядно иллюстрировать характер их изменений.
8.6.4. Построение трехмерных анимационных графиков
Аналогичным образом может осуществляться и анимация трехмерных фигур. Для этого используется функция animate3d:
Здесь F — описание функции (или функций); х, у и t — диапазоны изменения переменных х, у и t. Для задания числа кадров N надо использовать необязательный параметр о в виде frame=N. Примеры применения этой функции мы рассмотрим позже.
На рис. 8.39 показано построение графика с анимацией. После задания функции, график которой строится, необходимо выделить график и запустить проигрыватель, как это описывалось для анимации двумерных графиков.

Рис. 8.39. Подготовка трехмерного анимационного графика
На рис. 8.39 показано также контекстное меню поля выделенного графика. Нетрудно заметить, что с помощью этого меню (и содержащихся в нем подменю) можно получить доступ к параметрам трехмерной графики и выполнить необходимые операции форматирования, такие как включение цветовой окраски, выбор ориентации фигуры и т.д.
Назначение параметров, как и средств управления проигрывателем анимационных клипов, было описано выше.
8.6.5. Анимация с помощью параметра insequence
Еще один путь получения анимационных рисунков — создание ряда графических объектов p1, p2, p3 и т.д. и их последовательный вывод с помощью функций display или display3d:
Здесь основным моментом является применение параметра insequence=true. Именно он обеспечивает вывод одного за другим серии графических объектов р1, р2, p3 и т.д. При этом объекты появляются по одному, и каждый предшествующий объект стирается перед появлением нового объекта. Этот метод анимации мы рассмотрим чуть позже.
8.7. Графика пакета plottools
8.7.1. Примитивы пакета plottools
Инструментальный пакет графики plottools служит для создания графических примитивов, строящих элементарные геометрические объекты на плоскости и в пространстве: отрезки прямых и дуг, окружности, конусы, кубики и т.д. Его применение позволяет разнообразить графические построения и строить множество графиков специального назначения. В пакет входят следующие графические примитивы:
Вызов перечисленных примитивов осуществляется после загрузки пакета в память компьютера командой with(plottools). Только после этого примитивы пакета становятся доступными. Обычно примитивы используются для задания графических объектов, которые затем выводятся функцией display. Возможно применение этих примитивов совместно с различными графиками.
Большинство примитивов пакета plottools имеет довольно очевидный синтаксис. Например, для задания дуги используется примитив arc(c, r, а..b,…), где с — список с координатами центра окружности, к которой принадлежит дуга, r — радиус этой окружности, а..b — диапазон углов. На месте многоточия могут стоять обычные параметры, задающие цвет дуги, толщину ее линии и т.д. Конус строится примитивом cone(c,r,h…), где с — список с координатами центра, r — радиус основания, h — высота и т.д. В необходимых случаях стоит проверить синтаксис того или иного примитива с помощью справки по пакету plottools.
8.7.2. Пример применения двумерных примитивов пакета plottools
На рис. 8.40 показано применение нескольких примитивов двумерной графики для построения дуги, окружности, закрашенного красным цветом эллипса и отрезка прямой. Кроме того, на графике показано построение синусоиды.

Рис. 8.40 Примеры применения примитивов двумерной графики пакета plottools
Во избежание искажений пропорций фигур надо согласовывать диапазон изменения переменной x. Обычно параметр scalling=constrained выравнивает масштабы и диапазоны по осям координат, что гарантирует отсутствие искажений у окружностей и других геометрических фигур. Однако при этом размеры графика нередко оказываются малыми. Напоминаем, что эту параметр можно задать и с помощью подменю Projection.
8.7.3. Пример построения стрелок
Рис. 8.41 иллюстрирует построение средствами пакета plottools четырех разноцветных стрелок, направленных в разные стороны. Цвет стрелок задан списком цветов с, определенным после команды загрузки пакета. Для построения стрелок используется примитив arrow с соответствующими параметрами. Обратите внимание на наклон стрелок — он задан прибавлением 1 к аргументу тригонометрических функций. Уберите 1 и стрелки расположатся под прямым углом.

Рис. 8.41. Построение разноцветных стрелок, направленных в разные стороны
8.7.4. Пример построения диаграммы Смита
Примитивы могут использоваться в составе графических процедур, что позволяет конструировать практически любые типы сложных графических объектов. В качестве примера на рис. 8.42 представлена процедура SmithChart, которая строит хорошо известную электрикам диаграмму Смита (впрочем, несколько упрощенную). В этой процедуре используется примитив построения дуг arc. При этом задается верхняя часть диаграммы, а нижняя получается ее зеркальным отражением.

Рис. 8.42. Построение диаграммы Смита
Обратите внимание на то, что начиная с рис. 8.42 мы не указываем загрузку пакета plottools, поскольку она уже была проведена ранее. Однако надо помнить, что все примеры этого раздела предполагают, что такая загрузка обеспечена. Если вы использовали команду restart или только что загрузили систему Maple 9 то для исполнения примера рис. 8.42 и последующих примеров надо исполнить команду with(plottools).
8.7.5. Примеры применения трехмерных примитивов пакета plottools
Аналогичным описанному выше образом используются примитивы построения трехмерных фигур. Это открывает возможность создания разнообразных иллюстрационных рисунков и графиков, часто применяемых при изучении курса стереометрии. Могут строиться самые различные объемные фигуры и поверхности — конусы, цилиндры, кубы, полиэдры и т.д. Использование средств функциональной окраски делает изображения очень реалистичными.
Рис. 8.43 показывает построение цилиндра и двух граненых шаров. Цилиндр строится примитивом cylinder, а граненые шары — примитивом icosahedron.

Рис. 8.43. Построение цилиндра и двух граненых шаров
Другой пример (рис. 8.44) иллюстрирует построение на одном графике двух объемных фигур, одна из которых находится внутри другой фигуры. Этот пример демонстрирует достаточно корректное построение вложенных фигур.

Рис. 8.44. Построение двух объемных фигур
На рис. 8.45 показано совместное построение двух пересекающихся кубов и сферы в пространстве. Нетрудно заметить, что графика пакета приблизительно (с точностью до сегмента) вычисляет области пересечения фигур. С помощью контекстно-зависимого меню правой кнопки мыши (оно показано на рис. 8.45) можно устанавливать условия обзора фигур, учитывать перспективу при построении и т.д. В частности, фигуры на рис. 8.45 показаны в перспективе.

Рис. 8.45. Примеры применения примитивов трехмерной графики пакета plottools
Построение еще одной забавной трехмерной фигуры — «шкурки ежа» — демонстрирует рис. 8.46. В основе построения лежит техника создания полигонов.

Рис. 8.46. Построение трехмерной фигуры — «шкурки ежа»
Построение фигур, очень напоминающих улитки, показано на рис. 8.47. При построении этих фигур используется функция tubeplot. Обратите внимание на то, что строятся две входящие друг в друга «улитки».

Рис. 8.47. Построение фигур — «улитки»
Наконец, на рис. 8.48 показано построение фигуры — бутылки Клейна. Фигура задана рядом своих фрагментов, определенных в процедуре cleinpoints. Эта процедура является еще одним наглядным примеров программирования графических построений с помощью Maple-языка.

Рис. 8.48. Построение фигуры «бутылка Клейна»
С другими возможностями этого пакета читатель теперь справится самостоятельно или с помощью данных справочной системы. Много примеров построения сложных и красочных фигур с применением пакета plottools можно найти в Интернете на сайте фирмы Maple Software, в свободно распространяемой библиотеке пользователей системы Maple и в книгах по этой системе.
8.7.6. Построение графиков из множества фигур
В ряде случаев бывает необходимо строить графики, представляющие собой множество однотипных фигур. Для построения таких графиков полезно использовать функцию повторения seq(f,i=a..b). На рис. 8.49 показано построение фигуры, образованной вращением прямоугольника вокруг одной из вершин.

Рис. 8.49. Построение фигуры, образованной вращением прямоугольника
В этом примере полезно обратить внимание еще и на функцию поворота фигуры — rotate. Именно сочетание этих двух функции (мультиплицирования и поворота базовой фигуры — прямоугольника) позволяет получить сложную фигуру, показанную на рис. 8.49.
8.7.7. Анимация двумерной графики в пакете plottols
Пакет plottools открывает возможности реализации анимационной графики. Мы ограничимся одним примером анимации двумерных графиков. Этот пример представлен на рис. 8.50. В этом примере показана анимационная иллюстрация решения дифференциального уравнения, описывающего незатухающий колебательный процесс. Строится качающийся объект — стрелка с острием вправо, решение дифференциального уравнения в виде синусоиды и большая стрелка с острием влево, которая соединяет текущую точку графика синусоиды с острием стрелки колеблющегося объекта.

Рис. 8.50. Пример анимации двумерной графики
Этот пример наглядно показывает возможности применения анимации для визуализации достаточно сложных физических и математических закономерностей. Перспективы применения системы Maple 9.5 в создании виртуальных физических и иных лабораторий трудно переоценить. Хотя большие возможности в этой области представляет СКМ MATLAB с пакетом расширения Simulink.
8.7.8. Анимация трехмерной графики в пакете plottools
Хорошим примером 3D-анимации является документ, показанный на рис. 8.51. Представленная на нем процедура springPlot имитирует поведение упругой системы, первоначально сжатой, а затем выстреливающей шар, установленный на ее верхней пластине. Упругая система состоит из неподвижного основания, на котором расположена упругая масса (например, из пористой резины), и верхней пластины.

Рис. 8.51. Имитация отстрела шара сжатой упругой системой
Управление анимацией, реализованной средствами пакета plottools, подобно уже описанному ранее. Последний пример также прекрасно иллюстрирует возможности применения Maple 9.5 при математическом моделировании различных явлений, устройств и систем.
8.8. Расширенные средства графической визуализации
8.8.1. Построение ряда графиков, расположенных по горизонтали
Обычно если в строке ввода задается построение нескольких графиков, то в строке вывода все они располагаются по вертикали. Это не всегда удобно, например, при снятии копий экрана с рядом графиков, поскольку экран монитора вытянут по горизонтали, а не по вертикали. Однако при применении функций plots и display можно разместить ряд двумерных графиков в строке вывода по горизонтали. Это демонстрирует пример, показанный на рис. 8.52.

Рис. 8.52. Пример расположения трех графиков в строке вывода по горизонтали
Пример достаточно прост и нагляден, так что читатель может пользоваться данной возможностью всегда, когда ему это нужно.
8.8.2. Конформные отображения на комплексной плоскости
В пакете plots имеется функция для конформные отображений:
где F — комплексная процедура или выражение; r1, r2 — области, задаваемые в виде а..b или name=a..b; о — управляющие параметры. Таким образом, для построения нужного графика достаточно задать нужное выражение и области изменения r1 и r2. Пример построения конформных изображений для трех выражений дан на рис. 8.53.

Рис. 8.53. Конформное отображение на комплексной плоскости графиков трех зависимостей
Средства конформного отображения в Maple 9.5/10, к сожалению, остаются рудиментарными и вряд ли достаточными для специалистов в этой области математики.
8.8.3. Построение сложных фигур в полярной системе координат
Некоторые виды математической графики имеют определенную художественную ценность и фигурируют в символике различных стран и общественных организаций. Остановимся на нескольких таких примерах применительно к графике в полярной системе координат. Представим фигуры, образованные множеством линий на плоскости.
Рис. 8.54 демонстрирует две из таких фигур. Первая это семейство из 10 кардиоид разного размера, построенных функцией polarplot. Параметр scalling=constrained обеспечивает правильное отображение фигур — каждая кардиоида вписывается в огибающую ее невидимую окружность. Размер кардиоид задается значением параметра а.

Рис. 8.54. Семейство кардиоид на одном графике и крест из пяти фигур на комплексной плоскости
Вторая фигура представляет собой пять фигур, построенных функций complexplot, дающей построение графиков функций комплексной переменной на комплексной плоскости. В данном случае фигуры образуют крест.
По образу и подобию приведенных фигур читатель может опробовать свои силы в создании новых красочных фигур в полярной системе координат. Некоторые из них поразительно напоминают снежинки, картинки в калейдоскопе и изображения морских звезд. Если убрать параметр color=black, введенный ради черно-белой печати картинок в книге, то можно усилить красочность фигур за счет их разноцветной окраски.
8.8.4. Построение сложных фигур импликативной графики
Импликативные функции нередко имеют графики весьма любопытного вида. Ограничимся парой примеров построения таких графиков, представленных на рис. 8.55. Эти фигуры напоминают контурные графики функции двух переменных.

Рис. 8.55. Построение сложных фигур, изданных импликативными функциями
Приведенные примеры дают весьма наглядное представление о больших возможностях визуализации решений самых различных задач в системе Maple Можно значительно расширить их, эффектно используя описанные ранее приемы анимации изображений. В целом надо отметить, что графические возможности Maple дают новый уровень качества графики современных математических систем, о котором с десяток лет тому назад можно было только мечтать.
8.8.5. Визуализация поверхностей со многими экстремумами
Maple дает прекрасные возможности для визуализации поверхностей, имеющих множество пиков и впадин, другими словами, экстремумов. Рисунок 8.56 показывает задание «вулканической» поверхности с глубокой впадиной, окруженной пятью пиками. Здесь полезно обратить внимание на способ задания такой поверхности f(a, b, с) как функции трех переменных a, b и с. Он обеспечивает индивидуальное задание координат каждого экстремума и его высоты (отрицательной для впадины).

Рис. 8.56. Построение графика поверхности с множеством экстремумов
Наглядность этого графика усилена за счет применения функциональной окраски и контурных линий, нанесенных на саму поверхность. Все эти возможности обеспечивают параметры основной функции plot3d.
А на рис. 8.57 представлен еще один способ задания поверхности — с помощью функции двух угловых переменных f(θ, φ).

Рис. 8.57. Построение графика поверхности, заданной функцией двух угловых переменных
При построении этого рисунка также используются функциональная окраска и построение контурных линий.
8.9. Визуализация решений уравнений и неравенств
8.9.1. Визуализация решения систем линейных уравнений
Системы линейных уравнений могут решаться как с помощью функции solve, так и с помощью матричных методов. Замечательной возможностью функции solve является возможность решения относительно ограниченного числа переменных. Например, систему линейных уравнений с переменными х, у, z, t и v можно решить относительно только первых трех переменных х, у и z. При этом решения будут функциями относительно переменных t и v и можно будет построить наглядный график решения (рис. 8.58).

Рис. 8.58. График, представляющий решения системы линейных уравнений
На рис. 8.58 система задана пятью равенствами: e1, e2, e3, е4 и е5. Затем функцией solve получено вначале решение для всех переменных (для иллюстрации), а затем для трёх переменных х, у и z. Для получения решения в виде списка, а не множества, как в первом случае для всех переменных, использована функция подстановки subs. После этого функция plot3d строит плоскость решения в пространстве.
8.9.2. Визуализация решения систем неравенств
Пожалуй, еще более полезным и наглядным средством является визуализация решения системы уравнений в виде неравенств. В пакете plots имеется специальная графическая функция inequal, которая строит все граничные линии неравенств и позволяет раскрасить разделенные ими области различными цветами:
Параметры этой функции следующие: ineqs — одно или несколько неравенств или равенств или список неравенств или равенств; xspec — xvar=min_x..max_x; yspec — yvar=min_y..max_y; о — необязательные параметры, например, указывающие цвета линий, представляющих неравенства или равенства, и областей, образованных этими линиями и границами графика. Пример применения этой функции представлен на рис. 8.59.

Рис. 8.59. Пример графической интерпретации решения системы неравенств
Обратите внимание на задание цветов: optionsfeasible задает цвет внутренней области, для которой удовлетворяются все неравенства (равенства), optionsopen и optionsclosed задают цвета открытых и закрытых границ областей графика, optionsexcluded используется для цвета внешних областей. График дает весьма наглядную интерпретацию действия ряда неравенств (или равенств).
8.9.3. Иллюстрация итерационного решения уравнения f(x)=х
Классическим методом решения нелинейных уравнений является сведение их к виду х = f(x) и применение метода простых итераций хk = s(хk-1) при заданном значении x0. Приведем пример такого решения:
x1 := 1.216395324 x2 := 2.387646445 x3 : = 3.660406248 x4 : = 4.617307866 x5 := 5.177557566 x6 : = 5.462768931 x7 := 5.598173559 x8 := 5.660378631 x9 := 5.688529002 x10 := 5.701181910 x11 := 5.706851745 x12 := 5.709388956 x13 := 5.710523646 x14 := 5.711030964 x15 := 5.711257755 x16 := 5.711359134
Нетрудно заметить, что значения х_k в ходе итераций явно сходятся к некоторому значению. Проведем проверку решения, используя встроенную функцию solve:
3 ln(x + 1) = х 0, -3LambertW(-1, -1/3e (-1/3) )-1
Результат выглядит необычно — помимо довольно очевидного корня х=0 значение другого корня получено в виде специальной функции Ламберта. Впрочем, нетрудно найти и его численное значение:
0., 5.711441084
К нему и стремятся промежуточные результаты решения. Однако как сделать процесс решения достаточно наглядным? Обычно для этого строят графики двух зависимостей — прямой х и кривой f(x) — и наносят на них ступенчатую линии перемещения точки х_k. Специальной функции для графиков подобного рода Maple не имеет. Однако можно составить специальную процедуру для их построения. Ее листинг, взятый из примера, описанного в пакете обучения системе Maple — PowerTools —представлен на рис. 8.60.

Рис. 8.60. Иллюстрация процесса итераций
На рис. 8.60 представлено задание процедуры rec_plot( f1, а, b, х0).
Параметрами этой процедуры являются: f1 — функция f(x): а и b — пределы изменения х при построении графика; х0 — значение х, с которого начинаются итерации. Используя эту процедуру можно наблюдать график, иллюстрирующий итерационный процесс. Он представлен на рис. 8.60 снизу.
Нетрудно заметить, что для данной функции процесс итераций, хотя и не очень быстро, но уверенно сходится к точке пересечения прямой у=х и кривой y=f(x). Вы можете, меняя зависимость f(x), провести исследования сходимости уравнений x=f(x).
8.9.4. Визуализация ньютоновских итераций в комплексной области
Теперь займемся довольно рискованным экспериментом — наблюдением ньютоновских итераций с их представлением на комплексной плоскости. На рис. 8.61 задана функция f(z) комплексного аргумента. Проследить за поведением этой функции на комплексной плоскости в ходе ньютоновских итераций в соответствии с выражением z=f(z) позволяет графическая функция complexplot3d из пакета plots.

Рис. 8.61. Наблюдение за процессом ньютоновских итераций в трехмерном пространстве
Наблюдаемая картина весьма необычна и свидетельствует о далеко не простом ходе итерационного процесса. А рискованной эта задача названа потому, что в предшествующих версиях Maple она нередко вела к «зависанию» компьютера.
8.10. Визуализация геометрических построений
8.10.1. Визуализация теоремы Пифагора
Средства Maple 9.5 весьма удобны для визуализации геометрических построений.
Примером наглядного геометрического представления математических понятий является визуализация известной теоремы Пифагора (рис. 8.62).
В этом примере используется функция построения многоугольников. Наглядность построений усиливается выбором разной цветовой окраски треугольников и квадрата.

Рис. 8.62. Графическая иллюстрация к теореме Пифагора
8.10.2. Визуализация построения касательной и перпендикуляра
В ряде геометрических построений нужно строить касательную и перпендикуляр к кривой, отображающей произвольную функцию f(x) в заданной точке х=а. Рисунок 8.63 поясняет, как это можно сделать. Линии касательной Т(х) и перпендикуляра N(x) определены аналитически через производную в заданной точке.

Рис. 8.63. Построение касательной и перпендикуляра к заданной точке графика функции f(x)
Во избежание геометрических искажений положения касательной и перпендикуляра при построении графика функцией plot надо использовать параметр scaling=constrained.
8.10.3. Визуализация вычисления определенных интегралов
Часто возникает необходимость в геометрическом представлении определенных интегралов в виде алгебраической суммы площадей, ограниченных кривой подынтегральной функции f(x), осью абсцисс х и вертикалями х=a и х=b (пределами интегрирования). При этом желательно обеспечение закраски верхней и нижней (отрицательной и положительной) площадей разными цветами, например, зеленым для верхней площади и красным для нижней. Как известно, численное значение определенного интеграла есть разность этих площадей.
К сожалению, в Maple 8 нет встроенной функции, явно дающей такое построение. Однако ее несложно создать. На рис. 8.64 представлена процедура a_plot, решающая эту задачу. Параметрами процедуры являются интегрируемая функция f(x) (заданная как функция пользователя), пределы интегрирования а и b и пределы слева am и справа bm, задающие область построения графика f(x).

Рис. 8.64. Графическое представление определенного интеграла
Рисунок 8.64 дает прекрасное представление о сущности интегрирования для определенного интеграла. Приведенную на этом рисунке процедуру можно использовать для подготовки эффектных уроков по интегрированию разных функций.
8.11. Расширенная техника анимации
8.11.1. Анимирование разложения функции в ряд Тейлора
Анимация позволяет повысить наглядность некоторых математических операций. Обычно для этого используются функции animate и animate3d пакета расширения plots, загружаемые командой with(plots). Пример этого представлен на рис. 8.65. Этот документ внизу показывает кадр анимированного процесса улучшения приближения синусоидальной функции рядом с различным числом членов (и порядком последнего члена ряда).

Рис. 8.65. Анимационная демонстрация приближения синусоиды рядом с меняющимся числом членов
Результирующая картина, показанная на рис. 8.65, показывает как приближаемую синусоидальную функцию, так и графики всех рядов, которые последовательно выводятся в ходе анимации.
8.11.2. Анимирование разложения импульса в ряд Фурье
Анимирование изображений является одним из самых мощных средств визуализации результатов моделирования тех или иных зависимостей или явлений. Порою изменение во времени одного из параметров зависимости дает наглядное представление о его математической или физической сути.
Здесь мы расширим представление об анимации и рассмотрим не вполне обычный пример — наблюдение в динамике за гармоническим синтезом некоторой произвольной функции f(x) на отрезке изменения x от 0 до 1. Значения функции f(x) могут быть одного знака или разных знаков. В этом примере можно наблюдать в динамике синтез заданной функции рядом Фурье с ограниченным числом синусных членов (гармоник) — до 1, 2, 3. N. На рис. 8.66 представлен документ, реализующий такое разложение и затем синтез для пилообразного линейно нарастающего импульса, описываемого выражением f(x)=-1+2*x. На графике строится исходная функция и результат ее синтеза в динамике анимации.

Рис. 8.66. Один из первых стоп-кадров анимации разложения импульса в ряд Фурье
Рис. 8.67 показывает завершающий стоп-кадр анимации, когда число гармоник N равно 30. Нетрудно заметить, что такое число гармоник в целом неплохо описывает большую часть импульса, хотя в его начале и в конце все еще заметны сильные отклонения.

Рис. 8.67. Второй (завершающий) кадр анимации
Для f(x) = 1 строится приближение для однополярного импульса с длительностью 1 и амплитудой 1, при f(x)=x приближение для пилообразного линейно нарастающего импульса, при f(x)=x^2 — приближение для нарастающего по параболе импульса, при f(x) = signum(x-1/2) — приближение для симметричного прямоугольного импульса — меандра и т.д. Фактически можно наблюдать анимационную картину изменения формы импульса по мере увеличения числа используемых для синтеза гармоник. Выбор используемого числа гармоник осуществляет амплитудный селектор — функция af(t, k), основанная на применении функции Хевисайда.
Самым интересным в этом примере оказывается наблюдение за зарождением и эволюцией эффекта Гиббса — так называют волнообразные колебания на вершине импульса, связанные с ограничением числа гармоник при синтезе сигнала. С ростом числа гармоник эффект Гиббса не исчезает, просто обусловленные им выбросы вблизи разрывов импульса становятся более кратковременными. Амплитуда импульсов может достигать 9% от амплитуды перепадов сигнала, что сильно ухудшает приближение импульсных сигналов рядами Фурье и вынуждает математиков разрабатывать особые меры по уменьшению эффекта Гиббса.
8.11.3. Визуализация всех фаз анимации разложения импульса в ряд Фурье
Можно ли наблюдать одновременно все фазы анимации? Можно! Для этого достаточно оформить анимационную картину, созданную функцией animate, в виде отдельного графического объекта, например, g, после чего можно вывести все его фазы оператором display. Это и иллюстрирует рис. 8.68. На этот раз задано f(x)=signum(x-1/2) и N=25. Таким образом, рассматриваются симметричные прямоугольные импульсы — меандр. У каждого рисунка координатные оси с делениями удалены параметром axes=none.

Рис. 8.68. Иллюстрация получения всех кадров анимации двумерного графика
Любопытно отметить, что при определенных числах гармоник связанная с колебательными процессами неравномерность вершины импульса резко уменьшается. Наблюдение этого явления и является наиболее интересным и поучительным при просмотре данного примера.
При внимательном просмотре рис. 8.68 заметно, что, после некоторого периода установления, фазы анимационной картинки практически повторяются. Это связано с известным обстоятельством — установившийся спектр меандра содержит только нечетные гармоники. Поэтому, к примеру, вид спектрального разложения при 22 гармониках будет тот же, что и при 21 гармонике, при 24 гармониках тот же, что при 23 и т.д. Однако, эта закономерность проявляется только при установившемся (стационарном) спектре.
8.11.4. Наблюдение кадров анимации поверхности
Наблюдение за развитием поверхности производит на многих (особенно на студентов) большое впечатление. Оно позволяет понять детали создания сложных трехмерных графиков и наглядно представить их математическую сущность.
Как и для случая анимации двумерного графика, большой интерес представляет построение всех фаз анимации на одном рисунке. Делается это точно так же, как в двумерном случае. Это иллюстрирует рис. 8.69. На нем представлены 8 фаз анимации трехмерной поверхности cos(f*x*y/3), представленной функцией трех переменных t, х и у. При этом изменение первой переменной создает фазы анимации поверхности.

Рис. 8.69. Фазы анимации трехмерной поверхности
Применение анимации дает повышенную степень визуализации решении ряда задач, связанных с построением двумерных и трехмерных графиков. Следует отметить, что построение анимированных графиков требует дополнительных и достаточно существенных затрат оперативной памяти. Поэтому злоупотреблять числом стоп-кадров таких графиков не стоит.
8.11.5. Иные формы применения функций анимации
Наряду с описанной выше формой применения функций анимации animate и animate3d возможны и иные формы их применения. Ограничимся парой примеров такого применения. В приведенном ниже примере анимация импликативного графика заключается в превращении окружности в наклонный эллипс:
Для этого задано 25 кадров (фреймов) изменения параметра А от 0 до 1. В другом примере анимация задает деформацию мембраны в виде квадрата с жестко закрепленными границами:
Ввиду очевидности этих примеров графики результатов их выполнения не приводятся — пользователь может просмотреть их самостоятельно.
8.12. Некоторые другие возможности графики
8.12.1. Смена осей координат, масштабирование и сдвиг графиков
Иногда возникает необходимость сменить координаты к какого-то графика или изменить масштаб по определенной оси. Первая задача может несколько озадачить пользователя. Однако она легко решается средствами графики пакета stats — см. примеры на рис. 8.70. Масштабирование и сдвиг решаются проще — введением масштабных коэффициентов и констант сдвига. Но и эти задачи еще проще решаются указанными выше средствами графики.

Рис. 8.70. Примеры смены координат и масштабирования графиков
В первом примере рис. 8.70 используется функция xyexchange(p) меняющая оси у графического объекта р. Во втором случае используется функция xscale(k,p) масштабирующая объект по оси х в k раз. А в третьем примере используется функция сдвига объекта xshift(xs,p) на расстояние xs и масштабирования zscale(k,p) в k раз по оси z. О других функциях подпакета статистической графики можно судить по названиям его функций.
8.12.2. Построение стрелок в пространстве
В пакет plots была введена новая функция построения стрелок в пространстве arrow. Она задается в виде:
Построение стрелок задается по одномерными массивами координат начала стрелок и их направления u и v или двумерным массивом U, которые могут быть представлены векторами, списками или множествами. Вид стрелок задается параметром opts, который может иметь значения shape, length, width, head_width, head_length или plane и задает вид стрелок (форму, длину, ширину и т.д.). Детали задания параметров можно найти в справке по данной функции. Рис. 8.71 дает наглядное представление о ее возможностях.

Рис. 8.71. Построение стрелок с помощью функции arrow
8.12.3. Построение сложных комбинированных графиков
Maple 9.5 позволяет строить достаточно сложные комбинированные графики, содержащие различные графические и текстовые объекты. Пример построения такого графика представлен на рис. 8.72.

Рис. 8.72. Пример построения сложного объекта, состоящего из 8 графических и текстовых объектов
Представленный на рис. 8.72 объект задает построение восьми графических объектов от р1 до р8. Среди них цилиндр, две пересекающие его плоскости и иные (в том числе текстовые) объекты. Обратите внимание на способ вывода этих объектов функцией display3d. Этот пример показывает, что с помощью графических программных средств Maple 9 можно строить достаточно замысловатые графики, которые могут использоваться для визуализации тех или иных геометрических и иных объектов.
8.12.4. Визуализация дифференциальных параметров кривых
Дифференциальные параметры функции f(x), описывающей некоторую кривую, имеют большое значение для анализа ее особых точек и областей существования. Так, точки с нулевой первой производной задают области, где кривая нарастает (первая производная положительна) или убывает (первая производная отрицательна) с ростом аргумента х. Нули второй производной задают точки перегиба кривой.
Для такого анализа особенно удобен новый пакет Calculus 1, включенный в пакет расширения Student. На рис. 8.73. показано применение функции FunctionChart для визуализации дифференциальных параметров кривой, которая представляет собой сложную функцию. По умолчанию анализ ведется в интервале изменения х от -10 до +10. Экстремальные точки помечаются ромбиком, точки перегиба крестиком, нули кружочками, а области кривых — заливкой цветом.

Рис. 8.73. Анализ и визуализация сложной функции, заданной функцией пользователя
Рисунок 8.73 дает наглядное представление о поведении заданной функции. Рекомендуется опробовать данную процедуру на других функциях. Следует отметить, что, поскольку процедура использует функции minimize и maximize, она может давать сбои при исследовании сложных функций, содержащих специальные математические функции или особенности. Данная процедура дает хорошие результаты при анализе функций, представленных полиномами.
Функция FunctionChart может использоваться с многочисленными опциями, существенно влияющими на вид рисунка — рис. 8.74. В данном случае анализируется функция sin(x)/x.

Рис. 8.74. Визуализация функции sin(x)/x
Визуализация функций весьма полезна в учебных целях при детальном изучении свойств той или иной функции.
8.12.5. Анимация колебаний мембраны
В ряде случаев обычная техника анимации оказывается не очень подходящей из-за ограничений на выбор опций. Такова, например, ситуация, когда желательно обеспечить анимацию с большим числом кадров сложной поверхности, освещаемой от некоторого источника света. Пример такого рода представлен на рис. 8.75.

Рис. 8.75. Задание поверхности — мембраны
На рис. 8.76 задана упругая поверхность мембраны, закрепленной по периметру. Мембрана имеет ряд выпуклостей и впадин, переходящих друг в друга. Начальный вид мембраны представлен на рис. 8.76. Там же показано контекстное меню мыши, с помощью которой можно запустить анимацию — в том числе по кадрам.

Рис. 8.76. Организация анимации мембраны и ее начальное положение
А на рис. 8.77 представлен промежуточный кадр анимации, из которого хорошо виден ее характер. В частности, выпуклости мембраны переходят во впадины и наоборот. С учетом выбранной схемы освещения мембраны ее колебания выглядят очень эффектно и наглядно, что особенно ценно при использовании подобных примеров в образовании.

Рис. 8.77. Промежуточный кадр анимации поверхности мембраны
8.13. Визуализация поверхностей и параметров их полей
8.13.1. Визуализация экстремумов поверхности
Различные поля (электрические, гидравлические, гравитационные и иные) относятся к достаточно сложным понятиям, визуализация которых представляет значительные трудности в связи с большим объемом вычислений параметров поля, выполняемых во многих точках пространства с разными системами координат и отсутствием у людей органов для наблюдения полей.
В пакете VectorCalculus можно найти функции, которые совместно с графикой ряда других пакетов обеспечивают высокую степень визуализации полей с помощью стрелок, направления и размеры которых указывают на количественные оценки полей и изменения их градиентов в различных точках полей. Не вдаваясь в тонкости математической и физической интерпретации таких графических построений, приведем несколько примеров их выполнения, иллюстрирующих возможности рассматриваемого пакета в визуализации полей.
Рисунок 8.78 иллюстрирует поиск трех локальных экстремумом поверхности, представленной функцией двух переменных. Экстремумы — минимумы ищутся с помощью функции fsolve по нулям частных производных по поверхности, вычисляемым функцией cliff пакета VectorCalculus. Это расширяет методы поиска экстремумов функций двух переменных.

Рис. 8.78. Визуализация поиска локальных минимумов поверхности
В найденных точках минимумов размещены черные сферы, что позволяет наглядно представить положение точек минимума поверхности. Правда, сферы выглядят как эллипсоиды, поскольку при выводе графиков выравнивание масштабов изображения по всем трем осям не предусматривалось.
8.13.2. Визуализация поля функции и вихрей
На рис. 8.79 представлена визуализация стрелками поля функции F и вихря F_curl. Заинтересованному читателю нетрудно разобраться с тем, какие стрелки представляют эти графические объекты — к сожалению для их представления в виде черно-белого рисунка книги пришлось отказаться от цветового выделения стрелок, которое существенно повышает наглядность подобных графиков.

Рис. 8.79. Пример визуализации векторного поля функции и ее вихря
8.13.3. Визуализация поверхности и дивергенции ее поля
На другом рисунке (рис. 8.80) стрелками представлена трехмерная поверхность F, а сплошными линиями дивергенция ее поля, предварительно вычисленная в приведенном фрагменте документа.

Рис. 8.80. Пример визуализации поверхности стрелками и дивергенции ее поля
Эта техника визуализации может быть распространена и на другие характеристики поверхностей и полей.
8.13.4. Визуализация теоремы Стокса
С интегральными представлениями в теории поля связан ряд фундаментальных теорем Грина, Стокса, Остроградского и др. Средства пакета VectorCalculus открывают обширные возможности по наглядному представлению этих и иных положений теории поля. В качестве примера на рис. 8.81 представлена визуализация положений теоремы Стокса.

Рис. 8.81. Иллюстрация теоремы Стокса
8.13.5. Визуализация поля электрических зарядов
Рассмотрим поле двух точечных единичных зарядов, расположенных на расстоянии 0,25 м друг от друга. Нас интересует визуализация картины электрического поля между ними для случая, когда заряды равны по величине и противоположны по знаку. Воспользуемся упрошенной формулой для вычисления потенциала любой точки (х, у) из которой удален множитель 1/4πε. Рисунок 8.82 показывает применение этой формулы для построения трехмерного графика распределения потенциала для двух зарядов (положительного и отрицательного), расположенных на расстоянии 0,25 (единицы условные).

Рис. 8.82. Расчет и построение графика нормированного распределения поля двух зарядов противоположных знаков
Потенциал зарядов pot(x,y) представляет поверхность с пиком для положительного заряда в точке (0, 0) и впадиной в точке (0,25,0). Ввиду упрощения выражения для заряда точных данных эта зависимость не несет и используется для качественных представлений.
Так, в электротехнике, однако, чаще используют графики поля в виде контурных эквипотенциальных линий. Построение такого графика для поля и его градиента (графика напряженности поля) показано на рис. 8.83. К сожалению, функциональная окраска графика поля отчетливо видна лишь на экране цветного дисплея. Оцифровка линий контурного графика, к сожалению, не предусмотрена.

Рис. 8.83. Контурные графики электрического поля и его градиента
Иногда полезно отслеживать изменение графика электрического поля при изменении одного из зарядов. Рис. 8.84 показывает пример построения такого анимационного графика при изменении величины правого заряда с отрицательного на положительный. Представлен один из кадров анимации.

Рис. 8.84. Пример построения анимационного графика поля двух зарядов при изменении правого заряда
Большое число других примеров на вычисление параметров полей и визуализацию их можно найти в размещенных в Интернете (на сайте корпорации Waterloo Maple) пакетах Calculus IV и V.
8.14. Новые средства графики Maple 10
8.14.1. Новые средства двумерной графики в Maple 10
Возможности двумерной графики в системах Maple 9.5 и 10 практически равноценны. В Maple 10 расширены возможности форматирования двумерных графиков с помощью средств позиции Plot меню и контекстного меню правой клавиши мыши. Введена новая опция gridlines для функции plot, позволяющая выводить (в том числе раздельно по осям) линии масштабной сетки. Пример ее применения был представлен на рис. 1.49. Эта опция и новые формы синтаксиса функции plot доступны только при стандартном интерфейсе Maple 10 — при классическом интерфейсе они просто не работают.
8.14.2. Новые средства трехмерной графики в Maple 10
Незначительному улучшению подверглись средства трехмерной графики. Введена новая опция glossiness (лоск, глянец) улучающая вид графика при окраске поверхности. Ее влияние иллюстрирует рис. 8.85 (сверху).

Рис. 8.85. Трехмерная графика в Maple 10
Здесь также особенно важно отметить возможность форматирования уже построенных графиков с помощью средств позиции Plot меню и контекстного меню правой клавиши мыши. Последнее показано на рис. 8.85 для нижнего рисунка, в котором показан пример применения функции plot3d в обычном виде (без новой опции).
8.14.3. Графические наброски в Maple 10
В Maple 10 введены новые графические объекты — наброски (sketch — набросок). Они напоминают бумагу, разлинованную в клетку, на которой можно рисовать электронным карандашом (pencil) или распылителем (Highlighter). Есть также стиралка Eraser. Вставка наброска (см. рис. 8.86) выполняется командой sketch в позиции меню Insert. Средства работы с набросками сосредоточены в специальной позиции меню Sketch, представленной на рис. 8.86 в открытом виде.

Рис. 8.86. Пример вставки наброска и рисования в нем
Те же самые средства имеются в контекстном меню правой клавиши мыши. Для редактирования набросков служит команда Canvas Style. которая выводит окно редактирования, представленное на рис. 8.87. В окне можно задавать вывод вертикальным и горизонтальных линий сетки, устанавливать расстояние между ними (шаг) и изменять цвета объектов наброска — линий разметки и фона. Окно выбора цвета показано также на рис. 8.87.

Рис. 8.87. Окно редактирования набросков (слева) и окно установки цвета (справа)
Команда Stroke Styles… открывает окно установки стиля карандаша и распылителя, показанное на рис. 8.88 с открытой вкладкой карандаша. Помимо заведомо определенных стилей можно задать свой собственный стиль и установить для него толщину линии и ее цвет. Аналогичные средства для распылителя есть на второй вкладке этого окна.

Рис. 8.88. Окно установки стилей карандаша и распылителя
Представленные выше графики записаны в файл newg_m10. Применение графических набросков разнообразит документы системы Maple 10
Реализация графики на плоскости и в пространстве в системах maple и maxima

Пример 1. Построить график функции, заданной в декартовой системе координат .
- plot((x-2)^2,x=-10..10,y=-10..10,title=парабола);
Пример 2 . Построить график функции, заданной параметрически
- plot([t-sin(t),1-cos(t),t=0..2*Pi],title=циклоида,color=black);
Пример 3. Построить линии, заданные уравнениями в полярных координатах
- plot([4/(1-cos(t)),t,t=0..2*Pi],x=-10..10,y=-10..10,coords=polar);
Пример 4. Построить поверхность , заданную неявно.
- with(plots):implicitplot3d( ,x=-10..10,y=-10..10,z=-10..10,axes=NORMAL,tickmarks=[1,5,5]);
Общие сведения о Maxima
- Maxima – система для работы с символьными и численными выражениями, включающая дифференцирование, интегрирование, разложение в ряд, преобразование Лапласа, обыкновенные дифференциальные уравнения, системы линейных уравнений, многочлены, множества, списки, векторы, матрицы и тензоры.
Построение графиков в Maxima
- Maxima позволяет строить двумерные и трехмерные графики в декартовых или полярных системах координат. Для построения двумерного графика можно использовать либо диалоговое окно пункта «Plot 2d…» из вкладки «Графики», либо команду «plot2d(f(x),[x,a,b]);», где f(x) – функция, график которой необходимо построить, x – переменная, а – левая граница, b – правая граница.
Пример 5. Построить график функции sin x на отрезке [-2π,2π]:
![Пример 6. Построить на одной координатной плоскости графики функций sin x и cos 2x на отрезке [-2π,2π]](https://fsd.videouroki.net/html/2018/03/08/v_5aa171728e2c1/img11.jpg)
Пример 6. Построить на одной координатной плоскости графики функций sin x и cos 2x на отрезке [-2π,2π]

Построение графика в полярных координатах

Пример 7. Построение графика листа Мёбиуса.

-80%
1.2.1 Графика в Maple
Maple поддерживает как двумерную, так и трехмерную графику. Можно графически представить явные, неявные и параметрические функции, а также наборы данных.
Графические средства Maple позволяют строить двухмерные графики сразу нескольких функций, создавать конформные графики функций с комплексными числами и строить графики функций в логарифмической, двойной логарифмической, параметрической, фазовой, полярной и контурной форме. Можно графически представлять неравенства, неявно заданные функции, решения дифференциальных уравнений и корневые годографы. Также имеются все возможности для выбора шрифтов для названий, надписей и другой текстовой информации на графиках.
Maple может строить поверхности и кривые в трехмерном представлении, включая поверхности, заданные явной и параметрической функциями, а также решениями дифференциальных уравнений. Имеется возможность изменения качества вывода графика на экран путем изменения таких параметров, как шрифты, яркость и цвет.
Maple поддерживает двух- и трехмерные анимации. Эту особенность системы можно использовать для отображения процессов, протекающих в режиме реального времени.
Делись добром
Похожие главы из других работ:
Глава 2. Решение социально-экономических задач в математическом пакете Maple
Рассмотрим примеры решения задач на дифференциальных и разностных уравнениях главы 1 в математическом паке Maple.
1.2 Дополнительные возможности Maple
1.2.3 Финансовые вычисления в Maple
Для финансовых расчетов предназначен программный пакет finance. C его помощью можно вычислять текущую и накопленную сумму ежегодной ренты, совокупную ежегодную ренту, сумму пожизненной ренты, совокупную пожизненную ренту.
2. Применение аналитических, и численных и графических возможностей системы maple для моделирования физичечских явлений
Моделирование — исследование объектов познания на их моделях; построение и изучение моделей реально существующих объектов, процессов или явлений с целью получения объяснений этих явлений, а также для предсказания явлений.
3. Использование графики и анимации в системе Maple в педагогическом процессе
Пожалуй, одно из наиболее впечатляющих свойств программы Maple — превосходная графика. Команды построения графиков и анимации Maple позволяют удовлетворить большинство научных и инженерных потребностей.
1.2 Maple и Mathematica
Maple предоставляет удобную среду для компьютерных экспериментов, в ходе которых пробуются различные подходы к задаче, анализируются частные решения, а при необходимости программирования отбираются требующие особой скорости фрагменты.
2. Проект в Maple
2.2 Спектральная анализ сигнала в Maple
Ниже приведены команды системы математических вычислений MAPLE с комментариями и минимальными пояснениями используемых алгоритмов. Эти команды, набранные красным цветом, необходимо последовательно выполнять, нажимая клавишу Enter.
3.2.3 Код программы «Maple.m»
1. Построение формального решения на входном Maple-языке
Проблема решения дифференциальных уравнений в частных производных средствами MAPLE представляет собой программную задачу.
Глава 2. Maple для транспортной задачи
§1. Введение в Maple
Системы компьютерной алгебры (СКА) находят все более широкое применение во многих областях науки таких как: математика, физика, химия, информатика и т.д., техники, технологии, образовании и т.д. СКА типа Maple, Mathematica, MuPAD, Macsyma, Axiom.
§2. Управляющие структуры ветвления Maple языка (if предложение)
Достаточно сложные алгоритмы вычислений, обработки информации и/или управляющие (в первую очередь) не могут обойтись сугубо последовательной схемой, а включают различные конструкции.
§1.2 Maple-язык и его синтаксис
Знаки алфавита Язык Maple (или Maple-язык) является одновременно входным языком общения с Maple 7 и языком ее программирования. Входящие в него средства (прежде всего операторы и функции) подобраны настолько полно и удачно.
Задание 2. Технология работы в среде СКМ Maple
Вариант 4 · Численность студентов на 10 тыс. человек населения описывается следующей зависимостью: , где х — период. Построить кривую изменения численность студентов за 2000 — 2015 гг.
Похожие публикации:
- Где зарегистрирован telegram
- Где находятся файлы telegram
- Для чего предназначена функция root в mathcad
- Как в archicad поменять язык на русский
Как менять масштаб графиков в maple
Построение графиков в пакете Maple /Сост.: А.А.Оленев, К.М. Сагдеев: СГПИ. –Ставрополь, 2013. — __ с.
В работе рассмотрены приемы и методы построения различных графиков в пакете компьютерной математики Maple. Основное внимание уделено построению графиков, которые требуется строить при решении задач дисциплины «Математика». Методическая разработка будет полезна студентам всех специальностей дневного и заочного обучения СГПИ, применяющих при решении задач по математике систему компьютерной алгебры Maple.
1. Графики на плоскости и в пространстве . 5
2. Функция plot построения графиков на плоскости . 5
2.1. График явно заданной функции . 5
2.2. Построение графика функции, заданной процедурой . 6
2.3. График параметрически заданной функции . 7
2.4. График функции, заданной параметрически процедурами . 8
2.5. График, построенный по точкам, заданным декартовыми
2.6. Опции функции plot . 10
1) опция настройки осей координат . 10
2) опция задания цвета кривой графика . 12
3) опция выбора системы координат . 12
4) опция, учитывающая разрывы кривой графика . 12
5) опция, заполнения цветом области между кривой и осью абсцисс. ..14
6) опция, определяющая стиль построения линии графика . 14
7) опция, определяющая число точек, по которым строится график . 15
8) опция, определяющая соотношение равного масштаба на осях . 15
9) опция, определяющая толщину линии . 15
10) опция, определяющая размеры окна построения графика . 15
3. Функция plot3d построения графиков в пространстве . 15
3.1. График функции двух переменных . 16
3.1. График поверхности, заданной параметрически . 17
4. Пакет построения графиков plots . 19
4.1. График неявно заданной функции одной переменной . 20
4.2. Текстовые графики на плоскости . 21
4.3. Комбинированные графики . 22
5. Графические построения при решении задач дисциплины «Математика»
5.1. Исследование функций и построение их графиков . 24
5.2. Построение графиков областей на плоскости, ограниченных
заданными кривыми . 28
5.3. Построение областей в пространстве, ограниченных заданными
5.4. Построение графиков частичных сумм степенного ряда . 33
5.5. Построение графиков периодических функций и графиков
частичных сумм ряда Фурье . 34
6. Построение графика корреляционной таблицы . 37
Библиографический список . 40
Необходимость построения графиков функций, чертежей геометрических фигур в тетради или на листах ватмана, возникает при решении задач по алгебре и геометрии в школе, при изучении различных разделов дисциплины «Математика» в вузе. Кроме того, потребность в таких построениях возникает при научных исследованиях и на производстве.
До появления компьютерной графики, построение графиков функций и чертежи фигур приходилось делать вручную, используя самые различные инструменты и приспособления, такие как линейки, циркули, кульманы и другие. При этом, нередко, для выполнения построений приходилось выполнять значительное количество предварительных расчетов и, если в этих расчетах появлялись ошибки, то всю работу приходилось переделывать заново.
Появление компьютеров и программ компьютерной графики избавило от многих рутинных расчетов и ручной работы, которую надо было выполнить, чтобы сделать графические построения. Теперь любой человек, владеющий навыками работы с компьютером и установленными на нем программами компьютерной графики, может построить самые сложные графики и фигуры на экране компьютера и затем, если нужно, распечатать их с помощью принтера или плоттера.
Среди программ компьютерной графики существуют как простые графические программы, позволяющие строить простые фигуры и графики, так и мощные профессиональные программы технической графики среди которых можно отметить, например, программу AutoCad. К одной из лучших графических программ относится также программа Visio, входящая в настоящее время, в расширенный пакет семейства офисных программ Microsoft Office.
Возможности графических построений имеют также и многие программы, не являющиеся, по сути, графическими программами. Рисунки, например, можно выполнить прямо в текстовом редакторе Word, а строить различные графики можно в электронных таблицах Exel. Мощными графическими возможностями обладают также пакеты компьютерной математики Maple, Mathematica, MathCad,MatLab. При этом эти возможности сочетаются с возможностями математических вычислений и расчетов, чтобы наглядно представить эти расчеты в виде фигур и графиков.
В данной работе рассматриваются возможности графических построений, которые можно выполнить в системе компьютерной математики Maple. Из огромного арсенала возможностей графических построений, которые можно сделать в этой программе, упор сделан на построение графиков и фигур, которые требуется выполнить при решении различных математических задач, встречающихся при изучении дисциплины «Математика».
Графика в Maple — понятие и виды. Классификация и особенности категории «Графика в Maple» 2017, 2018.
Ни для кого не секрет – сегодня, чтобы не затеряться на просторах Internet и привлечь к себе внимание пользователей, никак нельзя обойтись без графического оформления Web–страниц и узлов. Однако здесь на пути разработчиков возникает проблема: графические технологии для Web не. [читать подробнее].
Государственное образовательное учреждение высшего профессионального образования «ОМСКИЙ ГОСУДАРСТВЕНЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ» Факультет гуманитарного образования Кафедра философии и социальных коммуникаций Специальность 030901 «Издательское дело и. [читать подробнее].
Государственное образовательное учреждение высшего профессионального образования «ОМСКИЙ ГОСУДАРСТВЕНЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ» Факультет гуманитарного образования Кафедра философии и социальных коммуникаций Специальность 030901 «Издательское дело и. [читать подробнее].
Специализированные приложения Maple Обширный набор мощных инструментальных приложений Maple PowerTools и пакетов для таких областей, как анализ методом конечных элементов (FEM), нелинейная оптимизация и др., полностью удовлетворят пользователей с университетским. [читать подробнее].
Интернет-совместимость Maple Maple является первым универсальным математическим пакетом, который предлагает полную поддержку стандарта MathML 2.0, управляющего как внешним видом, так и смыслом математики в Интернете. Эта эксклюзивная функция делает текущую. [читать подробнее].
Maple (http://www.maplesoft.com/) Минимальные требования к системе: • процессор Pentium III 650 МГц; • 128 Мбайт оперативной памяти (рекомендуется 256 Мбайт); • 400 Мбайт дискового пространства; • операционные системы: Windows NT 4 (SP5)/98/ME/2000/2003 Server/XP Pro/XP Home. Программа Maple (последняя версия 10.02) —. [читать подробнее].
Рабочие окна (листы) системы Maple могут быть использованы либо как интерактивные среды для решения задач, либо как система для подготовки технической документации (Рисунок 2.18). Рисунок 2.18 – Рабочие окна Maple Исполнительные группы и электронные таблицы упрощают. [читать подробнее].
Систему Maple можно использовать и на самом элементарном уровне ее возможностей — как очень мощный калькулятор для вычислений по заданным формулам, но главным ее достоинством является способность выполнять арифметические действия в символьном виде, то есть так, как. [читать подробнее].
В качестве более простых, но идеологически близких альтернатив программе Maple можно отметить такие пакеты, как Derive (http://www.chartwellyorke.com/derive.html), Scientific WorkPlace (http://www.mackichan.com/) и YaCaS (www.xs4all.nl/
apinkus/yacas.html). Как мы уже говорили, система Scientific WorkPlace (SWP, текущая версия 5.5) (Рисунок 2.22,2.23). [читать подробнее].
Рис 4.1 Выпуск продукции по месяцам Персонал предприятия, производительность труда и заработная плата . [читать подробнее].
Графика в системе Maple V
Лидером по графическим возможностям среди математических систем для персональных компьютеров долгое время считалась система 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=NORMAL — обычные оси, выводятся по умолчанию, axes=BOXES — график заключается в рамку с оцифрованными осями, axes=FRAME — оси в виде перекрещенных линий и axes=NONE — оси •не выводятся).
Задает цвет кривых (см. далее).
Задание типа координатных систем (см. далее).
Задает минимальное количество точек графика (по умолчанию numpoints=49).
Задает горизонтальное разрешение устройства вывода (по умолчанию resolutions-200, параметр используется при отключенном адаптивном методе построения графиков).
Задает масштаб графика CONSTRAINED (сжатый) или UNCONSTRAINED (несжатый — по умолчанию).
Задает размер шрифта в пунктах.
Задает стиль построения графика (POINT — точечный, LINE — линиями).
Задает вид символа для точек графика (возможны значения BOX — прямоугольник, CROSS — крест, CIRCLE — окружность, POINT — точка, DIAMOND — ромб).
Задает построение заголовка графика (title=«string», где string — строка).
Определяет шрифт для заголовка (так же как и для font).
Определяет шрифт для меток (labels) на осях координат (так же как и для font).
Определяет толщину линий графиков (0, 1,2,3, по умолчанию 0).
Определяет максимальные и минимальные координаты, в пределах которых график будет отображаться на экране, А = [xmin..xmax], B=[ymin..углах] (по умолчанию отображается вся кривая).
Задает минимальное число отметок по оси X.
Задает минимальное число отметок по оси Y.
В основном задание параметров особых трудностей не вызывает. За исключением задания титульной надписи с выбором шрифтов по умолчанию — в этом случае не всегда поддерживается вывод символов кириллицы (русского языка). Подбором подходящего шрифта эту проблему удается решить.
13.1.3. Задание координатных систем 20-графиков и их пересчет
В версии Maple V R4 параметр coords задает 15 типов координатных систем для двумерных графиков. По умолчанию задана прямоугольная (Декартовая) система координат (coords=cartesian). При использовании других координатных систем координаты точек для них (u,v) преобразуются в координаты (х,у) как (u, v) -> (x, у). Ниже приведены наименования систем координат (значении параметра coords) и соответствующие формулы преобразования:
х = sinh(v)/(cosh(v)-cos(u)) у = sin(u)/(cosh(v)-cos(u))
x = cosh(u)*cos(v) у = sinh(u)*sin(v)
invcassinian
invelliptic
logarithmic
x = ii/Pi*ln(u’2+v’2) у = 2*a/Pi*arctan(v/u)
x = a/Pi*n(c.osh(uy2-sm(vy2> у = 2*a/Pi*arctan(tanh(u)*tan(v))
x = a/Pi*(u+l+exp(u)*cos(v)) у = a/Pi*(v+exp(u)*sin(v))
x = (u’2-v^2)/2 у = u*v
x = u*cos(v) у = u*sin(v)
13.1.4. Управление стилем и цветом линий 20-графиков
Maple V R4 позволяет воспроизводить на одном графике множество кривых. При этом возникает необходимость из выделения. Для этого можно использовать построение линии разными стилями и разными цветами и разной толщиной линий. Набор средств выделения кривых позволяет уверенно различать их как на экране цветного дисплея и распечатках цветным струйным принтером, так и при печати монохромными принтерами.
Параметр style позволяет задавать следующие стили для линий графиков:
SPISV = POINT или point — график выводится по точкам;
LINE или line — график выводится линией.
Если задано построение графика точками то параметр symbol позволяет представить точки в виде различных символов, например, прямоугольника, креста, окружности или ромба.
Другой параметр color позволяет установить обширный набор цветов линий графиков:
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
Различные цветовые оттенки получаются использованием RGB-комбинаций базовых цветов: red — красный, green — зеленый, blue — синий. Приведем перевод ряда других комбинированных цветов: black — черный, white — белый, khaki — цвет «хаки», gold — золотистый, orange — оранжевый, violet — фиолетовый, yellow — желтый и т.д. Перевод цветов некоторых оттенков на русский язык не всегда однозначен и потому не приводится. Средства управления стилем графиков дают возможность легко выделять различные кривые на одном рисунке, даже если для выделения не используются цвета.
13.2. Примеры построения основных типов 20-графиков
13.2.1. Построение графиков одной функции
При построении графика одной функции она записывается в явном виде на место шаблона f. Примеры построения графика одной функции представлены на рис. 13.1. Обратите внимание на то, что график функции sin(x)/x строится без
характерного провала в точке х=0, который наблюдается при построении графиков этой функции многими программами. Он связан с используемым в них правилом — функция задается равной нулю, если ее числитель равен нулю. Данная функция в этой точке дает устранимую неопределенность 0/0->1, что и учитывает графический процессор системы Maple V.
Рис. 13.1. Примеры построения графиков одной функции.
При построении графиков одной функции могут быть введены указатели масштабов и различные опции, например задания цвета кривой, толщины линии, которой строится график функции и другие параметры. К примеру, запись в списке параметров со1ог=0 (не документированная возможность) или запись color=black задают вывод кривых черным цветом, а запись thinkness=2 задает во втором примере рис. 13.1 построение графика линией, удвоенной в сравнении с обычной толщиной.
13.2.2. Управление масштабом графиков
Для управления масштабом графиков служат указатели масштабов. В ряде случаев их можно не применять и система автоматически задает приемлемые масштабы. Однако их явное применение позволяет задать масштаб «вручную». Иногда соответствующее задание масштаба случайно или целенаправленно ведет к отсечению части графика — например на рис. 13.2 в первом примере отсечена верхняя часть графика.
Правильный выбор масштаба повышает представительность графиков функций. Рекомендуется вначале пробовать строить такие графики с автоматическим масштабированием, а уже затем использовать указатели масштабов.
13.2.3. Графики функций в неограниченном масштабе
Изредка встречаются графики функций цх), которые надо построить при изменении значения х от нуля до бесконечности или даже от минус бесконечности до
Рис. 13.2. Построение графиков функции с явным указанием масштаба.
плюс бесконечности. Бесконечность в таких случаях задается в указателях масштаба как особая константа infinity. В этом случае масштаб автоматически меняется по ходу построения графика. Рис. 13.2 (второй пример) иллюстрирует сказанное. Пересчет значении координаты х, устремляющейся в бесконечность, выполняется с помощью функции для арктангенса.
13.2.4. Графики функций с разрывами
Некоторые функции, например tan(x), имеют при определенных значениях х разрывы, причем случается что значения функции в этом случае устремляются в бесконечность. Функция tan(x), к примеру, в точках разрывов устремляется к +°° и -°°. Построение графиков таких функций нередко дает плохо предсказуемые результаты. Графический процессор Maple V не всегда в состоянии определить оптимальный масштаб по оси ординат, а график функции выглядит весьма непредставительно — если не сказать безобразно (см. рис. 13.3 — первый пример).
Среди параметров функции plot есть специальный параметр discont. Если задать его значение равным true, то качество графиков существенно улучшается — см. рис. 13.3 — второй пример. Улучшение достигается разбивкой графика на несколько участков, в которых функция непрерывна, и более тщательным контролем за масштабом.
13.2.5. Построение графиков нескольких функций на одном рисунке
Важное значение имеет возможность построения на одном рисунке графиков нескольких функций. В простейшем случае (рис. 13.4 первый пример) для построения таких графиков достаточно перечислить нужные функции и установить для них общие масштабы.
Рис. 13.3. Построение графиков функции с разрывами.
Обычно графики разных функций автоматически строятся разными цветами. Но они не всегда удовлетворяют пользователя — например, при распечатке графиков монохромным принтером некоторые кривые могут выглядеть слишком блеклыми или даже не пропечататься вообще. Используя списки параметров color (цвет линии) и style (стиль линий) можно добиться выразительного выделения кривых — это показывает второй пример на рис. 13.4.
Рис. 13.4. Графики трех функции на одном рисунке.
На рис. 13.5 показан еще один пример такого рода. Здесь построен график функции sin(x)/x и график ее полиномиальной аппроксимации. Она выполняется настолько просто, что соответствующие функции записаны прямо в списке параметров функции plot.
Рис. 13.5. График функции sin(x)/x и ее полиномиальной аппроксимации.
В данном случае сама функция построена сплошной линией, а график полинома — крестиками. Хорошо видно, что при малых х аппроксимация дает высокую точность, но затем с ростом х погрешность ее резко возрастает.
Рис. 13.6 показывает построение нескольких любопытных функций, полученных с помощью комбинаций элементарных функций. Эти комбинации позволяют получать периодические функции, моделирующие сигналы стандартного вида в технических устройствах: в виде напряжения на выходе двухполупериодного выпрямителя, симметричных прямоугольных колебаний (меандр), пилообразных и треугольных импульсов, треугольных импульсов со скругленной вершиной.
В этом рисунке запись axes=NONE убирает координатные оси. Обратите внимание, что смещение графиков отдельных функций вниз с целью устранения их наложения достигнуто просто прибавлением к записи каждой функции некоторой константы.
13.2.6. Построение графиков функций, заданных отдельными точками
Показанный на рис. 13.5 график полинома, построенный крестиками, не означает, что полином представлен отдельными точками. В данном случае просто выбран стиль линии в виде точек, представленных крестиками. Однако, часто возникает необходимость построения графиков функции, которые представлены просто совокупностью точек. Она может быть создана искусственно, как на рис. 13.7, либо просто задаваться списком координат х и значений функции.
Рис. 13.6. Построение графиков нескольких любопытных функции.
Рис. 137. Формирование списка отдельных точек функции и их построение на графике.
В данном случае переменная Р имеет вид списка, в котором попарно перечислены координаты точек функции sin(x). В этом нетрудно убедиться, заменив знак «:» после выражения, задающего Р на знак «;». Далее по списку Р построен график точек в виде крестиков, которые отображают отдельные значения функции sin(x).
На рис. 13.8 показано построение графиков функций по точкам при явном задании функции списком координат ее отдельных точек. В первом примере эти
точки соединяются отрезками прямых, так что получается кусочно-линейный график. Видно также, что указание типа точек после указания стиля линии игнорируется, — а жаль, было бы неплохо, чтобы наряду с кусочно-линейной линией графика строились и выделенные окружностью точки.
Рис. 13.8. Построение графика функции явно заданной отдельными точками.
Во втором примере рис. 13.8 показано построение только точек заданной функциональной зависимости. Они представлены маленькими кружками.
Читателю предлагается совместить самому оба подхода к построению графиков по точкам и создать график в виде отрезков прямых, соединяющих заданные точки функции, представленные кружками или крестиками.
13.2.7. Построение графиков функций, заданных их именами
Способность Maple V к упрощению работы пользователя просто поразительна — жаль только, что многие возможности этого становятся ясными после основательного изучения системы, на что уходят увы не дни, а месяцы, а то и годы. Применительно к графике одной их таких возможностей является построение графиков функций, заданных только их функциональными именами — даже без указания параметров в круглых скобках. Такую возможность наглядно демонстрирует рис. 13.9.
Этот пример показывает, что возможно построение графиков функций даже без применения в команде plot указателей масштабов. При этом масштаб по горизонтальной оси устанавливается равным по умолчанию -10..10, а по вертикальной оси устанавливается автоматически в соответствии с экстремальными значениями функций в указанном диапазоне изменения независимой переменной — условно х.
Рис. 13.9. Построение графиков четырех функции, заданных только их именами.
13.2.8. Построение графиков функции с ординатами, заданными вектором
Часто возникает необходимость построения графика точек, ординаты которых являются элементами некоторого вектора. Обычно при этом предполагается равномерное расположение точек по горизонтальной оси.
Пример построения такого графика дан на рис. 13.10.
Из этого примера нетрудно заметить, что данная задача решается составлением списка парных значений координат исходных точек — к значениям ординат точек, взятых из вектора добавляются значения абсцисс. Они задаются чисто условно, поскольку никакой информации об абсциссах точек в исходном векторе нет. Так что фактически строится график зависимости ординат точек от их порядкового номера п.
13.2.9. Построение графиков функций, заданных процедурами
Некоторые виды функций, например кусочные, удобно задавать процедурами. Построение графиков функций, заданных процедурами, не вызывает никаких трудностей и иллюстрируется рис. 13.11.
Здесь, пожалуй, полезно обратить внимание на то, что когда в функции plot указывается имя процедуры без списка ее параметров, то указатель масштаба должен просто указывать пределы графических построений по оси х.
Рис. 13.10. Построение графика точек с ординатами, заданными элементами вектора.
Рис. 13.11. Построение графика функций, заданных процедурами
13.2.10. Построение графиков функций, заданных функциональными операторами
Еще одна «экзотическая» возможность функции plot — построение графиков функций, заданных функциональными операторами. Она иллюстрируется рис. 13.12.
Рис. 13.12. Построение графиков функции, заданной функциональными операторами.
Имена функции (без указания списка параметров в круглых скобках тоже по существу являются функциональными операторами. Так что и они могут использоваться при построении графиков упрощенными способами.
13.2.11. Построение графиков функций, заданных параметрически
В ряде случаев для задания некоторых зависимостей используются заданные параметрически уравнения, например x=fl(t) и y=f2(t) при изменении переменной t в некоторых пределах. Точки (х,у) наносятся на график в Декартовой системе координат и соединяются отрезками прямых. Для этого используется функция plot в следующей форме:
Если функции fl(t) и f2(t) содержат периодические функции (например, тригонометрические), то для получения замкнутых фигур диапазон изменения переменной t задается обычно 0..2*Pi или -Pi..Pi. К примеру, если задать в качестве функций fl(t) и f2(t) функции sin(t) и cos(t), то будет получен график окружности. Рис. 13.!3 показывает другие, чуть менее тривиальные примеры построения графиков такого рода.
Задание указателей масштаба h и v, а также параметров р не обязательно. Но, как и ранее, позволяет получить вид графика, удовлетворяющий всем требования пользователя.
Рис. 13.13. Построение функции, заданных параметрически.
13.2.12. Построение графиков функций в полярной системе координат
Графики в полярной системе координат представляют собой линии, которые описывает конец радиус вектора r(t) при изменении угла t в определенных пределах — от tmin до tmax. Построение таких графиков производится также функцией plot, которая записывается в следующем виде:
Здесь существенным моментом является задание полярной системы координат опцией coords=polar. Рис. 13.14 дает примеры построения графиков функций в полярной системе координат.
Графики параметрических функций и функций в полярной системе координат отличаются огромным разнообразием. Снежинки и узоры мороза на стеклах, некоторые виды кристаллов и многие иные физические объекты подчиняются математическим закономерностям, положенным в основу построения таких графиков.
13.3. Построение ЗО-графиков с помощью функция plot3d
13.3.1. Особенности применения функции plot3d
Для построения графиков трехмерных поверхностей Maple имеет встроенную в ядро функцию plot3d. Она может использоваться в следующих форматах:
Рис. 13.14. Построение графиков функций в полярной системе координат.
plot3d(exprl, x=a..b, y=c..d,p) plot3d(f, a..b, c..d,p)
plot3d([exprf,exprg,exprh], s=a..b, t=c..d,p) plot3d([f,g,h], a..b, c..d,p).
В двух первых формах plot3d применяется для построения обычного графика одной поверхности, в других формах — для построения графика с параметрической формой задания поверхности. В приведенных формах: f, g и h — функции, expri — выражение, отражающее зависимость от х и у, exprf, exprg и exprh — выражения, задающие поверхность параметрически, s, t, а и b — числовые константы действительного типа, end — числовые константы или выражения действительного типа, х, у, s и t — имена независимых переменных и р — параметры-опции. Параметры для функции plot3d задаются аналогично их заданию для функции plot.
13.3.2. Параметры функции plot3d
С помощью параметров р можно в широких пределах управлять видом трехмерных графиков, выводя или убирая линии каркасной сетки, вводя функциональную окраску поверхностей, меняя угол их обзора и параметры освещения, изменяя вид координатных осей и т.д.
Следующие параметры функции plot3d задаются аналогично их заданию для функции plot:
axesfont font color coords font labelfont linestyle numpoints scaling style symbol thickness title titlefont
Однако функция plot3d имеет ряд дополнительных специфических параметров:
Задает интенсивность красного (red), зеленого (green) и синего (blue) цветов в относительных единицах (от 0 до 1).
Задает вид координатных осей (BOXED, NORMAL, FRAME и NONE, по умолчанию NONE).
Задает число линии каркаса поверхности.
Задает стиль линий каркаса х ( ‘rectangular’ или ‘triangular’).
Задает надписи по осям (х, у и z — строки, по умолчанию пустые).
Задает углы, под которыми расположен источник освещения поверхности и интенсивности составляющих (г, g и b) цвета.
Задает режим яркости (соответственно, none», ‘lightl’, ‘light2’, ‘light3’ и ‘light4’).
Задает углы ориентации поверхности (по умолчанию 45 градусов).
Задает перспективу при обзоре поверхности (г может быть числом 0 или 1, задающим включение или выключение перспективы, а также одной из строк ‘FISHEYE’, ‘NORMAL’, или ‘ORTHOGONAL’ (это соответствует численному значению г 0, 0.5, или 1, соответственно, причем по умолчанию задано projection = ORTHOGONAL).
Задает направления, по которым меняется цвет функциональной окраски (значения s могут быть XYZ, XY, Z, ZGREYSCALE, ZHUE, NONE).
Задает характер маркировки по осям х, у и z (числа 1, п и m имеют значения не менее 1).
view=zmin..zmax или Ixmin..xmax,ymin.. ymax,zmin..zmax]
Задает минимальные и максимальные координаты поверхности для ее видимых участков.
13.3.3. Выбор и пересчет координат ЗО-графиков
Для трехмерных графиков возможно задание 31-го типа координатных систем с помощью параметра соога5=Тип_координатнои_системь1. Поскольку на экране дисплея поверхность отображается только в прямоугольной системе координат и характеризуется координатами х, у и z, то для представления поверхности, заданной в иной системе координат с координатами u, v и w используются известные [46,47] формулы для преобразования (u, v, w) —> (х, у, z). Ниже представлены типы координатных систем для трехмерной графики и соответствующие формулы преобразования:
bipolarcylindrical
х = a*sinh(v)/(cosh(v)-cos(u)) у = a*sin(u)/(cosh(v)-cos(u)) z = w
bispherical
х = sin(u)*cos(w)/d у = sin(u)*sin(w)/d z = sinh(v)/d (где d = cosh(v) — cos(u) )
cardiodcylindrical
casscylindrical
confocalellip
x = u*cos(y) у = u*sin(y) z = w
x = a*cosh(u)*cos(v) у = a*sinh(u)*sin(v) z = w
x = a*cosh(u)*cos(v)/(cosh(ur2-sin(v)»2) у = a*sinh(u)*sin(v)/(cosh(u)»2-sin(v)
x = a*cosh(u)*sin(v)*cos(w)/(cosh(u)»2-cos(v)«2) у = a*cosh(u)*sin(v)*sin(w)/(cosh(u)’2-cos(v)»2) z = a*sinh(u)*cos(v)/(cosh(u)«2-cos(v)’2)
x = a*sinh(u)*sin(v)*cos(w)/(cosh(u)’2-sin(v)»2) у = a*sinh(u)*sin(v)*sin(w)/(cosh(u)«2-sin(v)«2) z = a*cosh(Ll)*cos(v)/(cosh(u)»2-s^n(v)•2)
x = !i/Pi*n(cosh(uY2-sm(vY2> у = 2*a/Pi*arctan(tanh(u)*tan(v)) z = w
maxwellcylindrical
x = a/Pi*(u+l+exp(u)*cos(v)) у = a/Pi*(v+exp(u)*sin(v)) z = w
oblatespheroidal
x = a*cosh(u)*sin(v)*cos(w) у = a*cosh(u)*sin(v)*sin(w) z = a*sinh(u)*cos(v)
paraboloidal
paraboloidal2
paracylindrical
x = (u’2 — v’2)/2 у = u*v z = w
prolatespheroidal
x = a*sinh(u)*sin(v)*cos(w) y=a*sinh(u)*sin(v)*sin(w) z=a*cosh(u)*cos(v)
rectangular
x = и у = v • z = w
rosecylindrical
x = u*cos(v)*sin(w) у = u*sin(v)*sin(w) z = u*cos(w)
tangentcylindrical
x = u/(ir2+v»2) у = v/(u«2+v»2) z = w
tangentsphere
x = u-costwVdj^+v^) у = u*sin(w)/(ir2+v»2) z = v/(u»2+v
x = a*sinh(v)*cos(w)/d у = a*sinh(v)*sin(w)/d z = a*sin(u)/d (где d = cosh(v) — cos(u) )
Эти формулы полезно знать, поскольку в литературе встречаются несколько отличные формулы пересчета.
Вид графиков трехмерных поверхностей очень сильно различается в разных
координатных системах. По умолчанию трехмерные графики строятся в прямоугольной системе координат — rectangular.
13.4. Примеры построения трехмерных поверхностей с помощью функции plot3d
13.4.1. Простейшее построение ЗО-поверхности с разным стилем
На рис. 13.15 показано два примера простейших построений графиков трехмерной поверхности. По умолчанию строится каркасная поверхность с функциональной окраской тонких линий каркаса и удалением невидимых линий. Чтобы график выглядел более четким, построение в первом примере задано линиями черного цвета с помощью параметра color-black.
Рис. 13.15. Примеры простейшего построения трехмерных поверхностей.
Во втором примере та же поверхность построена с параметром style=patch, что приводит к появлению ее функциональной окраски (увы, на рисунках в книге воспринимаемой как окраска оттенками серого цвета). Функциональная окраска делает рисунки более информативными.
Помимо значения path, можно задавать ряд других стилей для построения трехмерных поверхностей: point — точками, contour — контурными линиями, line — линиями, hidden — линиями каркаса с удалением невидимых линий, wireframe — линиями каркаса со всеми видимыми линиями, patchnogrid — с раскраской, но без линий каркаса, patchcontour — раскраска с линиями равного уровня.
Цвет трехмерного графика может задаваться (как и у двумерного) опцией со1ог=с, где с — цвет (оттенки цвета указывались выше). Возможно еще два алгоритма задания цвета:
HUE — алгоритм с заданием цвета в виде color=f(x,y);
RGB — алгоритм с заданием цвета в виде color=[exprr,exprg,exprb], где выражения exprr, exprg и exprb — выражения, задающие относительную значимость (от О до 1) основных цветов (красного — red, зеленого — green и синего — blue).
Удачный выбор углов обзора фигуры и применение функциональной окраски позволяют придать построениям трехмерных фигур весьма эффектный и реалистический вид.
13.4.2. Построение фигур в различных системах координат
Как отмечалось, вид графика трехмерной поверхности существенно зависит от выбора координатной системы. Рис. 13.16 показывает пример построения нелинейного конуса в цилиндрической системе координат. Для задания такой системы координат используется параметр coords=cylindrical.
Рис. 13.16. Нелинейная цилиндрическая поверхность.
При построении этой фигуры также использована цветная функциональная окраска. Кроме того, этот пример иллюстрирует вывод над рисунком титульной надписи.
Приведем еще один пример построения трехмерной поверхности — на этот раз в сферической системе координат (рис. 13.17). Здесь функция задана вообще элементарно просто — в виде числа 1. Но поскольку выбрана сферическая система координат, то строится поверхность шара единичного радиуса.
При этом построении также задана функциональная окраска поверхности и вывод титульной надписи.
О том, насколько необычным может быть график той или иной функции в различных системах координат свидетельствует рис. 13.18. На нем показан график параметрически заданной функции от одной координаты t — sin(t»3), построенный в сферической системе координат.
Кстати, рис. 13.18 иллюстрирует возможность одновременного наблюдения более чем одного окна — в данном случае двух окон. В одном окне задано построение графика, а в другом — построен сам график. При построении графика в отдельном
Рис. 13.17. Построение шарообразной поверхности в сферической системе координат.
Рис. 13.18. График еще одной поверхности в сферической системе координат.
окне появляется панель форматирования графика. С помощью ее довольно наглядных кнопок-пиктограмм можно легко скорректировать вспомогательные параметры графика (окраску, наличие линий каркаса, ориентацию и др.).
13.4.3. Построение графиков параметрически заданных поверхностей
На рис. 13.19 показано построение поверхности при полном ее параметрическом задании. В этом случае поверхность задается тремя формулами, содержащимися в списке.
Рис. 3.19. График ЗО-поверхности при полном параметрическом ее задании.
В данном случае функциональная окраска задана из меню, поэтому в состав функции соответствующий параметр не введен.
13.4.4. ЗО-график как графический объект
Принадлежность функции plot и plot3D к функциям (в ряде книг их именуют операторами, командами или процедурами) наглядно выявляется при создании графических объектов.
Графический объект — это в сущности обычная переменная, которой присваивается значение графической функции. После этого такая переменная, будучи вызванной, вызывает построение соответствующего графика. Пример этого дан на рис. 13.20.
В данном случае строится кольцо Мебиуса, свойства которого (например, плавный переход с одной стороны ленты на другую) уже много веков будоражат воображение людей.
13.4.5. Задание 30-графики в виде процедуры
Язык программирования Maple V допускает применение в процедурах любых внутренних функций, в том числе графических. Пример такого применения дает рис. 13.21.
Рис. 13.20. Пример задания и вывода трехмерного графического объекта
Рис. 13.21. Пример создания и применения процедуры ЗО-графики.
Этот пример показывает еще один способ задания и построения кольца Мебиуса. Практически любые графические построения можно оформлять в виде процедуры и использовать такие процедуры в своих документах. Подробно создание графических процедур описано в книге [38], поставляемой в составе коммерческой реализации системы.
13.4.6. Построение ряда трехмерных фигур
Функция plot3d позволяет строить одновременно несколько фигур, пересекающихся в пространстве. При этом она обладает уникальной возможностью — автоматически вычисляет точки пересечения фигур и показывает только видимые части соответствующих фигур. Это создает графики фигур, выглядящие вполне естественно.
Для построения таких графиков достаточно вместо одной функции указать ряд функций. Пример такого построения для двух функций показан на рис. 13.22.
Рис. 13.22. Пример построения двух SD-фигур, пересекающихся в пространстве.
Фигура на рис. 13.22 показана после ее коррекции и функциональной окраски в «ручном» режиме — с применением инструментальной панели окна графики.
13.5. Графические структуры двумерной и трехмерной графики
13.5.1. Понятие о графических структурах
Функции PLOT и PLOT3D, с именами, набранными большими буквами, позволяют создавать графические структуры, содержащие ряд графических объектов si, s2, s3 и т.д. Каждый объект может представлять собой точку или фигуру, полигон, надпись и т.д., позиционированную с высокой точностью в заданной системе координат. Координатные оси также относятся к графическим объектам. Важно отметить, что функции PLOT и PLOT3D одновременно являются данными, описывающими графики. Их можно записывать в виде файлов и (после считывания файлов) представлять в виде графиков. Особые свойства этих функций подчеркиваются записью их прописными буквами.
13.5.2. Графические структуры двумерной графики
Графическая структура двумерной графики задается в виде:
где si, s2, s3 …. — графические объекты (или элементарные структуры-примитивы), о — общие для структуры опции).
Основными объектами являются:
POINTS([xl,yl],[x2,y2),…[xn,ynj) — построение точек, заданных их координатами;
CURVES([[xll,yll],…[xln,yln]],[[x21,y21],…[x2n,y2n]],…[[xml,yml]„.. [xmn,yrnn]]) — построение кривых по точкам;
POLYGONS([[xll,yll¦,…[xln,yln]],[[x21,y2H,…[x2n,y2n]],…[[xml,yml],… [xmn.ymn]]) — построение замкнутой области — полигона (последняя точка должна совпадать с первой);
ТЕХТ([х, у], ‘string’, horizontal, vertical) — вывод текстовой надписи ‘string’, позиционированной координатами [х,у] с горизонтальной или вертикальной ориентацией. Опция horizontal может иметь значения ALIGNLEFT или ALIGNRIGHT, указывающие, в какую сторону (влево или вправо) идет надпись. Аналогично опция vertical может иметь значения ALIGNABOVE или ALIGNBELOW, указывающие, в каком направлении (вверх или вниз) идет надпись.
При задании графических объектов (структур) si, s2, s3 и т.д. можно использовать описанные выше опции и параметры, например, для задания стиля STYLE-построения (POINT, LINE, PATCH, PATCHNOGRID), толщины линий THICKNESS (кроме координатных осей), символа SYMBOL, которым строятся точки кривых (BOX, CROSS, CIRCLE, POINT, DIAMOND и DEFAULT), стиля линий LINESTYLE, цвета COLOUR (например, COLOUR(HUE.O) для закраски непрерывной области), типа шрифта FONT, вывода титульной надписи TITLE(string), имени объекта NAME(string), стиля координатных осей AXESSTY-LE (BOX, FRAME, NORMAL, NONE, или DEFAULT) и т.д.
Следует отметить, что опции в графических структурах задаются несколько иначе — с помощью круглых скобок. Например, для задания фонта TIMES ROMAN с размером символов 16 надо записать FONT(TIMES, ROMAN, 16), а для задания стиля координатных осей в виде ящика (прямоугольника) — AXESSTYLE(BOX) и т.д.
На рис. 13.23 показан пример графических построений при использовании основных структур двумерной графики.
Как видно из этого примера, графическая двумерная структура позволяет задать практически любые двумерные графики и текстовые надписи в пределах одного рисунка.
13.5.3. Графические структуры трехмерной графики
Графические структуры трехмерной графики строятся на основе функции plot3d:
В качестве элементарных графических структур можно использовать уже описанные выше объекты POINTS, CURVES, POLYGONS и TEXT — разумеется, с
добавлением в списки координат третьей координаты. Пример такого построения дан на рис. 13.24.
Рис. 13.23. Пример использования структур 20-графики
Рис. 13.24. Пример создания ЗО-структуры.
Кроме того, могут использоваться следующие специальные трехмерные структуры. Одна из них — структура:
GRID(a..b,c..d,listlist) — задание поверхности над участком координатной плоскости [a,b]([c,d] по данным заданным списочной переменной listlist:= [[zll,…zln],[z21,…z2n],…[zml…zmn]] с размерностью nxm. Заметим, что эта переменная задает координату z для равноотстоящих точек поверхности.
На рис. 13.25 показан пример создания трехмерной графической структуры на базе GRID. Изображение представляет собой линии, соединяющие заданные точки.
Рис. 13.25. Пример задания графической структуры типа GRID.
Еще один тип трехмерной графической структуры это:
MESH(listlist) — задание трехмерной поверхности по данным списочной переменной listlist, содержащей полные координаты всех точек поверхности (задание последней возможно при неравномерной сетке).
Обычная форма задания этой структуры следующая:
Пример задания такой структуры представлен на рис. 13.26.
Описанные структуры могут использоваться и в программных модулях. Много примеров их описано в книге [38].
Дополнительные данные о возможностях графических структур можно найти в справочной базе данных системы Maple V.
Рис. 13.26. Пример задания графической структуры типа MESH.
13.6. Графика пакета plots 13.6.1. Общая характеристика пакета plots
Пакет plots содержит почти полсотни графических функции, существенно расширяющих возможности графики системы Maple V. В реализации R4 этот пакет содержит следующие функции:
Создает мультипликацию 2D графиков функций.
Создает мультипликацию 3D графиков функции.
Смена системы координат.
Построение 20-графика на комплексной плоскости.
Построение 30-графика в комплексном пространстве.
Конформный график комплексной функции.
Строит координатную систему контурши-м графика.
Строит контурный 30-график.
Строит координатную систему 20-графиков.
Строит координатную систему ЗО-графиков.
Строит график 3D поверхности в цилиндрических координатах.
Строит двумерный график плотности.
Строит график списка графических объектов.
Строит график списка трехмерных графических объектов.
Строит график 2D векторного поля.
Строит график 3D векторного поля.
Строит график 2D векторного поля градиента.
Строит график 3D векторного поля градиента.
Строит 2D-гpaфик неявной функции.
Строит ЗО-график неявной функции.
Строит график решения системы неравенств.
Строит 20-контурный график для сетки значении.
Строит ЗО-контурныи график для сетки значении.
Строит 20-график плотности для сетки значении.
Строит 20-график для листа значений.
Строит ЗО-график для листа значении.
Строит логарифмический 20-график функции.
Строит полулогарифмический 2D- график функции.
Строит ЗО-график со значениями Z, определенными матрицей.
Строит 2D или 3D график решения дифференциальных уравнений.
Строит pareto-диаграммы (гистограмма + график линиями).
Строит 2D точечный график.
Строит 3D точечный график.
Строит график 2D кривой в полярной системе координат.
Строит график одного или большего количества многоугольников.
Строит график одного или большего количества многоугольников.
Строит трехмерный график многогранника.
Перестраивает заново график.
Строит график корней уравнения с комплексными неизвестными.
Строит график функции с логарифмическим масштабом по горизонтали.
Устанавливает опции по умолчанию для 2D графиков.
Устанавливает опции по умолчанию для 3D графиков.
Строит 3D пространственные кривые.
Строит ZD-график отличных от нуля значений матрицы.
График 3D- поверхности в сферических координатах.
Строит ЗD-гpaфик поверхности по численным данным.
Выводит на заданное место 2D-гpaфикa текст.
Выводит на заданное место ЗD-rpaфикa текст.
Строит ЗD-rpaфики типа трубы.
Среди этих функций надо отметить прежде всего средства построения графиков ряда новых типов (например, в виде линий равного уровня, векторных полей и т.д.), а также средства объединения различных графиков в один. Особый интерес представляют две первые функции, обеспечивающие оживление (анимацию) как двумерных графиков (animate), так и трехмерных (animate3d). Этот пакет вполне
заслуживает описания в отдельной книге. Но, учитывая ограниченный объем данной книги, мы рассмотрим лишь несколько характерных примеров его применения. Заметим, что для использования приведенных функций нужен вызов пакета, например, командой with(plots).
13.6.2. Построение графиков функций в двумерной полярной системе координат
В пакете plots есть функция для построения графиков в полярной системе координат. Она имеет вид polarplot(L,o), где L — объекты для задания функции, график которой строится и о — необязательные опции. На рис. 13.27 представлен пример построения графика с помощью функции polarplot.
Рис. 13.27. График, построенный с помощью функции polarplot.
В данном случае для большей выразительности опущено построение координатных осей, а график выведен линией удвоенной толщины. График очень напоминает лист клена, весьма почитаемого в Канаде и ставшего эмблемой системы Maple V.
13.6.3. Построение графиков линиями равного уровня
Графики, построенные с помощью линий равного уровня (их также называют контурными графиками) часто используются в картографии. Эти графики получаются, если мысленно провести через трехмерную поверхность ряд равноотстоящих плоскостей, параллельных плоскости, образованной осями Х и Y графика. Линии равных высот образуются в результате пересечения этих плоскостей с трехмерной поверхностью.
Для построения таких графиков используется функция contourplot, которая может использоваться в нескольких форматах:
contourplot([ exprf,exprg,exprh ],s=a..b,t=c..d)
contourplot([ f,g,h ],a..b,c..d)
contourplot3d([ exprf,exprg,exprh ],s=a..b,t=c..d) »’
contourplot3d([ f,g,h ],a..b,c..d)
Здесь — f, g и h — функции, expri — выражение, описывающее зависимость высоты поверхности от координат х и у, exprf, exprg и exprh — выражения, зависящие от s и t, описывающие поверхность в параметрической форме, а и b — константы вещественного типа, end — константы или выражения вещественного типа, х, y,,s и t — имена независимых переменных.
На рис. 13.28 показано построение графика линиями равного уровня для одной функции. Опция filled=true обеспечивает автоматическую функциональную окраску замкнутых фигур, образованных линиями равного уровня. Порою это придает графику большую выразительность, чем при построении только линий равного уровня.
Рис. 13.28. Пример построения графика функции линиями равного уровня.
Функция contourplot позволяет строить и графики ряда функций. Пример такого построения показан на рис. 13.29. Множество окружностей на этом рисунке создается четырьмя поверхностями, заданными функциями с1, с2, сЗ и с4.
Следует отметить, что, хотя графики в виде линий равного уровня выглядят не так эстетично и естественно, как обычные графики трехмерных поверхностей (ибо требуют осмысления результатов), у них есть один существенный плюс — экстремумы функций на таких графиках выявляются порой более четко, чем на обычных графиках. Например, небольшая возвышенность или впадина за большой «горой» на обычном графике может оказаться невидимой, поскольку заслоняется
«горой» — на графике линий равного уровня этого эффекта нет. Однако выразительность таких графиков сильно зависит от числа линий равного уровня.
Рис. 13.29. Пример построения графиков многих функций линиями равного уровня.
13.6.4. График плотности
Иногда трехмерные поверхности отображаются на плоскости как графики плотности окраски — чем выше высота поверхности, тем плотнее окраска. Такой вид графиков создается функцией densityplot. Она может записываться в двух форматах:
где назначение параметров соответствует указанному выше для функции contour-plot.
На рис. 13.30 дан пример построения графика такого типа. Нетрудно заметить, что в плоскости X,Y график разбит на квадраты, плотность окраски которых различна. В нашем случае плотность окраски задается оттенками серого цвета.
Обычно графики такого типа не очень выразительны, но имеют свои области применения. К примеру, оттенки окраски полупрозрачной жидкости могут указывать на рельеф поверхности дна емкости, в которой находится эта жидкость.
13.6.5. График векторного поля двумерный
Еще один распространенный способ представления трехмерных поверхностей — графики векторного поля. Они часто применяются для отображения полей, например, электрических зарядов. Особенность таких графиков в том, что для их построения используют стрелки, направление которых соответствует направлению изменения градиента поля, а длина — значению градиента.
Рис. 13.30. График плотности для заданной функции.
Для построения таких графиков в двумерной системе координат используется функция fieldplot:
fieldplot(f, rl, r2) или fieldplot(f, rl, r2, …),
где f — вектор или множество векторов, задающих построение, и rl и r2 — пределы.
На рис. 13.31 показан вид одного из таких графиков. Следует отметить, что для получения достаточного числа отчетливо видных стрелок надо поработать с форматированием графиков. Иначе графики этого типа могут оказаться не очень представительными. Так, слишком короткие стрелки превращаются в черточки и даже точки, не имеющие острия, что лишает графики наглядности.
Чуть позже мы рассмотрим построение на одном рисунке графиков плотности и векторного поля, а также создание более наглядных жирных стрелок.
13.6.6. Графики в разных системах координат
В пакете plots имеется множество функций для построения графиков в различных системах координат. Объем книги не позволяет воспроизвести примеры на все виды таких графиков, ибо их многие сотни. Да это и не надо — во встроенных в справочную систему примерах можно найти все нужные сведения. Так что ограничимся лишь парой примеров применения функции tubeplot(C, options), позволяющей строить весьма наглядные фигуры в пространстве, напоминающие трубы или иные объекты, образованные фигурами вращения.
На рис. 13.32 показана одна из таких фигур. Она поразительно напоминает раковину улитки. Функциональная окраска достигнута доработкой графика с помощью панели форматирования. Смысл параметра С (в документе Conchoid) легко понять из этого примера.
Рис. 13.31. Двумерный график типа векторного поля.
Рис. 13.32. Построение графика «улитки».
Эта функция может использоваться и для построения ряда трубчатых объектов в пространстве. При этом автоматически задается алгоритм удаления невидимых линий даже для достаточно сложных фигур. Это наглядно иллюстрирует пример
на рис. 13.33, показывающий фигуру «цепи». Не правда ли реалистичность этой фигуры поражает воображение?
Рис. 13.33. Фигура «цепи», построенная с применением функции tubeplot.
Можно немало размышлять о том, как природа «узнала» о математических закономерностях, положенных в основу тех или иных геометрических объектов, или, возможно, о гениальности людей, сумевших найти такие закономерности для природных объектов. В наше время Maple V открывает огромные возможности для таких людей.
13.6.7. Графики типа трехмерного векторного поля
Наглядность ряда графиков можно существенно увеличить, строя их в трехмерном представлении. Например, для такого построения векторных полей можно использовать графическую функцию fieldplot3d. В отличие от функции fieldplot, она строит стрелки как бы в трехмерном пространстве (рис. 13.34).
Все сказанное об особенностях таких двумерных графиков остается справедливым и для графиков трехмерных. В частности, для получения достаточной их представительности нужно тщательно отлаживать форматы представления таких графиков.
13.6.8. Контурные трехмерные графики
В отличие от векторных графиков, контурные графики трехмерных поверхностей, наложенные на сами эти поверхности, нередко повышают восприимчивость таких поверхностей — подобно изображению линий каркаса. Для одновременного построения трехмерной поверхности и контурных линий на них служит функция contourplot3d. Пример ее применения показан на рис. 13.35.
Рис. 13,34. Построение векторного поля в трехмерном пространстве.
Рис. 13.35. График трехмерной поверхности с контурными линиями.
Для повышения наглядности этот график доработан с помощью панели форматирования графиков. В частности, включена функциональная окраска и подобраны углы обзора фигуры, при которых отчетливо видны впадина и пик фигуры.
13.6.9. Техника визуализации сложных пространственных фигур
Приведенные выше достаточно простые примеры дают представление о высокой степени визуализации геометрических фигур с помощью пакета plots. Здесь мы рассмотрим еще несколько примеров визуализации трехмерных фигур. Многие видели катушки индуктивности, у которых провод того или иного диаметра намотан на тороидальный магнитный сердечник. Математическая абстракция такой катушки показана на рис. 13.36.
Рис. 13.36. Top с обмоткой — толстой спиралью.
В документе (рис. 13.36) для функции tubeplot использовано довольно большое число параметров-опций. Не всегда их действие очевидно. Поэтому на рис. 13.37 показано построение трех взаимно пересекающихся торов с разными типами их построения. Этот рисунок дает также наглядное представление о возможности построения нескольких графических объектов (представленных функциями р1, р2 и рЗ) с помощью функции tubeplot.
Наконец, на рис. 13.38 показано построение тора с тонкой обмоткой. Рекомендуется внимательно просмотреть запись функции tubeplot в этом примере и в примере, показанном на рис. 13.36. Можно также поэкспериментировать с опциями графика, от которых сильно зависит его представительность и наглядность.
В ряде случаев наглядно представленные фигуры можно строить с применением объединения однотипных фигур. Пример графика подобного рода представлен на рис. 13.39. Здесь готовится список графических объектов s, смещенных по вертикали. С помощью функции display они воспроизводятся на одном графике, что повышает реалистичность изображения.
Последний пример имеет еще одну важную особенность — он иллюстрирует задание графической процедуры, в теле которой используются функции пакета
Рис. 13.37. Три пересекающихся тора с разным стилем построения.
Рис. 13.38. Top с тонкой обмоткой.
plots. Параметр п этой процедуры задает число элементарных фигур, из которых строится полная фигура. Таким образом, высотой фигуры (или шириной «шины») можно управлять. Возможность задания практически любых графических процедур средствами Maple-языка существенно расширяет возможности системы Maple.
Рис. 13.39. Построение фигуры, напоминающей шину автомобиля.
Наглядность графиков типа графика плотности и векторного поля может быть улучшена их совместным применением. Пример его показан на рис. 13.40.
Рис. 13.40. Пример совместного применения графиков плотности и векторного поля.
Этот пример иллюстрирует использование «жирных» стрелок для обозначения векторного поля. Наглядность графика повышается благодаря наложению стрелок на график плотности, который лучше, чем применение стрелок, дает представление о плавности изменения высоты поверхности, заданной функцией f.
13.6.10. Построение анимационных 20-графиков
Визуализация графических построении и результатов моделирования различных объектов и явлении существенно повышается при использовании средств «оживления» (анимации) изображений.
Пакет plots имеет две простые функции для создания анимационных графиков.
Первая из этих функций служит для создания анимации графиков, представляющих функцию одной переменной х — F:
anirnate(F, х, t) или animate(F, х, t,o)
При этом параметр х задает пределы изменения по переменной х, а параметр t — пределы изменения дополнительной переменной t. Суть анимации заключается в построении серии картинок (как в мультфильме), причем каждая картинка (фрейм) связана с изменяемой во времени переменной t. Если надо явно задать число кадров N анимации, то в качестве опции о надо использовать опцию frame=N. Рис. 13.41 показывает применение функции animate.
Рис. 13.41. Первый стоп-кадр анимации.
В документе рис. 13.41 строятся две функции — не создающая анимации функция sin(x) и создающая анимацию функция sin(i*x)/(i*x), причем в качестве переменной t задана переменная i. Именно ее изменение и создает эффект анимации.
При исполнении функции animate и выделении полученного графика появляется панель проигрывания анимационных клипов. Она имеет кнопки управления с обозначениями, принятыми у современных магнитофонов. Пустив кнопку пуска (с треугольником, острием обращенным вправо), можно наблюдать изменение вида кривой для функции sin(i*x)/(i*x).
К сожалению, картинки в книгах всегда неподвижны и воспроизвести эффект анимации трудно. Ограничимся приведением еще одного стоп-кадра (рис. 13.42).
Нетрудно заметить, что на нем показана функция sin(i*x)/(i*x) в иной фазе, чем на рис. 13.41.
Рис. 13.42. Второй стоп-кадр анимации.
Анимация графиков может найти широкое применение при создании учебных материалов. С ее помощью можно акцентировать внимание на отдельных параметрах графиков и образующих их функций.
13.6.11. Построение анимационных ЗО-графиков
Аналогичным образом может осуществляться и анимация трехмерных фигур. Для этого используется функция animate3d:
Здесь F — описание функции (или функций), х, у и t — диапазоны изменений переменных х, у и t. Для задания числа кадров N надо использовать необязательную опцию о в виде frame=N.
На рис. 13.43 показано построение анимационного графика. После задания функции, график которой строится, необходимо выделить график и запустить анимационный проигрыватель — как это описывалось для анимации двумерной графики.
На рис. 13.43 показано также контекстно-зависимое меню, которое появляется при нажатии правой клавиши мыши в момент, когда курсор ее находится в поле выделенного графика. Нетрудно заметить, что с помощью этого меню (и открываемых им подменю) можно получить доступ к опциям трехмерной графики и выполнить необходимые операции форматирования, такие, как включение цветовой окраски, выбор ориентации фигуры и т.д.
Рис. 13.43. Подготовка анимационного ЗО-графика.
13.6.12. Использование для анимации опции insequence
Еще один путь создания анимационных рисунков — создание ряда графических объектов р1, р2, рЗ и т.д. и их последовательный вывод с помощью функции:
Здесь основным моментом является применение опции insequence=true. Именно она обеспечивает вывод одного за другим серии графических объектов р1, р2, рЗ и т.д.
13.7. Графика пакета plottools 13.7.1. Состав пакета plottools
Инструментальный пакет графики plottools служит для создания графических примитивов, строящих элементарные геометрические объекты на плоскости и в пространстве: отрезки прямых и дуг, окружности, конусы, кубики и т.д. Его применение позволяет разнообразить графические построения и строить множество графиков специального назначения. В пакет входят следующие графические примитивы:
arc arrow circle cone cuboid curve cutin cutout cylinder disk dodecahedron ellipse ellipticArc hemisphere hexahedron hyperbola icosahedron line octahedron pieslice point polygon rectangle semitorus sphere tetrahedron torus
Вызов примитивов пакета осуществляется после загрузки пакета в память ПК командой with(plottools). Обычно примитивы используются для задания графических объектов, которые затем выводятся функцией display. Возможно, применение этих примитивов совместно с различными графиками.
13.7.2. Примеры применения примитивов пакета plottools
Большинство примитивов пакета plottools имеет довольно очевидный синтаксис. Например, для задания дуги используется примитив
где с — список с координатами центра окружности, к которой принадлежит дуга, г — радиус этой окружности, а..Ь — диапазон углов. На месте многоточия могут стоять обычные опции, задающие цвет дуги, толщину ее линии и т.д. Все формы записи графических примитивов и их синтаксис можно найти в справочной системе.
На рис. 13.44 показано применение нескольких примитивов двумерной графики для построения дуги, окружности, закрашенного красным цветом эллипса и отрезка прямой. Кроме того, на графике показано построение синусоиды. Во избежание искажений пропорций фигур надо согласовывать диапазон изменения переменной х.
Рис. 13.44. Примеры применения примитивов 20-графики пакета plottools.
Аналогичным образом используются примитивы построения трехмерных фигур. На рис. 13.45 показано совместное построение двух пересекающихся кубов и сферы в пространстве. Нетрудно заметить, что графика пакета приблизительно (с точностью до сегмента фигур) вычисляет области пересечения фигур. С помощью контекстно-зависимого меню правой клавиши мыши (рис. 13.45) можно устанавливать условия обзора фигур, учитывать перспективу при построении и т.д. В частности, фигуры на рис. 13.45 показаны в перспективе.
Рис. 13.45. Примеры применения примитивов 30-графики пакета plottools.
С другими возможностями этого пакета читатель теперь справится самостоятельно или с помощью данных справочной системы.
13.7.3. Построение графиков из множества фигур
В ряде случаев бывает необходимо строить графики, представляющие собой множество однотипных фигур. Для построения таких графиков полезно использовать функцию повторения seq(f,i=a..b). На рис. 13.46 показано построение фигуры, образованной вращением прямоугольника вокруг одной из вершин.
Рис. 13.46. Построение фигуры, образованной вращением прямоугольника.
В этом примере полезно обратить внимание еще и на функцию поворота фигуры — rotate. Именно сочетание этих двух функций (мультиплицирования и поворота базовой фигуры — прямоугольника) позволяет получить сложную фигуру, показанную на рис. 13.46.
13.8. Графическое представление решений дифференциальных уравнений
13.8.1. Применение функции odeplot пакета plots
Для обычного графического представления результатов решения дифференциальных уравнений может использоваться функция odeplot из описанного выше пакета plots. Эта функция используется в следующем виде:
где s — запись (в выходной форме) дифференциального уравнения или системы дифференциальных уравнений, полученных при их численном решении функцией dsolve, vars — переменные, r — параметр, задающий пределы решения (например, а..Ь) и о — не обязательные дополнительные опции.
На рис. 13.47 представлен пример решения одного дифференциального уравнения с выводом решения у(х) с помощью функции odeplot.
Рис. 13.47. Пример решения одного дифференциального уравнения.
В этом примере решается дифференциальное уравнение y'(x)=cos(x»2*y(x))
при у(0)=2 и х, меняющемся от -5 до 5. Левая часть уравнения записана с помощью функции вычисления производной diff. Результатом построения является график решения у(х).
На другом примере (рис. 13.48) представлено решение системы из двух нелинейных дифференциальных уравнении. Здесь с помощью функции odeplot строятся графики двух функций — у(х) и z(x).
Рис. 13.48. Пример решения системы из двух дифференциальных уравнении
В этом примере решается система:
при начальных условиях у(0)=0, z(0)=l и х, меняющемся от -4 до 4 при числе точек решения, равном 25.
Иногда решение системы из двух дифференциальных уравнений (или одного дифференциального уравнения второго порядка) представляется в виде фазового портрета — при этом по осям графика откладываются значения у(х) и z(x) при изменении х в определенных пределах. Рис. 13.49 представляет построение фазового портрета для системы, представленной выше.
Обычное решение, как правило, более наглядно, чем фазовый портрет решения. Однако для специалистов (например, в теории колебаний) фазовый портрет порою дает больше информации, чем обычное решение. Он более трудоемок при построениях, поэтому возможность Maple V быстро строить фазовые портреты трудно переоценить.
13.8.2. Функция DEplot из пакета DEtools
Специально для решения и визуализации решений дифференциальных уравнений и систем с дифференциальными уравнениями служит инструментальный пакет DEtools. В него входит ряд функций для построения наиболее сложных и изысканных графиков решения дифференциальных уравнений. Основной из этих функций является функция DEplot. ‘
Рис. 13.49. Представление решения системы дифференциальных уравнений в виде фазового портрета.
Функция DEplot может записываться в нескольких формах:
DEplot(deqns, vars, trange, eqns) DEplot(deqns, vars, trange, inits, eqns) DEplot(deqns, vars, trange, yrange, xrange, eqns) DEplot(deqns, vars, trange, inits, xrange, yrange, eqns)
Здесь: deqns — лист (множество) с системой дифференциальных уравнении первого порядка или одиночное уравнение любого порядка, vars — зависимая переменная (лист) либо множество зависимых переменных, trange — область изменения независимой переменной t, inits — начальные условия для решения, yrange — область изменения для первой зависимой переменной, xrange — область изменения для второй зависимой переменной, eqns — опция, записываемая в виде keyword=value. Замена имен переменных другими в данном случае не допустима.
Эта функция обеспечивает численное решение дифференциальных уравнений или их систем при одной независимой переменной t и строит графики решения. Для автономных систем эти графики строятся в виде векторного поля направлений, а для неавтономных систем только в виде кривых решения. По умолчанию реализуется метод Рунге-Кутта 4-го порядка, что соответствует опции method=classi-cal[rk4]. Возможна спецификация и других методов (см. главу 10). В каталоге EXAMPLE системы Maple V R4 можно найти файл deplot.mws с многочисленными примерами применения функции DEplot.
С функцией DEplot могут использоваться следующие опции о:
arrows = type — тип стрелки векторного поля (‘SMALL’,
colour, color = arrowcolour — цвет стрелок (задается 7 способами);
dirgrid = [integer,integer] — число линий сетки (о умолчанию 20(20);
iterations = integer — количество итераций, представленное целым
linecolour, linecolor = line_info— цвет линии (задается 5 способами);
obsrange = TRUE,FALSE — задает (при TRUE) прерывание вычислений,
если кривая решения выходит из области обзора;
scene = [name,name] — задает имена зависимых переменных, для
которых строится график;
stepsize = h — шаг решения, по умолчанию равный
abs((b-a))/20, и представленный вещественным
На рис. 13.50 показано решение системы дифференциальных уравнений
описывающих модель Лотка-Вольтерра при заданных в документе изменениях t, x(t) и y(t). Решение представлено в виде векторного поля, стрелки которого становятся касательными к кривым решения. Обратите внимание на функциональную закраску стрелок векторного поля.
Рис. 13.50. Решение системы дифференциальных уравнении Лотка-Вольтерра с выводом в виде графика векторного поля.
Еще интересней вариант графиков, представленный на рис. 13.51. Здесь помимо векторного поля построены фазовые портреты решения с использованием функциональной закраски их линий. Фазовые портреты построены для двух наборов начальных условий: х(0)= у(0)=1.2 и х(0)=1 и у(0)=0.7.
Следует отметить, что функция DEplot может обращаться к другим функциям пакета DEtools для обеспечения специальных графических возможностей, таких как построение векторного поля или фазового портрета решения.
Рис. 13.51. Пример построения двух фазовых портретов на фоне векторного поля.
13.8.3. Функция DEplot3d из пакета DEtools
В ряде случаев решение систем дифференциальных уравнений удобно представлять в виде пространственных кривых — например, линий равного уровня или просто в виде кривых в пространстве. Для этого служит функция DEplot3d.
DEplot3d(deqns, vars, trange, initset, о) DEplot3d(deqns, vars, trange, yrange, xrange, initset, o)
Назначение параметров и опций этой функции аналогично указанному для функции DEplot.
Рис. 13.52 поясняет применение функции DEplot3d для решения системы из двух дифференциальных уравнений с выводом фазового портрета колебаний в виде параметрически заданной зависимости x(t), y(t). В данном случае фазовый портрет строится на плоскости по типу построения графиков линий равной высоты.
Другой пример (рис. 13.53) показывает решение системы из двух дифференциальных уравнений с построением объемного фазового портрета. В этом случае используется координатная система ЗD-гpaфики и графические построения соответствуют параметрическим зависимостям x(t), y(t) и z(t). Вид фазового портрета напоминает разворачивающуюся в пространстве объемную спираль. Функциональная окраска ее делает график эффектным, что, увы, теряется при черно-белом воспроизведении графика.
Рис. 13.52. Пример решения системы из двух дифференциальных уравнении с помощью функции DEplot3d.
Рис. 13.53. Пример решения системы из двух дифференциальных уравнении с построением трехмерного фазового портрета.
Возможности функции DEplot позволяют решать системы дифференциальных уравнении с числом последних и больше двух — рис. 13.54, например. Однако в этом случае число решений, представляемых графически, выходит за пределы, допустимые ЗИ-графикои. При этом от пользователя зависит, какие из зависимо-
стен опускаются при построении, а какие строятся. Так, на рис. 13.54 в пространстве построены две кривые решения.
Рис. 13.54. Решение системы из четырех дифференциальных уравнении.
Нередко таким образом можно вывести на построение и иные зависимости. Однако их число обычно приходится ограничивать из-за потери наглядности графика при большом числе линий.
13.8.4. Функция PDEplot пакета DEtools
Еще одна функция пакета DEtools — DEtools[PDEplot] служит для построения графиков решения систем с квазилинейными дифференциальными уравнениями первого порядка в частных производных:
Р(х,у,и) * D[l](u)(x,y) + Q(x,y,u) * D[2](u)(x,y) = R(x,y u),
где P, Q и R зависят только от х, у и и(х,у), при этом dx/dt = P, dy/dt = Q, du/dt = R.
Эта функция используется в следующем виде:
PDEplot(pdiffeq, var, Lcurve, srange, о) PDEplot(pdiffeq, var, i_cLirve, srange, xrange, yrange, urange, o)
Здесь, помимо отмеченных ранее параметров, pdiffeq — квазилинейные дифференциальные уравнения первого порядка (PDE), vars — независимая переменная и Lcurve — начальные условия для параметрических кривых ЗО-поверхности. Помимо опций, указанных для функции DEplot, здесь могут использоваться следующие опции:
basechar = TRUE,FALSE,ONLY — устанавливает показ базовых характеристик кривых;
basecolour, basecolor = b_colour — устанавливает цвет базовых характеристик;
initcolour, initcolor = Lcolour — инициализация цветов;
numchar = integer — задает число отрезков кривых, которое не
должно быть меньше 4 (по умолчанию 20);
numsteps = [integerl,integer2] — задает число шагов интегрирования
(по умолчанию [10,10]).
Рис. 13.55 показывает применение функции PDEplot. Этот пример, взятый из справочной системы Maple V R4, показывает, насколько необычным может быть решение даже простой системы дифференциальных уравнений в частных производных.
Рис. 13.55. Пример применения функции PDEplot.
В данном случае решение представлено трехмерной фигурой весьма нерегулярного вида.
Другой пример использования функции PDEplot показан на рис. 13.56. Он иллюстрирует комбинированное построение графиков решения разного типа с применением функциональной закраски, реализуемой по заданной формуле с помощью опции initcolor.
Еще раз отметим, что, к сожалению, рисунки в данной книге не дают представления о цвете. Поэтому наглядность решений, видимых на экране дисплея, существенно выше.
13.8.5. Графическая функция dfieldplot
Графическая функция dfieldplot служит для построения векторного поля (поля направления) по результатам решения дифференциальных уравнений. Фактически эта функция как бы входит в функцию DEplot и при необходимости вызывается последней. Но она может использоваться и самостоятельно, что показывает
рис. 13.57, на котором показан пример решения следующей системы дифференциальных уравнений: x'(t)=x(t)*(l-y(t)), y'(t)=0.3*y(t)*(x(t)-l).
Рис. 13.56. Построение комбинированного графика с помощью функции PDEplot.
Рис. 13.57. Построение фазового портрета в виде графика векторного поля.
Обратите внимание на использование опций в этом примере, в частности на вывод надписи на рисунок на русском языке. В целом список параметров функции phaseportrait аналогичен таковому для функции DEplot (отсутствует лишь задание начальных условий).
13.8.6. Графическая функция phaseportrait
Графическая функция phaseportrait служит для построения фазовых портретов по результатам решения одного дифференциального уравнения или системы дифференциальных уравнений deqns. Она задается в виде:
При задании уравнений достаточно указать их правые части. На рис. 13.58 представлен пример применения функции phaseportrait для решения системы из трех дифференциальных уравнений первого порядка.
Рис. 13.58. Построение фазового портрета с помощью функции phaseportrait.
В этом примере система дифференциальных уравнений задана с применением оператора дифференцирования D. Функциональная окраска линии фазового портрета достигается использованием опции linecolor, в правой части которой задана формула для цвета.
Еще более интересный пример решения дифференциального уравнения представлен на рис. 13.59. Здесь построены фазовые портреты для асимптотических решений.
В целом надо отметить, что возможности визуализации решений дифференциальных уравнений с помощью системы Maple V весьма велики и приведенные выше примеры лишь частично иллюстрируют сказанное. В справочной системе можно найти ряд других весьма эффектных решений систем дифференциальных уравнений с визуализацией последних.
13.9. Иллюстративная графика пакета student
Пакет student имеет три графические функции для иллюстрации интегрирования методом прямоугольников:
leftbox(f(x), x=a..b, о) или leftbox(f(x), x=a..b, n, ‘shading’=, o) rightbox(f(x), x=a..b, о) или rightbox(f(x), x=a..b, n, o) middlebox(f(x), x=a..b, о) или middlebox(f(x), x=a..b, n, o),
Здесь: f(x) — функция переменной х, х — переменная интегрирования, а — левая граница области интегрирования, b — правая граница области интегрирования, n — число показанных прямоугольников, color — цвет прямоугольников, о — опции (см. plot,options).
Рис. 13.59. Построение асимптотического решения на фоне графика векторного поля.
В этих функциях прямоугольники строятся соответственно слева, справа и посередине относительно узловых точек функции f(x), график которой также строится. Кроме того, имеется функция для построения касательной к заданной точке х=а для линии, представляющей f(x):
showtangent (f(x), х = а).
Рис. 13.60 показывает все эти возможности пакета student. Четыре вида графиков здесь построены в отдельных окнах.
Возможности графики пакета student ограничены. Но они дают как раз те возможности, которые отсутствуют в основных средствах графики.
13.10. Графика статистического пакета stat
Статистический пакет stat имеет свою ‘небольшую библиотечку для построения графиков. Она вызывается в следующем виде:
stats[statplots, function](args) или statplots[function](args)
Вид графика задается описанием function: boxplot, histogram, notchedbox, quantile, quantile2, scatterld, scatter2d и symmetry. Эти функции обеспечивают построение
типовых графиков, иллюстрирующих статистические расчеты. В качестве примера на рис. 13.61 показано задание множества случайных точек и их построение на плоскости в ограниченном прямоугольником пространстве.
Рис. 13.60. Примеры иллюстративной графики пакета student,
Рис. 13.61. Создание случайных точек и построение их на плоскости.
По равномерности распределения точек можно судить о качестве программного генератора случайных чисел, встроенного в Maple V.
Другой пример применения графических средств пакета stat показан на рис. 13.62. Здесь, помимо изображений, заданных точками в виде маленьких ромбов (тип diamond), представлено изображение специальных объектов, по виду напоминающих радиодетали.
Рис. 13.62. Построения с помощью пакета stats.
Довольно часто используются графики гистограмм. Для их построения пакет stat имеет функцию histogram:
statsfstatplots, histogramj(data) statplots[histogram](data) statsfstatplots, histogram[scale](data) statplots[histogram[scale](data)
Здесь: data — список данных, scale — число или описатель. Детали применения этой простой функции поясняет рис. 13.63. На нем дано два примера — для построения столбцов заданной ширины и высоты и построения распределения 100 случайных чисел с нормальным распределением.
Обратите внимание на то, что в деталях гистограммы для второго примера построенные гистограммы будут несколько меняться от пуска к пуску. Это связано со случайностью генерируемых чисел и небольшими расхождениями в нормальном распределении чисел.
13.11. Графическая визуализация решений и анимация
Выше уже не раз графика использовалась для визуализации решений математических задач. Так, многие особенности даже функций одной переменной вида f(x) могут быть выявлены с помощью графика функций. Затем можно точно вычислить корни функции (точки перехода через 0), экстремумы, крутизну наклона (произ-
водную) в заданных точках и т.д. Еще более информативна в этом отношении трехмерная графика — для большинства функций двух переменных вида z(x,y) нужно очень богатое математическое воображение, чтобы представить их вид — особенно в одной из многих десятков координатных систем.
Рис. 13.63. Построение гистограмм.
Однако некоторые виды графиков трудно представить себе даже при наличии такого воображения. В этом отношении Maple V предоставляет поистине уникальные возможности в обеспечении простой и быстрой визуализации решений. Ниже мы рассмотрим несколько наиболее характерных примеров такой визуализации. В них нет наиболее показательных примеров визуализации решений дифференциальных уравнений, поскольку они уже были рассмотрены.
13.11.1. Иллюстрация решения систем линейных уравнений
Системы линейных уравнений могут решаться как с помощью функции solve, так и с помощью матричных методов. Замечательной возможностью функции solve является возможность решения относительно ограниченного числа переменных. Например, систему линейных уравнений с переменными х, у, z, t и v можно решить относительно только первых трех переменных х, у и z. При этом решения будут функциями относительно переменных t и v и можно построить наглядный график решения (рис. 13.64).
На рис. 13.64 система задана пятью равенствами: е1, е2, еЗ, е4 и е5. Затем функцией solve получено вначале решение для всех переменных (для иллюстрации), а затем для трех переменных х, у и z. Для получения решения в виде списка, а не множества, как в первом случае для всех переменных, использована функция подстановки subs. После этого функция plot3d строит плоскость решения в пространстве.
Рис. 13.64. График, представляющий решения системы линейных уравнений.
13.11.2. Графическая визуализация решения системы неравенств
Пожалуй, еще более полезным и наглядным является визуализация решения системы уравнений в виде неравенств. В пакете расширения plots имеется специальная графическая функция inequal, которая строит все граничные линии неравенств и позволяет раскрасить разделенные ими области различными цветами:
inequal(ineqs, xspec, yspec, options).
Параметры этой функции: ineqs — одно или более неравенство или равенство или список неравенств или равенств, xspec — xvar == min_x..max_x, yspec — yvar = min_y..max_y и о — необязательные опции, например указывающие на цвета линий, представляющих неравенства или равенства, и областей, образованных этими линиями и границами графика. Пример применения этой функции представлен на рис. 13.65.
Обратите внимание на задание опций цветов: optionsfasfeasibly задает цвет внутренней области, для которой удовлетворяются все неравенства (равенства), optionsopen и optionsclose задают цвета открытых и закрытых областей графика, optionsexcluded для цвета внешних областей. График дает весьма наглядную интерпретацию действия ряда неравенств (или равенств).
13.11.3. Конформные отображения на комплексной плоскости
Объем данной книги не позволяет объяснить столь тонкое понятие, как конформные отображения на комплексной плоскости. Ограничимся лишь указанием на то, что в пакете plots имеется функция для таких отображений:
где F — комплексная процедура или выражение, rl, r2 — области, задаваемые в виде а..Ь или name=a..b, о — опции. Таким образом, для построения нужного графика достаточно задать нужное выражение и области изменения rl и г2. Пример построения конформных изображений для трех выражении дан на рис. 13.66.
В данном случае все три графика построены в отдельных окнах.
Рис. 13.65. Пример графической интерпретации решения системы неравенств.
Рис. 13.66. Конформное отображение на комплексной плоскости графиков трех зависимостей.
13.11.4. Графическое представление содержимого матрицы
Многие вычисления имеют результаты, представляемые в форме матриц. Иногда такие результаты можно наглядно представить графически, например, в виде столбиковой диаграммы. Она представляет собой множество столбиков квадратного сечения, расположенных на плоскости, образованной осями строк (row) и столбцов (column) матрицы. При этом высота столбцов определяется содержимым ячеек матрицы.
Такое построение обеспечивает графическая функция matrixplot из пакета расширения plots. На рис. 13.67 показано совместное применение этой функции с двумя функциями пакета linalg, формирующими две довольно экзотические матрицы А и В.
Рис. 13. 67. Графическое представление матрицы
На рис. 13.67 показана графическая визуализация матрицы, полученной как разность матриц А и В. Для усиления эффекта восприятия применяется цветовая функциональная закраска. Для задания цвета введена процедура F.
13.11.5. Визуализация Ньютоновых итераций
Теперь займемся довольно рискованным экспериментом — наблюдением Ньютоновых итераций с их представлением на комплексной плоскости. На рис. 13.68 задана функция f(z) комплексного аргумента. Для этого используется итерационное выражение. Проследить за поведением функции на комплексной плоскости позволяет графическая функция complexplot3d из пакета plots.
Наблюдаемая картина весьма необычна и свидетельствует о далеко не простом ходе итерационного процесса. Риск работы с этим примером заключается в том, что иногда он ведет к фатальным ошибкам, ведущим к прекращению работы с системой. Обычно при пуске этого примера сразу после загрузки системы Maple V такого не происходит, но когда память загружена другими примерами, сбой
вполне возможен. Рекомендуется записывать подобные примеры на диск перед ик запуском. •
Рис. 13.68. Наблюдение за процессом Ньютоновых итерации в ЗО-пространстве.
13.11.6. Визуализация корней случайных полиномов
Наряду с традиционной для математических и статистических компьютерных систем возможностью генерации случайных чисел, Maple V предоставляет довольно «экзотическую» возможность генерации случайных полиномов с высокой максимальной степенью. Для этого используется функция:
Она возвращает случайный полином переменной var, причем максимальная степень полинома птах может указываться опцией о вида degree=nmax.
Приведем пример генерации случайного полинома с максимальной степенью 50:
Поскольку полученный полином случайный, то вам не удастся повторить его генерацию — каждый запуск randpoly дает новый полином. Так что важно понять в принципе осуществляемые далее действия. Прежде всего найдем список корней полинома S:
В этом примере обратите внимание на число нулей в начале списка — их надо исключать из дальнейших вычислений. Это, и получение корней в виде обычных
комплексных чисел, делается с помощью функции allvalues, в которой в качестве
параметра надо использовать S[5]. Ниже показано создание списка SA корней полученного выше полинома:
ЗА := [0, 0, 0, 0, -1.010550161 — .1475724933 I,
-1.010550161 + .1475724933 I, -.9465649833,
-.9003773676 — .5534775311 , -.9003773676 + .5534775311 ,
-.8562982808 — .3789548397 , -.8562982808 + .3789548397 ,
-.7320300364 — .6478720727 , -.7320300364 + .6478720727 ,
-.5900687567 — .7989860949 , -.5900687567 + .7989860949 .
-.3987161272-.8962702262 ,-.3987161272 + .8962702262 ,
-.3642724499-.9481481280 ,-.3642724499 + .9481481280 ,
-.02839255705 — .9363196855 I, -.02839255705 + .9363196855 I, .05710128939 -1.018443049 I, .05710128939 + 1.018443049 I, .2868399179-.9808645873 , .2868399179 + .9808645873 , .4149289767-.8396518590 , .4149289767 + .8396518590 , .6775641178-.8099749786 , .6775641178 + .8099749786 , .6864940076 — .6957907203 , .6864940076 + .6957907203 , .8450577013-.4872509104 , .8450577013 + .4872509104 , .9089753119-.3749374155 , .9089753119 + .3749374155 , .9157897832, 1.019132014 — .2114677899I, 1.019132014+.21146778991]
Напоминаем, что эти корни также являются случайными. Теперь можно построить комплексные корни полученного случайного полинома в виде точек на комплексной плоскости:
Этот график показан на рис. 13.69.
Рис. 13.69. Расположение корней случайного полинома на комплексной плоскости.
Можно заметить любопытную закономерность — точки, представляющие корни случайного полинома укладываются вблизи окружности единичного радиуса с центром в начале координат. Является ли это действительно свойством случайных полиномов или дело в специфике их генерации средствами Maple V — для большинства из нас неясно. Однако этот пример, приводимый в большинстве книг по Maple V, показывает, что порою вычисления могут давать довольно неожидан-
ные результаты. Кстати говоря, аналитически можно вычислять корни полинома с максимальной степенью не более четырех.
Приведенные примеры дают весьма наглядное представление о больших возможностях визуализации решений самых различных задач в системе Maple V. Можно значительно повысить ее, эффектно используя описанные ранее приемы анимации (оживления) изображений. В целом надо отметить, что графические возможности Maple V дают новый уровень качества графики современных математических систем, о котором с десяток лет тому назад можно было только мечтать.
13.11.7. Анимация разложения импульса в ряд Фурье
Анимация (оживление) изображений является одним из самых мощных средств визуализации результатов моделирования тех или иных зависимостей или явлений. Порою изменение во времени одного из параметров зависимости дает наглядное представление о его сути.
Здесь мы расширим представление об анимации и рассмотрим не вполне обычный пример, описанный в [38], — наблюдение за синтезом импульсного сигнала, разложенного в ряд Фурье с числом гармоник N. На рис. 13.70 представлен документ, реализующий такое разложение и синтез для числа гармоник О, 1, 2,…, N.
Рис. 13.70. Первый стоп-кадр анимации разложения импульса в ряд Фурье.
Надо полагать, что читатель уже может разобраться в деталях задания прямоугольного импульса — меандра с помощью функции Хевисайда (Heaveside) и его синтеза с помощью ряда Фурье. Соответствующие и достаточно простые выражения представлены на рис. 13.70.
Нетрудно заметить, что при выделении рисунка рамкой появляется анимацион-ный проигрыватель, который позволяет запустить анимацию. Стоп-кадр на приведенном рисунке соответствует началу анимации.
поверхности cos(t*x*y/3), представленной функцией трех переменных t, x и у. При этом изменение первой переменной создает фазы поверхности.
Рис. 13.72. Иллюстрация получения всех фаз анимации 20-графика.
Рис. 13.73. Анимация ЗО-поверхности.
Применение анимации дает повышенную степень визуализации решений ряда задач, связанных с построением двух- и трехмерных графиков. Следует отметить, что анимационные графики для построений требуют дополнительных и достаточ-
но существенных затрат оперативной памяти. Поэтому злоупотреблять числом стоп-кадров таких графиков нельзя.
Рис. 13.74. Фазы анимации ЗО-поверхности.
Глава 14. Математическая система Maple V R5
14.1. Комплект поставки и установка системы
К моменту завершения рукописи данной книги новейшая версия Maple V R5 появилась в коммерческом варианте, но на Internet-странице фирмы Waterloo Maple по ней были приведены строго дозированные данные. Очевидно, фирма пока опасалась бурной рекламы нового продукта — пример вполне достойный подражания, поскольку несвоевременное описание программного продукта, проходящего стадию, апробации чревато серьезными ошибками. Многие из нас сталкивались с этим — «поспешишь, людей насмешишь».
Тем не менее фирма Waterloo Maple no первой же просьбе автора предоставила ему новую реализацию своего программного продукта. Благодаря этому появилась возможность познакомить читателя с основными особенностями новейшей реализации Maple V R5 еще до того, как Maple V R4 сошла устарела. Важно отметить, что эта реализация R5 пока не реализована на всех платформах — например, для ПК класса Macintosh пока последней остается реализация R4.
В этой главе вы познакомитесь с основными достоинствами новой реализации и ее отличиями от предшествующей. Здесь уместно еще раз обратить внимание читателя, что весь материал глав 2 — 13 в равной мере относится как к реализациям R3 и R4, так и R5.
Прежде всего отметим, что новая реализация (Maple V R5) поставляется на двух CD-ROM (но в одной упаковке). В комплект поставки входят две объемные книги — учебник по работе с системой [37] и пособие по программированию [38]. Кроме того, поставляются документы по регистрации системы и брошюра с перечнем книг, изданных по системе Maple V за рубежом.
На первом CD-ROM размещена собственно система, а на другом — библиотека расширения SHARE. Они инсталлируются отдельно — вначале система, а затем библиотека. Никаких проблем с инсталляцией Maple V R5 в среде Windows 95 OSR 2 у автора не возникло. Надо лишь учесть, что для установки новой версии на жестком диске необходимо свободное пространство около 80 Мбайт. По окончании инсталляции в меню программ появляется группа, посвященная установленной системе. Она показана на рис. 14.1.
При запуске системы (позиция меню Maple V Release 5) вначале появляется временное титульное окно с краткими данными о системе и сроках ее разработки. Это окно на фоне рабочего стола Windows 95 представлено на рис. 14.2. Нетрудно заметить, что выпуск данной версии системы датирован ноябрем 1997 года, таким образом, мы описываем программный продукт, только-только появившийся на рынке (эти слова пишутся в начале апреля 1998 года).
Вид экрана при работе с системой Maple V R5 с загруженным демонстрационным документом показан на рис. 14.3. С первого взгляда он почти ничем не отличается от экрана, который виден при работе с реализацией R4. Разве что можно отметить
новую позицию Spreadsheets в главном меню, да и ту пока видную в характерном «тумане» (т.е. в данный момент недоступную).
Рис. 14.1. Папка с компонентами Maple V R5 на рабочем столе Windows 95 OSR 2.
Рис. 14.2. Временное титульное окно системы на рабочем столе Windows 95 OSR 2.
В целом надо сказать, что ничего революционного в новой версии нет и ее основные возможности вполне соответствуют описанным ранее в главах 1 — 13. Тем не менее ряд новых возможностей, естественно, есть, и мы остановимся на их описании ниже. Следует обратить внимание на то, что некоторые из новых возможностей (электронные таблицы, перенос объектов и трансформация графи-
А вот вместо знака » (кавычка) для задания эволюции предшествующего выражения в Maple V R5 используется знак % (процент). Можно применять до трех таких знаков. Эта тонкость в первый момент сбивает с толку пользователей прежних версий Maple V, но к этому быстро привыкаешь.
Существенно повысилась роль управления системой с помощью мыши. Теперь, как во всех приличных Windows-приложениях, ее правая клавиша при нажатии выводит контекстно-зависимое меню, содержащее доступные по контексту операции (они будут рассмотрены более подробно ниже). Это позволяет реализовать метод работы «ввел выражение — нажал кнопку — получил результат». В частности, можно выполнить сразу доступные для заданного выражения символьные преобразования, быстро построить график функции с титульными надписями и т.д.
Реализован в Maple V R5 и принцип «Drag and Drop» (Тащи и Отпускай). Для выделенного объекта, нажав левую клавишу мыши и удерживая ее нажатой, можно перетащить объект на новое место, например на другую строку в данном или в другом документе (при условии, что окна документов развернуты и видны одновременно на экране). Для установки объекта на новое место достаточно отпустить левую клавишу мыши. Таким образом, обеспечивается механизм объектной связи, известный, как OLE 2. В процессе перетаскивания маркер мыши превращается в жирную окружность, перечеркнутую символом в исходном блоке, или в обычный курсор мыши с туманным прямоугольником у основания при переходе в иной блок (куда объект переносится).
Если вы хотите, перетаскивая объект, оставить его и на прежнем месте, то делайте это при нажатой клавише Ctrl. В этом случае к упомянутому туманному прямоугольнику добавляется отметка в виде маленького крестика. Заметим, что объектом могут быть не только целые выражения, но и их части или даже группы объектов — словом, все, что может быть выделено.
14.3. Работа с электронными таблицами
Одно из важных отличий Maple V R5 от предшествующих версий — это возможность работы с электронными таблицами. Для задания электронных таблиц в главном меню в позиции Insert появилась операция Spreadsheets (вставка шаблона электронной таблицы). При исполнении этой операции появляется типичный шаблон электронной таблицы (рис. 14.4).
Нетрудно заметить, что вид электронной таблицы вполне соответствует типовому для современных программ класса табличных процессоров, например Exel из пакета Microsoft Office. Таким образом, произошло сближение математической системы Maple V с еще одним важным классом программ.
Как обычно, в ячейки таблиц могут вводиться числовые денные (рис. 14.4). Ячейки характеризуются своим адресом — буквой столбца и номером строки. Внутри таблицы курсор мыши превращается в жирный крест и его можно использовать для указания нужной ячейки и фиксации в ней ввода. При этом ввод данных в выделенную ячейку производится их набором в специальной инструментальной строке для работы с таблицами (поле ввода занимает цбольшую часть этой панели). Нажав правую клавишу мыши, можно вывести контекстно-зависимое меню с рядом операций, доступных для заданной ячейки.
Рис. 14.4. Шаблон электронной таблицы.
Для работы с таблицами в главном меню Maple V R5 появилась отдельная позиция Spreadsheets (рис. 14.5). Она содержит набор операций, обеспечивающих работу с табличными данными.
Рис. 14.5. Вид экрана Maple V R5 с открытой позицией Spreadsheets главного меню.
Графика в системе Maple V (стр. 2 из 12)
Правильный выбор масштаба повышает представительность графиков функций. Рекомендуется вначале пробовать строить такие графики с автоматическим масштабированием, а уже затем использовать указатели масштабов.
13.2.3. Графики функций в неограниченном масштабе
Изредка встречаются графики функций цх), которые надо построить при изменении значения х от нуля до бесконечности или даже от минус бесконечности до
Рис. 13.2. Построение графиков функции с явным указанием масштаба.
плюс бесконечности. Бесконечность в таких случаях задается в указателях масштаба как особая константа infinity. В этом случае масштаб автоматически меняется по ходу построения графика. Рис. 13.2 (второй пример) иллюстрирует сказанное. Пересчет значении координаты х, устремляющейся в бесконечность, выполняется с помощью функции для арктангенса.
13.2.4. Графики функций с разрывами
Некоторые функции, например tan(x), имеют при определенных значениях х разрывы, причем случается что значения функции в этом случае устремляются в бесконечность. Функция tan(x), к примеру, в точках разрывов устремляется к +°° и -°°. Построение графиков таких функций нередко дает плохо предсказуемые результаты. Графический процессор Maple V не всегда в состоянии определить оптимальный масштаб по оси ординат, а график функции выглядит весьма непредставительно — если не сказать безобразно (см. рис. 13.3 — первый пример).
Среди параметров функции plot есть специальный параметр discont. Если задать его значение равным true, то качество графиков существенно улучшается — см. рис. 13.3 — второй пример. Улучшение достигается разбивкой графика на несколько участков, в которых функция непрерывна, и более тщательным контролем за масштабом.
13.2.5. Построение графиков нескольких функций на одном рисунке
Важное значение имеет возможность построения на одном рисунке графиков нескольких функций. В простейшем случае (рис. 13.4 первый пример) для построения таких графиков достаточно перечислить нужные функции и установить для них общие масштабы.
Рис. 13.3. Построение графиков функции с разрывами.
Обычно графики разных функций автоматически строятся разными цветами. Но они не всегда удовлетворяют пользователя — например, при распечатке графиков монохромным принтером некоторые кривые могут выглядеть слишком блеклыми или даже не пропечататься вообще. Используя списки параметров color (цвет линии) и style (стиль линий) можно добиться выразительного выделения кривых — это показывает второй пример на рис. 13.4.
Рис. 13.4. Графики трех функции на одном рисунке.
На рис. 13.5 показан еще один пример такого рода. Здесь построен график функции sin(x)/x и график ее полиномиальной аппроксимации. Она выполняется настолько просто, что соответствующие функции записаны прямо в списке параметров функции plot.
Рис. 13.5. График функции sin(x)/x и ее полиномиальной аппроксимации.
В данном случае сама функция построена сплошной линией, а график полинома — крестиками. Хорошо видно, что при малых х аппроксимация дает высокую точность, но затем с ростом х погрешность ее резко возрастает.
Рис. 13.6 показывает построение нескольких любопытных функций, полученных с помощью комбинаций элементарных функций. Эти комбинации позволяют получать периодические функции, моделирующие сигналы стандартного вида в технических устройствах: в виде напряжения на выходе двухполупериодного выпрямителя, симметричных прямоугольных колебаний (меандр), пилообразных и треугольных импульсов, треугольных импульсов со скругленной вершиной.
В этом рисунке запись axes=NONE убирает координатные оси. Обратите внимание, что смещение графиков отдельных функций вниз с целью устранения их наложения достигнуто просто прибавлением к записи каждой функции некоторой константы.
13.2.6. Построение графиков функций, заданных отдельными точками
Показанный на рис. 13.5 график полинома, построенный крестиками, не означает, что полином представлен отдельными точками. В данном случае просто выбран стиль линии в виде точек, представленных крестиками. Однако, часто возникает необходимость построения графиков функции, которые представлены просто совокупностью точек. Она может быть создана искусственно, как на рис. 13.7, либо просто задаваться списком координат х и значений функции.
Рис. 13.6. Построение графиков нескольких любопытных функции.
Рис. 137. Формирование списка отдельных точек функции и их построение на графике.
В данном случае переменная Р имеет вид списка, в котором попарно перечислены координаты точек функции sin(x). В этом нетрудно убедиться, заменив знак «:» после выражения, задающего Р на знак «;». Далее по списку Р построен график точек в виде крестиков, которые отображают отдельные значения функции sin(x).
На рис. 13.8 показано построение графиков функций по точкам при явном задании функции списком координат ее отдельных точек. В первом примере эти
точки соединяются отрезками прямых, так что получается кусочно-линейный график. Видно также, что указание типа точек после указания стиля линии игнорируется, — а жаль, было бы неплохо, чтобы наряду с кусочно-линейной линией графика строились и выделенные окружностью точки.
Рис. 13.8. Построение графика функции явно заданной отдельными точками.
Во втором примере рис. 13.8 показано построение только точек заданной функциональной зависимости. Они представлены маленькими кружками.
Читателю предлагается совместить самому оба подхода к построению графиков по точкам и создать график в виде отрезков прямых, соединяющих заданные точки функции, представленные кружками или крестиками.
13.2.7. Построение графиков функций, заданных их именами
Способность Maple V к упрощению работы пользователя просто поразительна — жаль только, что многие возможности этого становятся ясными после основательного изучения системы, на что уходят увы не дни, а месяцы, а то и годы. Применительно к графике одной их таких возможностей является построение графиков функций, заданных только их функциональными именами — даже без указания параметров в круглых скобках. Такую возможность наглядно демонстрирует рис. 13.9.
Этот пример показывает, что возможно построение графиков функций даже без применения в команде plot указателей масштабов. При этом масштаб по горизонтальной оси устанавливается равным по умолчанию -10..10, а по вертикальной оси устанавливается автоматически в соответствии с экстремальными значениями функций в указанном диапазоне изменения независимой переменной — условно х.
Рис. 13.9. Построение графиков четырех функции, заданных только их именами.
13.2.8. Построение графиков функции с ординатами, заданными вектором
Часто возникает необходимость построения графика точек, ординаты которых являются элементами некоторого вектора. Обычно при этом предполагается равномерное расположение точек по горизонтальной оси.
Пример построения такого графика дан на рис. 13.10.
Из этого примера нетрудно заметить, что данная задача решается составлением списка парных значений координат исходных точек — к значениям ординат точек, взятых из вектора добавляются значения абсцисс. Они задаются чисто условно, поскольку никакой информации об абсциссах точек в исходном векторе нет. Так что фактически строится график зависимости ординат точек от их порядкового номера п.
13.2.9. Построение графиков функций, заданных процедурами
Некоторые виды функций, например кусочные, удобно задавать процедурами. Построение графиков функций, заданных процедурами, не вызывает никаких трудностей и иллюстрируется рис. 13.11.
Здесь, пожалуй, полезно обратить внимание на то, что когда в функции plot указывается имя процедуры без списка ее параметров, то указатель масштаба должен просто указывать пределы графических построений по оси х.
Рис. 13.10. Построение графика точек с ординатами, заданными элементами вектора.
Рис. 13.11. Построение графика функций, заданных процедурами
13.2.10. Построение графиков функций, заданных функциональными операторами
Еще одна «экзотическая» возможность функции plot — построение графиков функций, заданных функциональными операторами. Она иллюстрируется рис. 13.12.
Рис. 13.12. Построение графиков функции, заданной функциональными операторами.
Имена функции (без указания списка параметров в круглых скобках тоже по существу являются функциональными операторами. Так что и они могут использоваться при построении графиков упрощенными способами.
Похожие публикации:
- Как перенести данные из excel в mathcad
- Как подключить telegram на телефоне android
- Как получить имя пользователя telegram bot
- Как пользоваться wechat на компьютере
