計算数学IIレポート

基礎科学科 学籍番号10303 中田 庸一

 今回やったこと: フリーの数値計算、数式処理ツールについて(主にMaxima)

 分かっているとは思うけど、念のため

 数値計算…基本的に全てのデータは数値である。全ての処理はこれらの四則演算によって行われる。

 (例えば関数を扱う場合、関数そのものを扱うのではなく標本点の列として扱うことになる)

 数式処理…データは基本的にそのままで扱うことになる。処理方法はデータの種類によってその都度変わる。

 (例えば多項式なら多項式のままで足したりかけたり出来る)

 しかし両者の垣根は必ずしもはっきりしたものではない(どんどん曖昧になっているそうだ)。数式処理ツールでも数値計算のパッケージは入っているものもある。(逆は当たり前?)

 商用の有名な数値計算、数式処理ツール

 数値計算 : Matlab

 数式処理 : Mathematica,Maple,Reduce

 しかし、これらのツールはとんでもなく高い(最も安いのでも10万円はする)。少なくとも学生がおいそれと手を出せる代物ではない(そのために学生用ライセンスを用意しているものもある)。

 

 一方でオープンソースのツールというのもある。それが今回、紹介するOctaveやMaximaである。

 OctaveはMatlab互換を謳ったフリーの数値計算ツールである。

 MaximaはMathematica,Mapleとは互換ではないがLISPで書かれたフリーの数式処理ツールである。

 以上、簡単なまとめ

商用 フリー
数値計算 Matlab Octave
数式処理 Mathematica,Maple,Reduce Maxima

 今回は特にMAXIMAについていろいろ試してその性能やMathematicaの違いを調べてみよう。

 Maxima

 MaximaはLISPと言う言語で書かれている。

 よく分からないが、微分とかそういうのを扱うのにLISPは向いているらしい(後述のリンク参照)

 MaximaはどのLISP上で動くかによって、CLISP版とGCL版がある。

 

 現在の最新版は5.9.0RC3、安定版は5.6である。

 (CVSから落としたものを見ると5.9.0RC4と書いてあるので5.9.0RC4公開近い?)

 今は5.9.0がリリースされています。

 RPMはMomonga Linuxで5.9.0RC3(CLISP版)が、

 現在はMomongaとVine(VinePlus)に5.9.0のRPM版がある(他は未確認)

 Debianだと5.6(GCL版)が公開されている(追記:これはstableについて。unstableは5.9.0)

 (FreeBSDのportsには無いみたい) あります

 まずはMaximaで色々試してみよう。

 微積分

 image1  

 方程式を解かせてみる

 image2

 長いので一部しか載せられない…。

 image3  

 GUI

 MathematicaにはGUIがある(むしろCUIのほうがおまけ的色彩が強いが)

 MaximaにもGUI「的」なものがあるにはある。

  1. XMaxima

 Maximaに標準でついているGUIもどき。Mathematicaを強く意識しているが、基本的にはMaximaと全く同じ。強いて違いを挙げれば、グラフを書くとCUIだと別ウィンドウに結果が出力されるのだが、XMaximaだとMathematicaみたいに同じウィンドウの入力式の直後に出力されることになる。

image4
  1. TeXmacs+Maxima

 TeXmacs自体はTeX文章をWYSIWYG感覚で編集できるようなソフト。Maximaのフロントエンドをこれにすることで、数式の表示処理をしてくれるので数式の見た目はぐっと良くなる(見た目Mathematica以上)。ただし、XMaximaのようにグラフを同じウィンドウで表示してくれるような事はしない。また、Maxima5.9はTeXmacs側から正しく認識されないため利用できない。

image5

 Mathematicaとの比較

 Mathematicaにあって、Maximaに無いもの

 逆にMaximaにはあるが、Mathematicaにはないもの

 注:とりあえず目に付くところだけさっとピックアップしたものです。実際はもっと沢山あります。

 感想(特にMathematicaと比べて)

 やはり直感的なインタフェースに弱いことが大きい。

 (GUI関係もそうだが、素人が適当にいじって割と上手く行くようにはなっていない。)

 あとは少し無理をさせると簡単に落ちて再起動せざるを得ないところ。

 (この辺りはやはり商品としてのMathematicaの強みが大きい)

 Mathematicaはヘルプにあるマニュアルを見れば日本語で大抵の情報が載っている。

 Maximaには付属のman(当然英語)しか付いてこないが、インターネット上にさまざまなマニュアルや、入門書(?)があるので決して敷居が高い訳ではない。

 しかしソースが公開されているので、もしバグなどを発見したときに自分でそのバグを修正することが出来る。

 リンク

 Maxima公式サイト (英語)

 MAXIMAマニュアル日本語版

 以下はMaximaの紹介サイト。はっきり言ってここより数倍きちんとしてます

 数式処理システム Maxima

 Maxima: GNU Macsyma!

 2ちゃんねるシミュレーション板Maximaスレッド

 Maximaとは直接関係ないけど、数式処理をLISPで実装する方法について書いてあるサイト

 記号数式処理

 余談

 計算数学IIレポートと書いてありますが実際これを発表したわけではないので、「この程度やればよい」という目安にはならないと思います。むしろ、こんな程度の物を書かないように精一杯やってください>計算数学II受講(志望)者各位

 更新履歴