1.1 MATLAB とは、その起源

MATLAB (MATrix LABoratory) は、 著名な線形演算ライブラリィ LINPACK, EISPACK の開発でも中心的な役割を果たした Cleve Moler が、 1980 年頃に製作したものが発展した数値実験環境 (「実験室」) である (当時の開発言語は FORTRAN)。彼は 1985 年に C 言語で MATLAB を書き直し、 MathWorks 社を設立して販売を開始した (Moler は会長兼技師長であるとか -- 現在もそうであるかは知らない)。

MATLAB の特徴
  • インタープリター型言語である。そのため1
    • 対話的で使いやすいシステムになっている。
    • 注意深く利用しないと実行効率が低くなる2 (個々の命令の実行時に命令解釈のコストが必要なため、 繰り返し処理を多用すると計算時間が長くなりがちである)。
  • LAPACK などの各種数値計算ライブラリィを 内蔵している (これらのライブラリィ群へのインターフェイスであると 理解すべきかもしれない)。
  • ベクトル、行列などのデータの型が始めから定義されているので、 命令が簡潔になっていて、プログラミングも楽になった 3

MATLAB をいかに評価するか。 筆者自身は最初は「ちょっと便利」くらいにしか感じなかったが、 使い続けるうちに

案外大したものではないか
さらに
ひょっとするとコロンブスの卵で大発明?
と考えるようになった。 このようなシステムを作るのは実は簡単で (実際、「真似」がたくさん出て来た)、しかし使ってみると分るが、 非常に便利である。

日本の数学界ではあまり人気がない (というか知られていない) ようであるが、 欧米や、日本でも工学の世界では浸透している。

MATLAB は改良が続けられていて、 行列計算関係では、 疎行列向きの処理法反復法なども採り入れられている。 偏微分方程式のシミュレーションへの応用にも「もってこい」レベルに成長した。

MATLAB を後を追ったシステムがたくさん開発されたが、 MATLAB の言語仕様は「デファクト・スタンダード」となっている。 以下 MATLAB と似たシステムを いくつか紹介しよう4。 いずれもソース・プログラム公開のフリーソフトウェアである。

(GNU) Octave
MATLAB との互換性が高い。 入門には十分であるし、用途を選べば実用性も高い。 むしろ、 中身が完全に公開されているということを積極的に評価すべきであるかもしれない。 近年、GUI を採用したせいで、make が難しくなり、 動作が不安定な時期があった (個人的には GUI に力を入れたことには、不満であった)。
Scilab
MATLAB との互換性の程度は Octave よりも低いが、 ソフトウェアとしての完成度はやや高いかもしれない (と感じた時期があった、現在でもそういう評価になるかは知らない)。

桂田 祐史
2018-11-02