Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Maxima (software)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|Computer algebra system}} {{Infobox software | name = Maxima | logo = Maxima-new.svg | logo_size = 150px | screenshot = Maximaplot.png | screenshot_size = 250px | caption = Screenshot of Maxima, plotting the 2D graph of a function with the gnuplot-x11 package running on Ubuntu Linux | developer = Macsyma group at [[Project MAC]] and volunteer contributors | released = {{Start date and age|1982|df=yes}} | latest release version = {{wikidata|property|edit|reference|P348}} | latest release date = {{start date and age|{{wikidata|qualifier|P348|P577}}}} | programming language = [[Common Lisp]] | operating system = [[Cross-platform]] | genre = [[Mathematical software]] | license = [[GNU General Public License|GPL]] | website = {{url|https://maxima.sourceforge.io/}} }} '''Maxima''' ({{IPAc-en|ˈ|m|æ|k|s|ɪ|m|ə}}) is a powerful software package for performing [[computer algebra system|computer algebra]] calculations in mathematics and the physical sciences. It is written in [[Common Lisp]] and runs on all [[POSIX]] platforms such as [[macOS]], [[Unix]], [[Berkeley Software Distribution|BSD]], and [[Linux]], as well as under [[Microsoft Windows]] and [[Android (operating system)|Android]]. It is [[free software]] released under the terms of the [[GNU General Public License]] (GPL). ==History== Maxima is based on a 1982 version of [[Macsyma]], which was developed at [[Massachusetts Institute of Technology|MIT]] with funding from the [[United States Department of Energy]] and other government agencies. A version of Macsyma was maintained by [[Bill Schelter]] from 1982 until his death in 2001. In 1998, Schelter obtained permission from the Department of Energy to release his version under the GPL. That version, now called Maxima, is maintained by an independent group of users and developers. Maxima does not include any of the many modifications and enhancements made to the commercial version of Macsyma during 1982–1999. Though the core functionality remains similar, code depending on these enhancements may not work on Maxima, and bugs which were fixed in Macsyma may still be present in Maxima, and vice versa. Maxima participated in [[Google Summer of Code]] in 2019 under [[International Neuroinformatics Coordinating Facility]].<ref>{{Cite web|url=http://neuroinformatics.be/gsoc2019-completed/|title = GSOC 2019 completed successfully » Belgian Neuroinformatics}}</ref> ==Symbolic calculations== Like most computer algebra systems, Maxima supports a variety of ways of reorganizing symbolic algebraic expressions, such as [[polynomial factorization]], [[polynomial greatest common divisor]] calculation, expansion, separation into real and imaginary parts, and transformation of trigonometric functions to exponential and vice versa. It has a variety of techniques for simplifying algebraic expressions involving trigonometric functions, roots, and exponential functions. It can calculate symbolic [[antiderivative]]s ("indefinite integrals"), [[definite integral]]s, and [[limit (mathematics)|limits]]. It can derive closed-form [[series expansion]]s as well as terms of [[Taylor series|Taylor-Maclaurin]]-[[Laurent series|Laurent]] series. It can perform matrix manipulations with symbolic entries. Maxima is a general-purpose system, and special-case calculations such as [[Integer factorization|factorization of large numbers]], manipulation of extremely large [[polynomial]]s, etc. are sometimes better done in specialized systems. ===Numeric calculations=== Maxima specializes in [[symbolic computation|symbolic operations]], but it also offers numerical capabilities<ref name="MaximaSpringer">{{cite book |last1=Barnes |first1=David J. |last2=Chu |first2=Dominique |name-list-style=amp |title=Introduction to Modeling for Biosciences |chapter=Chapter 5 |publisher=[[Springer Science+Business Media|Springer]] |year=2010 |isbn=978-1-84996-325-1}}</ref> such as [[arbitrary-precision arithmetic|arbitrary-precision]] [[integer]], [[rational number]], and [[Floating-point arithmetic|floating-point numbers]], limited only by space and time constraints. ===Programming=== Maxima includes a complete programming language with [[ALGOL]]-like syntax but [[Lisp (programming language)|Lisp]]-like [[Semantics (computer science)|semantics]]. It is written in [[Common Lisp]] and can be accessed programmatically and extended, as the underlying Lisp can be called from Maxima. It uses [[gnuplot]] for drawing. For calculations using floating point and arrays heavily, Maxima has translators from the Maxima language to other programming languages (notably [[Fortran]]), which may execute more efficiently. ==Interfaces== [[File:WxMaxima 0.7.1 screenshot.png|thumb|Screenshot of the wxMaxima interface for Maxima]] Various [[graphical user interface]]s (GUIs) are available for Maxima: * [https://wxmaxima-developers.github.io/wxmaxima/ wxMaxima]<ref>{{Cite web|url=https://wxmaxima-developers.github.io/wxmaxima/|title=wxMaxima, a document based interface for the computer algebra system Maxima|access-date=2021-11-29}}</ref> is high-quality graphical front-end using the [[wxWidgets]] framework. wxMaxima provides a cell structure similar to the Mathematica notebook as shown in the figure to the right. Sessions in wxMaxima can be saved in a variety of file formats for later use. * There is a kernel for [[Project Jupyter]], a flexible, [[Notebook interface|notebook]]-style GUI written in [[Python (programming language)|Python]].<ref>{{Cite web|url=https://github.com/robert-dodier/maxima-jupyter|title = Maxima-Jupyter|website = [[GitHub]]|date = 13 October 2021}}</ref> * [[Cantor (mathematics software)|Cantor]], using [[Qt (software)|Qt]], can interface with Maxima (along with [[SageMath]], [[R (programming language)|R]], and [[KAlgebra]])<ref>{{Cite web|url=https://cantor.kde.org/|title=Cantor|website=cantor.kde.org|access-date=2020-01-15}}</ref> * The [[GNU TeXmacs]] and [[LyX]] mathematical editor programs can be used to provide an interactive GUI for Maxima, as can SageMath. Other options include the Imaxima front end, as well as an [[Emacs]] and [[XEmacs]] interaction mode which is activated by Imaxima. * Climaxima,<ref>{{Cite web|url=https://flathub.org/apps/details/com.dhsdevelopments.Climaxima|title=Flathub—An app store and build service for Linux|website=flathub.org|access-date=2019-09-27}}</ref> a [[CLIM]]-based front-end.<ref>{{Citation|last=Mårtenson|first=Elias|title=GitHub - lokedhs/maxima-client: Maxima client.|date=2019-08-27|url=https://github.com/lokedhs/maxima-client|access-date=2019-09-27}}</ref> == Examples of Maxima code == === Basic operations === ==== Arbitrary-precision arithmetic ==== <syntaxhighlight lang="maxima"> bfloat(sqrt(2)), fpprec=40; </syntaxhighlight><math>1.41421356237309504880168872420969807857 \cdot 10^0</math> ==== Function ==== <syntaxhighlight lang="maxima" line="1"> f(x):=x^3$ f(4); </syntaxhighlight><math>64</math> ==== Expand ==== <syntaxhighlight lang="maxima"> expand((a-b)^3); </syntaxhighlight><math>-b^3+3 ab^2-3a^2b+a^3</math> ==== Factor ==== <syntaxhighlight lang="maxima"> factor(x^2-1); </syntaxhighlight><math>(x-1)(x+1)</math> === Solving equations === <math>x^2+a \ x + 1=0</math><syntaxhighlight lang="maxima"> solve(x^2 + a*x + 1, x); </syntaxhighlight><math>[x=-\Biggl(\frac{\sqrt{a^2-4}+a}{2}\Biggr),x=\frac{\sqrt{a^2-4}-a}{2}]</math> === Solving equations numerically === <math>\cos x = x</math><syntaxhighlight lang="maxima"> find_root(cos(x) = x, x, 0, 1); </syntaxhighlight><math>0.7390851332151607</math><syntaxhighlight lang="maxima"> bf_find_root(cos(x) = x, x, 0, 1), fpprec = 50; </syntaxhighlight><math>7.3908513321516064165531208767387340401341175890076 \cdot 10^{-1}</math> === Indefinite integral === <math>\int x^2+\cos x\ d x</math><syntaxhighlight lang="maxima"> integrate(x^2 + cos(x), x); </syntaxhighlight><math>\sin x + \frac{x^3}{3}</math> === Definite integral === <math>\int_{0}^{1}\frac{1}{x^3+1}\, dx</math><syntaxhighlight lang="maxima"> integrate(1/(x^3 + 1), x, 0, 1), ratsimp; </syntaxhighlight><math>\frac{\sqrt3 \log2+\pi}{3^{\frac{3}{2}}}</math> === Numerical integral === <math>\int_{0}^{2} \sin(\sin (x)) \, dx</math><syntaxhighlight lang="maxima"> quad_qags(sin(sin(x)), x, 0, 2)[1]; </syntaxhighlight><math>1.247056058244003</math> === Derivative === <math>{d^3 \over d x^3} \cos^2 x</math><syntaxhighlight lang="maxima"> diff(cos(x)^2, x, 3); </syntaxhighlight><math>8 \cos{x}\sin{x}</math> === Limit === <math>\lim_{x \to \infty} \frac{1+\sinh{x}}{e^{x}}</math><syntaxhighlight lang="maxima"> limit((1+sinh(x))/exp(x), x, inf); </syntaxhighlight><math>\frac{1}{2}</math> === Number theory === <syntaxhighlight lang="maxima"> primes(10, 20); </syntaxhighlight><math>[11,13,17,19]</math><syntaxhighlight lang="maxima"> fib(10); </syntaxhighlight><math>55</math> === Series === <math>\sum_{x=1}^\infty \frac{1}{x^2} </math><syntaxhighlight lang="maxima"> sum(1/x^2, x, 1, inf), simpsum; </syntaxhighlight><math>\frac{\pi^2}{6}</math> === Series expansion === <syntaxhighlight lang="maxima"> taylor(sin(x), x, 0, 9); </syntaxhighlight><math>x-\frac{x^3}{6}+\frac{x^5}{120}-\frac{x^7}{5040}+\frac{x^9}{362880}</math><syntaxhighlight lang="maxima"> niceindices(powerseries(cos(x), x, 0)); </syntaxhighlight><math>\sum_{i=0}^\infty \frac{(-1)^ix^{2i}}{(2i)!}</math> === Special functions === <syntaxhighlight lang="maxima"> bessel_j(0, 4.5); </syntaxhighlight><math>-0.3205425089851214</math><syntaxhighlight lang="maxima"> airy_ai(1.5); </syntaxhighlight><math>0.07174949700810543</math> ==See also== {{Portal|Free and open-source software|Mathematics}} * [[Comparison of computer algebra systems]] * [[SageMath]], a free mathematics software which borrows many libraries from Maxima {{Clear}} ==References== {{Reflist}} ==Further reading== * {{cite book|last1=Timberlake|first1=Todd Keene|last2=Mixon Jr.|first2=J. Wilson|title=Classical Mechanics with Maxima|isbn=978-1-4939-3206-1|publisher=Springer|year=2015}} ==External links== {{Wikibooks|Maxima}} {{Commons category|Maxima (software)}} * {{Official website|https://maxima.sourceforge.io/}} * [https://wxmaxima-developers.github.io/wxmaxima/ wxMaxima] {{Computer algebra systems}} {{Numerical analysis software}} {{Authority control}} [[Category:Common Lisp (programming language) software]] [[Category:Computer algebra system software for Linux]] [[Category:Computer algebra system software for macOS]] [[Category:Computer algebra system software for Windows]] [[Category:Cross-platform free software]] [[Category:Free computer algebra systems]] [[Category:Free educational software]] [[Category:Free software programmed in Lisp]] [[Category:Software that uses wxWidgets]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Authority control
(
edit
)
Template:Citation
(
edit
)
Template:Cite book
(
edit
)
Template:Cite web
(
edit
)
Template:Clear
(
edit
)
Template:Commons category
(
edit
)
Template:Computer algebra systems
(
edit
)
Template:IPAc-en
(
edit
)
Template:Infobox
(
edit
)
Template:Infobox software
(
edit
)
Template:Main other
(
edit
)
Template:Numerical analysis software
(
edit
)
Template:Official website
(
edit
)
Template:Portal
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)
Template:Sister project
(
edit
)
Template:Template other
(
edit
)
Template:Wikibooks
(
edit
)