科学分野のオープンソフトウェア
Linux
Linuxはスーパーコンピュータのクラスタや組み込みの科学機器で使われているほか、緻密なプログラムの作成をはじめ、その他無数の用途でプログラミング環境として利用されている。Scientific LinuxはRed Hat Enterprise Linuxディストリビューションのクローンであり、世界中のさまざまな物理研究所向けLinuxディストリビューションの基盤になっている。Linuxプログラマは次のような数々の科学ライブラリを利用することができる。
- FFTW ― Fastest Fourier Transform in the Westは離散フーリエ変換を計算するためのライブラリで、信号処理、量子力学など波を扱うすべての分野で役立つ。
- GSL ― GNU Scientific LibraryはC/C++用の数値計算ライブラリで、乱数、統計分布、行列計算、複素数などを扱う組み込み関数が用意されている。
- Galois Field Arithmetic Library ― ガロア体(Galois fields)の演算用ライブラリで、暗号化や誤り訂正符号などの電子通信システム関連の諸演算に使える。
Maximaは、MathematicaやMapleのような商用ソフトウェアに類似したGPLライセンスのコンピュータ代数システムである。積分や微分、行列計算の実行、微分方程式や線型方程式の解の取得、多項式の因数分解と展開、関数の値やデータの2次元および3次元プロットが行える。ソースの形式のほか、Windowsの実行ファイルやFedora Core 2用のRPMパッケージもあり、オンラインで入手できる。MaximaのWebサイトにはマニュアルが用意されている。
Octave Octaveは数値演算の実行によってMaximaのようなシンボリックな代数プログラムを補完し、数値演算の実行環境であると同時にインタープリタ方式のプログラミング言語でもある。Linuxシステムでは、コマンドラインからoctave
と実行するとOctaveシェルが開き、そこでOctaveコマンドの入力と評価を行う。デフォルトのOctaveパッケージでは、行列およびベクトルの計算、微分方程式の数値的な解法、Gnuplotを利用したデータのプロットを実行できる。Octave言語は商用ソフトウェアのMatlabで使われている言語と大体の互換性があるため、ほとんどの状況でMatlabの代わりとして使える。また、Matlabのアドオンパッケージの大半はOctaveでも実行できるはずである。さらに、ユーザは独自のアドオンパッケージを作成することでOctaveに機能を追加することもできる。GNU Octave Repositoryのパッケージ群の中には、特定の分野向けのさまざまなアドオンが収録されている。
Octaveは、Fedora CoreやRed Hat Enterprise Linuxなど多数のLinuxディストリビューションのベースパッケージに含まれているほか、Windows版もある。
Octaveのコマンドに関する情報はOctaveのマニュアルからオンラインで参照できるが、30ドルで購入することもできる。
TeXとLaTeX数式を多用する分野で品質の高い文書を作成するのに、ワープロソフトは不向きである。TeX(組版言語)では、コンテンツの作成と、フォントサイズ、表題ページのレイアウト、余白といった活字組みの諸事項とが分離されている。TeXは、マークアップされたテキストを処理して文書を生成するという点でHTMLに似ている。LaTeXにはそれ以外にも、書式化された表題ページや参考文献のセクションを適切な形で自動生成してくれるなど、すばらしい機能がある。
TeX文書からDVI、PostScript、PDF、HTMLといった各種の形式を生成するには、LaTeXプログラムで処理を行う。Fedora Coreをはじめ多くのLinuxディストリビューションでは、ベースディストリビューションにLaTeXプログラムが含まれている。またWindowsシステムでは、MiKTeXを使えばTeX文書を処理できる。
適度に経験を積めば、LaTeXを使って専門家並みの文書を、従来のワープロソフトよりも簡単かつ短時間で作成できる。またBibTeXのような強力な機能により、参考文献の長大なリストの管理や文献目録の作成が容易に行える。さらに、米国物理学会(American Physical Society)への論文提出時に用いるREVTeXなど、多様なスタイル文書が利用できる。TeX文書のサンプルは、その多くにTeXのソースファイルが含まれた、査読対象の科学論文が集められているe-Printアーカイブをはじめ、さまざまな場所にある。
OpenScience ProjectThe OpenScience Projectはオープンに利用可能な科学分野のソフトウェアパッケージ群の包括的リストを管理している。そこには、数学、天文学、考古学をはじめとする幅広い学術分野向けのパッケージが含まれている。このリストを参照すれば、専門化された科学分野向けのソフトウェアが容易に見つかるだろう。