検索データのプロット

ユーティリティ関数のは,一次元および二次元関数におけるFindMinimumFindRootの検索データを表示する.これらは基本的にそれぞれFindMinimumFindRootと同じ引数で使うが,異なる点はプロット作成のために呼び出すグラフィックス関数に影響するオプションを付加的に取るという点と,FindMinimumFindRootが持つHoldAll属性を持たないという点である.

FindMinimumPlot[f,{x,xst},opts]FindMinimum[f, {x, xst}]において,関数 f およびその任意の導関数を評価したステップおよび点を fx のプロットに重ねてプロットする.opts にはFindMinimumおよびPlotのオプションを使うことができる
FindMinimumPlot[f,{{x,xst},{y,yst}},opts]FindMinimum[f, {{x, xst}, {y, yst}}]において,関数 f およびその任意の導関数を評価したステップおよび点を x および y の関数としての f の等高線プロットに重ねてプロットする.opts にはFindMinimumおよびContourPlotのオプションを使うことができる
FindRootPlot[f,{x,xst},opts]FindRoot[f, {x, xst}]において,関数 f およびその任意の導関数を評価したステップおよび点を fx のプロットに重ねてプロットする.opts にはFindRootおよびPlotのオプションを使うことができる
FindRootPlot[f,{{x,xst},{y,yst}},opts]FindRoot[f, {{x, xst}, {y, yst}}]において,関数 f およびその任意の導関数を評価したステップおよび点を xy の関数としてのメリット関数 f の等高線プロットに重ねてプロットする.opts にはFindRootおよびContourPlotのオプションを使うことができる

検索データのプロット

関数 f の処理を簡潔にし,起る可能性のある混乱を避けるために,は方程式を取らず,根 を見付ける.  

ステップおよび評価点は,簡単に見分けられるよう,以下のように色分けしてある.

  • ステップは青い線と青い点で示す.
  • 関数の評価は,緑の点で示す.
  • 勾配の評価は,赤い点で示す.
  • ヘッセ行列の評価は水色の点です.
  • 剰余関数の評価は黄色い点で示す.
  • ヤコビ行列の評価は,紫の点で示す.
    • 検索の終了は,大きい黒い点で示す.

    を含むリストを返す.ここで

  • summary は,ステップ数,および関数とその導関数の評価回数を示す規則のリストである.
    • plot は表示されるグラフィックスオブジェクトである.
    パッケージをロードする.
    In[1]:=
    Click for copyable input
    以下は,点から開始して,関数の極小値を見付ける際に,FindMinimumが使用するステップと評価を2Dで示したものである.等高線が表示されず,関数値がグレースケールで示されるよう,ContourPlotにオプションが与えられている.FindMinimumはデフォルトで「準ニュートン」法を使うので,同じ点で起る関数と勾配の評価だけが表示される.これは緑を中心とする赤い円で示されている.
    In[2]:=
    Click for copyable input
    Out[2]=
    以下は,点から開始して関数の極小値を見付ける際に,FindMinimumが使用するステップと評価を2Dで示したものである.この問題は平方和なので,FindMinimumは剰余関数を導出した上で,それとその関数のヤコビ行列だけを評価する「ガウス・ニュートン」/Levenberg-Marquardt法をデフォルトで使う.剰余関数が評価される点は,黄色い点で示されている.大きい紫の輪で囲まれている黄色い点は,ヤコビ行列も評価された点であることを示す.
    In[3]:=
    Click for copyable input
    Out[3]=
    以下は,点から開始して,「ニュートン」法で関数の極小値を求める際に,FindMinimumが使用するステップと評価を2Dで表示したものである.関数,勾配,ヘッセ行列がすべて評価された点は,同心の緑,赤,水色の円で示されている.この例ではすべてのニュートンステップがWolfe条件を満足したので,ヘッセ行列とは別に関数と勾配が評価された点は存在しないということに注意する.しかしこのようなことが常にあるわけではない.また,ニュートン法がデフォルトのメソッドとは異なる極小値を見付けるということにも注意する.
    In[4]:=
    Click for copyable input
    Out[4]=
    以下は,2つの初期値が関数のプロットに重なっている関数 の極小値を求めるために,FindMinimumが使用するステップと評価を示したものである.関数を表す曲線が,太く紫で表示されるよう,Plotにオプションが与えてある.初期値が2つあると,FindMinimumは導関数なしの主軸法を使うので,関数の評価しかない.これは緑の点で示されている.
    In[5]:=
    Click for copyable input
    Out[5]=
    以下は,点から開始して関数の極小値を求める際に,FindRootが使用するステップと評価を2Dで表示したものである.前述の通り関数は剰余関数であり,FindRootのデフォルトメソッドは,黄色の点と紫の円で示されている通り,剰余関数とそのヤコビ行列を評価する.このプロットは,関数に対してのデフォルトメソッドを使って生成されるものとほとんど同じである.それは,剰余関数が同じだからである.も剰余関数の各要素のゼロ等高線を赤と緑で示す.
    In[6]:=
    Click for copyable input
    Out[6]=
New to Mathematica? Find your learning path »
Have a question? Ask support »