SageMath: 高機能オープンソース数式処理システム
SageMath(セイジ、旧称Sage)は、数式処理、数値計算、組み合わせ論など、広範な
数学分野を扱うことができる、強力なオープンソース
ソフトウェアです。科学研究や工学分野での応用を視野に入れ、Magma、
Maple、
Mathematicaといった商用
ソフトウェアの代替となることを目指して開発されました。
概要
SageMathは、2005年にウィリアム・スタインによってプロジェクトが開始され、
GNU General Public Licenseに基づいて公開されました。その設計思想は、既存のオープンソースの
数学ソフトウェアを統合し、
Pythonを共通のインターフェースとして利用することで、ユーザーが容易にアクセスできる環境を提供することにあります。
特徴
インターフェース
ノートブックインターフェース: 対話的な操作が可能で、過去の入力を再利用したり、結果を視覚的に確認したりできます。ウェブブラウザを通じて、ローカル環境だけでなくネットワーク経由でも利用可能です。
コマンドラインインターフェース: I
Pythonをベースとした強力なコマンドラインインターフェースを提供します。
GUI: スライダーなどの直感的な操作が可能なGUIを備えています。
プログラミング
Pythonをベースとしているため、手続き型、関数型、
オブジェクト指向プログラミングに対応しています。
MaximaやSymPyといった数式処理エンジンを統合し、高度な計算をサポートしています。
FORTRAN、C、
C++などのコードを実行可能です。
演算機能
数値計算: GNU Scientific Library、SciPy、NumPyなどのライブラリを利用した、高度な線形代数計算が可能です。
数式処理: 複素数、多倍長計算、記号計算をサポートしています。
グラフ理論: グラフの可視化と解析が可能です。
並列計算: SMP環境での並列実行や、
分散コンピューティング環境での並列計算をサポートしています。
データ入出力
データ、画像、動画、音声、CAD、GIS、ワープロ文書、医用データ形式など、多様な形式の入出力をサポートしています。
数式の表示や
LaTeX文書の埋め込みが可能です。
外部連携
Mathematica、Magma、Mapleなどの外部ソフトウェアを呼び出し、結果を比較検討できます。
Twistedを利用して、
SQL、
Java、
.NET Framework、
C++、FORTRANなどのネットワーク経由での利用を可能にします。
開発方針
SageMathの開発は、既存の
ソフトウェアを統合するという方針のもと、効率的に進められました。
Pythonを共通言語とすることで、ユーザーは
Pythonの知識のみでSageMathを利用できます。また、オープンソースであるため、商用
ソフトウェアのような制約がなく、幅広い分野の
ソフトウェアを利用できます。開発には、学生、研究者、ボランティアが参加し、助成金による支援も受けています。
成果
SageMathは、トルフェ・ド・リブレの科学技術
ソフトウェア部門での受賞や、
Google Summer of Codeのプロジェクトへの選出など、数々の栄誉に輝いています。また、多くの
数学関連の論文や書籍で引用されており、その有用性が広く認められています。
利用条件
SageMathは、
GNU General Public License version 2+ に基づく自由
ソフトウェアです。
ソースコードは自由にダウンロードでき、改変や再配布も可能です。
Linux、macOS、
Solaris 向けの
バイナリも提供されており、ブータブルCDとしても配布されています。オンライン版も利用できますが、メモリサイズやセキュリティに制限があります。
まとめ
SageMathは、研究者、学生、エンジニアにとって、強力な
数学ツールです。オープンソースであること、
Pythonをベースとしていること、多様な機能を統合していることなどから、多くのユーザーに支持されています。今後も活発な開発が期待される、注目の
ソフトウェアです。