Maxima 入門
摂南大学 SU-FreeSBIE バージョン (2007.5.23) tuned by sst_lab
Maxima は数学計算, 数式処理, 数値計算, グラフ表示のためのソフトウエアです。
一連の処理手順をプログラムに書いて Maxima に実行させることもできます。
Maple など他の数式処理ソフトに Maxima の文法の多くが移植されています。
始めましょう
基本の操作は, 上のウインドウで 数式を一行入力し, 行末にセミコロン (;) を入力して ENTER キーを押します。
あるいは, このウインドウ内の青字の部分をそのまま, あるいは編集してダブルクリックすると, 上のウインドウと同時にこのウインドウ内に挿入された形で
計算結果を見ることができます。
例として下記をダブルクリックしてみてください。
-
integrate( 1/(1+x^3), x ); 計算結果
上式をダブルクリックすると上のウインドウと同時に式の右側にも 1/(1+x3) を x で 積分 した結果が表示されます。
また 1/(1+x^3) の部分を色々書き換えてダブルクリックしてみてください。書き換えられた関数の積分が得られます。
この他にもいろいろな 関数使用例 がありますし,
3Dプロットの例 を見ることもできます。
最初に覚えるコマンド
- Maxima を終了する : quit ( );
- 関数のオンラインヘルプ : ? 関数;
- 関数の実行例の表示 : example( 関数 );
- Maxima のリセット : kill(all);
- フリーズした場合は X-Window を強制終了する : [ Ctrl ] + [ Alt ] + [ BS ]
以下に基本的な計算の例を示します。青字部分を編集することで色々な計算に利用できます。
絶対値
平方根
べき乗
特別な定数 (頭に % をつける)
- 虚数 %i, ネピア数 %e, 円周率 %pi
eπi + 1 = 0 (オイラーの等式) →
%e^(%pi * %i) + 1; 計算結果
%e の値
float(%e); 計算結果
%pi の値
float(%pi); 計算結果
共役複素数
-
conjugate( a + %i*b ); 計算結果
自然対数
式の展開
-
expand((a*x + b)^5); 計算結果 .
因数分解
-
factor(a^2*x^2 + 2*a*b*x + b^2); 計算結果
有理式の通分
-
ratsimp( 2/(x+1) - 1/(x-1) ); 計算結果
有理式の部分分数展開
-
partfrac( 1/(x^9+1), x ); 計算結果
級数和
-
nusum( k^2, k, 1, n ); 計算結果
sum( k^2, k, 1, 10 ); 計算結果
級数積
-
product( k^2, k, 1, 10 ); 計算結果
微分
不定積分
- integrate( x/(1+x^3),x ); 計算結果
定積分
- x = 0 から x = 1 までの 定積分 は
integrate( 1/(1+x^2), x, 0, 1 ); 計算結果
グラフ表示
- 二次元グラフ : plot2d(sin(x),[x,0,2*%pi])
- 三次元グラフ : plot3d(x^2-y^2,[x,-2,2],[y,-2,2],[grid,12,12])
テイラー展開
- ex を x について x=0 の近傍で第5項まで展開する:
taylor(%e^x,x,0,5); 計算結果
極限値の計算
- x が 無限大 ( inf ) に近づくときの極限値:
limit( (2*x+1)/(3*x+2),x,inf ); 計算結果
- x が 0 に近づくときの極限値 :
limit( sin(3*x)/x,x,0); 計算結果
ラプラス変換
- laplace(sin(t),t,s); 計算結果
逆ラプラス変換
- ilt( 1/(s^2+1) , s,t); 計算結果
関数の定義
-
f(x):=x+2; をクリック 定義結果
- さて f(3); の値は 計算結果
方程式を解く:
- 連立方程式 :
solve([x+y+z=5,3*x-5*y=10,y+2*z=3],[x,y,z]); 計算結果
式が複雑な場合は分割する
eq1: x+2*y-z+3*u+4*v=5; 式1を定義: 定義結果
eq2: z-2*u+4*v=-2; 式2を定義: 定義結果
eq3: x+4*y-z+3*u+2*v=5; 式3を定義: 定義結果
これら3つの式から x, y, z の値を求める。
solve([eq1,eq2,eq3],[x,y,z]); 計算結果
- n 次方程式 :
solve(x^2-a*x+b =0,x); 計算結果
- 虚数解も求められます。:
solve(x^3+1=0,x); 計算結果
Maxima は 常微分方程式 を解析的にも数値的にも解くことができます。
以下の行は解析解の例です。
-
ode2('diff(y,x)+3*x*y = sin(x)/x, y,x) 計算結果
- ode2('diff(y,x) -y = 1, y,x) 計算結果
-
ode2('diff(y,x,2) - y = 1, y,x) 計算結果
任意の精度の計算:
- 以下の例は π (%pi) を小数点以下 100 桁まで計算します。
block([fpprec:100],bfloat(%pi)) 計算結果
もしこの値を使って sin を計算するなら小数点以下 100 桁まで 0 の値を得るでしょう。
- block([fpprec:100],sin(bfloat(%pi))) 計算結果
線形代数
次の2行をダブルクリックしてベクトル u, v を定義してください。
- ベクトルの定義 : u: [a,b,c]; 代入結果
- ベクトルの定義 : v: [d,e,f]; 代入結果
次の二行をダブルクリックして行列 A, B を定義してください。
- 行列の定義 A:matrix([9,8,7],[6,5,4],[3,2,3]); 入力結果
- 行列の定義 B:matrix([1,2,3],[4,5,6],[7,8,9]); 入力結果
以下の計算は上でベクトルや行列を定義してから実行してください。