A computer algebra system (CAS) is a software that facilitates symbolic mathematics. Typically, these systems include
- arbitrary precision (bignum) arithmetic, allowing for instance to evaluate pi to 10,000 digits.
- symbolic manipulation engine, to simplify algebraic expressions, differentiate and integrate functions and solve equations
- graphing facility, to produce graphs of functions, typically in two and three dimensions
- linear algebra subsystem, to allow matrix computations and solving of systems of linear equations
- high level programming language, allowing users to implement their own algorithms
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, because the computer algebra languages are often interpreted and the bignum system may cause overhead. (Note that MATLAB and Octave are interpreted also.)
History
Computer algebra systems began to appear in the early 1970s, and evolved out of research into artificial intelligence (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 GNU Maxima is actively being maintained. The current market leaders are Maple and Mathematica; both are commonly used by research mathematicians. MuPAD is a commercial system which provides a free version (with slightly restricted user interface) for non-commercial research and educational usage. Some computer algebra systems focus on a specific area of application; these are typically developed in academia and free. Examples include:
- algebra, combinatorics, geometry, number theory:
- algebraic geometry, polynomial computations:
- graph theory:
- VEGA,
- group theory:
- GAP system,
- number theory calculations:
- calculator algebra systems
Mathematics relevant for CAS
Symbolic Integration, Gröbner Basis, Greatest common divisor, Polynomial FactorizationExternal links:
- SAL list of computer algebra systems: http://sal.kachinatech.com/A/1/
- PARI-GP: http://www.parigp-home.de