Введение в пакет Maxima2
.pdfфункций используется вызов plot3d ([expr1, expr2, expr3], u_range, v_range, <до-
полнительные параметры>).
Function
1
0.5
0 -0.5 -1
-4 |
|
4 |
-3 |
|
3 |
-2 |
1 |
2 |
-1 |
|
|
0 |
0 |
|
1 |
2 3 4 -4 -3 -2 -1 |
|
Если мы зададим зависимость не от двух, а от одного параметра, то вместо по- верхности мы получим пространственную кривую. Тем не менее, во избежание синтаксической ошибки, диапазон изменения второго, фиктивного параметра должен быть сохранен в качестве аргумента plot3d.
Function
8
6
4
2
0 -2 -4 -6 -8
|
|
|
|
|
0.8 1 |
-2 |
|
|
|
|
0.6 |
-1.5 -1 -0.5 |
|
|
|
0.4 |
|
|
0 |
|
|
-0.200.2 |
|
|
|
0.5 |
|
-0.4 |
|
|
|
|
1 1.5 |
-0.6 |
|
|
|
|
|
2-1-0.8 |
30
Кроме декартовых координат возможна работа с координатами сферическими
ицилиндрическими. В первом случае необходимо использовать ключ
[gnuplot_preamble, "set mapping spherical"]
Function
0.2
0.15
0.1
0.05
0 -0.05 -0.1 -0.15 -0.2
|
|
|
|
|
-0.15 |
|
|
|
|
|
-0.1 |
|
|
|
|
0 |
-0.05 |
0.2 0.15 |
0.1 0.05 |
|
|
0.05 |
|
0 |
-0.05 -0.1 |
0.1 |
|
||
|
|
-0.15 -0.20.15 |
|
а во втором – ключ [gnuplot_preamble, "set mapping cylindrical"]
2*sin(ph)^3*(z-1)
3.5
3
2.5
2
1.5
1
0.5
0
-1.5 -1
-0.50 0.51 0 1 2 3 4
1.5 -2 -1
Разобрав, достаточно подробно, какие графики можно строить с помощью Maxima, рассмотрим теперь подробнее вопрос, «почему они строятся именно так, и можно ли это изменить?» Ответом на этот вопрос будут список системных умолчаний, связанных с графикой и методы их изменения.
Для хранения списка системных умолчаний Maxima использует переменную plot_options, соответственно, ознакомиться с умолчаниями, действующими не
31
данный момент можно просто обратившись к этой переменной. Рассмотрим наи- более существенные ее ключи.
Некоторые ключи переменной plot_options
|
Ключ |
Значение |
|
|
|
|
Описание |
|
|
|
|
по умолчанию |
|
|
|
|
|
|
|
|
|
Ключи, распознаваемые функциями plot2d и plot3d |
|
|
|||||
|
|
Для Windows |
|
Определяет, |
какое графическое приложение бу- |
||||
|
|
|
дет использоваться функциями plot2d и plot3d. При |
||||||
|
|
|
|
||||||
|
|
gnuplot |
|
значениях gnuplot и gnuplot_pipes используется про- |
|||||
|
|
|
грамма Gnuplot, значение mgnuplot позволяет ис- |
||||||
|
|
|
|
||||||
|
plot_format |
Для других |
|
пользовать для вывода графическое расширение к |
|||||
|
|
платформ |
|
пакету Gnuplot, называемое Mgnuplot и, наконец, |
|||||
|
|
gnuplot_pipes |
|
значение |
openmath |
передает вывод |
программе |
||
|
|
|
Openmath, устанавливаемой вместе с оболочкой |
||||||
|
|
|
|
||||||
|
|
|
|
xMaxima. |
|
|
|
|
|
|
|
|
|
Если указано имя файла, то графический вывод |
|||||
|
gnuplot_out_file |
false |
|
сохраняется в файл (например [gnuplot_out_file, |
|||||
|
|
|
|
“myplot.ps”]) |
|
|
|
|
|
|
|
|
|
Если задано значение true, то может строиться |
|||||
|
plot_realpart |
false |
|
график вещественной части комплексного выраже- |
|||||
|
|
ния. При значении false комплекснозначные функ- |
|||||||
|
|
|
|
||||||
|
|
|
|
ции игнорируются. |
|
|
|
||
|
|
|
|
При |
построении |
графиков |
параметрических |
||
|
nticks |
10 |
|
функций задает количество точек разбиения интер- |
|||||
|
|
|
|
вала изменения параметра. |
|
|
|||
|
grid |
30, 30 |
|
Задает количество точек сетки, |
при построении |
||||
|
|
трехмерных графиков, по осям х и у, соответственно |
|||||||
|
|
|
|
||||||
|
|
|
|
Задает замену координат при построении трех- |
|||||
|
transform_xy |
false |
|
мерных графиков. Для проведения замены должно |
|||||
|
|
быть задано значение вида |
|
|
|||||
|
|
|
|
|
|
||||
|
|
|
|
make_transform([x,y,z], f1(x,y,z), f2(x,y,z), f3(x,y,z)) |
|||||
|
|
Специальные ключи программы Gnuplot |
|
|
|||||
|
|
|
|
Контролирует |
использование |
программой |
|||
|
gnuplot_pm3d |
true |
|
Gnuplot режима PM3D, расширяющего возможности |
|||||
|
|
|
|
трехмерной графики (градиентные заливки и т.п.). |
|||||
|
|
|
|
Позволяет |
использовать команды |
программы |
|||
|
|
|
|
Gnuplot. Команды задаются строкой, разделяемые |
|||||
|
gnuplot_preamble |
“” |
|
точками с запятой. Некоторые команды приводи- |
|||||
|
|
|
|
лись в примерах, полная информация может быть |
|||||
|
|
|
|
найдена в документации к Gnuplot. |
|
|
32
|
Ключ |
Значение |
|
Описание |
|
|
по умолчанию |
|
|
|
|
|
|
Определяет вид заголовков графиков функций. |
|
|
|
|
При значении [default] в качестве заголовков ис- |
|
gnuplot_curve_ |
|
|
пользуются уравнения изображаемых функций. Для |
|
[default] |
|
задания пользовательских значений ключу необхо- |
|
|
titles |
|
||
|
|
|
димо передать список строк имеющих структуру |
|
|
|
|
|
|
|
|
|
|
“title ‘ заголовок’ ”. Для отключения отображения |
|
|
|
|
заголовков используется строка “set nokey” |
|
|
|
|
Стиль отображения линии графика. Некоторые |
|
gnuplot_curve_ |
|
|
команды приводились в примерах, полная инфор- |
|
styles |
|
|
мация может быть найдена в документации к |
|
|
|
|
Gnuplot. |
Для изменения значения переменной plot_options служит функция set_plot_options(<новое значение ключа>), вызывая которую мы получаем новое значение переменной plot_options. Кроме того, значение каждого из ключей мо- жет задаваться локально, в качестве дополнительного параметра графических функций, как и делалось в продемонстрированных выше примерах. Дело в том, что явное локальное задание параметра имеет более высокий приоритет, чем гло- бальное, хранящееся в plot_options. Ну и напоследок небольшая ложка дегтя в этой замечательной бочке с медом: многие противники бесплатного программно- го обеспечения в качестве существенного его недостатка называют слабую доку- ментированность. Не обошла эта беда и пару Maxima + Gnuplot. Так, внеся неко- торые изменения в свежие версии своих программ, разработчики забыли отразить эти изменения в руководствах пользователя. Так, например, в руководстве к Maxima до сих пор утверждается, что Gnuplot не умеет вращать трехмерные графики, а умолчательное значение ключа gnuplot_pm3d равно false. Несколько менее без- обидными такие неточности становятся, когда функция в новой версии начинает принимать немного другой, по сравнению с версией предыдущей, набор парамет- ров, но об этом нигде не говорится. Для примера здесь можно привести график из руководства пользователя, объединяющий построение дискретного набора точек и непрерывной кривой. Некоторые изменения синтаксиса, сделанные для приве-
33
дения графика к виду, обещанному авторами руководства, могут оказаться полез- ными желающим получить красивые графики.
|
1.6 |
|
|
|
experiment |
|
|
|
|
|
|
|
|
|
1.4 |
|
|
|
theory |
|
|
|
|
|
|
|
|
|
1.2 |
|
|
|
|
|
(s) |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
period |
0.8 |
|
|
|
|
|
0.6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0.4 |
|
|
|
|
|
|
0.2 |
|
|
|
|
|
|
0 |
|
|
|
|
|
|
0 |
10 |
20 |
30 |
40 |
50 |
pendulum's length (cm)
34
Литература
1.Тарнавский Т. Maxima – максимум свободы символьных вычислений // Linux Format №7 (81), 2006.
2.Тарнавский Т. Maxima – функции и операторы // Linux Format №8 (82), 2006.
3.Тарнавский Т. Maxima: укротитель выражений // Linux Format №9 (83), 2006.
4.Тарнавский Т. Maxima – максимум свободы символьных вычислений. Алгебра
иначала анализа // Linux Format №10 (84), 2006.
5.Тарнавский Т. Maxima – максимум свободы символьных вычислений. Графики
иуправляющие конструкции // Linux Format №11 (85), 2006.
6.Тарнавский Т. Maxima – максимум свободы символьных вычислений. Работа с файлами и фактами // Linux Format №12 (86), 2006.
7.Maple at 20. Though it all, it’s been about the math // The Newsletter from Waterloo Maple Inc. Fall 2001.
35