MAXIMA(1L)

НАЗВАНИЕ
Maxima - Common Lisp версия символьного математического пакета MACSYMA, выпущенного под Общественной лицензией GNU

Xmaxima - графическая версия maxima

КРАТКАЯ СВОДКА
maxima [options]

xmaxima [options]

ОПИСАНИЕ
Maxima - модифицированная для работы под Common Lisp версия системы MACSYMA, разработанной в Массачусетском технологическом институте. Это диалоговая экспертная система и среда программирования для символьных и численных математических преобразований. Написанная на Lisp, она позволяет дифференцировать, интегрировать, решать линейные или полиномиальные уравнения, производить факторизацию многочленов, разлагать функции в ряды Лорана или Тейлора, вычислять ряды Пуассона, производить матричные и тензорные преобразования, двухмерная и трехмерная графика. Процедуры могут быть записаны с помощью ALGOL-подобного синтаксиса; предусмотрены как Lisp-подобные функции, так и средства сопоставления с образцом. Файлы, содержащие объекты Maxima, могут читаться и записываться на диск. Предварительно записанные команды Maxima могут читаться из файла и выполняться в пакетном режиме.

КЛЮЧИ

-b file, --batch=file
    Обработать file в пакетном режиме.

--batch-lisp=file
    Обработать Lisp файл file в пакетном режиме.

--batch-string=string
    Обработать string в пакетном режиме.

-d, --directories
    Вывести информацию о директориях Maxima.

--disable-readline
    Отключить поддержку readline.

-g, --enable-lisp-debugger
    Включить Lisp отладчик.

-h, --help
    Вывести краткую информацию об использовании.

-l lisp, --lisp=lisp
    Использовать реализацию Lisp lisp. Используйте --list-avail для вывода списка возможных значений.

--list-avail
    Вывести список доступных версий Lisp и Maxima.

-p lisp_file, --preload-lisp=lisp_file
    Предварительно загрузить lisp_file.

-q, --quiet
    Не выводить стартовое сообщение Maxima.

-r string, --run-string=string
    Обработать string в диалоговом режиме Maxima.

-s port, --server=port
    Запустить сервер Maxima на порту port.

-u version, --use-version=version
    Запустить Maxima версии version. Используйте --list-avail для вывода списка возможных значений.

-v, --verbose
    Вывести дополнительную информацию из сценария запуска Maxima.

--version
    Вывести установленную версию (по умолчанию).

--very-quiet
    Не выводить метки выражений и стартовое сообщение Maxima.

ВВОДНЫЕ ИНСТРУКЦИИ
При инициализации maxima выводит стартовое сообщение, после чего появляется приглашение командной строки:

(%i1)

Все команды Maxima должны завершаться:

1)  точкой с запятой (в этом случае результат выполнения команды выводится на экран в строке, начинающейся с %o , к которой добавляется номер команды), или

2)  знаком доллара, подавляющим печать строки с результатом.

ПРИМЕР

(%i1) diff(sin(x),x);

(%d1) cos(x)

(%i2) integrate(%o1,x);

(%o2) sin(x)

Пользователь вводит команды, создающие объекты Maxima (такие как функции и системные переменные) и выполняющие действия над ними.

В UNIX может оказаться предпочтительным запускать Maxima под управлением GNU Emacs или XEmacs. Это можно сделать вызвав командный режим из emacs, а затем ввести maxima. Желательно установить maxima.el из дистрибутива и использовать команду:

    M-x maxima

Главное преимущество работы внутри emacs - то, что он предоставляет полную историю ввода/вывода. Выполнив команду

    display2d:false ,

Вы получите возможность использовать вывод для ввод с помощью операций вырезки/вставки.

Lisp встроен в Maxima. Функция to_lisp() входит в цикл чтения-вычисления-вывода Lisp. Функция Lisp (run) может использоваться для возврата в Maxima. Кроме того, одиночные команды Lisp могут быть вызваны при запуске в командной строке с ключом :lisp.

ВСТРОЕННАЯ СПРАВКА
В систему встроена обширная диалоговая документация. Описание заданной команды можно получить с помощью команды

describe(command);

или, проще,

? command,

которая ищет в списке функций строку command. Демонстрационные файлы, предоставляющие полные примеры решения задач с помощью Maxima, могут быть вызваны командой demo(command);. Дополнительно поставляется библиотека командных файлов, созданных пользователями ("разделяемая библиотека"), предлагающая решения разнообразных задач.

ДРУГАЯ ДОКУМЕНТАЦИЯ
Полная документация поставляется в форматах info и html.

КОМАНДЫ ДЛЯ НАЧИНАЮЩИХ

Этот список включает только те команды, которые могут быть полезны начинающим пользователям, до изучения справочного руководства.

batch("myfile");
    Выполняет содержимое файла myfile, который должен содержать команды Maxima.

closefile("myfile");
    Закрывает файловый сеанс, открытый командой writefile (см. ниже).

demo("myfile");
    Выполняет содержимое файла myfile, который должен содержать команды Maxima, по одной.

ev(infolists);
    Выводит содержимое всех доступных информационных списков.

functions;
    Выводит список имен определенных к данному моменту функций.

infolists;
    Выводит список различных доступных информационных списков.

kill(objectlist);
    Удаляет объект(ы), записанные внутри круглых скобок. kill(all) удаляет все объекты, созданные пользователем, восстанавливая начальное состояние Maxima.

quit();
    Выход из Maxima.

reset();
    Сбрасывает все управляющие параметры Maxima в значения по умолчанию.

values;
    Выводит список имен переменных, содержащих скалярные значения.

writefile("myfile");
    Начинает запись сеанса в файл myfile; одновременно может быть открыт только один файл, а команда closefile должна быть вызвана до выхода из Maxima для сброса буфера.

ГРАФИЧЕСКИЕ КОМАНДЫ
Maxima способна строить двухмерные и трехмерные графики. Ниже приведены простой двумерный

plot2d (sin(x), [x, -2*%pi, 2*%pi]);

и трехмерный примеры

plot3d (2^(-u^2+v^2), [u, -5, 5], [v, -7, 7]);

По умолчанию построение графиков осуществляется программой gnuplot . Есть и другие способы построения графиков; см. "? plot_options". Для более подробной информации о построении графиков, см. "? plot".

ФАЙЛЫ

/opt/local/lib/maxima/branch_5_49_base_111_g386c21ed2_dirty/binary-lisp
    Скомпилированные файлы для реализации Lisp lisp

/opt/local/info
    первичный каталог документации, содержащий info-файлы, используемые командой `describe', с возможностью просмотра в emacs и других программах для просмотра info-файлов.

/opt/local/share/maxima/branch_5_49_base_111_g386c21ed2_dirty/doc/html
    HTML-версия документации.

/opt/local/share/maxima/branch_5_49_base_111_g386c21ed2_dirty/demo
    Демонстрационные файлы Maxima.

/opt/local/share/maxima/branch_5_49_base_111_g386c21ed2_dirty/emacs
    Файлы Elisp для использования с Emacs или XEmacs.

/opt/local/share/maxima/branch_5_49_base_111_g386c21ed2_dirty/share
    Дополнительные внешние пакеты.

/opt/local/share/maxima/branch_5_49_base_111_g386c21ed2_dirty/doc/share
    Документация для дополнительных внешних пакетов.

/opt/local/share/maxima/branch_5_49_base_111_g386c21ed2_dirty/src
    Полные исходные тексты Maxima.

/opt/local/share/maxima/branch_5_49_base_111_g386c21ed2_dirty/tests
    Набор тестов.

/opt/local/share/maxima/branch_5_49_base_111_g386c21ed2_dirty/xmaxima
    Файлы поддержки Xmaxima.

/opt/local/libexec/maxima/branch_5_49_base_111_g386c21ed2_dirty/
    Сценарии сопутствующих Maxima утилит.

ПЕРЕМЕННЫЕ ОКРУЖЕНИЯ

MAXIMA_USERDIR
    Указывает на каталог с файлами пользовательских настроек. По умолчанию пути поиска Maxima включают MAXIMA_USERDIR. Значение по умолчанию: $HOME/.maxima.

MAXIMA_PREFIX
    Свои входные файлы Maxima ищет в каталоге, указанном во время компиляции, /opt/local. Maxima можно переместить в другой каталог до тех пор пока сценарий maxima поддерживает то же относительное положение по отношениею к входным файлам Maxima. Если, в силу каких-то причин, сценарий maxima перемещается отдельно, для указания вершины дерева, содержащего входные файлы системы, необходимо установить значение MAXIMA_PREFIX.

MAXIMA_DIRECTORY
    MAXIMA_DIRECTORY экивалентна MAXIMA_PREFIX. Включена только для обратной совместимости с предыдущими версиями Maxima.

Maxima использует несколько дополнительных переменных окружения для взаимодействия между сценарием maxima и образом Lisp-системы. Все эти переменные начинаются с MAXIMA_ и не должны меняться пользователем.

ФАЙЛЫ НАСТРОЕК

maximarc
    maximarc загружается скриптом maxima при запуске системы. Он должен быть расположен в каталоге $MAXIMA_USERDIR (см. выше). maximarc можно использовать, например, для изменения выбранной по умолчанию реализации Lisp на CMUCL включением строки "MAXIMA_LISP=cmucl".

maxima-init.lisp
    При запуске Maxima загрузит Lisp-файл maxima-init.lisp, если найдет его в каталогах для поиска. Для пользовательской настройке, maxima-init.lisp должен располагаться в $MAXIMA_USERDIR (см. выше). Поскольку Maxima обычно имеет системный файл maxima-init.lisp, пользователь может скопировать содержимое системного maxima-init.lisp в свой личный файл.

maxima-init.mac
    При запуске Maxima загрузит Maxima-файл maxima-init.mac, если найдет его в каталогах для поиска. Для пользовательской настройке, maxima-init.mac должен располагаться в $MAXIMA_USERDIR (см. выше).

ССЫЛКИ
Старая ссылка: MACSYMA. Справочное руководство (тома 1 и 2). Группа Mathlab, Лаборатория компьютерных наук, МТИ. Версия 10. Январь 1983 г.

Новые ссылки: http://maxima.sourceforge.net

ОШИБКИ
Maxima - сложная система, содержащая как известные, так и неизвестные ошибки. Используйте ее на свой страх и риск. База ошибок Maxima доступна по адресу

https://sourceforge.net/p/maxima/bugs/

Новые сообщения об ошибках всегда приветствуются. Пожалуйста, включайте в сообщение вывод функции Maxima "build_info()".

АВТОРЫ
MACSYMA (Проект MAC's SYmbolic MAnipulation System) была разработана группой Mathlab в лаборатории компьютерных наук МТИ (первоначально известной как Проект MAC) в 1969-1972 гг. Эта работа была поддержана грантами NSG 1323 NASA, N00014-77-C-0641 Исследовательского агентства ВМС, ET-78-C-02-4687 Министерства энергетики США и F49620-79-C-020 ВВС США. Затем MACSYMA была модифицирована для использования под операционной системой UNIX (на компьютерах DEC VAX и рабочих станциях Sun) Ричардом Фейтманом и его коллегами из Калифорнийского университета в Беркли; эта версия MACSYMA известная как VAXIMA. Настоящая версия развивается из переработки общедоступной MIT MACSYMA для GNU Common Lisp, выполненной Уильямом Шелтером (Техасский университет в Остине), который развивал ее до своей кончины в 2001 г. Она содержит многочисленные дополнения, расширения и улучшения относительно оригинала. Оригинальная версия этой справочной страницы была написана Р.П.К. Роджерсом (rodgers@maxwell.mmwb.ucsf.edu) из Фармацевтической школы Калифорнийского университета (Сан-Франциско, CA 94143) в 1989 г., и существенно переработана Джеймсом Амундсоном в 2002 г. Сейчас Maxima развивается и поддерживается проектом Maxima <http://maxima.sourceforge.net>.