割線法

導関数が記号的に計算できないときは,「ニュートン」法をヤコビ行列の有限差分近似とともに使う.これは時間と信頼性の両方でコストがかかることがある.その代りに,最小化のときと同じように,導関数なしで使えるように特別に設計されたアルゴリズムを使うこともできる.

一次元では,割線法の考え方は連続する2つの探索点の間の直線の傾きを使って,最新の点における導関数の代りにそのステップを計算するというものである.同様に, 次元では, 個の点における剰余の差を使って,ヤコビ行列の近似に類するものが構築される.これは有限差分に似ているが,できるだけよいヤコビ行列の近似を得るために差分区間を小さくしようとするのではなく,実質的に一次元の割線法のように平均微分を使う.まず, の次元すべてで異なる2つの初期値から 個の点が構築される.ステップが取られるにつれ,最小のメリット関数値を持つ 個の点だけが保存される.稀ではあるがステップが共線であり,割線法によるヤコビ行列の近似が特異値になることもない訳ではない.この場合は,異なる点からアルゴリズムが再スタートされる.

このメソッドは各次元で2つの初期値を必要とする.事実,各次元で2つの初期値が与えられると,一次元を除いて割線法がデフォルトのメソッドになる.一次元では,後で説明するように「ブレント(Brent)」法が選ばれる.

いくつかのユーティリティ関数を含むパッケージをロードする.
In[1]:=
Click for copyable input
次はによるローゼンブロック(Rosenbrock)関数の解を示している.
In[2]:=
Click for copyable input
Out[2]=

割線法では,「ニュートン」法より多くの剰余関数の評価が必要になる点に注意のこと.しかし,このメソッドは導関数の情報を直接使わずに比較的狭い谷に沿うことができる.

次は有限差分を使ってヤコビ行列を計算したニュートン法で求めたローゼンブロック問題の解を示している.
In[3]:=
Click for copyable input
Out[3]=

しかし,有限差分を使ったニュートン法と比べると,剰余関数の評価回数は同じくらいである.より大きな問題における疎なヤコビ行列の場合,割線法では疎性が利用できないため,有限差分ニュートン法の方が一般に効果的である.

New to Mathematica? Find your learning path »
Have a question? Ask support »