Computer algebra system: Difference between revisions
Line 17: | Line 17: | ||
*[[add-ons]] for use in [[applied mathematics]] such as [[physics]] packages for [[computational physics|physical computation]] |
*[[add-ons]] for use in [[applied mathematics]] such as [[physics]] packages for [[computational physics|physical computation]] |
||
*[[List of statistical packages|statistical computation]] |
*[[List of statistical packages|statistical computation]] |
||
*[[theorem proving]] and [[proof verification|verification]] |
*[[theorem proving]] and [[proof verification|verification]], especially useful in the area of [[experimental mathematics]] |
||
In the above, the word ''some'' indicates that the operation cannot always be performed. |
In the above, the word ''some'' indicates that the operation cannot always be performed. |
Revision as of 14:14, 11 April 2009
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.
Symbolic manipulations
The symbolic manipulations supported typically include:
- simplification to the smallest possible expression or some standard form, including automatic simplification with assumptions and simplification with constraints
- substitution of symbols, functors or numeric values for expressions
- change of form of expressions: expanding products and powers, partial and full factorization, rewriting as partial fractions, constraint satisfaction, rewriting trigonometric functions as exponentials, etc.
- partial and total differentiation
- symbolic constrained and unconstrained global optimization
- 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
- series operations such as expansion, summation and products
- matrix operations including products, inverses, etc.
- add-ons for use in applied mathematics such as physics packages for physical computation
- statistical computation
- theorem proving and verification, especially useful in the area of experimental mathematics
In the above, the word some indicates that the operation cannot always be performed.
Additional capabilities
Many also include:
- a programming language, allowing users to implement their own algorithms
- arbitrary-precision numeric operations
- display of mathematical expressions in two-dimensional mathematical form, often using typesetting systems similar to TeX (see also Prettyprint)
- plotting graphs and parametric plots of functions in two and three dimensions, and animating them
- drawing charts and diagrams
- APIs for linking it on an external program such as a database, or using in a programming language to use the computer algebra system
- string manipulation such as matching and searching
Some include:
- graphic production and editing such as CGI and signal processing as image processing
- sound synthesis
Some computer algebra systems focus on a specific area of application; these are typically developed in academia and are free. They can be relatively inefficient for numeric operations compared to numeric systems.
Types of expressions
The expressions manipulated by the CAS typically include polynomials in multiple variables; standard functions of expressions (sine, exponential, etc.); various special functions (Γ, ζ, erf, Bessel functions, etc.); arbitrary functions of expressions; optimization; derivatives, integrals, simplifications, sums, and products of expressions; truncated series with expressions as coefficients, matrices of expressions, and so on. Numeric domains supported typically include real, complex, interval, rational, and algebraic.
History
Computer algebra systems began to appear in the 1960s, and evolved out of two quite different sources - the requirements of theoretical physicists and research into artificial intelligence.
Prime example for the first development was the pioneering work conducted by the later Nobel Prize laureate in physics Martin Veltman, who designed a program for symbolic mathematics, especially High Energy Physics, called Schoonschip (Dutch for "clean ship") in 1963.
Using LISP as programming basis, Carl Engelman created MATHLAB in 1964 at MITRE within an artificial intelligence research environment. Later MATHLAB was made available to users on PDP-6 and PDP-10 Systems running TOPS-10 or TENEX in universities. Today it can still be used on SIMH-Emulations of the PDP-10. MATHLAB ("mathematical laboratory") should not be confused with MATLAB ("matrix laboratory") which is a system for numerical computation built 15 years later at the University of New Mexico, accidentally named rather similarly.
The first popular computer algebra systems were muMATH, Reduce, Derive (based on muMATH), and Macsyma; a popular copyleft version of Macsyma called Maxima is actively being maintained. As of today, the most popular commercial systems are Mathematica[1] and Maple, which are commonly used by research mathematicians, scientists, and engineers. Freely available alternatives like Sage (a front-end to several free CAS) and Xcas are also gaining popularity.
In 1987 Hewlett-Packard introduced the first hand held calculator CAS with the HP-28 series, and it was possible, for the first time in a calculator, to arrange algebraic expressions, differentiation, limited symbolic integration, Taylor series construction and a solver for algebraic equations.
The Texas Instruments company in 1995 released the TI-92 calculator with an advanced CAS based on the software Derive. This, along with its successors (including the TI-89 series and the newer TI-Nspire CAS released in 2007) featured a reasonably capable and relatively inexpensive hand-held computer algebra system.
Mathematics used in computer algebra systems
- Symbolic integration
- Gröbner basis
- Greatest common divisor
- Polynomial factorization
- Risch algorithm
- Cylindrical algebraic decomposition
- Cantor-Zassenhaus algorithm
- Padé approximant
- Schwartz-Zippel lemma and testing polynomial identities
- Chinese remainder theorem
- Gaussian elimination
- Diophantine equations
See also
- Comparison of computer algebra systems
- Scientific computation
- Statistical package
- Algebraic algorithms
- Symbolic computation
- Automated theorem proving
- Artificial intelligence
- Constraint-logic programming
- App4Math, a CAS developed for the TI-83 series of graphing calculators
References
- ^ Interview with Gaston Gonnet, co-creator of Maple, SIAM History of Numerical Analysis and Computing, March 16, 2005
External links
- Definition and workings of a computer algebra system
- Curriculum and Assessment in an Age of Computer Algebra Systems - From the Education Resources Information Center Clearinghouse for Science, Mathematics, and Environmental Education, Columbus, Ohio.
- 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])