Maxima основана на версии Macsyma 1982 года , которая была разработана в Массачусетском технологическом институте при финансовой поддержке Министерства энергетики США и других правительственных учреждений. Версия Macsyma поддерживалась Биллом Шелтером с 1982 года до его смерти в 2001 году. В 1998 году Шелтер получил разрешение Министерства энергетики на выпуск своей версии под лицензией GPL. Эта версия, которая теперь называется Maxima, поддерживается независимой группой пользователей и разработчиков. Maxima не включает в себя ни одну из многих модификаций и улучшений, внесенных в коммерческую версию Macsyma в 1982–1999 годах. Хотя основные функциональные возможности остаются схожими, код, зависящий от этих улучшений, может не работать в Maxima, а ошибки, исправленные в Macsyma, могут все еще присутствовать в Maxima, и наоборот. Maxima приняла участие в Google Summer of Code в 2019 году в рамках Международного координационного центра нейроинформатики . [2]
Символические расчеты
Как и большинство систем компьютерной алгебры, Maxima поддерживает множество способов реорганизации символических алгебраических выражений, таких как полиномиальная факторизация , полиномиальное вычисление наибольшего общего делителя , разложение, разделение на действительную и мнимую части, а также преобразование тригонометрических функций в экспоненциальные и наоборот. Он имеет множество методов упрощения алгебраических выражений, включающих тригонометрические функции, корни и показательные функции. Он может вычислять символические первообразные («неопределенные интегралы»), определенные интегралы и пределы . Он может выводить разложения в ряды в замкнутой форме , а также члены рядов Тейлора-Маклорена - Лорана . Он может выполнять матричные манипуляции с символьными записями.
Maxima — это система общего назначения, а вычисления для особых случаев, такие как факторизация больших чисел , манипулирование чрезвычайно большими полиномами и т. д., иногда лучше выполнять в специализированных системах.
Maxima включает в себя полноценный язык программирования с синтаксисом, подобным ALGOL , но семантикой , подобной Lisp . Он написан на Common Lisp , к нему можно обращаться программно и расширять, поскольку базовый Lisp можно вызывать из Maxima. Для рисования используется gnuplot .
Для вычислений с интенсивным использованием чисел с плавающей запятой и массивов у Maxima есть переводчики с языка Maxima на другие языки программирования (особенно Fortran ), которые могут выполняться более эффективно.
wxMaxima [4] — это графический интерфейс, использующий wxWidgets .
Существует ядро для Project Jupyter — гибкого графического интерфейса в стиле блокнота , написанного на Python . [5]
GMaxima — это интерфейс Maxima, использующий GTK+ . [6]
Cantor , используя Qt , может взаимодействовать с Maxima (наряду с SageMath , R и KAlgebra ) [7]
Программы математических редакторов GNU TeXmacs и LyX могут использоваться для предоставления интерактивного графического интерфейса для Maxima, как и SageMath. Другие варианты включают интерфейс Imaxima, а также режим взаимодействия Emacs и XEmacs , который активируется Imaxima.