Максима (программное обеспечение)

Система компьютерной алгебры
Максима
Разработчик(и)Группа Macsyma в проекте MAC и добровольцы-участники
Первоначальный выпуск1982 ; 42 года назад (1982)
Стабильный релиз
5.47.0 [1]  / 1 июня 2023 г. ; 16 месяцев назад (1 June 2023)
Репозиторий
  • sourceforge.net/p/maxima/code/ci/master/tree/
Написано вОбщий Лисп
Операционная системаКроссплатформенный
ТипМатематическое программное обеспечение
ЛицензияGPL
Веб-сайтmaxima.sourceforge.io

Maxima ( / ˈ m æ k s ɪ m ə / ) — мощный программный пакет для выполнения вычислений компьютерной алгебры в математике и физических науках. Он написан на Common Lisp и работает на всех платформах POSIX , таких как macOS , Unix , BSD и Linux , а также под Microsoft Windows и Android . Это бесплатное программное обеспечение, выпущенное на условиях GNU General Public License (GPL).

История

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 специализируется на символьных операциях , но также предлагает числовые возможности [3], такие как целые числа произвольной точности , рациональные числа и числа с плавающей точкой , ограниченные только ограничениями по пространству и времени.

Программирование

Maxima включает в себя полный язык программирования с синтаксисом, подобным ALGOL, но семантикой, подобной Lisp . Он написан на Common Lisp и может быть доступен программно и расширен, поскольку базовый Lisp может быть вызван из Maxima. Он использует gnuplot для рисования.

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

Интерфейсы

Скриншот интерфейса wxMaxima для Maxima

Для Maxima доступны различные графические пользовательские интерфейсы (GUI):

  • wxMaxima [4] — это высококачественный графический интерфейс, использующий фреймворк wxWidgets . wxMaxima предоставляет ячеистую структуру, похожую на блокнот Mathematica, как показано на рисунке справа.
  • Существует ядро ​​для проекта Jupyter , гибкого графического интерфейса в стиле блокнота , написанного на Python . [5]
  • GMaxima — это интерфейс Maxima, использующий GTK+ . [6]
  • Cantor , используя Qt , может взаимодействовать с Maxima (вместе с SageMath , R и KAlgebra ) [7]
  • Программы математических редакторов GNU TeXmacs и LyX могут использоваться для предоставления интерактивного графического интерфейса для Maxima, как и SageMath. Другие варианты включают фронтенд Imaxima, а также режим взаимодействия Emacs и XEmacs , который активируется Imaxima.
  • Каяли [8]
  • Climaxima, [9] интерфейс на основе CLIM . [10]

Примеры кода Maxima

Основные операции

Арифметика произвольной точности

bfloat ( sqrt ( 2 )), fpprec = 40 ; 

1.41421356237309504880168872420969807857 10 0 {\displaystyle 1.41421356237309504880168872420969807857\cdot 10^{0}}

Функция

f ( х ) := х ^ 3 $ж ( 4 );

64 {\displaystyle 64}

Расширять

развернуть (( а - б ) ^ 3 );

b 3 + 3 a b 2 3 a 2 b + a 3 {\displaystyle -b^{3}+3ab^{2}-3a^{2}b+a^{3}}

Фактор

фактор ( x ^ 2 - 1 );

( x 1 ) ( x + 1 ) {\displaystyle (x-1)(x+1)}

Решение уравнений

x 2 + a   x + 1 = 0 {\displaystyle x^{2}+a\ x+1=0}

решить ( x ^ 2 + a * x + 1 , x );     

[ x = ( a 2 4 + a 2 ) , x = a 2 4 a 2 ] {\displaystyle [x=-{\Biggl (}{\frac {{\sqrt {a^{2}-4}}+a}{2}}{\Biggr )},x={\frac {{\sqrt {a^{2}-4}}-a}{2}}]}

Решение уравнений численным методом

cos x = x {\displaystyle \cos x=x}

найти_корень ( cos ( x ) = x , x , 0 , 1 );     

0.7390851332151607 {\displaystyle 0.7390851332151607}

bf_find_root ( cos ( x ) = x , x , 0 , 1 ), fpprec = 50 ;        

7.3908513321516064165531208767387340401341175890076 10 1 {\displaystyle 7.3908513321516064165531208767387340401341175890076\cdot 10^{-1}}

Неопределенный интеграл

x 2 + cos x   d x {\displaystyle \int x^{2}+\cos x\ dx}

интегрировать ( x ^ 2 + cos ( x ), x );   

sin x + x 3 3 {\displaystyle \sin x+{\frac {x^{3}}{3}}}

Определенный интеграл

0 1 1 x 3 + 1 d x {\displaystyle \int _{0}^{1}{\frac {1}{x^{3}+1}}\,dx}

интегрировать ( 1 / ( x ^ 3 + 1 ), x , 0 , 1 ), ratsimp ;      

3 log 2 + π 3 3 2 {\displaystyle {\frac {{\sqrt {3}}\log 2+\pi }{3^{\frac {3}{2}}}}}

Численный интеграл

0 2 sin ( sin ( x ) ) d x {\displaystyle \int _{0}^{2}\sin(\sin(x))\,dx}

quad_qags ( sin ( sin ( x )), x , 0 , 2 )[ 1 ];   

1.247056058244003 {\displaystyle 1.247056058244003}

Производный

d 3 d x 3 cos 2 x {\displaystyle {d^{3} \over dx^{3}}\cos ^{2}x}

дифф ( cos ( x ) ^ 2 , x , 3 );  

8 cos x sin x {\displaystyle 8\cos {x}\sin {x}}

Предел

lim x 1 + sinh x e x {\displaystyle \lim _{x\to \infty }{\frac {1+\sinh {x}}{e^{x}}}}

предел (( 1 + sinh ( x )) / exp ( x ), x , inf );  

1 2 {\displaystyle {\frac {1}{2}}}

Теория чисел

простые числа ( 10 , 20 ); 

[ 11 , 13 , 17 , 19 ] {\displaystyle [11,13,17,19]}

фиба ( 10 );

55 {\displaystyle 55}

Ряд

x = 1 1 x 2 {\displaystyle \sum _{x=1}^{\infty }{\frac {1}{x^{2}}}}

сумма ( 1 / х ^ 2 , х , 1 , инф ), симпсум ;    

π 2 6 {\displaystyle {\frac {\pi ^{2}}{6}}}

Расширение серии

Тейлор ( sin ( x ), x , 0 , 9 );   

x x 3 6 + x 5 120 x 7 5040 + x 9 362880 {\displaystyle x-{\frac {x^{3}}{6}}+{\frac {x^{5}}{120}}-{\frac {x^{7}}{5040}}+{\frac {x^{9}}{362880}}}

niceindices ( powerseries ( cos ( x ), x , 0 ));  

i = 0 ( 1 ) i x 2 i ( 2 i ) ! {\displaystyle \sum _{i=0}^{\infty }{\frac {(-1)^{i}x^{2i}}{(2i)!}}}

Специальные функции

bessel_j ( 0 , 4.5 ); 

0.3205425089851214 {\displaystyle -0.3205425089851214}

airy_ai ( 1.5 );

0.07174949700810543 {\displaystyle 0.07174949700810543}

Смотрите также

Ссылки

  1. ^ "Анонс 5.47.0". 1 июня 2023 г. Получено 2 июня 2023 г.
  2. ^ "GSOC 2019 успешно завершен » Бельгийская нейроинформатика".
  3. ^ Barnes, David J. & Chu, Dominique (2010). "Глава 5". Введение в моделирование для биологических наук . Springer . ISBN 978-1-84996-325-1.
  4. ^ "wxMaxima, интерфейс на основе документов для системы компьютерной алгебры Maxima" . Получено 29.11.2021 .
  5. ^ "Максима-Юпитер". Гитхаб . 13 октября 2021 г.
  6. ^ "GMaxima :: Home". Архивировано из оригинала 2018-07-28 . Получено 2014-04-02 .
  7. ^ "Кантор". cantor.kde.org . Получено 2020-01-15 .
  8. ^ "Kayali download". SourceForge . 19 апреля 2013 г. Получено 2015-05-31 .
  9. ^ "Flathub — магазин приложений и сервис сборки для Linux". flathub.org . Получено 27.09.2019 .
  10. ^ Мортенсон, Элиас (27 августа 2019 г.), GitHub - lokedhs/maxima-client: клиент Maxima. , получено 27 сентября 2019 г.

Дальнейшее чтение

  • Тимберлейк, Тодд Кин; Миксон-младший, Дж. Уилсон (2015). Классическая механика с Maxima . Springer. ISBN 978-1-4939-3206-1.
  • Официальный сайт
  • wxMaxima
Retrieved from "https://en.wikipedia.org/w/index.php?title=Maxima_(software)&oldid=1212634953"