Computer algebra system
A computer algebra system (CAS) is a software program 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
- typesetting system for mathematical expressions (see "pretty print")
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, because the computer algebra languages are often interpreted and the bignum system may cause overhead. (Note that MATLAB and Octave are interpreted also.)
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.
List of Computer algebra systems
- General purpose:
- algebraic geometry, polynomial computations:
- algebra, group theory:
- number theory:
- calculator algebra systems:
Mathematics used in computer algebra systems
List of computer algebra systems
- SAL list of computer algebra systems
Webpages of computer algebra systems