
概要名称Maxima[1] | |||||
機能主に数式処理を行うシステムである。Maximaにある紹介文によると Maximaは、微分、積分、Taylor展開、Laplace変換、微分方程式、連立線形方程式、ベクトル、行列、テンソルなどの演算や計算を高い精度で行うことができる。 また、関数やデータを2次元あるいは3次元のグラフとして表示させることも可能である。 | |||||
開発、ライセンスMaximaは1960年代後半にマサチューセッツ工科大学で開発された計算システムMacsymaが原型である。 その後、1982年からWilliam SchelterがMaximaを管理していたが、1998年、 GNU General Public Lisence(GPL)[2]のもとで、ソースコードが公開されることとなった。 | |||||
入手方法ホームページまずファイルの置いてあるホームページへ行かなければなりません。MaximaのファイルはSourceForgeの file managerにおいてあるので、こちらのページへ。 | |||||
ダウンロード上記ページにおいてあるファイルをダウンロードする。OSによりダウンロードするものが異なるので、注意してください (x.y.zはリリースされたバージョンの数字を意味しています)。Windowsであれば、maxima-5.9.3.99rc2.exe(上から3番目)をダウンロードします。 ファイル名をクリックするとミラーサイトの選択画面に移るので、適当なところを選んで下さい。ここでは"jaist(JP)"を選択します。 サイト名をクリックするとダウンロードが始まります。 | |||||
|
| OS | ダウンロードするファイル | 備考 | |||
|---|---|---|---|---|---|
| Windows | maxima-x.y.z.exe | 必須 | |||
| Linux | maxima-x.y.z-n.i386.rpm | 必須 | |||
| - | maxima-exec-| 必須
| - | maxima-xmaxima-x.y.z-n.i386.rpm | GUIで利用したい場合のみ必要
| |
ダウンロードが終わると、「このファイルを実行しますか」と聞かれるので、「実行」を選択します。 するとSetup Wizardが立ち上がるので、それにしたがってインストールします。基本的にnextを選び続けて問題ないです。

いよいよインストールが完了し、実際に使える段階となりました。 "wxMaxima"アイコンをクリックして起動させましょう。白い画面が現れて、下方にはいくつかのボタンと、入力スペースが並んでいます。 この入力スペースに数式を入力するか、あらかじめ用意されている関数などをメニューから選んで使うことになります。


実際にいくつかやってみましょう。画像中、行頭の(%iX)、(%oX)は入力、出力を表しています。
虚数単位は"%i"で表されます。数式を入力して"Simplify(r)"や"Expand"ボタンを押します。

数字(数式)を入力して"Factor"ボタンを押します。

それぞれ式を入力して"Factor"や"Expand"ボタンを押します。

"Calculus"から"Differentiate"を選び、関数と微分する変数、微分回数を入力します。

同様に"Calculus"から"Integrate"を選ぶことでできます。

"solve ODE"を押して、微分方程式を入力します。ODEは"Ordinary Differntial Equation"の略で、2階微分以下の方程式を指します。
yのn階微分は'diff(y,x,n)と書き、前に'が付くことに気をつけてください。すると、Maximaは方程式を解いて、定数を含んだ形で解を表示します。

次に、この定数を決定するために、初期条件、ここではx=0でy=1、y'=-1を代入します。"Equation"から"Initial value problem(2)"を選んで、初期条件を入力します。

ここでは3次元のグラフを描こうと思うので、"Plot 3D"ボタンを押します。表示したい関数、変域、フォーマットなどを指定し、OKをクリックすると、
新しいウィンドウが開いて、グラフが表示されます。以下の図はopenmathというフォーマットで作成したものです。グラフを回転・拡大縮小させることもできます。


取り立ててMaximaで計算する必要もないと思ったのですが、円周率に収束することが知られている級数、無限積の収束の様子を調べました。
用いたのは下にある(%o38)と(%o46)の2つです。ただし前者(Gregoryの公式)はπに、後者(Wallisの公式)はπ/2に収束するものです。


次のようなコマンドを用いて計算を行いました。floatは分数を浮動小数点表示に変換する関数であり、
substは式中の文字を置き換える関数です。したがって、この命令は、「(%o38)式のnを100として、計算結果を小数表示せよ。」ということになります。

nを大ききしていくと次のような結果となりました。ちなみにπの値は3.141592653589793238…です。
||!n||!Gregoryの公式||!Wallisの公式 ||1||2.666666666666667||2.666666666666667 ||10||3.232315809405593||3.067703806643499 ||100||3.151493401070991||3.133787490628162 ||1000||3.142591654339543||3.140807746030395 ||10000||3.141692643590544||3.141514118681922 ||100000||3.141602653489794||3.141584799657247
両方とも10^k項までとって、10^(-k)位の精度であることが分かります。したがって、よく言われているようにこれらの級数、無限積の収束が確かに遅いということが確認できます。
比較のために、収束が早いといわれているMachinの公式[3]についても和を求めてみました。Machinの公式は次のように表されます。

これを用いて、実際に収束が早いのかを確認した。結果は次の通り。
||!n||!Machinの公式 ||0||3.18326359832636 ||1||3.14059702932606 ||2||3.141621029325034 ||5||3.141592652615309 ||10||3.141592653589794
早いとは聞いていたが、恐ろしく早い。n=10でπの真の値との誤差は、すでに、10^(-15)のオーダーとなることが分かりました。
3年ほど前、弟に紹介されてMaximaの存在を知りました。MathematicaやMapleなどとは異なり、 フリーのソフトウェアであることは注目に値しました。が、インストールはしたものの、実際に使う機会はほとんどなく、時間だけが過ぎてゆきました。
そして今年。計算数学Iの課題として、「数学に関連するソフトウェアの紹介」というものが出されました。その時、僕は、真っ先にこのMaximaのことを思い出していたのでした。
今回、レポートを書くに当たって、私自身、新しいversionのMaximaをインストールすることとなりました。Windowsだけでなく、LinuxにおいてもGUI志向のタイプのものが出ており、 ボタンや特殊関数の入力フォーマットなど、ひたすらコマンド入力だった以前に比べて、格段に使いやすくなった印象を受けました。
さらに、実際にこうしてレポートを作成する作業を通じて、Maximaの使い方や機能の理解、またGNU General Public Lisenceについてなど、不十分ながらも、知識と経験を持つことができたと思っています。 レポートの内容については、特に、実践例の内容が、時間の制約もあり、単純に過ぎてしまったきらいがあります。公式の表示と、収束の早さについてどのような関係があるのか、 また無限積と級数とでの収束の様子の違いなど、考察すべき点は多いように思いますが、「紹介」が主目的でもありますし、またの機会にとさせていただくことにします。
最後に、今回このようなレポート作成の機会を与えてくださっただけでなく、その他、ネットワーク、Linux環境等について、多くの指導と経験を与えて下さった計算数学Iの授業、一井先生、TAの方々に改めて感謝する次第です。
[1] Maxima
[2] GNU General Public Lisence
[3] 円周率の公式集 暫定版 Ver. 3.141
[4] 数式処理ソフト Maxima
[5] GNU General Public Lisence-Wikipedia-