Mathematica 9 is now available
THIS IS DOCUMENTATION FOR AN OBSOLETE PRODUCT.
SEE THE DOCUMENTATION CENTER FOR THE LATEST INFORMATION.
Mathematica > 数学とアルゴリズム > 方程式の解法 > FindRoot >

FindRoot

FindRoot
から始めて の数値根を求める.
FindRoot
方程式 の数値解を求める.
FindRoot
すべての の連立数値根を求める.
FindRoot
連立方程式 の数値解を求める.
  • 変数の初期値がリストで与えられているとき,変数の値は同じ次元のリストであると解釈される.
  • FindRootSolveから得るのと同じ形式の x, y, ... のための代入リストを返す.
  • FindRootは,まずすべての変数の値を局所化し,次に記号的となった変数で を評価し,繰り返して結果を数値的に評価する.
  • FindRootの最初の2つの値とし,導関数を用いずに解を求める.
  • FindRootは,xから の範囲外に出た場合にこの検索を中止するという条件で,解を求める.
  • x の初期値を1つしか指定しなければ,FindRootはニュートン法を用いて解を求める.初期値を2つ指定すると,FindRootは割線法の変形を用いる.
  • すべての方程式と初期値が実数の場合,FindRootは実根のみを求める.複素数が含まれる場合は複素根も求める.
  • 初期値にIを加えることで,常にFindRootに複素根を求めさせることができる.
  • 指定可能なオプション:
AccuracyGoalAutomatic目標とする確度
EvaluationMonitorNone式が評価されたときに常に評価される式
JacobianAutomaticこの系のヤコビ行列式
MaxIterations100使用する最大反復回数
PrecisionGoalAutomatic目標とする精度
StepMonitorNoneステップを取るたびに常に評価される式
WorkingPrecisionMachinePrecision内部計算に使用する精度
  • AccuracyGoalの設定で,根の位置の値と根における関数の値の両方の目標確度の桁数を指定する.
  • PrecisionGoalの設定で根の位置の値の目標精度桁数を指定する.
  • FindRootMaxIterationsの反復ステップ内で指定された正確さの解が見出せない場合,最近見出した近似解を返す.この場合,この点を初期値としてFindRootを再適用する.
付近で の根を求める:
付近で の解を求める:
非線形方程式系を解く:
2つの非線形方程式の系の解を求める:
三変数の三変成分関数の根を求める:
複素数の初期値を与えることで複素数値を使った探索が行える:
実数入力に対して方程式が複素数である場合,実数の初期値が複素数の結果を与えていることがある:
変数は,初期値で指定されている場合にはベクトル値として考えることができる:
誤差推定の許容率を変える:
停止のために誤差許容率を緩める:
根までの推定相対距離を停止の主要基準とする:
を使って高次根への収束をスピードアップすることができる:
EvaluationMonitorを使って使用された関数評価を追跡記録することができる:
「ブラックボックス」関数に関数行列式を指定する:
指定された関数行列式がなければ,有限差分の計算に余分な評価が行われる:
疎な形式を知っているならば,疎なパターンテンプレートを指定することで評価回数を少なくできる:
使うステップ数を制限したり増したりする:
デフォルトの反復回数は100である:
この軟化子関数は においてすべての導関数が0なので,アルゴリズムは最終的に停止する:
異なる方法で の根を求める:
デフォルトの方法(ニュートン法):
ブレント(Brent)法の根の囲い込みには根を囲む2つの初期条件が必要である:
割線法は2つの初期条件で始まる:
いつ反復ステップが取られるかモニターする:
の等高線プロット上でステップを表す:
ステップ(赤)とその評価(緑)を表す.ステップには数回の評価が必要なことがある:
100桁精度演算で根を求める:
機械精度で始め,適応的に精度を100まで上げて根を求める:
同型写像 について,その逆関数 の根である:
指数関数の近似逆関数:
これは組込みのLog関数に非常に近い:
振動周期を与える「ブラックボックス」関数:
その逆関数をプロットする:
シューティング法を使って境界値問題 , を解く:
根の両側の点を使ってカッコにいれる初期値を与える:
解をプロットする:
n 個の選点で境界値問題 , を解く:
一階の系として考える:
台形法則を使った連結に関する方程式:
初期値として0を使う:
の特定の値について解を求める:
方程式の多項式系の場合,NSolveはすべての解をFindRootは1つの解を求める:
FindRootは反復法を使って1つの解を求める:
NSolveは直接法を使ってすべての解を求める:
パラメータまたは厳密解を含む方程式の場合はSolveReduceFindInstanceのいずれかを使う:
Solveはいくつかの解を返す:
Reduceはすべての解を列挙する:
FindInstanceは特定の例を求める:
関数が複素関数の場合は,変数は複素値を持つことができる:
関数が実数のままなら,変数も実数であると考えられる:
関数を記号的に評価するのには時間がかかることがある:
関数の定義を制限して記号評価を避ける:
付近で の根を求める:
In[1]:=
Click for copyable input
Out[1]=
 
付近で の解を求める:
In[1]:=
Click for copyable input
Out[1]=
 
非線形方程式系を解く:
In[1]:=
Click for copyable input
Out[1]=
2つの非線形方程式の系の解を求める:
In[1]:=
Click for copyable input
Out[1]=
 
三変数の三変成分関数の根を求める:
In[1]:=
Click for copyable input
Out[1]=
 
複素数の初期値を与えることで複素数値を使った探索が行える:
In[1]:=
Click for copyable input
Out[1]=
 
実数入力に対して方程式が複素数である場合,実数の初期値が複素数の結果を与えていることがある:
In[1]:=
Click for copyable input
Out[1]=
In[2]:=
Click for copyable input
Out[2]=
変数は,初期値で指定されている場合にはベクトル値として考えることができる:
In[1]:=
Click for copyable input
In[2]:=
Click for copyable input
Out[2]=
誤差推定の許容率を変える:
In[1]:=
Click for copyable input
Out[1]=
停止のために誤差許容率を緩める:
In[2]:=
Click for copyable input
Out[2]=
根までの推定相対距離を停止の主要基準とする:
In[3]:=
Click for copyable input
Out[3]=
を使って高次根への収束をスピードアップすることができる:
In[1]:=
Click for copyable input
Out[1]=
In[2]:=
Click for copyable input
Out[2]=
EvaluationMonitorを使って使用された関数評価を追跡記録することができる:
In[1]:=
Click for copyable input
Out[1]=
In[2]:=
Click for copyable input
Out[2]=
「ブラックボックス」関数に関数行列式を指定する:
In[1]:=
Click for copyable input
In[2]:=
Click for copyable input
In[3]:=
Click for copyable input
Out[3]=
指定された関数行列式がなければ,有限差分の計算に余分な評価が行われる:
In[4]:=
Click for copyable input
Out[4]=
疎な形式を知っているならば,疎なパターンテンプレートを指定することで評価回数を少なくできる:
In[5]:=
Click for copyable input
Out[5]=
In[6]:=
Click for copyable input
Out[6]=
使うステップ数を制限したり増したりする:
In[1]:=
Click for copyable input
Out[1]=
デフォルトの反復回数は100である:
In[2]:=
Click for copyable input
Out[2]=
この軟化子関数は においてすべての導関数が0なので,アルゴリズムは最終的に停止する:
In[3]:=
Click for copyable input
Out[3]=
異なる方法で の根を求める:
In[1]:=
Click for copyable input
Out[1]=
デフォルトの方法(ニュートン法):
In[2]:=
Click for copyable input
Out[2]=
ブレント(Brent)法の根の囲い込みには根を囲む2つの初期条件が必要である:
In[3]:=
Click for copyable input
Out[3]=
割線法は2つの初期条件で始まる:
In[4]:=
Click for copyable input
Out[4]=
いつ反復ステップが取られるかモニターする:
In[1]:=
Click for copyable input
In[2]:=
Click for copyable input
Out[2]=
の等高線プロット上でステップを表す:
In[3]:=
Click for copyable input
Out[3]=
ステップ(赤)とその評価(緑)を表す.ステップには数回の評価が必要なことがある:
In[4]:=
Click for copyable input
In[5]:=
Click for copyable input
Out[5]=
100桁精度演算で根を求める:
In[1]:=
Click for copyable input
Out[1]=
機械精度で始め,適応的に精度を100まで上げて根を求める:
In[2]:=
Click for copyable input
Out[2]=
同型写像 について,その逆関数 の根である:
In[1]:=
Click for copyable input
指数関数の近似逆関数:
In[2]:=
Click for copyable input
Out[2]=
これは組込みのLog関数に非常に近い:
In[3]:=
Click for copyable input
Out[3]=
振動周期を与える「ブラックボックス」関数:
In[4]:=
Click for copyable input
In[5]:=
Click for copyable input
Out[5]=
その逆関数をプロットする:
In[6]:=
Click for copyable input
Out[6]=
In[7]:=
Click for copyable input
Out[7]=
シューティング法を使って境界値問題 , を解く:
In[1]:=
Click for copyable input
In[2]:=
Click for copyable input
Out[2]=
根の両側の点を使ってカッコにいれる初期値を与える:
In[3]:=
Click for copyable input
Out[3]=
解をプロットする:
In[4]:=
Click for copyable input
Out[4]=
In[5]:=
Click for copyable input
Out[5]=
 
n 個の選点で境界値問題 , を解く:
In[1]:=
Click for copyable input
一階の系として考える:
In[2]:=
Click for copyable input
台形法則を使った連結に関する方程式:
In[3]:=
Click for copyable input
初期値として0を使う:
In[4]:=
Click for copyable input
の特定の値について解を求める:
In[5]:=
Click for copyable input
Out[5]=
方程式の多項式系の場合,NSolveはすべての解をFindRootは1つの解を求める:
In[1]:=
Click for copyable input
Out[1]=
FindRootは反復法を使って1つの解を求める:
In[2]:=
Click for copyable input
Out[2]=
NSolveは直接法を使ってすべての解を求める:
In[3]:=
Click for copyable input
Out[3]=
 
パラメータまたは厳密解を含む方程式の場合はSolveReduceFindInstanceのいずれかを使う:
In[1]:=
Click for copyable input
Solveはいくつかの解を返す:
In[2]:=
Click for copyable input
Out[2]=
Reduceはすべての解を列挙する:
In[3]:=
Click for copyable input
Out[3]=
FindInstanceは特定の例を求める:
In[4]:=
Click for copyable input
Out[4]=
関数が複素関数の場合は,変数は複素値を持つことができる:
In[1]:=
Click for copyable input
Out[1]=
関数が実数のままなら,変数も実数であると考えられる:
In[2]:=
Click for copyable input
Out[2]=
 
関数を記号的に評価するのには時間がかかることがある:
In[1]:=
Click for copyable input
In[2]:=
Click for copyable input
Out[2]=
関数の定義を制限して記号評価を避ける:
In[3]:=
Click for copyable input
In[4]:=
Click for copyable input
Out[4]=
バージョン 1 の新機能 | バージョン 5 での修正機能
Ask a question about this page  |  Suggest an improvement  |  Leave a message for the team
フォーマット:   HTML  |  CDF