computer algebra system

TheInfoList

A computer algebra system (CAS) or symbolic algebra system (SAS) is any
mathematical software Mathematical software is software used to mathematical model, model, analyze or calculate numeric, symbolic or geometric data. It is a type of application software which is used for solving mathematical problems or mathematical study. There are v ...
with the ability to manipulate
mathematical expressions In mathematics, an expression or mathematical expression is a finite combination of symbols that is well-formed formula, well-formed according to rules that depend on the context. Mathematical symbols can designate numbers (constant (mathematics ...
in a way similar to the traditional manual computations of
mathematician A mathematician is someone who uses an extensive knowledge of mathematics Mathematics (from Greek: ) includes the study of such topics as numbers ( and ), formulas and related structures (), shapes and spaces in which they are contained ( ...

s and
scientist A scientist is a person who conducts scientific research The scientific method is an Empirical evidence, empirical method of acquiring knowledge that has characterized the development of science since at least the 17th century. It involves ...

s. The development of the computer algebra systems in the second half of the 20th century is part of the discipline of "
computer algebra In mathematics and computer science, computer algebra, also called symbolic computation or algebraic computation, is a scientific area that refers to the study and development of algorithms and software for manipulating expression (mathematics), ...
" or "
symbolic computation In mathematics Mathematics (from Ancient Greek, Greek: ) includes the study of such topics as quantity (number theory), mathematical structure, structure (algebra), space (geometry), and calculus, change (mathematical analysis, analysis). I ...
", which has spurred work in
algorithm In and , an algorithm () is a finite sequence of , computer-implementable instructions, typically to solve a class of problems or to perform a computation. Algorithms are always and are used as specifications for performing s, , , and other ...

s over
mathematical objects A mathematical object is an abstract concept arising in mathematics Mathematics (from Ancient Greek, Greek: ) includes the study of such topics as quantity (number theory), mathematical structure, structure (algebra), space (geometry), and ca ...
such as
polynomial In mathematics Mathematics (from Ancient Greek, Greek: ) includes the study of such topics as quantity (number theory), mathematical structure, structure (algebra), space (geometry), and calculus, change (mathematical analysis, analysis). I ...

s. Computer algebra systems may be divided into two classes: specialized and general-purpose. The specialized ones are devoted to a specific part of mathematics, such as
number theory Number theory (or arithmetic or higher arithmetic in older usage) is a branch of pure mathematics devoted primarily to the study of the integers and arithmetic function, integer-valued functions. German mathematician Carl Friedrich Gauss (1777– ...

,
group theory The popular puzzle Rubik's cube invented in 1974 by Ernő Rubik has been used as an illustration of permutation group">Ernő_Rubik.html" ;"title="Rubik's cube invented in 1974 by Ernő Rubik">Rubik's cube invented in 1974 by Ernő Rubik has bee ...
, or teaching of
elementary mathematics 300px, Both groups are equal to 5. Apples are frequently used to explain arithmetic in textbooks for children. Elementary mathematics consists of mathematics Mathematics (from Ancient Greek, Greek: ) includes the study of such topics as q ...
. 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 300px, The Reactable, an example of a tangible user interface In the industrial design field of human–computer interaction, a user interface (UI) is the space where interactions between humans and machines occur. The goal of this interaction ...
allowing a user to enter and display mathematical formulas, typically from a keyboard, menu selections, mouse or stylus. *a
programming language A programming language is a formal language In mathematics Mathematics (from Ancient Greek, Greek: ) includes the study of such topics as quantity (number theory), mathematical structure, structure (algebra), space (geometry), and calcu ...

and an interpreter (the result of a computation commonly has an unpredictable form and an unpredictable size; therefore user intervention is frequently needed), *a simplifier, which is a rewrite system for simplifying mathematics formulas, *a memory management, memory manager, including a garbage collector (computing), 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
algorithm In and , an algorithm () is a finite sequence of , computer-implementable instructions, typically to solve a class of problems or to perform a computation. Algorithms are always and are used as specifications for performing s, , , and other ...

s and special functions. The library must not only provide for 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 (computer algebra system), Axiom, Maxima (software), Maxima, Magma (computer algebra system), Magma, Maple (software), Maple, Mathematica and SageMath.

# 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. A prime example for the first development was the pioneering work conducted by the later Nobel Prize laureate in physics Martinus Veltman, who designed a program for symbolic mathematics, especially high-energy physics, called Schoonschip (Dutch for "clean ship") in 1963. Another early system was FORMAC (programming language), FORMAC. Using Lisp (programming_language), Lisp as the 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. The first popular computer algebra systems were muMATH, Reduce computer algebra system, Reduce, Derive (computer algebra system), Derive (based on muMATH), and Macsyma; a popular copyleft version of Macsyma called Maxima (software), Maxima is actively being maintained. Reduce (computer algebra system), Reduce became free software in 2008. As of today, the most popular commercial systems are Mathematica and Maple (software), Maple, which are commonly used by research mathematicians, scientists, and engineers. Freely available alternatives include SageMath (which can act as a Front and back ends, front-end to several other free and nonfree CAS). 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. In 1999, the independently developed CAS Erable for the HP 48 series became an officially integrated part of the firmware of the emerging HP 49/50 series, and a year later into the HP 40 series as well, whereas the HP Prime adopted the Xcas system in 2013. The Texas Instruments company in 1995 released the TI-92 calculator with a CAS based on the software Derive computer algebra system, Derive; the TI-Nspire series replaced Derive in 2007. The TI-89 series, first released in 1998, also contains a CAS. Casio released their first CAS calculator with the CFX-9970G and succeeded it with the Casio Algebra FX Series, Algebra FX Series in 1999-2003 and the current Casio ClassPad 300, ClassPad Series. More recently, computer algebra systems have been implemented using artificial neural networks.

# Symbolic manipulations

The symbolic manipulations supported typically include: *simplification to a smaller expression or some Canonical form, standard form, including automatic simplification with assumptions and simplification with constraints *substitution (algebra), substitution of symbols or numeric values for certain 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, transforming logic expressions, etc. *partial differentiation, partial and total differentiation *some antidifferentiation, indefinite and integral, definite integration (see symbolic integration), including multidimensional integrals *symbolic constrained and unconstrained global optimization *Closed-form solution, solution of linear and some non-linear equations over various domains *solution of some differential equation, differential and difference equations *taking some limit of a function, limits *integral transforms *mathematical series, series operations such as expansion, summation and products *matrix operations including Direct product (Matrix), products, matrix inversion, inverses, etc. *List of statistical packages, statistical computation *theorem proving and proof verification, verification which is very useful in the area of experimental mathematics *Automatic programming#Implementations, optimized code generation In the above, the word ''some'' indicates that the operation cannot always be performed.

Many also include: *a
programming language A programming language is a formal language In mathematics Mathematics (from Ancient Greek, Greek: ) includes the study of such topics as quantity (number theory), mathematical structure, structure (algebra), space (geometry), and calcu ...

, allowing users to implement their own algorithms *arbitrary-precision numeric operations *exact integer arithmetic and number theory functionality *Formula editor, Editing of mathematical expressions in two-dimensional form *plotting graph of a function, graphs and parametric plots of functions in two and three dimensions, and animating them *drawing charts and diagrams *Application programming interface, 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 string matching, matching and string searching, searching *add-ons for use in applied mathematics such as physics, bioinformatics, computational chemistry and packages for computational physics, physical computation Some include: *computer graphics, graphic production and editing such as computer-generated imagery and signal processing as image processing *sound synthesis Some computer algebra systems focus on specialized disciplines; these are typically developed in academia and are free. They can be inefficient for numeric operations as compared to Comparison of numerical-analysis software, numeric systems.

# Types of expressions

The expressions manipulated by the CAS typically include
polynomial In mathematics Mathematics (from Ancient Greek, Greek: ) includes the study of such topics as quantity (number theory), mathematical structure, structure (algebra), space (geometry), and calculus, change (mathematical analysis, analysis). I ...

s in multiple variables; standard functions of expressions (Trigonometric functions, sine, exponential function, exponential, etc.); various special functions (gamma function, Γ, Riemann zeta function, ζ, error function, erf, Bessel functions, etc.); arbitrary functions of expressions; optimization; derivatives, integrals, simplifications, sums, and products of expressions; truncated series (mathematics), series with expressions as coefficients, matrix (mathematics), matrices of expressions, and so on. Numeric domains supported typically include floating-point arithmetic, floating-point representation of real numbers, integers (of unbounded size), complex number, complex (floating-point representation), interval arithmetic, interval representation of reals, rational number (exact representation) and algebraic numbers.

# Use in education

There have been many advocates for increasing the use of computer algebra systems in primary and secondary-school classrooms. The primary reason for such advocacy is that computer algebra systems represent real-world math more than do paper-and-pencil or hand calculator based mathematics. This push for increasing computer usage in mathematics classrooms has been supported by some boards of education. It has even been mandated in the curriculum of some regions. Computer algebra systems have been extensively used in higher education. Many universities offer either specific courses on developing their use, or they implicitly expect students to use them for their course work. The companies that develop computer algebra systems have pushed to increase their prevalence among university and college programs. CAS-equipped calculators are not permitted on the ACT (test), ACT, the PLAN (test), PLAN, and in some classroomsACT's CAAP Tests: Use of Calculators on the CAAP Mathematics Test
though it may be permitted on all of College Board's calculator-permitted tests, including the SAT, some SAT Subject Tests and the AP Calculus, AP Chemistry, Chemistry, AP Physics, Physics, and AP Statistics, Statistics exams.

# Mathematics used in computer algebra systems

* Knuth–Bendix completion algorithm * Root-finding algorithms * Symbolic integration via e.g. Risch algorithm or Risch–Norman algorithm * Hypergeometric summation via e.g. Gosper's algorithm * Limit (mathematics), Limit computation via e.g. Gruntz's algorithm * Polynomial factorization via e.g., over finite fields, Berlekamp's algorithm or Cantor–Zassenhaus algorithm. * Greatest common divisor via e.g. Euclidean algorithm * Gaussian elimination * Gröbner basis via e.g. Buchberger's algorithm; generalization of Euclidean algorithm and Gaussian elimination * Padé approximant * Schwartz–Zippel lemma and testing polynomial identities * Chinese remainder theorem * Diophantine equations * Quantifier elimination over real numbers via e.g. Tarski's method/Cylindrical algebraic decomposition * Landau's algorithm (nested radicals) * Derivatives of elementary functions and special functions. (e.g. See derivatives of the incomplete gamma function.) * Cylindrical algebraic decomposition