Maxima is perhaps the most popular general purpose open source CAS. Its latest release (as of November 2006) is 5.10. The next release (Maxima 5.11) is tentatively planned for the beginning of 2007. [Maxima 5.12 was released in May 2007.]
The Maxima homepage and the Maxima FAQ (this information is basically due to Stavros Macrakis) explains some history.
Maxima is a descendant of Macsyma, the legendary computer algebra system developed in the late 1960s at the Massachusetts Institute of Technology. Symbolics licensed Macsyma from M.I.T. and registered Macsyma" as a trademark at some point (presumably with M.I.T.'s permission). When Macsyma source ceased to be freely available, pressure was put on M.I.T. (mostly by Richard Fateman) to transfer the code which had been developed largely with Department of Energy (DOE) funding to the DOE, which then released it to others under certain conditions. That codebase was called DOE Macsyma. DOE-Macsyma, still available from US Dept of Energy, can be licensed under terms more generous than GPL upon request.
The Maxima branch of Macsyma was maintained by William Schelter from 1982 until he passed away in 2001. In 1998 he obtained permission to release the source code under the GNU General Public License (GPL). Since his passing a group of users and developers has formed to bring Maxima to a wider audience.
Documentation: Online reference manual (also available in pdf). This has been translated into Spanish and Portuguese. Maxima tutorials are available in English, Spanish, Portuguese, German, and Italian from the website. There are also slightly older Maxima documents in French. There is also an excellent Calculus textbook which uses Macsyma extensively BI-G].
- Command line.
front-end GUIs: Xmaxima, WxMaxima (cross platform), TeXmacs (cross platform), SAGE, Imaxima, Kayali, Symaxx.
web interfaces: There are several lists on the page: http://maxima.sourceforge.net/relatedprojects.shtml, also SAGE Notebook.
Source code: Maxima is written in Common Lisp and can be made to compile using either Clisp, GCL, CMUCL, SBCL, or OpenMCL. It has been compiled on Linux, Windows, Mac OSX, and FreeBSD machines. See the Maxima ports page.
Binary executables: Maxima is available as a binary for linux and windows (cygwin not required).
Support: Where can you get help? There is an active email list: http://maxima.sourceforge.net/maximalist.html. This list is also used by developers as well.
License: GPL. However, Maxima's graphics uses GNUplot, which is not GPL'd.
Maxima has a very talented group of active developers. At the present day the major contributors seem to be Robert Dodier, Barton Willis, Raymond Toy, Stavros Macrakis (especially generating bug reports and bug fixes), Mario Rodriguez Riotorto (docs and share packages, especially), Vadim Zhytnikov (especially packaging the Windows build), and David Billinghurst (differential equations). There are also people working on various projects closely or not-so-closely related -- e.g. Andrej Vodopivec (WxMaxima), Camm Maguire (GCL). Unfortunately, it is not possible in this short column to name everyone involved in Maxima. Hopefully, this list of active developers provides solid evidence that this CAS continues to grow and improve.
Using Maxima, one can manipulate symbolic and numerical expressions, including differentiation, integration (symbolic and numerical), Taylor series, Laplace transforms, ordinary differential equations, systems of linear equations, special functions, elliptic functions, polynomials, orthogonal polynomials, sets, lists, vectors, matrices, and tensors. There are also some probability and statistics functions. Maxima yields high precision numeric results by using exact fractions, arbitrary precision integers, and arbitrarily precision floating point numbers. Maxima can plot functions and data in two and three dimensions. Maxima also has several special-purpose packages, such as for tensor calculus, solving recursive equations, and summation identities.
The main page to the reference manual (http://maxima.sourceforge.net/docs/manual/en/maxima.html) describes the topics in more details.
Here is a cool example using Maxima's plotdf package and openmath (both written by W. Schelter): To show the direction field of the differential equation y' = x + y and the solution that goes through (2, -0.1), use the commands:
(%i1) load("plotdf")$ (%i2) plotdf(x+y,[trajectory_at,2,-0.1]); (%o2) 0
This produces the following pretty plot:
In this description, I (=David Joyner) have been helped by emails with Robert Dodier, who I thank for his generosity.
Of course, only I am responsible for any mistakes. If you have corrections or comments, please email me at (wdjoyner AT gmail DOT com).
[GKW] J. Grabmeier, E. Kaltofen, V. Weispfenning, Computer algebra handbook, Springer, 2003.
[Mc] D. McIntyre, private communication, 11-2006.
[Max] Paulo Ney de Souza, Richard J. Fateman, Joel Moses, Cliff Yapp, The Maxima Book,
19th September 2004. Available online at: [Maxima book http://maxima.sourceforge.net/docs/maximabook/maximabook-19-Sept-2004.pdf]
[BI-G] A. Ben-Israel, R. Gilbert, Computer-supported calculus, Springer-Verlag, 2002.