このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
最適化ソルバーのプロット関数
プロット関数とは
options
構造体の PlotFcns
フィールドは最適化関数が呼び出す 1 つ以上の関数を指定します。これらの関数は進行状況を示すさまざまな測定値をプロットするために各反復で呼び出されます。関数ハンドル、または関数ハンドルの cell 配列を渡します。プロット関数の構造は出力関数の構造と同じです。この構造の詳細は、最適化ソルバーの出力関数を参照してください。
次の MATLAB® 最適化関数では、PlotFcns
オプションを使用できます。
これらの最適化関数に対する事前定義されたプロット関数には次のものがあります。
@optimplotx
は現在の点をプロットします。@optimplotfval
は関数値をプロットします。@optimplotfunccount
は関数計算をプロットします (関数fzero
では使用できません)。
事前定義されたプロット関数を表示または変更するには、MATLAB エディターで関数ファイルを開きます。たとえば、現在の点をプロットするために関数ファイルを表示するには、以下のように入力します。
edit optimplotx.m
例: プロット関数
プロット関数 @optimplotfval
と共に関数 fminsearch
を使用して最小化の進捗状況を表示します。
目的関数のファイルを記述します。たとえば、次のように使用します。
function f = onehump(x) r = x(1)^2 + x(2)^2; s = exp(-r); f = x(1)*s+r/20;
プロット関数を使用するためのオプションを設定します。
options = optimset('PlotFcns',@optimplotfval);
関数
fminsearch
を [2,1] から開始して呼び出します。[x ffinal] = fminsearch(@onehump,[2,1],options)
MATLAB は、以下を返します。
x = -0.6691 0.0000 ffinal = -0.4052