数式処理システム(すうしきしょりシステム、英文名称:Formula Manipulation System)は、コンピュータを用いて数式を記号的に処理するソフトウェアである。

例えば式の展開としてを求めたり、微分としてに対してを求める操作を取り扱う。取扱い可能な数式と演算はソフトウエア製品により異なる。

英文別称には()、Symbolic Computation Systemがある。 数式処理機能以外に数値計算機能、グラフ表示機能等も統合した数学ソフトとして存在する製品もある。 また,数式処理システムに向けた計算アルゴリズムを研究する分野の名称も数式処理(あるいは computer algebra の直訳として計算機代数)と呼ぶ。

具体的な数式処理システムの製品については数式処理システムの一覧を参照されたい。

取扱可能な数・数式 数式処理システムは、一般に次のような数・数式を表現、保持や演算処理できる。 数 自然数、整数 有理数、無理数 複素数 論理代数 式 複数の変数を含む多項式 複数の変数を含む有理式 三角関数、指数関数、対数関数、冪根(より一般には代数関数)などの初等関数を含む数式 極限 総和、級数 漸化式を伴う級数 数式の微分(導関数) 不定積分/定積分 ベクトル、行列を使った式、内積、外積、テンソル 複素関数 ガンマ関数、ゼータ関数、ベッセル関数、誤差関数、超幾何関数などの特殊関数を含む数式 数値計算としては次のものがある。 (任意長桁の)整数や有理数、特殊定数、浮動小数点数、区間数、複素数、代数的数,有限体。

記号的操作 記号的操作には、次のようなものがある。 式の変換 数式内の函数や数値を記号的に置換する。 単変数あるいは多変数の多項式の因数分解(多項式の因数分解)。 式を可能な限り単純な形式に変換したり、何らかの標準形式にする。前提条件や制約条件を考慮した自動的な簡約化も行う。 但し、この操作は常に可能とは限らず、ある程度一般的な(例えば初等函数と絶対値函数を含む)二つの数式の等価性の判定はアルゴリズム的には決定不能なことが示されている。 数式の形式を変更する。三角関数を指数函数で置換するなど。 代数 単変数の低次あるいは高次の代数方程式を厳密にあるいは近似的に解く。消去法により多変数の線形あるいは非線形の連立代数方程式を解く。 行列に対する各種操作。行列積の計算、逆行列の計算、固有多項式の計算、各種標準形への変換など。 各種領域での線型および非線型の方程式を解く。 微分・積分、解析 数列や函数の極限を求める。 常に可能なわけではない。 函数の級数への展開、級数の総和や積計算など。※  微分と偏微分の操作。 一部の不定積分と定積分。多次元積分も含む。 一部の微分方程式や差分方程式を解く。 その他 記号的な制約条件に基づいて最適値を与えるための必要条件を数式として導くこと。 限量記号消去法(Quantifier Elimination Method)。 数値計算 任意の精度の数値の操作。

数式処理システムが扱う数学的操作の例 数式の簡約(注:一般的な数式に対しては、それを一意に簡約する算法は存在せず,たとえばある数式が零と等価であるかの判定は一般には不可能である) 記号微分 数式中の変数への代入、数式中の指定したパターンに対する置き換え、数式の指定した部分あるいは指定したパターンに合致する部分の抽出 単変数あるいは多変数の多項式のGCD(最大公約数)の計算 単変数あるいは多変数の多項式の因数分解(多項式の因数分解) 記号積分(不定積分、定積分、多重積分)(注:必ずしも閉じた数式にはならない.場合によっては特殊関数を用いた表示になる.) 極限操作 線形代数(ベクトル、行列,テンソルに対する各種演算)(注:普通は明示的な成分表示を用いた取り扱いをする.) 無限級数の和を求める(場合によっては特殊関数を用いた表示になる) テイラー展開,漸近展開 代数方程式の解の表示(注:一般には解を四則と冪根の組み合わせで表現することはできないが,方程式の解を用いてさらに代数計算を行う場合には適切な代数拡大体を構成してその上で処理すれば原理的には可能になる) 常微分方程式の閉じた数式による解(一般解あるいは特殊解)の表示が可能であればそれを求める(方程式が線形でも一般的には表示はできない.場合によっては特殊関数を用いた表示になる) 差分方程式の閉じた数式による解の表示が可能ならば求める(方程式が線形でも一般的には閉じた表示はできない.場合によっては特殊関数を用いた表示ができることがある) 偏微分方程式の閉じた数式による解の表示が可能ならば求める フーリエ変換,ラプラス変換,逆ラプラス変換を求める(どれも一般的には結果を閉じた数式では表せない) グレブナー基底(連立代数方程式の消去演算による変数の消去) QE(Quantifier Elimination,限定子消去)(単独あるいは連立の(通常は実の)等式や不等式で表された命題論理式(条件式)の中から,限定子“∃”や“∀”を消去した等価な関係式を導出する手法) 関数列を用いた関数の近似展開

その他の機能 上記以外にも、以下のような機能を持つ数式処理システムがある。 数値の高精度な近似値を計算する。例えば、21/3 を1万桁以上計算するなど。 計算物理学のための物理学パッケージのように、応用数学的な特定用途に特化したアドオンが提供されているもの。 グラフィック機能。関数を2次元または3次元の図にプロットしたり、アニメーション表示する(画像ファイルとして出力する)。 関数値を波形として扱って音を鳴らす。 データベースや表計算システム、プログラミング言語から利用するためのAPI。 文字列探索などの文字列操作機能。 数式をに類似した組版システムを使って綺麗に表示する。あるいは形式でテキストファイルとして(入)出力する。 数式などを、Fortranなど他のプログラミング言語で用いられている表記法との間で相互に変換や入出力する。 統計学的な計算の機能 定理の自動証明や証明検証(Proof Checker) 画像処理機能 音響合成 有限群論機能 システムに対するプログラミングやユーザーからの入力指示とそれに対する出力結果を保存して、再利用や再度の実行を可能とするユーザーインタフェース。

多くの場合に、システムはプログラミング言語としての機能を持ち、ユーザーがアルゴリズムをプログラムとして記述して処理させることができる。言語の様式は様々で、命令型プログラミングや関数型プログラミングもあれば、制約プログラミングや論理プログラミングもあるし、4GL的なものもある。

歴史

初期のシステムとして、ノーベル物理学賞受賞のマルティヌス・フェルトマンが理論素粒子物理学計算のために1963年にCDC計算機のアセンブラで開発したSchoonschip、 同じく理論素粒子物理学(量子電磁気学、QED)計算のためにAnthony.C.Hearnが1963年にLISP上で開発したREDUCE、天体力学計算に特化したケンブリッジ大学のCAMAL、そのほかFORTRANで記述されたFORMACとPL/Iで記述されたPL/I FORMAC、などいろいろな試みがあった(REDUCEは今では無料版が存在する。現在でもまだ,たとえば長大な多項式や有理式を主とする計算の場合には有用である)。

1960年代には記号処理の側面から人工知能の研究の一環として主にLISPベースでいくつかの数式処理システムが作られた。 その最も典型的な例は、MITのProject-MACの成果であるMACSYMA である。(後にDOE MACSYMAを元にして Common Lisp 上にW.Shelterによって移植して作られたMaximaは、GPLライセンスの自由ソフトウェアとして現在でも開発改良が続けられている)。

数式処理研究は初期の段階では、それまで普通に人間の手計算で行われていた(中学・高校・大学生レベルの)教科書に出てくるような初等的な数式の操作や処理方法を電子計算機上に(主にLISPシステムなどの記号処理系の上で)実装することであった。 それにより人間の手計算に比べて非常に高速でしかも長大な式の計算が可能となり、特に(アルゴリズムやプログラムに間違いがなければ)計算された結果にはミスがないことが利点であった。

しかし次第に、試行錯誤による方法の限界と計算量の観点から、普通の人間が用いている(初等的で自明な)計算法や公式集に出ている規則のあてはめによる処理法だけではなくて、より系統的な(高度な)数学的アルゴリズムの開発や実装に研究の中心が推移してゆき、今では過去に想定されていたような記号処理、人工知能の技法、ソフトウェア技法の単なる応用分野であるとはいえないものになった。

電子計算機が安価でかつ強力になり、また個人による所有や利用が自由にできるようになり、高度でインタラクティブなプログラム開発環境がありふれたものとなったことなどにより、次第に多くの数学研究者が参入を始めたことで、高度な数学を駆使したアルゴリズムが数式処理に取り入れられる傾向が加速された。

現在、実務であるいは教育で最もよく使われている商業版の数式処理システムはMathematica と Mapleであろう。

日本で開発された数式処理システムとしては、元理化学研究所の佐々木建昭らによるLisp ベースの GAL、元富士通研究所で開発された(現在は神戸大学などが中心となっている) Risa/Asir、シンプレックス社の開発した数学表記のままで処理が行えるカルキング、などがある。

1987年、ヒューレット・パッカードは世界初の数式処理機能を持った電卓 HP-28 シリーズをリリースした。代数的な数式を入力でき、方程式を解いたり、微積分が可能であった。

1995年、テキサス・インスツルメンツは数式処理システム Derive を搭載した電卓 TI-92 をリリースした。その後も TI-89 などの後継機種をリリースしている。

関連項目 数式処理システムの一覧 数値解析ソフトウェア 計算科学 自動定理証明 人工知能 グラフ電卓 制約論理プログラミング

参考文献

Richard J. Fateman: "Essays in algebraic simplification". Technical report MIT-LCS-TR-095, 1972. オンライン版 - その後の数式処理研究の方向性を示した歴史的に重要な文書.

関連文献 書籍 洋書(年代順に列挙) "Papers from the Second Symposium on Symbolic and Algebraic Manipulation", Comm. ACM, Vol.14, No.8 (1971), pp.509-560. H. Strubbe: "Manual for SCHOONSCHIP a CDC 6000/7000 Program for Symbolic Evaluation of Algebraic Expressions", Comp. Phys. Commu., v.8 (1974), pp.1--30. Edited by B. Buchberger, G.E.Collins, and R. Loos in cooperaion with R. Albrecht: Computer Algebra: Symbolic and Algebraic Computation, (2nd Edition), Springer-Verlag, ISBN 0-387-81776-X, (1983). J.H.Davenport, Y. Siret and E. Tournier: Computer algebra: systems and algorithms for algebraic computation, Academic Press, ISBN 0-12-204230-1, (1988). R. E. Zippel(Ed.): Computer Algebra and Parallelism, (Proceedings of CAP '90, Second International Workshop, Ithaca, USA, May, 1990) , LNCS 584, Springer-Verlag, ISBN 0-387-55328-2, (1991). K.O.Geddes, S.R.Czapar, G.Labahn: Algorithms for Computer Algebra, Kluwer Academic Publishers, ISBN 0-7923-9259-0, (1992). 。原著はフランス語で1989年。 Evelyne Tournier(Ed): Computer Algebra and Differential Equations, Cambridge University Press, London Mathematical Society Lecture Note Series 193, ISBN 978-0-52144757-7, (1994/03). Tan Kiat Shi and Willi-Hans Steeb:Symbolic C++: An Introduction to Computer Algebra Using Object-Oriented Programming, Springer-Verlag, ISBN 981-3083-55-7, (1998). Edited by Michael J. Wester: Computer algebra systems: a practical guide, John Wiley & Sons, ISBN 0-471-98353-5, (1999). Robert P. Gilbert, Joji Kajiwara and Yongzhi S. Xu: Recent Developments in Complex Analysis and Computer Algebra, Springer, , (1999). Chee Keng Yap: Fundamental problems of algorithmic algebra, Oxford Univ. Press, ISBN 978-0-19-512516-0, (2000). Marko Petkovsek, Herbert Wilf and Doron Zeilberger: "A=B", A K Peters, Ltd., (1996). url=<https://www.math.upenn.edu/~wilf/AeqB.html>. Tan Kiat Shi, Willi-Hans Steeb and Yorick Hardy: Symbolic C++: an introduction to computer algebra using object-oriented programming, (2nd extended and revised edition), Springer-Verlag, London, ISBN 1-85233-260-3, (2000). A. Schinzel:Polynomials with Special Regard to Reducibility, Cambridge Univ. Press, Encyclopedia of Mathematics and its Applications,ISBN 978-0-52166225-3, (2000/04). David Eisenbud, Daniel R. Grayson, Mike Stillman, Bernd Sturmfels(Eds): Computations in Algebraic Geometry with Macaulay 2, (Algorithms and Computation in Mathematics) , Springer-Verlag, ISBN 978-3-54042230-3, (2001/10/25). Gert-Martin Greuel and Gerhard Pfister: A Singular Introduction to Commutative Algebra, Springer, ISBN 978-3-540-42897-8 (2002). Joel S. Cohen: Computer algebra and symbolic computation : elementary algorithms, A. K. Peters, Ltd., Canada, ISBN 1-56881-158-6, (2002). Joel S. Cohen: Computer algebra and symbolic computation : mathematical methods, A. K. Peters, Ltd., Canada, ISBN 1-56881-159-4, (2003). Johannes Grabmeier, Erich Kaltofen and Volker Weispfenning: Computer Algebra Handbook: Foundations · Applications · Systems, Springer, (2003). Hal Schenck: Computational Algebraic Geometry, (London Mathematical Society Student Texts) , Cambridge University Press, ISBN 978-0-52153650-9, (2003/10/06). Jürgen Gerhard: Modular Algorithms in Symbolic Summation and Symbolic Integration, Springer (LNCS 3218), ISBN 978-3-540-24061-7 (2004). Gert-Martin Greuel and Gerhard Pfister: A Singular Introduction to Commutative Algebra, 2nd Ed., Springer-Verlag, ISBN 978-3-54073541-0, (2007/12/04). Yorick Hardy, Kiat Shi Tan and Willi-Hans Steeb: Computer algebra with Symbolic C++, World Scientific, ISBN 978-981-283-360-0, (2008). Joachim von zur Gathen: Modern Computer Algebra, (3rd Ed.), Cambridge Univ. Press, ISBN 978-1-10703903-2, (2013/04/25). ※ 2nd Ed. は ISBN 978-0-52182646-4 (2003/09/01). Wolfram Decker and Gerhard Pfister: A First Course in Computational Algebraic Geometry, Cambridge University Press (AIMS Library of Mathematical Sciences), ISBN 978-1-10761253-2, (2013/02/07). Carsten Schneider and Johannes Bluemlein: Computer Algebra in Quantum Field Theory: Integration, Summation and Special Functions, (Texts & Monographs in Symbolic Computation), Springer, ISBN 978-3-70911615-9, (2013/10/14). Wolfram Koepf: Hypergeometric Summation: An Algorithmic Approach to Summation and Special Function Identities, 2nd Ed., Springer, ISBN 978-1-4471-6464-7 (2014). Wolfram Koepf: Computer Algebra - An Algorithm-Oriented Introduction, Springer, ISBN 978-3-030-78016-6 (2021). Gregory V. Bard: Sage for Undergraduates: Compatible With Python 3, 2nd Ed., AMS, ISBN 978-1-47046155-3 (2022/10/30). Wolfram Decker, Christian Eder, Claus Fieker, Max Horn and Michael Joswig: The Computer Algebra System OSCAR: Algorithms and Examples, Springer (Dec. 2024).

和書(年代順に列挙) 渡辺隼郎:「常微分方程式の数式処理」、シリーズ新しい応用の数学4、教育出版、ISBN 978-4-31637550-2、(1974年5月)。 佐々木建昭、後藤英一:「解説:計算機による数式処理と物理学への応用」、日本物理学会誌、第35巻、第2号(1980)。 佐々木建昭:「数式処理(その1)アルゴリズムの進展」、共立"bit”誌、Vol.12、No.4 (1980)、pp.568-576. 佐々木建昭:「数式処理(その2)最近の話題から」、共立"bit”誌、Vol.12、No.5 (1980)、pp.738-748. 佐々木建昭:「数式処理(その3)将来に向けて」、共立"bit”誌、Vol.12、No.6 (1980)、pp.815-823. 金田康正:「使ってみない?数式処理システムを:現在日本で使用できる数式処理システム」、共立"bit”誌、Vol.13、No.4 (1981)、pp.314-322. 佐々木建昭:「数式処理」、情報処理叢書7、情報処理学会、オーム社(1981年5月)。 伊理正夫、一松信、山本純恭、内野正弘、佐々木建昭、長尾真、田丸啓吉:「数と式と文の処理」、岩波講座情報科学23,岩波書店(1981年12月10日)。第4章"数式処理"。 後藤英一:「記号処理の基礎と応用」(情報処理叢書〈8〉)、情報処理学会 (1982年1月)。 数式処理若手の会:「数式処理通信(Communications for symbolic and algebraic manipulation)」、Vol.1、no.1 (1983年4月)-Vol.7、no.4、(1992年12月)、サイエンティスト社、。 後藤英一・一松信・広田良吾(編):「計算機による数式処理のすすめ」、共立出版bit別冊(1986年3月号)。 「大特集:数式処理」、情報処理、Vol.27、No.4 (1986年4月号)、情報処理学会(1986年4月15日発行)。 佐々木建昭、元吉文男、渡辺隼郎:「数式処理システム」、ソフトウェア講座36、昭晃堂、ISBN 978-478563536-7 (1986年8月)。 山下倫範・友永昌治・野海正俊:「MS-DOSと事務・統計・数式 COBOL/SAS/muMATH活用法」、共立出版、ISBN 978-4-320-02298-0 (1986年12月)。 古川昭夫:「muMATH入門:マイコン用数式処理システム」、現代数学社、ISBN 978-4-76870138-6 (1986年12月)。 A. C. ハーン:「REDUCEユーザーズ マニュアル」、マグロウヒル、(1988年8月30日)。 広田良吾、伊藤雅明:「REDUCE入門:パソコンによる数式処理活用法」、サイエンス社、ISBN 978-4-78190546-4 (1989年6月)。 大河内茂美:「数式処理ソフトREDUCEで数学を」、森北出版、ISBN 978-4-627832602 (1990年1月)。 落合豊行、永友清和:「REDUCEによる線形代数 (コンピュータと数学) 」、近代科学社(インプレス)、ISBN 978-4-84437293-6 (1990年1月20日)。 牧野潔夫:「整数論の数式処理」、サイエンティスト社、(1991年1月20日)。 下地貞夫:「数式処理」、森北出版(基礎情報工学シリーズ)、ISBN 978-4-62780630-6 (1991年9月)。 渡辺隼郎:「数式処理について」、数学、第44巻第1号(冬季号)、日本数学会 、頁79-84、 (1992年1月)。 佐々木建昭(他):「計算代数と計算幾何」、岩波講座応用数学、第五回配本、岩波書店(1993年9月)。 マーコ・ペトコブセク、ハーバート S. ウィルフ、ドロン ザイルバーガー:「A=B 等式証明とコンピュータ」、トッパン、ISBN 4-8101-8972-4(1997年9月29日)。 斎藤友克、平野照比古、竹島卓:「日本で生まれた数式処理ソフト:リサアジールガイドブック」、SEG出版、ISBN 978-4-87243076-9 (1998年10月)。 「特集・数式処理とその周辺」、数理科学、No.425、サイエンス社(1998年11月号)。 河野実彦:「微分方程式と数式処理」、森北出版(数学選書)、ISBN 978-4-62703811-0 (1998年11月)。 「特集・数式処理とその周辺」、数理科学、No.425、サイエンス社(1998年11月号)。 藤重悟、佐々木建昭、今井浩、浅野孝夫、杉原厚吉:「計算代数と計算幾何」、岩波講座 応用数学10、岩波書店、ISBN 978-4-00-010800-3、(1998年11月20日)。※ 1993年9月のものの第二次発行分。 臼田昭司、東野勝治、葭谷安正:「最適OSで使いこなす 数式処理/数値計算」、ISBN 4-274-07866-3、オーム社(1998年11月26日)。 赤間世紀:「はやわかり Maple」、共立出版、ISBN 4-320-02986-0 (2000年8月10日)。 赤間世紀:「はじめてのMuPAD MuPAD Pro2.0 for Windows」、シュプリンガー・フェアラーク東京、ISBN 978-4-43170946-6(2000年12月14日)。 大阿久俊則:「D加群と計算数学」、朝倉書店、ISBN 4-254-11555-5 (2002年2月25日)。 小国力、小割健一:「MATLAB数式処理による数学基礎」、朝倉書店、ISBN 4-254-11101-0(2004年1月10日)。 赤間世紀、山口喜博:「MuPADで学ぶ基礎数学」、丸善、ISBN 978-4-62107465-7 (2004年9月)。 生越茂樹:「基礎からのMuPAD―安価で人気の「数式処理システム」を使いこなす!」、工学社(I・Oブックス)、ISBN 978-4-77751084-9 (2004年12月)。 J.フォン ツァ ガテン:「コンピュータ代数ハンドブック」、朝倉書店、ISBN 978-4-254-11106-4 (2006年6月)。# 原書 Modern Computer Algebra の(旧版の)邦訳。 横田博史:「はじめてのMaxima」、工学社、ISBN 978-4-77751201-0 (2006年9月)。 佐々木建昭、筑波大学:「近似代数の算法と応用の研究」、文部科学省科学研究費補助金研究成果報告書(2007年3月)。