maxima入門

方程式を解く

maximaで方程式を解くにはsolve関数やalgsys関数などを用います。
solve関数は内部的に、線形の方程式はlinsolve
それ以外はalgsys関数を呼び出すことで方程式をときます。             

solve関数の書式

solve(式) solve(式,x) solve([方程式リスト],[x,y,...])

solve関数の使用例

(%i1) solve(x^2-1); (%o1) [x=−1,x=1] (%i2) solve(x^2-1,x); (%o2) [x=−1,x=1] (%i3) solve([x+y=1,2*x+3*y=5],[x,y]); (%o3) [[x=−2,y=3]]
実数解のみを得たい場合はrealroots関数が使えます。 書式はsolve関数と同じです。 次のようになります。

realroots関数

(%i1) solve(x^3-1); (%o1) [x=(sqrt(3)*%i−1)/2,x=−(sqrt(3)*%i+1)/2,x=1] (%i2) realroots(x^3-1); (%o2) [x=1]
特定の範囲の中で解を求めるにはfind_root関数を使います。

find_root関数

find_root(式,変数,from,to)

find_root関数の例

(%i1) find_root(x^3+8*x-3,x,0,1); (%o1) .3687331875693762
その他、ニュートン法を用いて近似解を求めるための mnewton関数(mnewtonパッケージ)というものもあります。 mnewton関数はmnewtonパッケージに含まれているため まずload関数を使ってパッケージを読み込む必要があります。

mnewtonの書式

mnewton([解くべき式リスト],[x,y,...],[初期近似のリスト])
since 2014/03/23