Computer algebra system: Difference between revisions

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
imported>OWA187
added sympy to significant systems
imported>OAbot
m Open access bot: doi updated in citation with #oabot.
 
Line 11: Line 11:
*a [[Symbolic computation#Simplification|simplifier]], which is a [[rewrite system]] for simplifying mathematics formulas,
*a [[Symbolic computation#Simplification|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,
*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,
*an [[arbitrary-precision arithmetic]] implementation, needed by the huge size of the integers that may occur,
*a large library of mathematical [[algorithm]]s and [[special functions]].
*a large library of mathematical [[algorithm]]s and [[special functions]].


Line 20: Line 20:
== History ==
== History ==
[[File:TI-nspire CX CAS.jpg|thumb|A Texas Instruments [[TI-Nspire]] calculator that contains a computer algebra system]]
[[File:TI-nspire CX CAS.jpg|thumb|A Texas Instruments [[TI-Nspire]] calculator that contains a computer algebra system]]
In the 1950s, while computers were mainly used for numerical computations, there were some research projects into using them for symbolic manipulation. 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]].
In the 1950s, while computers were mainly used for numerical computations, there were some research projects into using them for symbolic manipulation. 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]].{{cn|date=November 2025}}


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. Other early systems include [[FORMAC (programming language)|FORMAC]].
A prime example of 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. Other early systems include [[FORMAC (programming language)|FORMAC]].{{cn|date=November 2025}}


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 ("'''math'''ematical '''lab'''oratory") should not be confused with [[MATLAB]] ("'''mat'''rix '''lab'''oratory"), which is a system for numerical computation built 15 years later at the [[University of New Mexico]].
Using [[Lisp (programming_language)|Lisp]] as the programming basis, [[Carl Engelman]] created [[MATHLAB]] in 1964 at [[MITRE]] within an artificial-intelligence research environment.<ref>{{cite conference
| title = SYMSAC '71: Proceedings of the Second ACM Symposium on Symbolic and Algebraic Manipulation
| editor-last = Petrick | editor-first = Stanley R.
| date = 23–25 March 1971
| last = Engelman | first = Carl | author-link = Carl Engelman
| chapter = MATHLAB Tutorial
| publisher = Association for Computing Machinery
| pages = 29&ndash;41
| location = [[Los Angeles, California]], [[United States of America]]
| doi = 10.1145/800181.810339
| isbn = 9781450377867
| doi-access = free
}}</ref> MATHLAB was later 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 ("'''math'''ematical '''lab'''oratory") should not be confused with [[MATLAB]] ("'''mat'''rix '''lab'''oratory"), which is a system for numerical computation built 15 years later at the [[University of New Mexico]].{{cn|date=November 2025}}


In 1987, [[Hewlett-Packard]] introduced the first hand-held calculator CAS with the [[HP-28 series]].<ref name="Nelson">{{cite web | title=Hewlett-Packard Calculator Firsts | first=Richard | last=Nelson | publisher=Hewlett-Packard | url=http://h20331.www2.hp.com/Hpsub/cache/392617-0-0-225-121.html | archive-url=https://web.archive.org/web/20100703031935/http://h20331.www2.hp.com/Hpsub/cache/392617-0-0-225-121.html | archive-date=2010-07-03}}</ref> Other early handheld calculators with symbolic algebra capabilities included the [[Texas Instruments]] [[TI-89 series]] and [[TI-92]] calculator, and the [[Casio]] [[CFX-9970G]].<ref>{{citation
In 1987, [[Hewlett-Packard]] introduced the first hand-held calculator CAS with the [[HP-28 series]].<ref name="Nelson">{{cite web | title=Hewlett-Packard Calculator Firsts | first=Richard | last=Nelson | publisher=Hewlett-Packard |url=http://h20331.www2.hp.com/Hpsub/cache/392617-0-0-225-121.html | archive-url=https://web.archive.org/web/20100703031935/http://h20331.www2.hp.com/Hpsub/cache/392617-0-0-225-121.html | archive-date=3 July 2010}}</ref> Other early handheld calculators with symbolic algebra capabilities included the [[Texas Instruments]] [[TI-89 series]] and [[TI-92]] calculator, and the [[Casio]] [[CFX-9970G]].<ref>{{cite journal
  | last = Coons | first = Albert
  | last = Coons | first = Albert
  | date = October 1999
  | year = 1999
  | department = Technology Tips
  | department = Technology Tips
  | doi = 10.5951/mt.92.7.0620
  | doi = 10.5951/mt.92.7.0620
Line 35: Line 47:
  | jstor = 27971125
  | jstor = 27971125
  | pages = 620–622
  | pages = 620–622
  | title = Getting started with symbolic mathematics systems: a productivity tool
  | title = Getting Started with Symbolic Mathematics Systems: A Productivity Tool
  | volume = 92}}</ref>
  | volume = 92
}}</ref>


The first popular computer algebra systems were [[muMATH]], [[Reduce computer algebra system|Reduce]], [[Derive (computer algebra system)|Derive]] (based on muMATH), and [[Macsyma]]; a [[copyleft]] version of Macsyma is called [[Maxima (software)|Maxima]]. [[Reduce (computer algebra system)|Reduce]] became free software in 2008.<ref>{{Cite web |title=REDUCE Computer Algebra System at SourceForge |url=http://reduce-algebra.sourceforge.net |access-date=2015-09-28 |website=reduce-algebra.sourceforge.net}}</ref> Commercial systems include [[Mathematica]]<ref>[http://history.siam.org/oralhistories/gonnet.htm Interview with Gaston Gonnet, co-creator of Maple] {{webarchive|url=https://web.archive.org/web/20071229044836/http://history.siam.org/oralhistories/gonnet.htm|date=2007-12-29}}, SIAM History of Numerical Analysis and Computing, March 16, 2005.</ref> 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). Other significant systems include [[Axiom (computer algebra system)|Axiom]], [[GAP_(computer_algebra_system)|GAP]], [[Maxima (software)|Maxima]] and [[Magma (computer algebra system)|Magma]].
The first popular computer algebra systems were [[muMATH]], [[Reduce computer algebra system|Reduce]], [[Derive (computer algebra system)|Derive]] (based on muMATH), and [[Macsyma]]; a [[copyleft]] version of Macsyma is called [[Maxima (software)|Maxima]]. [[Reduce (computer algebra system)|Reduce]] became free software in 2008.<ref>{{Cite web |title=REDUCE Computer Algebra System at SourceForge |url=http://reduce-algebra.sourceforge.net |access-date=28 September 2015 |website=reduce-algebra.sourceforge.net}}</ref> Commercial systems include [[Mathematica]]<ref>[http://history.siam.org/oralhistories/gonnet.htm Interview with Gaston Gonnet, co-creator of Maple] {{webarchive|url=https://web.archive.org/web/20071229044836/http://history.siam.org/oralhistories/gonnet.htm|date=29 December 2007}}, SIAM History of Numerical Analysis and Computing, 16 March 2005.</ref> 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). Other significant systems include [[Axiom (computer algebra system)|Axiom]], [[GAP_(computer_algebra_system)|GAP]], [[Maxima (software)|Maxima]] and [[Magma (computer algebra system)|Magma]].


The movement to web-based applications in the early 2000s saw the release of [[WolframAlpha]], an online search engine and CAS which includes the capabilities of [[Mathematica]].<ref>{{Cite news |last=Bhattacharya |first=Jyotirmoy |date=2022-05-12 |title=Wolfram{{!}}Alpha: a free online computer algebra system |language=en-IN |work=The Hindu |url=https://www.thehindu.com/sci-tech/technology/wolframalpha-a-free-online-computer-algebra-system/article65401003.ece |access-date=2023-04-26 |issn=0971-751X}}</ref>
The movement to web-based applications in the early 2000s saw the release of [[WolframAlpha]], an online search engine and CAS which includes the capabilities of [[Mathematica]].<ref>{{Cite news |last=Bhattacharya |first=Jyotirmoy |date=12 May 2022 |title=Wolfram{{!}}Alpha: a free online computer algebra system |language=en-IN |work=The Hindu |url=https://www.thehindu.com/sci-tech/technology/wolframalpha-a-free-online-computer-algebra-system/article65401003.ece |access-date=26 April 2023 |issn=0971-751X}}</ref>


More recently, computer algebra systems have been implemented using [[artificial neural networks]], though as of 2020 they are not commercially available.<ref>{{Cite web |last=Ornes |first=Stephen |title=Symbolic Mathematics Finally Yields to Neural Networks |url=https://www.quantamagazine.org/symbolic-mathematics-finally-yields-to-neural-networks-20200520/ |access-date=2020-11-04 |website=Quanta Magazine |date=20 May 2020 |language=en}}</ref>
More recently, computer algebra systems have been implemented using [[artificial neural networks]].<ref>{{Cite web |last=Ornes |first=Stephen |title=Symbolic Mathematics Finally Yields to Neural Networks |url=https://www.quantamagazine.org/symbolic-mathematics-finally-yields-to-neural-networks-20200520/ |access-date=4 November 2020 |website=Quanta Magazine |date=20 May 2020 |language=en}}</ref>


==Symbolic manipulations==
==Symbolic manipulations==
{{Unreferenced|section|date=November 2025}}
The symbolic manipulations supported typically include:
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
*simplification to a smaller expression or some [[Canonical form|standard form]], including automatic simplification with assumptions and simplification with constraints
Line 75: Line 89:
*[[string manipulation]] such as [[string matching|matching]] and [[string searching|searching]]
*[[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]]<ref>{{Cite journal |title=Computer Assisted Proofs and Automated Methods in Mathematics Education |first=Thierry Noah |last=Dana-Picard|journal=Electronic Proceedings in Theoretical Computer Science |date=2023 |volume=375 |pages=2–23 |doi=10.4204/EPTCS.375.2 |arxiv=2303.10166 }}</ref>
*add-ons for use in [[applied mathematics]] such as physics, [[bioinformatics]], [[computational chemistry]] and packages for [[computational physics|physical computation]]<ref>{{Cite journal |title=Computer Assisted Proofs and Automated Methods in Mathematics Education |first=Thierry Noah |last=Dana-Picard|journal=Electronic Proceedings in Theoretical Computer Science |date=2023 |volume=375 |pages=2–23 |doi=10.4204/EPTCS.375.2 |arxiv=2303.10166 }}</ref>
*solvers for [[differential equation]]s<ref>{{Cite web|title=dsolve - Maple Programming Help|url=https://www.maplesoft.com/support/help/Maple/view.aspx?path=dsolve|website=www.maplesoft.com|access-date=2020-05-09}}</ref><ref>{{Cite web|title=DSolve - Wolfram Language Documentation|url=https://reference.wolfram.com/language/ref/DSolve.html|website=www.wolfram.com|access-date=2020-06-28}}</ref><ref>{{Cite web|title=Basic Algebra and Calculus — Sage Tutorial v9.0|url=http://doc.sagemath.org/html/en/tutorial/tour_algebra.html|website=doc.sagemath.org|access-date=2020-05-09}}</ref><ref>{{Cite web|title=Symbolic algebra and Mathematics with Xcas|url=http://www-fourier.ujf-grenoble.fr/~parisse/giac/cascmd_en.pdf}}</ref>
*solvers for [[differential equation]]s<ref>{{Cite web|title=dsolve - Maple Programming Help|url=https://www.maplesoft.com/support/help/Maple/view.aspx?path=dsolve|website=www.maplesoft.com|access-date=9 May 2020}}</ref><ref>{{Cite web|title=DSolve Wolfram Language Documentation|url=https://reference.wolfram.com/language/ref/DSolve.html|website=www.wolfram.com|access-date=28 June 2020}}</ref><ref>{{Cite web|title=Basic Algebra and Calculus — Sage Tutorial v9.0|url=http://doc.sagemath.org/html/en/tutorial/tour_algebra.html|website=doc.sagemath.org|access-date=9 May 2020}}</ref><ref>{{Cite web|title=Symbolic algebra and Mathematics with Xcas|url=http://www-fourier.ujf-grenoble.fr/~parisse/giac/cascmd_en.pdf}}</ref>


Some include:
Some include:
Line 84: Line 98:


==Types of expressions==
==Types of expressions==
The expressions manipulated by the CAS typically include [[polynomial]]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 function]]s, 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]], [[integer]]s (of unbounded size), [[complex number|complex]] (floating-point representation), [[interval arithmetic|interval representation of reals]], [[rational number]] (exact representation) and [[algebraic number]]s.
The expressions manipulated by a CAS typically include multivariable [[polynomial]]s; standard functions of expressions ([[Trigonometric functions|sine]], [[exponential function|exponential]], etc.); various special functions ([[gamma function|Γ]], [[Riemann zeta function|ζ]], [[error function|erf]], [[Bessel function]]s, 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.<ref>{{cite web|url=https://www.mathworks.com/discovery/computer-algebra-system.html|title=Computer Algebra System - MATLAB & Simulink|publisher=MathWorks|access-date=2025-12-02}}</ref><ref>{{cite web|url=https://www.wolfram.com/mathematica/analysis/content/ComputerAlgebraSystems.html|title=Computer Algebra Systems - Comparative Analyses: Wolfram Mathematica|publisher=Wolfram|access-date=2025-12-02}}</ref> Numeric domains supported typically include [[floating-point arithmetic|floating-point representation of real numbers]], [[integer]]s (of unbounded size), [[complex number|complex]] (floating-point representation), [[interval arithmetic|interval representation of reals]], [[rational number]] (exact representation) and [[algebraic number]]s.


==Use in education==
==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.<ref>{{cite web|url=https://www.ted.com/talks/conrad_wolfram_teaching_kids_real_math_with_computers?language=en|title=Teaching kids real math with computers|website=Ted.com|date=15 November 2010 |access-date=12 August 2017}}</ref>
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.<ref>{{cite web|url=https://www.ted.com/talks/conrad_wolfram_teaching_kids_real_math_with_computers?language=en|title=Teaching kids real math with computers|website=Ted.com|date=15 November 2010 |access-date=12 August 2017}}</ref>
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.<ref>{{cite web|url=http://www.edu.gov.mb.ca/k12/cur/math/outcomes/|title=Mathematics - Manitoba Education|website=Edu.gov.mb.ca|access-date=12 August 2017}}</ref>
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.<ref>{{cite web|url=http://www.edu.gov.mb.ca/k12/cur/math/outcomes/|title=Mathematics Manitoba Education|website=Edu.gov.mb.ca|access-date=12 August 2017}}</ref>


Computer algebra systems have been extensively used in higher education.<ref>{{cite web|url=http://www.it.northwestern.edu/software/mathematica-fac/|title=Mathematica for Faculty, Staff, and Students : Information Technology - Northwestern University|website=It.northwestern.edu|access-date=12 August 2017}}</ref><ref>{{cite web|url=https://cuit.columbia.edu/mathematica-students|title=Mathematica for Students - Columbia University Information Technology|website=cuit.columbia.edu|access-date=12 August 2017}}</ref> 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.<ref>{{cite web|url=https://www.wolfram.com/solutions/education/higher-education/uses-for-education.html|title=Mathematica for Higher Education: Uses for University & College Courses|website=Wolfram.com|access-date=12 August 2017}}</ref><ref>{{cite web|url=http://www.mathworks.com/academia/|title=MathWorks - Academia - MATLAB & Simulink|website=Mathworks.com|access-date=12 August 2017}}</ref>
Computer algebra systems have been extensively used in higher education.<ref>{{cite web|url=http://www.it.northwestern.edu/software/mathematica-fac/|title=Mathematica for Faculty, Staff, and Students : Information Technology Northwestern University|website=It.northwestern.edu|access-date=12 August 2017}}</ref><ref>{{cite web|url=https://cuit.columbia.edu/mathematica-students|title=Mathematica for Students Columbia University Information Technology|website=cuit.columbia.edu|access-date=12 August 2017}}</ref> 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.<ref>{{cite web|url=https://www.wolfram.com/solutions/education/higher-education/uses-for-education.html|title=Mathematica for Higher Education: Uses for University & College Courses|website=Wolfram.com|access-date=12 August 2017}}</ref><ref>{{cite web|url=http://www.mathworks.com/academia/|title=MathWorks Academia MATLAB & Simulink|website=Mathworks.com|access-date=12 August 2017}}</ref>


CAS-equipped calculators are not permitted on the [[ACT (test)|ACT]], the [[PLAN (test)|PLAN]], the [[SAT]], and in some classrooms<ref>[http://www.act.org/caap/sample/calc.html ACT's CAAP Tests: Use of Calculators on the CAAP Mathematics Test<!-- Bot generated title -->] {{webarchive |url=https://web.archive.org/web/20090831032437/http://www.act.org/caap/sample/calc.html |date=August 31, 2009 }}</ref><ref name=":0">{{cite web |title=AP Exams Calculator Policy |url=https://apstudents.collegeboard.org/exam-policies-guidelines/calculator-policies |access-date=24 May 2024 |website=AP Students |publisher=College Board}}</ref> though it may be permitted on [[College Board]]'s calculator-permitted [[Advanced Placement|AP]] tests, including the [[AP Calculus]], [[AP Chemistry|Chemistry]], [[AP Physics|Physics]], and [[AP Statistics|Statistics]] exams.<ref name=":0" />
CAS-equipped calculators are not permitted on the [[ACT (test)|ACT]], the [[PLAN (test)|PLAN]], the [[SAT]], and in some classrooms<ref>{{Cite web|url=http://www.act.org/caap/sample/calc.html|archiveurl=https://web.archive.org/web/20090831032437/http://www.act.org/caap/sample/calc.html|url-status=dead|title=ACT CAAP &#124; Use of Calculators on the CAAP Mathematics Test &#124; ACT|archivedate=31 August 2009|website=www.act.org|accessdate=1 December 2025}}</ref><ref name=":0">{{cite web |title=AP Exams Calculator Policy |url=https://apstudents.collegeboard.org/exam-policies-guidelines/calculator-policies |access-date=24 May 2024 |website=AP Students |publisher=College Board}}</ref> though it may be permitted on [[College Board]]'s calculator-permitted [[Advanced Placement|AP]] tests, including the [[AP Calculus]], [[AP Chemistry|Chemistry]], [[AP Physics|Physics]], and [[AP Statistics|Statistics]] exams.<ref name=":0" />


== Mathematics used in computer algebra systems ==
== Mathematics used in computer algebra systems ==
Line 128: Line 142:


==External links==
==External links==
*[http://www.ericdigests.org/2003-1/age.htm Curriculum and Assessment in an Age of Computer Algebra Systems] {{Webarchive|url=https://web.archive.org/web/20091201030924/http://www.ericdigests.org/2003-1/age.htm |date=2009-12-01 }} - From the [[Education Resources Information Center]] Clearinghouse for Science, Mathematics, and Environmental Education, [[Columbus, Ohio]].
*[http://www.ericdigests.org/2003-1/age.htm Curriculum and Assessment in an Age of Computer Algebra Systems] {{Webarchive|url=https://web.archive.org/web/20091201030924/http://www.ericdigests.org/2003-1/age.htm |date=1 December 2009  }} 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 website: [https://web.archive.org/web/20060917023934/http://www.lcs.mit.edu/publications/specpub.php?id=663])''
*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 website: [https://web.archive.org/web/20060917023934/http://www.lcs.mit.edu/publications/specpub.php?id=663])''



Latest revision as of 03:36, 29 December 2025

Template:Short description Template:Use dmy dates Script error: No such module "redirect hatnote". A computer algebra system (CAS) or symbolic algebra system (SAS) is any mathematical software with the ability to manipulate mathematical expressions in a way similar to the traditional manual computations of mathematicians and scientists. 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 into 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:

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. Significant systems include Axiom, GAP, Maxima, Magma, Maple, Mathematica, SageMath, and SymPy.

History

File:TI-nspire CX CAS.jpg
A Texas Instruments TI-Nspire calculator that contains a computer algebra system

In the 1950s, while computers were mainly used for numerical computations, there were some research projects into using them for symbolic manipulation. 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.Script error: No such module "Unsubst".

A prime example of 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. Other early systems include FORMAC.Script error: No such module "Unsubst".

Using Lisp as the programming basis, Carl Engelman created MATHLAB in 1964 at MITRE within an artificial-intelligence research environment.[1] MATHLAB was later 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.Script error: No such module "Unsubst".

In 1987, Hewlett-Packard introduced the first hand-held calculator CAS with the HP-28 series.[2] Other early handheld calculators with symbolic algebra capabilities included the Texas Instruments TI-89 series and TI-92 calculator, and the Casio CFX-9970G.[3]

The first popular computer algebra systems were muMATH, Reduce, Derive (based on muMATH), and Macsyma; a copyleft version of Macsyma is called Maxima. Reduce became free software in 2008.[4] Commercial systems include Mathematica[5] and Maple, which are commonly used by research mathematicians, scientists, and engineers. Freely available alternatives include SageMath (which can act as a front-end to several other free and nonfree CAS). Other significant systems include Axiom, GAP, Maxima and Magma.

The movement to web-based applications in the early 2000s saw the release of WolframAlpha, an online search engine and CAS which includes the capabilities of Mathematica.[6]

More recently, computer algebra systems have been implemented using artificial neural networks.[7]

Symbolic manipulations

Script error: No such module "Unsubst".Template:Template other The symbolic manipulations supported typically include:

In the above, the word some indicates that the operation cannot always be performed.

Additional capabilities

Many also include:

Some include:

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 numeric systems.

Types of expressions

The expressions manipulated by a CAS typically include multivariable polynomials; 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.[13][14] Numeric domains supported typically include floating-point representation of real numbers, integers (of unbounded size), complex (floating-point representation), 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.[15] 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.[16]

Computer algebra systems have been extensively used in higher education.[17][18] 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.[19][20]

CAS-equipped calculators are not permitted on the ACT, the PLAN, the SAT, and in some classrooms[21][22] though it may be permitted on College Board's calculator-permitted AP tests, including the AP Calculus, Chemistry, Physics, and Statistics exams.[22]

Mathematics used in computer algebra systems

See also

Script error: No such module "Portal".

References

<templatestyles src="Reflist/styles.css" />

  1. Script error: No such module "citation/CS1".
  2. Script error: No such module "citation/CS1".
  3. Script error: No such module "Citation/CS1".
  4. Script error: No such module "citation/CS1".
  5. Interview with Gaston Gonnet, co-creator of Maple Template:Webarchive, SIAM History of Numerical Analysis and Computing, 16 March 2005.
  6. Script error: No such module "citation/CS1".
  7. Script error: No such module "citation/CS1".
  8. Script error: No such module "Citation/CS1".
  9. Script error: No such module "citation/CS1".
  10. Script error: No such module "citation/CS1".
  11. Script error: No such module "citation/CS1".
  12. Script error: No such module "citation/CS1".
  13. Script error: No such module "citation/CS1".
  14. Script error: No such module "citation/CS1".
  15. Script error: No such module "citation/CS1".
  16. Script error: No such module "citation/CS1".
  17. Script error: No such module "citation/CS1".
  18. Script error: No such module "citation/CS1".
  19. Script error: No such module "citation/CS1".
  20. Script error: No such module "citation/CS1".
  21. Script error: No such module "citation/CS1".
  22. a b Script error: No such module "citation/CS1".
  23. a b Script error: No such module "citation/CS1".
  24. Script error: No such module "citation/CS1".
  25. Script error: No such module "citation/CS1".

Script error: No such module "Check for unknown parameters".

External links

Template:Computer algebra systems