数式処理システム(CAS)または記号代数システム(SAS)とは、数学者や科学者による従来の手計算と同様の方法で数式を操作できる数学ソフトウェアです。20世紀後半における数式処理システムの開発は、「コンピュータ代数」または「記号計算」という分野の一部であり、多項式などの数学的対象に対するアルゴリズムの研究を促進しました。
コンピュータ代数システムは、専門用途と汎用用途の2つのクラスに分けられます。専門用途のシステムは、数論、群論、初等数学の教育など、数学の特定の分野に特化しています。
汎用コンピュータ代数システムは、数式の操作を必要とするあらゆる科学分野のユーザーにとって有用であることを目指しています。有用であるためには、汎用コンピュータ代数システムは以下のような様々な機能を備えている必要があります。
ライブラリは、ユーザーのニーズだけでなく、簡略化を行う者のニーズも満たす必要があります。例えば、多項式の最大公約数の計算は、分数を含む式の簡略化に体系的に利用されます。
必要とされるコンピュータ能力の多さが、汎用コンピュータ代数システムの数が少ない理由です。重要なシステムとしては、Axiom、GAP、Maxima、Magma、Maple、Mathematica、SageMath、SymPyなどが挙げられます。

1950年代、コンピュータは主に数値計算に使用されていましたが、記号処理への利用に関する研究プロジェクトもいくつかありました。コンピュータ代数システムは1960年代に登場し始め、理論物理学者の要求と人工知能研究という全く異なる二つの源から発展しました。
最初の開発の代表的な例は、後にノーベル物理学賞を受賞したマルティヌス・フェルトマンが行った先駆的な研究です。フェルトマンは 1963 年に、記号数学、特に高エネルギー物理学用のプログラムであるSchoonschip (オランダ語で「きれいな船」) を設計しました。その他の初期のシステムにはFORMACがあります。
カール・エンゲルマンは、 1964年にMITREの人工知能研究環境において、Lispをプログラミング基盤としてMATLABを開発しました。後にMATLABは、大学においてTOPS-10またはTENEXを搭載したPDP-6およびPDP-10システムのユーザーに提供されました。現在でも、PDP-10のSIMHエミュレーションで利用可能です。MATLAB(「 math ematical lab oratory」)は、15年後にニューメキシコ大学で構築された数値計算システムであるMATLAB(「mat rix lab oratory」)と混同しないでください。
1987年、ヒューレット・パッカードはHP-28シリーズで世界初の携帯型電卓CASを発表しました。[1]他に、数式処理機能を備えた初期の携帯型電卓としては、テキサス・インスツルメンツの TI-89シリーズやTI-92、カシオの CFX-9970Gなどがあります。[2]
最初に普及したコンピュータ代数システムは、 muMATH、Reduce、Derive(muMATHベース)、そしてMacsymaでした。Macsymaのコピーレフト版はMaximaと呼ばれています。Reduceは2008年にフリーソフトウェアになりました。 [3]商用システムにはMathematica [4]やMapleがあり、研究者、科学者、エンジニアに広く使用されています。無料で利用できる代替システムにはSageMath (他のフリーおよび有償CASのフロントエンドとして機能)があります。その他の重要なシステムには、 Axiom、GAP、Maxima、Magmaなどがあります。
2000年代初頭のウェブベースのアプリケーションへの移行により、オンライン検索エンジンであるWolframAlphaと、 Mathematicaの機能を備えたCASがリリースされました。[5]
最近では、人工ニューラルネットワークを使用したコンピュータ代数システムが実装されていますが、2020年時点では商用化されていません。[6]
通常サポートされている記号操作には次のようなものがあります。
上記の「some」という単語は、操作が常に実行できるわけではないことを示しています。
多くには次のものも含まれます:
いくつか例を挙げると:
一部のコンピュータ代数システムは専門分野に特化しており、通常は学術界で開発され、無料で提供されています。数値演算システムと比較すると、数値演算には効率が悪い場合があります。
CAS が操作する式には、通常、複数の変数の多項式、式の標準関数 (正弦関数、指数関数など)、さまざまな特殊関数 ( Γ、ζ、erf、ベッセル関数など)、式の任意関数、最適化、式の導関数、積分、簡略化、和、積、式を係数とする切断級数、式の行列などが含まれます。サポートされる数値領域には、通常、実数の浮動小数点表現、整数(無制限のサイズ)、複素数(浮動小数点表現)、実数の区間表現、有理数(正確な表現)、代数的数が含まれます。
小中学校の授業におけるコンピュータ代数システムの利用拡大を提唱する声は数多くある。こうした提唱の主な理由は、コンピュータ代数システムが紙と鉛筆や手計算による数学よりも、現実世界の数学をよりよく再現できるからである。[12] 数学の授業におけるコンピュータ利用拡大の推進は、一部の教育委員会によって支持されている。一部の地域では、カリキュラムにコンピュータ利用が義務付けられている。[13]
コンピュータ代数システムは高等教育において広く利用されている。[14] [15]多くの大学では、コンピュータ代数システムの活用法を習得するための特別なコースを開講するか、学生が授業でコンピュータ代数システムを使用することを暗黙のうちに期待している。コンピュータ代数システムを開発する企業は、大学や短期大学におけるコンピュータ代数システムの普及を推進している。[16] [17]
CAS搭載の電卓はACT、PLAN、SAT、および一部の教室では使用が許可されていません[18] [19]が、 AP微積分、化学、物理学、統計学の試験を含むCollege Boardの電卓使用が許可されているAPテストでは許可される場合があります。[19]