数式処理系とは

本題に入って, 今回は数式処理系の紹介します.


コンピュータで数式処理というと一般的には, 印刷物に数式を入れる方法の部分と, 数学で行う計算, 即ち, 式の展開, 因数分解, 微分, 積分, 方程式を解く, 逆行列を求める, 固有値計算等を数式のまま実行する事のふたつが考えられます.


前者の,「印刷物(本, 論文, レポートなど)に数式を入れる」は, 数学の世界では, LATEX(日本ではラテフと読まれる.)という組版システムがあり, それを利用するのが基本です. この授業でも, ワードプロセッサを講義しないのは, 2年次の計算機概論 I でLATEXの初歩を講義するからです.

今回の話は, 後者の「数式(文字式)の計算をコンピュータでやらせる」という内容です.


通常であれば, 琉球大学に導入されている Maple というソフトウェアを利用するのですが, これは, 残念ながら有料で, 遠隔授業で利用するのは(不可能ではないですが)大変です. 今回は, 数式処理ソフトの紹介だけをします.


本格的な数式処理ソフトとして, 現在よく利用されているのは, Maple, Mathematica, Macsyma (MAXIMA), sage, reduce などがあります. これらは, 大学初年級以上の数学を処理する能力を 持っており, 数学教育で用いるソフトとして便利ですし, 研究上の実験ソフトとしても役に立ちます. それぞれについて簡単な紹介を書いておきます.

このページにあるのは, 有料(商用)のソフトウェアです.

Maple
Canadaの Waterloo大学で開発された数式処理ソフトです. Maple は, 沖縄では見ませんが, 楓という木の事です. Canada国旗の中央部には楓の葉がデザインされています 1. 現在, Maplesoft Inc.(日本のサイバネットシステムの子会社)が販売している有料ソフト. サポートされているOS は, MacOS, Windows, Solaris, Linux (x86)等です. 学生, 教育機関向けに Student バージョンが廉価で販売されています (とはいえ 2万円程度かかる.).

Mapleの開発は, 1980年頃に始まったようです. 私が初めて Mapleに触れたのが 1987年位で, 当時の Versionが 4.?でした. この頃, ようやくパーソナルコンピュータ (Macintosh)で, Maple が動くようになりました.

琉球大学の情報処理センターでは, Maple が導入されており, 情報処理センターのマシンを使えば, 全員がそれを使う事ができます.

昨年度は, 情報科学演習の第12回で Maple. の導入講義をしていますので, その内容を時間があるときに読んでおいて下さい(遠隔で実行することは, 不可能ではないが大変).


http://www.math.u-ryukyu.ac.jp/~suga/joho/2019/12/index.html(HTML 版)
http://www.math.u-ryukyu.ac.jp/~suga/joho/2019/12/12.pdf(PDF 版)

Mathematica
Wolfram社が開発した数式処理ソフト. 有料. Wolfram alpha というネットワーク上のインターフェイス https://ja.wolframalpha.com/(日本語版)があり, 大学初年度程度の計算なら, ここから無料で実行できます.

これも学生向けのバージョンがあると思います.

時間がある人は, 上の Wolfram alpha のページにアクセスして, integrate 1/sin(x) を入力して Enter キーを押してみて下さい.

ここからは, 無料のソフトウェアを紹介します.

これらをダウンロードしたり, さらに利用したりするには, 英語を読まなければならない事が多く起こりますが, その英語に対して拒否反応を持たない訓練を大学時代にするようにして下さい.

Reduce
1960年代後半に A. C. Hearn が開発を始めたソフトウェア.

1980年代には, 日本では最も普及をしていた. その理由は, 前ページの有料ソフトウェアが PC では動かなかった (Mac では動いたが...)のと次に述べる Macsyma が当時は有料で高額であったからです.

今世紀に入る頃には, Maple, Mathematica 共に PC で動作するようになり(しかも学術機関は Student 版が使えた), 機能がこれらの商用ソフトウェアから見ると見劣りするようになったため, 利用する人が減少しました.

次のサイトからダウンロードできます. 利用方法等は, Web で調べて下さい.

https://sourceforge.net/projects/reduce-algebra/files

Maxima(Macsyma)
Macsyma は, 1960年代後半から MIT (Massachussetts Institute of Technology, マサチューセッツ工科大学) で開発が始まった数式処理システム.

Reduce と同じ時期に開発が始まったが, こちらの方が完成度は高かった. 1980年頃にはほぼ開発が終わっていたが, 有料ソフトであり, さらに当時は動作環境の値段も高額であった.

今世紀に入って, Macsyma のあるバージョンのソースが無料になり, それを元に PC で動作するようにしたのが Maxima.

上で紹介した Maple は, 軽快に動く Macsyma を目指して開発されたとも言われています.

次のサイトからダウンロードできます. 利用方法等は, Web で調べて下さい.

http://maxima.sourceforge.net/download.html

sage
sage は, 上の maxima を中心に, 他の無料の数学ソフト(Gap: 群論用, PARI: 数論用など)を一まとめにして, Python というプログラム言語で統一的に使えるようにしようとしたもの.

次のサイトからダウンロードできます. 利用方法等は, Web で調べて下さい.

http://www.sagemath.org/download.html

次のページは, Wolfram alpha と同じように, Web で計算できるようにしたもの.

http://sagecell.sagemath.org/
試しに, integral(1/sin(x), x); を入力して, 下のEvaluate ボタンを押してみて下さい.


Wolfram alpha と sagecell が $\displaystyle{\int \frac{dx}{\sin x}}$で, 見た目の異なる答を出します. しかし, 当然これらは一致します. 数式処理システムを使うときにも, 数学の知識がかなり要求されます. また, このような事が数式処理システムの実装の難しさにもつながります (答として何を返せばわかりやすいのかの判定基準がない.).

2021-02-24