| Maxima | |
|---|---|
Screenshot of Maxima, plotting the 2D graph of a function with the gnuplot-x11 package running on Ubuntu Linux | |
| Developers | Macsyma group atProject MAC and volunteer contributors |
| Initial release | 1982; 44 years ago (1982) |
| Stable release | |
| Written in | Common Lisp |
| Operating system | Cross-platform |
| Type | Mathematical software |
| License | GPL |
| Website | maxima |
| Repository | |
Maxima (/ˈmæksɪmə/) is a software package for performingcomputer algebra calculations in mathematics and the physical sciences. It is written inCommon Lisp and runs on allPOSIX platforms such asmacOS,Unix,BSD, andLinux, as well as underMicrosoft Windows andAndroid. It isfree software released under the terms of theGNU General Public License (GPL).
Maxima is based on a 1982 version ofMacsyma, which was developed atMIT with funding from theUnited States Department of Energy and other government agencies. A version of Macsyma was maintained byBill 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 inGoogle Summer of Code in 2019 underInternational Neuroinformatics Coordinating Facility.[2]
Like most computer algebra systems, Maxima supports a variety of ways of reorganizing symbolic algebraic expressions, such aspolynomial 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 symbolicantiderivatives ("indefinite integrals"),definite integrals, andlimits. It can derive closed-formseries expansions as well as terms ofTaylor-Maclaurin-Laurent series. It can perform matrix manipulations with symbolic entries.
Maxima is a general-purpose system, and special-case calculations such asfactorization of large numbers, manipulation of extremely largepolynomials, etc. are sometimes better done in specialized systems.
Maxima specializes insymbolic operations, but it also offers numerical capabilities[3] such asarbitrary-precisioninteger,rational number, andfloating-point numbers, limited only by space and time constraints.
Maxima includes a complete programming language withALGOL-like syntax butLisp-likesemantics. It is written inCommon Lisp and can be accessed programmatically and extended, as the underlying Lisp can be called from Maxima. It usesgnuplot for drawing.
For calculations using floating point and arrays heavily, Maxima has translators from the Maxima language to other programming languages (notablyFortran), which may execute more efficiently.

Variousgraphical user interfaces (GUIs) for Maxima are:
bfloat(sqrt(2)),fpprec=40;
f(x):=x^3$f(4);
expand((a-b)^3);
factor(x^2-1);
solve(x^2+a*x+1,x);
find_root(cos(x)=x,x,0,1);
bf_find_root(cos(x)=x,x,0,1),fpprec=50;
integrate(x^2+cos(x),x);
integrate(1/(x^3+1),x,0,1),ratsimp;
quad_qags(sin(sin(x)),x,0,2)[1];
diff(cos(x)^2,x,3);
limit((1+sinh(x))/exp(x),x,inf);
primes(10,20);
fib(10);
sum(1/x^2,x,1,inf),simpsum;
taylor(sin(x),x,0,9);
niceindices(powerseries(cos(x),x,0));
bessel_j(0,4.5);
airy_ai(1.5);