Mathematics    

関数のゼロの探索

関数fzeroは、1変数の関数のゼロを探索します。この関数は、最初の間隔を設定する2要素ベクトル、または、1要素のスタート点のどちらかと共に読み込まれます。初期値x0としてfzeroを設定すると、関数は符号の変わる部分を挟む区間を探します。この区間が見つからなければ、fzeroNaNを出力します。また、関数の符号が変化する2点が既知ならば、2要素ベクトルを使ってこの初期の区間を設定することができます。そして、fzero は、区間を狭くしようとし、符号の変化する近傍の値を出力します。

-0.2の近傍で、humps関数のゼロ点を探すため、fzeroを使います。

この初期値に対して、fzeroは-0.10949と-0.264の間で符号が変更するまで、-0.2の近傍を探索します。この区間は、-0.1316まで狭められます。-0.1316で関数は非常にゼロに近付くなることを確認しましょう。

humpsの関数値が、x = 1x = -1 のように、符号の変わる2つの位置を知っていると仮定します。

そして、この区間からfzeroを始め、関数の符号が変化する点の近傍を出力しましょう。fzeroの処理過程を表示しましょう。

アルゴリズムの進行に伴いProcedureの列にbisectionとinterpolationのどちらも使われています。例題が最初の区間の代わりに1つのスカラの初期値を使って処理を始めようとすると、fzeroは符号の変化する区間を含んで探索を行なう一方、初期関数値を算出した後、最初のステップはいくつかの探索ステップを含んでいます

optimsetを使って、3番目の入力引数として、相対誤差の許容範囲を設定することができます。前に読み込んでいるように、空行列では、デフォルトの相対誤差許容範囲のepsを使います。


 最小化オプションの設定 実際の問題