Maxima (software)
| Error creating thumbnail: | |
| Error creating thumbnail: Screenshot of Maxima, plotting the 2D graph of a function with the gnuplot-x11 package running on Ubuntu Linux | |
| Developer(s) | Macsyma group at Project MAC and volunteer contributors |
|---|---|
| Initial release | 1982 |
| Written in | Common Lisp |
| Operating system | Cross-platform |
| Type | Mathematical software |
| License | GPL |
| Website | maxima |
Maxima (/ˈmæksɪmə/) is a software package for performing 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, BSD, and Linux, as well as under Microsoft Windows and Android. It is free software released under the terms of the GNU General Public License (GPL).
History
[edit | edit source]Maxima is based on a 1982 version of Macsyma, which was developed at 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.[1]
Symbolic calculations
[edit | edit source]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 antiderivatives ("indefinite integrals"), definite integrals, and limits. It can derive closed-form series expansions as well as terms of Taylor-Maclaurin-Laurent series. It can perform matrix manipulations with symbolic entries.
Maxima is a general-purpose system, and special-case calculations such as factorization of large numbers, manipulation of extremely large polynomials, etc. are sometimes better done in specialized systems.
Numeric calculations
[edit | edit source]Maxima specializes in symbolic operations, but it also offers numerical capabilities[2] such as arbitrary-precision integer, rational number, and floating-point numbers, limited only by space and time constraints.
Programming
[edit | edit source]Maxima includes a complete programming language with ALGOL-like syntax but Lisp-like 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
[edit | edit source]Various graphical user interfaces (GUIs) for Maxima are:
- wxMaxima[3] 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-style GUI written in Python.[4]
- Cantor, using Qt, can interface with Maxima (along with SageMath, R, and KAlgebra)[5]
- 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[6] is a CLIM-based front-end.[7]
- The online assessment system STACK[8] incorporates Maxima and provides a web interface.
Examples of Maxima code
[edit | edit source]Basic operations
[edit | edit source]Arbitrary-precision arithmetic
[edit | edit source]bfloat(sqrt(2)), fpprec=40;
Function
[edit | edit source]f(x):=x^3$
f(4);
Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle 64}
Expand
[edit | edit source]expand((a-b)^3);
Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle -b^3+3 ab^2-3a^2b+a^3}
Factor
[edit | edit source]factor(x^2-1);
Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle (x-1)(x+1)}
Solving equations
[edit | edit source]Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle x^2+a \ x + 1=0}
solve(x^2 + a*x + 1, x);
Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle [x=-\Biggl(\frac{\sqrt{a^2-4}+a}{2}\Biggr),x=\frac{\sqrt{a^2-4}-a}{2}]}
Solving equations numerically
[edit | edit source]Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \cos x = x}
find_root(cos(x) = x, x, 0, 1);
Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle 0.7390851332151607}
bf_find_root(cos(x) = x, x, 0, 1), fpprec = 50;
Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle 7.3908513321516064165531208767387340401341175890076 \cdot 10^{-1}}
Indefinite integral
[edit | edit source]Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \int x^2+\cos x\ d x}
integrate(x^2 + cos(x), x);
Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \sin x + \frac{x^3}{3}}
Definite integral
[edit | edit source]Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \int_{0}^{1}\frac{1}{x^3+1}\, dx}
integrate(1/(x^3 + 1), x, 0, 1), ratsimp;
Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \frac{\sqrt3 \log2+\pi}{3^{\frac{3}{2}}}}
Numerical integral
[edit | edit source]Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \int_{0}^{2} \sin(\sin (x)) \, dx}
quad_qags(sin(sin(x)), x, 0, 2)[1];
Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle 1.247056058244003}
Derivative
[edit | edit source]Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle {d^3 \over d x^3} \cos^2 x}
diff(cos(x)^2, x, 3);
Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle 8 \cos{x}\sin{x}}
Limit
[edit | edit source]Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \lim_{x \to \infty} \frac{1+\sinh{x}}{e^{x}}}
limit((1+sinh(x))/exp(x), x, inf);
Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \frac{1}{2}}
Number theory
[edit | edit source]primes(10, 20);
Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle [11,13,17,19]}
fib(10);
Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle 55}
Series
[edit | edit source]Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \sum_{x=1}^\infty \frac{1}{x^2} }
sum(1/x^2, x, 1, inf), simpsum;
Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \frac{\pi^2}{6}}
Series expansion
[edit | edit source]taylor(sin(x), x, 0, 9);
Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle x-\frac{x^3}{6}+\frac{x^5}{120}-\frac{x^7}{5040}+\frac{x^9}{362880}}
niceindices(powerseries(cos(x), x, 0));
Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \sum_{i=0}^\infty \frac{(-1)^ix^{2i}}{(2i)!}}
Special functions
[edit | edit source]bessel_j(0, 4.5);
Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle -0.3205425089851214}
airy_ai(1.5);
Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle 0.07174949700810543}
See also
[edit | edit source]- Comparison of computer algebra systems
- SageMath, a free mathematics software which borrows many libraries from Maxima
References
[edit | edit source]- ↑ "GSOC 2019 completed successfully » Belgian Neuroinformatics". Archived from the original on 2021-07-24. Retrieved 2021-02-25.
- ↑ Barnes, David J. & Chu, Dominique (2010). "Chapter 5". Introduction to Modeling for Biosciences. Springer. ISBN 978-1-84996-325-1.
- ↑ "wxMaxima, a document based interface for the computer algebra system Maxima". Retrieved 2021-11-29.
- ↑ "Maxima-Jupyter". GitHub. 13 October 2021.
- ↑ "Cantor". cantor.kde.org. Retrieved 2020-01-15.
- ↑ "Flathub—An app store and build service for Linux". flathub.org. Retrieved 2019-09-27.
- ↑ Mårtenson, Elias (2019-08-27), GitHub - lokedhs/maxima-client: Maxima client., retrieved 2019-09-27
- ↑ "The STACK online assessment system". stack-assessment.org. Retrieved 2026-03-31.
Further reading
[edit | edit source]- Timberlake, Todd Keene; Mixon Jr., J. Wilson (2015). Classical Mechanics with Maxima. Springer. ISBN 978-1-4939-3206-1.
External links
[edit | edit source]| Wikibooks has a book on the topic of: Maxima |
| Wikimedia Commons has media related to Maxima (software). |
Template:Computer algebra systems Template:Numerical analysis software
- Official website not in Wikidata
- Common Lisp (programming language) software
- Computer algebra system software for Linux
- Computer algebra system software for macOS
- Computer algebra system software for Windows
- Computer algebra systems
- Cross-platform free software
- Free computer algebra systems
- Free educational software
- Free software programmed in Lisp
- Software that uses wxWidgets
- Software using the GNU General Public License
- Pages with math errors
- Pages with math render errors