WOLFRAM言語チュートリアル

数値解析による根の探索

NSolveは整方程式の解を数値近似するために使う.「一変数の方程式」で説明したように,多項式よりさらに一般化された方程式を数値的に解くことは極めて難しい.それでも,FindRootを使って関数の数値根や,任意な単一方程式・連立方程式の数値解を探索することは可能である.

FindRoot[f,{x,x0}]を初期値として f の数値根を探索する
FindRoot[lhs==rhs,{x,x0}]を初期値として方程式 の数値根を探索する
FindRoot[f1,f2,,{{x,x0},{y,y0},}]
すべての の連立数値根を求める
FindRoot[{eqn1,eqn2,},{{x,x0},{y,y0},}]
連立方程式 の数値解を求める

数値解析による根の探索

の曲線が の直線と1点で交差している.
In[1]:=
Click for copyable input
Out[1]=
交点における の値を数値解析的に求める.FindRootの記述にある の初期値の点で探索の始点を示す.
In[2]:=
Click for copyable input
Out[2]=

FindRootを使った解の探索では,指定した初期値の点を始点として,そこから徐々に解に向かって接近していく.複数の方程式を解くときでも,FindRootでは最初に見付かった解だけが返される.見付かった答がどの解に相当するのかは初期値により違ってくる.与えた初期値が特定の解に十分近付いていれば通常はFindRootはその解を求める.

関数の根を探す.根は で与えられ,無数にある.特定の根に十分近い初期値を与えると,FindRootはその根を求める.
In[3]:=
Click for copyable input
Out[3]=
を初期値として根を探す. の根の近似値が求まる.
In[4]:=
Click for copyable input
Out[4]=
FindRootを使って解を複素平面上で探すときは,初期値として複素数を与える.
In[5]:=
Click for copyable input
Out[5]=
リーマンゼータ関数の零点を求める.
In[6]:=
Click for copyable input
Out[6]=
このようにして連立方程式系を解く.
In[7]:=
Click for copyable input
Out[7]=

FindRootが使う変数はリストを値として持つことができる.これにより,ベクトルを引数に取る関数の根を求めることができる.

このようにして変数 についての線形方程式を解く.
In[8]:=
Click for copyable input
Out[8]=
これで正規化された固有ベクトル と固有値 を求める.
In[9]:=
Click for copyable input
Out[9]=