数学ソフトウェア
数学ソフトウェア(すうがくソフトウェア)は、モデル、数値的あるいは記号的な解析あるいは計算、または幾何学データに用いられるソフトウェアである。[1]
数学ソフトウェアは端的に言うと、数学の問題を解いたり、研究したりするのに用いる専用のソフトウェアである。数学とは何かについて様々な見解があるのに応じて、それに用いる数学ソフトウェアの範囲には広義と狭義にわたる見解がある。
実際、数学ソフトウェアのあるもの(数学ライブラリー)は他の科学ソフトウェアの一部に組み込まれて利用される場合がある。極めてプライマリーなもの(たとえば初等関数を浮動小数点演算をして計算する)も数学ソフトウェアの範疇に入るかもしれない。これらは一般的にはミドルウェアとして一般のシステムに組み込まれることがある。数学ソフトウェアはいわばアプリケーションソフトではあるが他の科学ソフトウェアの基本となるという側面がある。
数学ソフトウェアは教育目的などでユーザーインターフェイスが良いものも多いが、その問題を解く核となる部分は、数学上の知見に直接依存したアルゴリズムによっており、問題が少なくとも(ハードウェアに物理的な限界がある)数学的観点から構成的に解けなければ処理できなくなっている。これが他のアプリケーションソフトとの大きな違いだろう。
なかでも、数学ソフトウェアを使う際には以下に気を付けななければならない。
- 問題が解けることが必ずしも保証されていない。→詳細は「ゲーデルの不完全性定理」を参照
- 問題が原理的に解けるかもしれないが、具体的に計算機で求めようとすると、多項式時間で解けず極めて難しい。→詳細は「計算複雑性理論」を参照
2.の場合を逆に利用したのが暗号ソフトウェアである。
数学ソフトウェアの進化
[編集]従来は主に数値解析と数式処理の分野が重要な位置を占めていたが、他のものも広がりを見せている。電子計算機が現れる以前の(数値的)解法が電子計算機の出現によって、広く用いられるようになった例のように、電子計算機の発明以前にあったアルゴリズムなどの有用な数学的知見が数学ソフトウェアの開発に寄与した一方で、(ムーアの法則に見られるような)処理能力 (コンピューター)の増大によって、従来では別物だったアルゴリズム、処理方法が統合されて、(例えば数値解析と統計学が組み合わさったようなデータ同化などの)新しい手法が逆に広い意味での数理科学ないし応用数学の発展を要請している。
TeXやMathMLなどの数学的な情報の表現方法の進歩は、(数学の体系が矛盾しているかどうかという問題とは別に)従来の単なる数式処理言語を真の数学処理言語へと進化を促すだろう。そして汎用的な数学ソフトウェアの普及の一方において、特殊な問題を扱う、いわば一芸ソフトのような数学ソフトウェアもプラットフォームの標準化が進む環境に適応しつつ生き残るだろう。そうして数学ソフトウェアの多様性は維持されていくだろう。
ソフトウェア電卓
[編集]ソフトウェア電卓は利用者が加算、乗算、指数計算、そして三角関数のような単純な数学的な操作をするのを認識する。データー入力は典型的には手操作で、そして出力はテキスト・ラベルである。
数式処理システム
[編集]多くの数学的な一揃いのものは数式処理を用いる数式処理システムである。それらは人が読める記号法において古典的な代数方程式と問題を解くよう設計されている。
統計学
[編集]多くのツールがデータの統計的な解析のために利用できる。
最適化ソフトウェア
[編集]幾何学ソフトウェア
[編集]数値解析
[編集]ユニバーサル・テクニカル・システムズ,Inc.(英:Universal Technical Systems,Inc)により商品化された、TK Solverは、ルール・ベース言語を宣言することに基づいて、数理モデリングと数値問題を解くソフトウェア・システムである。
NetlibリポジトリはたいていのFortranならびにCの、数値的な問題のためのソフトウェア・ルーチンの多様な収集物を含む。多くの異なった数値的なアルゴリズムを実装する商品化された製品はIMSL、NMathそしてNAG数値計算ライブラリを含んでいる;ひとつのフリーな代価案としてはGNU Scientific Library
がある。力点がアルゴリズムの明確な理解におかれる、違ったアプローチはNumerical Recipesによって採用される。
(以上に挙げた)多くの数式処理システムは数値的な計算に使うこともできる。
音楽数学ソフトウェア
[編集]音楽数学ソフトウェアは音楽の記号やパターンを解析または合成するのに数学を利用する。
ウェブサイト
[編集]ダウンロードまたは何らかのコードのインストールの必要なしに、ウェブ・ブラウザーで利用できる数学ソフトウェアは増大しつつある。[3] [4]
プログラミング・ライブラリー
[編集]低水準の数学ライブラリーは他のプログラミング言語の中で使うために意図された;
- 他の追従を許さずに高速な任意精度演算のためのGMP、GNU Multi-Precision Library。
- 任意精度演算のための高水準なC++ライブラリーの、Class Library for Numbers。
- AMDによってリリースされたソフトウェア開発ライブラリーのAMD Core Math Library。
- Boost.Math
脚注
[編集]- ^ See, e.g.,theeditorial charter of the ACM Transactions on Mathematical Software or the Problem taxonomy of theNational Institute of Standards and Technology Guide to Available Mathematical Software(both retrieved 2015-02-15).
- ^ Musimathics website, freeware download
- ^ Internet Accessible Mathematical Computation, Institute for Computational Mathematics, ケント州大学,retrieved 2015-02-15
- ^ “Wolfram|Alpha Examples: Mathematics”. www.wolframalpha.com. 2016年7月19日閲覧。
関連リンク
[編集]- swMATH 数学ソフトウェアについてのデータベース