Top

あちゃぴーの自転車通勤
数式処理ソフト Maxima

数式処理ソフトとは簡単に言ってしまえばプログラム・グラフ関数電卓のようなもの。単なる数値計算だけでなく、文字式も扱えて、式の変形、展開など、手で行うような計算が出来てしまう。またグラフ出力、統計処理も可能なので守備範囲はすごく広い。この手のソフトで有名なのはMathematica。でも有料かつ高価。それに対してMaximaは無料で利用できる。日本語表示もできるようになって使いやすくなった。

maxima-5.47.0

http://maxima.sourceforge.net/
ダウンロードサイズ: 164.6 MB

maxima

WindowsではUsersフォルダにアクセスするため、ユーザー名にハイフンとかスペースが入っていると、エラーが起きてしまう。問題ないユーザー名に変更した方が何かと無難。

何に使うのか?

数式を扱うシーンなら、どこでも使えるが、個人的にはグラフで確認したいとき、複雑な展開をするとき、きれいな数式を画像として欲しいときに使っている。簡単な数値計算はハードの関数電卓を使った方が早い。

簡単な入力例

まず四則演算の例。1+2と直接文字を打って、shift + Enterすることで計算結果が表示される。同じ要領で簡単な演算ならできる。割り算に関しては普通に打つと分数になってしまうので、小数で表示させたいときはfloatをつける必要がある。 基本的な使い方はWikibooksあたりを参考にするといいかも。

http://ja.wikibooks.org/wiki/Maxima

maxima

LISP言語

中身は古いプログラム言語のひとつLISPで作られている。LISPは数値計算と相性がよいようだ。AudacityのNyqusitでLISPを少しやったことがあるが、どうも馴染めない・・・ちょっとMaximaでもやってみたが、あれれ、コメントアウトは;ではなく、/*・・・ */を使うのか。LISPぽくないなぁ。こういう部分はCライクな感じ。

LISPの実態は、CLISP2.49がそのまま入っていた。
maxima-5.47.0\clisp-2.49

maxima

グラフのグリッド

標準の状態でプロットするとグリッド等が10進単位になってしまって、sin,cos波形では見にくくて使えない。

plot2d([cos(x), sin(x), tan(x), cot(x)], 
[x, -2*%pi, 2.1*%pi], [y, -2, 2])$

maxima

そこでパイを単位とするようなグリッドを自分で設定している。こんな感じ。

pi_grid: "set grid; set xtics ('-2pi' -6.283, \
'-3pi/2' -4.712, '-pi' -3.1415, '-pi/2' -1.5708, '0' 0, \
'pi/2' 1.5708, 'pi' 3.1415,'3pi/2' 4.712, '2pi' 6.283)"$

plot2d([cos(x), sin(x), sin(x)+cos(x)], 
[x, -2*%pi, 2.1*%pi], [y, -2, 2],
[plot_format, gnuplot],
[gnuplot_preamble, pi_grid] ); 

maxima

近似値で適当に設定しているけど、まぁ問題はないです。上のグラフのようにx軸はパイのところにグリッドがあるのが確認できると思う。

最新バージョンを試したら、グリッドが0以外表示されなくなった。そのうち解決しようと思う。

関数電卓ではうまく行かない計算

そもそもそんな計算は個人的にはあまり関係ない世界なのだが、複素数関係では、たまにその手の計算が出てしまったりする。 たとえば有名なオイラーの公式関係とか。

maxima

というやつ。HP35sだと-1,i-2.0676E-13とか出て、そこそこよいのだが、他の関数電卓ではお手上げだ。Maximaでは、こんな感じで入力すると数値計算してくれる。

float(%e^(%i*%pi));

-1.0 と歯切れよく出てくれる。でも、もっと意地悪な計算をさせていくと、結果を歯切れよく出すのはGoogle電卓のみだったりするけど。

Soft