Computer algebra system
|
A computer algebra system (CAS) is a software program that facilitates symbolic mathematics. The core functionality of a CAS is manipulation of mathematical expressions in symbolic form.
The expressions typically include polynomials in multiple variables; standard functions of expressions (sine, exponential, etc.); various special functions (gamma, zeta, erf, bessel, etc.); arbitrary functions of expressions; integrals, sums, and products of expressions; truncated series with expressions as coefficients, matrices of expressions, and so on. (This is a recursive definition.)
The symbolic manipulations supported typically include
- simplification, including automatic simplification and simplification with assumptions
- substitution of symbolic or numeric values for expressions
- change of form of expressions: expanding products and powers, rewriting as partial fractions, etc.
- differentiation with respect to one or all variables
- symbolic global optimization
- partial and full factorization
- solution of linear and some non-linear equations over various domains
- solution of some differential and difference equations
- taking some limits
- some indefinite and definite integration, including multidimensional integrals
- integral transforms
- expansion as truncated Taylor, Laurent and Puiseux series
- some infinite series expansion
- some series summation
- matrix operations including products, inverses, etc.
- display of mathematical expressions in two-dimensional mathematical form, often using typesetting systems similar to TeX (see also Pretty-print)
(In the above, 'some' indicates that the operation cannot always be performed.)
In addition, most CASs include numeric operations:
- evaluating for particular numeric values
- evaluating to high precision (bignum arithmetic), allowing for instance the evaluation of 2^(1/3) to 10,000 digits
- numeric linear algebra
- plotting graphs and parametric plots of functions in two and three dimensions
Many also include a high level programming language, allowing users to implement their own algorithms.
The study of algorithms useful for computer algebra systems is known as computer algebra.
The run-time of numerical programs implemented in computer algebra systems is normally longer than that of equivalent programs implemented in systems such as MATLAB, GNU Octave, or directly in C, since they are programmed for full symbolic generality and thus cannot use machine numerical operations directly for most of their functions.
Contents |
History
Computer algebra systems began to appear in the early 1970s, and evolved out of research into artificial intelligence, though the fields are now regarded as largely separate. The first popular systems were Reduce, Derive, and Macsyma which are still commercially available; a copyleft version of Macsyma called Maxima is actively being maintained. The current market leaders are Maple and Mathematica; both are commonly used by research mathematicians, scientists, and engineers. MuPAD is a commercial system, also available in a free version with slightly restricted user interface for non-commercial research and educational use. Some computer algebra systems focus on a specific area of application; these are typically developed in academia and free.
List of computer algebra systems
- General purpose:
- algebraic geometry, polynomial computations:
- graph theory:
- VEGA.
- algebra, group theory:
- number theory:
- calculator algebra systems:
- educational:
Mathematics used in computer algebra systems
- Automatic differentiation
- Symbolic integration
- Gröbner basis
- Greatest common divisor
- Polynomial factorization
See also
References
- Richard J. Fateman. "Essays in algebraic simplification". Technical report MIT-LCS-TR-095, 1972. (Of historical interest in showing the direction of research in computer algebra. At the MIT LCS web site: [1] (http://www.lcs.mit.edu/publications/specpub.php?id=663))
External links
List of computer algebra systems
- http://compalg.inf.elte.hu/compalg/coindex.html
- http://www-mri.math.kun.nl/systems_and_packages/systems_and_packages.html
- http://www.cs.kun.nl/~freek/digimath/
- Open Directory Project: Math Software (http://dmoz.org/Science/Math/Software/)
- http://www.mat.univie.ac.at/~slc/divers/software.html
- http://www.lapcs.univ-lyon1.fr/~nthiery/CalculFormelLibre/
- SAL list of computer algebra systems (http://sal.kachinatech.com/A/1/)
Webpages of computer algebra systems
- Axiom (http://www.nongnu.org/axiom/)
- CoCoA (http://cocoa.dima.unige.it/)
- Derive (North America) (http://education.ti.com/us/product/software/derive/features/features.html)
- Derive (Europe) (http://www.derive-europe.com)
- DoCon (http://www.haskell.org/docon/)
- GAP (http://www.gap-system.org/)
- GiNaC (http://www.ginac.de/)
- PARI-GP (http://pari.math.u-bordeaux.fr/)
- Maple (http://www.maplesoft.com/)
- Mathematica (http://www.wolfram.com/products/mathematica/index.html)
- Mathomatic (http://www.mathomatic.com)
- Maxima (http://maxima.sourceforge.net/)
- REDUCE (http://reduce-algebra.com)
- DCAS (http://sourceforge.net/projects/dcas/)
- Algebrator (http://www.softmath.com)de:Computer-Algebra-System
ja:数式処理システム pl:CAS pt:Sistema de álgebra computacional sl:Programi za simbolno računanje