Maxima
Encyclopedia
Maxima is a computer algebra system
based on a 1982 version of Macsyma
. It is written in Common Lisp
and runs on all POSIX
platforms such as Mac OS X
, Unix
, BSD
, and GNU
/Linux
as well as under Microsoft Windows
. It is free software
released under the terms of the GNU General Public License
.
, 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.
-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.
) that specializes in symbolic operations
but it also offers numerical capabilities such as arbitrary-precision arithmetic
: integer
s and rational number
s which can grow to sizes limited only by machine memory, and floating point numbers
whose precision can be set arbitrarily large ("bfloats").
For calculations which use floating point and arrays heavily, Maxima offers the possibility of generating code in other programming languages (notably Fortran
) which may execute more efficiently.
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.
(beginning with row zero
) may be calculated with
makelist(makelist(binomial(n, i), i, 0, n), n, 0, 31);
s are available for Maxima. wxMaxima is a popular cross-platform GUI using wxWidgets
. Starting with version 4.4, the KDE Software Compilation
contains Cantor
-- which can interface with Maxima (along with Sage, R
, and Kalgebra). The GNU
TeXmacs and LyX
mathematical editor programs can be used to provide an interactive GUI for Maxima, as can Sage. Other options include the Imaxima front end, as well as an Emacs
and Xemacs
interaction mode which is activated by Imaxima.
Computer algebra system
A computer algebra system is a software program that facilitates symbolic mathematics. The core functionality of a CAS is manipulation of mathematical expressions in symbolic form.-Symbolic manipulations:...
based on a 1982 version of Macsyma
Macsyma
Macsyma is a computer algebra system that was originally developed from 1968 to 1982 at MIT as part of Project MAC and later marketed commercially...
. It is written in Common Lisp
Common Lisp
Common Lisp, commonly abbreviated CL, is a dialect of the Lisp programming language, published in ANSI standard document ANSI INCITS 226-1994 , . From the ANSI Common Lisp standard the Common Lisp HyperSpec has been derived for use with web browsers...
and runs on all POSIX
POSIX
POSIX , an acronym for "Portable Operating System Interface", is a family of standards specified by the IEEE for maintaining compatibility between operating systems...
platforms such as Mac OS X
Mac OS X
Mac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...
, Unix
Unix
Unix is a multitasking, multi-user computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs, including Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, and Joe Ossanna...
, BSD
Berkeley Software Distribution
Berkeley Software Distribution is a Unix operating system derivative developed and distributed by the Computer Systems Research Group of the University of California, Berkeley, from 1977 to 1995...
, and GNU
GNU
GNU is a Unix-like computer operating system developed by the GNU project, ultimately aiming to be a "complete Unix-compatible software system"...
/Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...
as well as under Microsoft Windows
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...
. It is free software
Free software
Free software, software libre or libre software is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with restrictions that only ensure that further recipients can also do...
released under the terms of the GNU General Public License
GNU General Public License
The GNU General Public License is the most widely used free software license, originally written by Richard Stallman for the GNU Project....
.
History
Maxima is based on a 1982 version of MacsymaMacsyma
Macsyma is a computer algebra system that was originally developed from 1968 to 1982 at MIT as part of Project MAC and later marketed commercially...
, which was developed at MIT with funding from the United States Department of Energy
United States Department of Energy
The United States Department of Energy is a Cabinet-level department of the United States government concerned with the United States' policies regarding energy and safety in handling nuclear material...
and other government agencies. A version of Macsyma
Macsyma
Macsyma is a computer algebra system that was originally developed from 1968 to 1982 at MIT as part of Project MAC and later marketed commercially...
was maintained by Bill Schelter
Bill Schelter
William Frederick Schelter was a professor of mathematics at The University of Texas at Austin and a Lisp developer and programmer. Schelter is credited with the development of the GNU Common Lisp implementation of Common Lisp and the GPL'd version of the computer algebra system Macsyma called...
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
Macsyma
Macsyma is a computer algebra system that was originally developed from 1968 to 1982 at MIT as part of Project MAC and later marketed commercially...
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.
Features
Maxima includes a complete programming language with ALGOLALGOL
ALGOL is a family of imperative computer programming languages originally developed in the mid 1950s which greatly influenced many other languages and became the de facto way algorithms were described in textbooks and academic works for almost the next 30 years...
-like syntax but Lisp-like semantics. It is written in Common Lisp
Common Lisp
Common Lisp, commonly abbreviated CL, is a dialect of the Lisp programming language, published in ANSI standard document ANSI INCITS 226-1994 , . From the ANSI Common Lisp standard the Common Lisp HyperSpec has been derived for use with web browsers...
, and can be accessed programmatically and extended, as the underlying Lisp can be called from Maxima. It uses Gnuplot
Gnuplot
- License :Despite gnuplot's name, it is not part of or related to the GNU system and it is not distributed under the GNU General Public License .However, some GNU packages do use gnuplot....
for drawing.
Numeric calculations
Maxima is a full-featured CAS (computer algebra systemComputer algebra system
A computer algebra system is a software program that facilitates symbolic mathematics. The core functionality of a CAS is manipulation of mathematical expressions in symbolic form.-Symbolic manipulations:...
) that specializes in symbolic operations
Symbolic computation
Symbolic computation or algebraic computation, relates to the use of machines, such as computers, to manipulate mathematical equations and expressions in symbolic form, as opposed to manipulating the approximations of specific numerical quantities represented by those symbols...
but it also offers numerical capabilities such as arbitrary-precision arithmetic
Arbitrary-precision arithmetic
In computer science, arbitrary-precision arithmetic indicates that calculations are performed on numbers whose digits of precision are limited only by the available memory of the host system. This contrasts with the faster fixed-precision arithmetic found in most ALU hardware, which typically...
: integer
Integer
The integers are formed by the natural numbers together with the negatives of the non-zero natural numbers .They are known as Positive and Negative Integers respectively...
s and rational number
Rational number
In mathematics, a rational number is any number that can be expressed as the quotient or fraction a/b of two integers, with the denominator b not equal to zero. Since b may be equal to 1, every integer is a rational number...
s which can grow to sizes limited only by machine memory, and floating point numbers
Floating point
In computing, floating point describes a method of representing real numbers in a way that can support a wide range of values. Numbers are, in general, represented approximately to a fixed number of significant digits and scaled using an exponent. The base for the scaling is normally 2, 10 or 16...
whose precision can be set arbitrarily large ("bfloats").
For calculations which use floating point and arrays heavily, Maxima offers the possibility of generating code in other programming languages (notably Fortran
Fortran
Fortran is a general-purpose, procedural, imperative programming language that is especially suited to numeric computation and scientific computing...
) which may execute more efficiently.
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.
Example
The first 32 rows of Pascal's trianglePascal's triangle
In mathematics, Pascal's triangle is a triangular array of the binomial coefficients in a triangle. It is named after the French mathematician, Blaise Pascal...
(beginning with row zero
Zeroth
Zero-based numbering is numbering in which the initial element of a sequence is assigned the index 0, rather than the index 1 as is typical in everyday circumstances. Under zero-based numbering, the initial element is sometimes termed the zeroth element, rather than the first element; zeroth is a...
) may be calculated with
makelist(makelist(binomial(n, i), i, 0, n), n, 0, 31);
Interfaces
Various graphical user interfaceGraphical user interface
In computing, a graphical user interface is a type of user interface that allows users to interact with electronic devices with images rather than text commands. GUIs can be used in computers, hand-held devices such as MP3 players, portable media players or gaming devices, household appliances and...
s are available for Maxima. wxMaxima is a popular cross-platform GUI using wxWidgets
WxWidgets
wxWidgets is a widget toolkit for creating graphical user interfaces for cross-platform applications. wxWidgets enables a program's GUI code to compile and run on several computer platforms with minimal or no code changes...
. Starting with version 4.4, the KDE Software Compilation
KDE Software Compilation
The KDE Software Compilation is a desktop environment and an associated range of KDE Applications produced by KDE. Prior to version 4.4, released in February 2010, the Software Compilation was known as KDE, which used to stand for K Desktop Environment until November 2009...
contains Cantor
Cantor (software)
Cantor is a free software mathematics application for scientific statistics and analysis. It is part of the KDE Software Compilation 4, and was introduced with the 4.4 release as part of the KDE Education Project's kdeedu package.- Features :...
-- which can interface with Maxima (along with Sage, R
R (programming language)
R is a programming language and software environment for statistical computing and graphics. The R language is widely used among statisticians for developing statistical software, and R is widely used for statistical software development and data analysis....
, and Kalgebra). The GNU
GNU
GNU is a Unix-like computer operating system developed by the GNU project, ultimately aiming to be a "complete Unix-compatible software system"...
TeXmacs and LyX
LyX
LyX is a document processor following the self-coined "what you see is what you mean" paradigm , as opposed to the WYSIWYG ideas used by word processors...
mathematical editor programs can be used to provide an interactive GUI for Maxima, as can Sage. Other options include the Imaxima front end, as well as an Emacs
Emacs
Emacs is a class of text editors, usually characterized by their extensibility. GNU Emacs has over 1,000 commands. It also allows the user to combine these commands into macros to automate work.Development began in the mid-1970s and continues actively...
and Xemacs
XEmacs
XEmacs is a graphical- and console-based text editor which runs on almost any Unix-like operating system as well as Microsoft Windows. XEmacs is a fork, based on a version of GNU Emacs from the late 1980s...
interaction mode which is activated by Imaxima.
See also
- Comparison of computer algebra systems
External links
- wxMaxima, GUI for Maxima
- [irc://irc.freenode.net:6667/#maxima irc.freenode.net port 6667 channel#maxima]
- Maxima Beginner's FAQ
- Maxima 10 Minute Tutorial
- The HTML Maxima Manual in English
- dynamicalsystems, collection of several Maxima programs to create various graphical representations of discrete dynamical systems and fractals
- Short list of useful examples
- comparison of Maxima vs. MuPAD, includes a very long list of examples
- Imaxima, Emacs front end that includes typesetting. Various plotting examples
- A Maxima-Gnuplot interface, drawing examples The SYM package for Maxima Dynamical Systems textbook at the University of Porto (Portugal), with examples in Maxima
- DragMath, an open-source online equation editor that can export Maxima, and other formats.
- Tutorial, tips and tricks using Maxima.
- The STACK, computer aided assessment system.
- Running Maxima online:
- A web browser implementation of Maxima
- Use Maxima in a web browser without downloading any software