maximaで方程式を解くにはsolve関数やalgsys関数などを用います。 solve関数は内部的に、線形の方程式はlinsolve それ以外はalgsys関数を呼び出すことで方程式をときます。solve関数の書式
solve(式) solve(式,x) solve([方程式リスト],[x,y,...])実数解のみを得たい場合はrealroots関数が使えます。 書式はsolve関数と同じです。 次のようになります。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]]特定の範囲の中で解を求めるにはfind_root関数を使います。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(式,変数,from,to)その他、ニュートン法を用いて近似解を求めるための mnewton関数(mnewtonパッケージ)というものもあります。 mnewton関数はmnewtonパッケージに含まれているため まずload関数を使ってパッケージを読み込む必要があります。find_root関数の例
(%i1) find_root(x^3+8*x-3,x,0,1); (%o1) .3687331875693762mnewtonの書式
mnewton([解くべき式リスト],[x,y,...],[初期近似のリスト])