フリーソフトの小道   

愛用のフリー・ソフト

第20回 Maxima の実力を探る     フリーソフトの数式処理システム(第3部)

数式計算をどこまでしてくれるのか?

 前回、方程式をどこまで解いてくれるのかを具体例を示しながら説明してきました。 今回は、三角関数、指数関数、対数関数などを取り上げてみましょう。

ステップ4  数式処理システム 「Maxima」 を使ってみる

4. 「三角関数」

 三角関数の計算はどれくらい出来るのでしょうか。最初は、加法定理で式を展開できるかを試して見ましょう。 三角関数の展開は trigexpand コマンドです。

(%i1) trigexpand(sin(2*x + 3*y));      ※ sin( 2x+3y) を展開する

 
(%o1) COS(2 x) SIN(3 y) + SIN(2 x) COS(3 y) ※ sin( 2x+3y) を展開しました
 
(%i2) trigexpand(%o1); ※ さらに展開します
 
2 2 2 3 (%o2) (COS (x) - SIN (x)) (3 COS (y) SIN(y) - SIN (y))
 
3 2 + 2 COS(x) SIN(x) (COS (y) - 3 COS(y) SIN (y))
 
(%i8) expand(%o2); ※ さらに展開します
 
2 3 2 3 2 (%o8) SIN (x) SIN (y) - COS (x) SIN (y) - 6 COS(x) SIN(x) COS(y) SIN (y)
 
2 2 2 2 - 3 SIN (x) COS (y) SIN(y) + 3 COS (x) COS (y) SIN(y)
 
3 + 2 COS(x) SIN(x) COS (y)
 
(%i3) sin(2*x + 3*y),trigexpand=TRUE,expand; ※ 一気に展開することもできます
 
2 3 2 3 2 (%o3) SIN (x) SIN (y) - COS (x) SIN (y) - 6 COS(x) SIN(x) COS(y) SIN (y)
 
2 2 2 2 - 3 SIN (x) COS (y) SIN(y) + 3 COS (x) COS (y) SIN(y)
 
3 + 2 COS(x) SIN(x) COS (y)
 

 Maximaの数式計算の能力は結構高いとおもいませんか。この程度では終わりません。 指数関数、対数関数もOKですし、もっと高級な関数(大学で習います)までも備えています。

5. 「グラフが描ける?」

 Maximaは、数式を与えるだけでグラフも描けるのです。グラフを描くにはプロットコマンドが使えます。 上の三角関数のグラフを描いてみましょう。この関数は z=sin(2x+3y) になるので、変数は x と y の2変数で、関数値 Z となります。 よって、グラフ表示は3次元のグラフとなります。グラフを描くプロットコマンドは plot3d(%o2,[x,-1,1],[y,-1,1]); とすればOKです。 プロットコマンドの [x,-1,1],[y,-1,1] は、変数域を与えているパラメータです。グラフを描く領域を変えるには、ここを変更すればよいのです。

 1変数の関数なら2次元のグラフになります。どのようなグラフでも当然かけます。 Maximaは複雑なグラフほど得意です。特に3次元のグラフは手作業では大変な時間がかかります。

 Maximaの数式計算能力は非常に高いのですが、全てを取り上げるわけにはゆきません。 行列計算も2行2列の計算など小さなことはいいません。n行m列の行列計算までこなします。 微分、積分も出来るので、高校生の微積分はすべてOKです。また、大学で習う微分方程式までも解けるのです。  次回は、Maximaを使って微積分がどこまで出来るかに挑戦してみましょう。ご期待ください。

 ※ Maximaについての感想をお寄せください。掲示板、メールのどちらでもOKです。

 前回と含めて3回に渡って紹介してきた 数式処理システム 「Maxima」 ですが、一度入手して利用してみてはいかがでしょうか。 マニュアルなどはPDF文書で入手可能ですので、詳しく読めば相当なレベルの数式処理が可能になります。



2005/02/06  管理人(志)


感想・意見は、掲示板、または メールでどうぞ! --- 管理人(志)