実際の数値にもとづいた「数値計算」はExelが得意とするところですが, XとかYといった文字が入った数式を展開したり因数分解したりすることはできません.

しかしこの世には「数式処理システム」と呼ばれる種類の便利なソフトがありまして, 文字通り数式を解いてくれます.要はこんな感じで.

( x + 1 ) 2 ←→  x 2 + 2 x + 1

商用のものですとMathematica(マセマティカ)などが有名です. ここではフリーソフトでありながらなかなか使えるMaxima(マキシマ)を紹介したいと 思います.

(公開:2004年12月30日)

Maximaの概要

Maximaの原型はマサチューセッツ工科大学(MIT)で開発されていたMacsymaというソフトです. 販売されていたこともあるそうですが,その後ソースコードが公開され多くの人の手により 改良が繰り返されました.もとはUnix系で開発が進められたソフトですが,Windows版 もあります.Maximaは商用のものにも負けない性能を持つとも言われ,フリーにしては 僕らが学校の課題を始末するのに使うには十分過ぎるソフトと言えるでしょう.

入手先と日本語マニュアル

Windows版と日本語マニュアルさえあればもう言うことないですね.(別にWindows派でもないですが)

日本語訳されたマニュアル

ponpokoさんによる和訳.ponpokoさんのサイト 狸穴 にはMaxima関連のドキュメントが豊富です.


Maxima公式サイト

ダウンロードページで自分が使いたいバージョン(Windows VersionあるいはLinux - RPM Version)を クリックします.飛んだページでダウンロードするミラーサーバを選びます. 日本だとJAIST(北陸先端)が一番近いですね.Windows版のMaxima-5.9.3をダウンロードする手順を以下に示します.


http://maxima.sourceforge.net/に行って 左のメニューからDownloadをクリックします.


Sourceforge download pageをクリックします.


Latest File Releases(最新版)の中からリリース名をクリック.


Windowsの一覧の中からmaxima-5.9.3.exeをクリック.


ミラーサーバの一覧が出るので好きなところの「Download」をクリック.とりあえずJAISTあたりでいいと思います.


ここでやっとファイルのリンクが出るのでこれを右クリック→対象をファイルに保存. もしサーバが死んでたときは前に戻って他のサーバからダウンロードしてください.

こんなソフトです

それではWindows版のMaxima-5.9.1を例にご紹介しましょう. 起動するとこういう画面がでます.コマンドプロンプトのようなコマンドライン方式のインターフェースです.



▲起動画面

式の記述ルールは+-*/()^を使ったごく一般的なものです. 例えば ( s + 1 ) 10 は ( s + 1 )^10 と記述します. 展開の命令(関数)はexpandです.行の最後には;(セミコロン)を付けます. それでは( s + 1 ) 10を展開してみましょう. expand((s+1)^10);と入力します.



展開の様子.文字がsなのは制御専攻なのでいつもの癖です.xでもyでもOKです.

ここで各行に (%i1) だとか (%o1) というラベルがついているのに注目です. おそらく i はinput(入力)を意味し, o はoutput(出力)を意味しているのだと思いますが, このラベルを関数の引数にすることもできます.因数分解をするfactorという命令があるので 試しにさきほどの計算結果 (%o1) を因数分解してみます.factor(%o1);と入力します.



計算結果を引数にして実行.ばっちりですな.

このほかにも微分,積分もできますし, 方程式,微分方程式も解けます. さらにはラプラス変換などの特殊な演算もできます. ラプラス変換は制御工学を勉強している学生さんには嬉しい機能ですね(検算とかに持ってこい).



sin(t)をラプラス変換してみました.


逆ラプラス変換もこのとおり.

グラフをプロットする機能もあります.グラフ描画には同梱のgnuplotを利用しているようです. 3次元グラフとかもばっちり描けます.
例として z=√(x2+y2) のグラフを描かせてみましょう. plot3d(sqrt(x^2+y^2),[x,-100,100],[y,-100,100],[grid,20,20]); と入力します.





色鮮やかなグラフが出ました.マウスでぐりぐりいじって視点移動もできます.


…とまぁ,フリーにしては贅沢すぎるソフトです.

TeXmacsを使えばさらに綺麗な表示が!(Linux編)

TeXmacsというソフトを使えば,Maximaと連携して計算結果の数式を綺麗に表示することができます. Linux版,Windows版の両方があります.Windows版については後ほど説明します.

さて,Linux版を試そうにも僕のPCにはWindowsしかインストールされていないので, CDから起動できるKNOPPIXで試すことにしました. ここではMaximaをはじめとする数学関係のツールが同梱された 「KNOPPIX/Math/2004」 を使いました.

KNOPPIX(クノーピクス)とは?

ドイツの Klaus Knopper 氏が開発したCDだけで起動できるLinux環境. 産総研の情報処理研究部門により日本語化が行なわれ,タダで配布されています. Windowsがインストールされたマシンでもハードディスクを汚すことなく起動・終了できるので 普段Windows使いな人がちょっとLinux使ってみたいなってときにオススメです.

産総研のKnoppixのページ
PukiWiki - KNOPPIX/Math

実は今回がKNOPPIX初体験だったのですが,CD起動していきなり使える簡単さにびっくりしました. TeXmacsはデスクトップ下のバーの√x と書いてあるところをクリックして, 「GNU TeXmacs」をクリックすれば起動します. 起動したらメニューを「Text>Session>Maxima>default」とたどります. これで準備完了です.あとは先ほど解説した使い方と同様です.数式が見事に綺麗に出ます.もう最高.



▲TeXmacsの起動.(クリックすると大きな画像を表示します)



▲TeXmacsの動作設定



▲Maximaの出力をTeXmacsで表示している様子.綺麗だよ!

TeXmacsを使って綺麗な表示が!(Windows編)

さて,次はWindows版の説明です. Maxima-5.9.3をインストール後,WinTeXmacs-1.0.5をインストールすると特に何も設定せずとも, WinTeXmacsがMaximaのパスを見つけてくれて,フロントエンドとして使用できます. WinTeXmacsはhttp://www.texmacs.org/から以下の手順でダウンロードできます.


WinTexmacsのダウンロード


http://www.texmacs.org/のサイト上部のDownloadをクリック.


一覧のなかからWindowsをクリック.


wintexmacs-1.0.5.exeを右クリック→対象をファイルに保存.


使い方

使うときはWinTeXmacsのほうを起動します.Maximaは起動している必要はありません. WinTeXmacsがMaximaのパスを見つけてくれるので特に難しい設定はありませんが, 念のためMaximaを初回起動させた後でWinTeXmacsを初回起動させたほうがいいかもしれません.



▲WinTeXmacsが起動したら,Linux版と同様に,メニューのInsert→Session→Maximaとたどります.設定はこれだけ.


▲あとの使い方は一緒.Windowsでもこの通り綺麗に数式表示ができます!

参考ページ

Maximaの解説サイトはそれなりにあるみたいなのでそう不都合なく使い込めると思います. なにしろタダなので是非使ってみてください.