コンテンツにスキップ

Maxima/具体的な使い方

出典: フリー教科書『ウィキブックス(Wikibooks)』

Maxima > 具体的な使い方


具体的な使い方

[編集]

ソフトの使い方

[編集]

数式処理システムなので、 計算させる数式がないと使い道もない。 例えば、数学の教科書があれば、 計算させたい式がみつかるだろう。 もちろん夏休みの宿題も簡単だ。:-) 文章題や、読書感想文は無理だが...。


例えば、分数の足し算 1/2 + 1/3 を計算させたいとしよう。 maximaは、command lineモードと batchモードで使うことが出来る。 長い式を書くときなどは式の書き変えができない と書くのが大変だが、 command lineモードのmaximaでは、 実際に式の書き変えができない。 そのため多くの場合にbatchモードを 使うことになると思う。 まずcommand lineモードでは、

$maxima

と打つ。 すると、maximaが起動し

(%i1)

と表示されるので、(iはinputの略)

(%i1) 1/2 + 1/3;

とかく。 (最後の;を忘れるとあまりおもしろくないことが 起こるので注意すること!) 上手く書きこめば、

(%o1)   
      5
      -
      6

と表示される。(oはoutputの略) よって、答は5/6だと分る。

batchモードでは、まず計算させたい内容を ファイルに書き出す。 例えば、aaaというファイルを使うとする。 (Linuxは拡張子をつけないファイルを 使うことがある。実際問題として maximaは拡張子を使ってファイルを判定するのでは 無いようなので、ここでは何とつけても差し支えない。) つまり、好きなエディタを使ってaaaを編集するのである。 しかし、もちろんこのように書くのが好きな人間もいるだろう。

$cat >>aaa
1/2 + 1/3;
[Ctrl-d]

何にせよaaaの用意が出来たなら、

$maxima -b aaa

と打てばよい。 結果は標準出力に表示されるだろう。 結果が長くなった場合には

$maxima -b aaa > bbb

とすると、結果の式が bbbに書きこまれるので、後からゆっくり 読むことが出来る。


初等的な数学に対する使用例

[編集]

小学校

[編集]

maximaは分数の足し算を行うことができる。

command: 3/5 + 1/5;


maximaは異なる分母の計算を正しく行なうことが出来る。


command: 1/5 + 1/3;


maximaは分数のかけ算を行なうことが出来る。


command: 1/5 * 2/3;


maximaは分数の割り算を行なうことが出来る。


command: 1 / (1/2); 
command: 1 / (2/3);


(かっこは省略できない。)

中学校

[編集]

Maximaは正負の数が混じった四則演算を 行なうことが出来る。

command: -3 + 4;
command: -3*4;
command: 1*(-1)*(-1);


Maximaは文字式の四則演算を 行なうことが出来る。

command: x+x;
command: x+y;
command: x+3*y+4*y;
command: 2*x * 3*y;
command: x * 2*x;
or command: x*2*x;


maximaは方程式も扱える。

command:solve([x+3=4],[x]);
command:solve([2*x=1],[x]); 


maximaは2元方程式も扱える。


command: solve([x+2*y = 1, 2*x+y = 3],[x,y]);


maximaは平方根の値を任意の桁まで求めることが出来る。


command:bfloat(sqrt(3));


Maximaは式の展開と因数分解を行なうことが出来る。

command:expand((a+b)*(c+d));
command:factor(a^2-b^2);


maximaは二次方程式も扱うことができる。

command:solve([x^2-1=0],[x]);

高等学校

[編集]

maximaは複素数をサポートしている。


command: %iがiに対応する。


Note:maximaは指数eの値を知っている。 (実際には通常のコンピューターは この値を計算できるようになっているはずである。 )

command:bfloat(%e);


maximaは、微積分をサポートする。


command:diff(f(x),x); 
command:integrate(f(x),x); 
command:integrate(f(x),[x,a,b]); 


note: maxima は微分法をサポートする。


command: diff(f(x)+g(x),x); 
command: diff(af(x),x); 
command: diff(f(x)*g(x),x); 
command: diff(1/f(x),x);


maximaは行列の演算をサポートする。


command: A:matrix([a,b],[c,d]); 
command: B:matrix([e,f],[g,h]); 
command: A + B 
command:  A.B (行列の積) 
command: A^^-1 (逆行列)