Computer algebra system
A computer algebra system (CAS) is a software program that allows computation over mathematical expressions in a way similar to the traditional manual computations of mathematicians and scientists.
Description
The development of the computer algebra systems in the second half of the 20th century is part of the discipline of "computer algebra" or "symbolic computation", which has spurred work in algorithms over mathematical objects such as polynomials. Computer algebra systems may be divided in two classes: specialized and general-purpose. The specialized ones are devoted to a specific part of mathematics, such as number theory, group theory, or teaching of elementary mathematics.
General-purpose computer algebra systems aim to be useful to a user working in any scientific field that requires manipulation of mathematical expressions. To be useful, a general-purpose computer algebra system must include various features such as:
- a user interface allowing to enter and display mathematical formulas,
- a programming language and an interpreter (the result of a computation has commonly an unpredictible form and an unpredictible size; therefore user intervention is frequently needed),
- a simplifier, which is a rewrite system for simplifying mathematics formulas,
- a memory manager, including a garbage collector, needed by the huge size of the intermediate data, which may appear during a computation,
- an arbitrary-precision arithmetic, needed by the huge size of the integers that may occur,
- a large library of mathematical algorithms.
The library must cover not only the needs of the users, but also the needs of the simplifier. For example, the computation of polynomial greatest common divisors is systematically used for the simplification of expressions involving fractions.
This large amount of required computer capabilities explains the small number of general-purpose computer algebra systems. The main ones are Axiom, Macsyma, Magma, Maple, Mathematica and SageMath.
See also
- Automated theorem proving
- Artificial intelligence
- Constraint-logic programming
- Expression (mathematics)
- List of computer algebra systems
- Satisfiability modulo theories
- Scientific computation
- Statistical package
External links
- Computer algebra system @ Wikipedia