反復表示
はじめに
反復表示とは、ソルバーの各反復における計算を示す統計表です。統計はソルバーとソルバー アルゴリズムの両方によって異なります。この表は、ソルバーを適切なオプションで実行した際に MATLAB® コマンド ウィンドウに表示されます。反復の詳細については、反復と関数カウントを参照してください。
反復表示を開くには、optimoptions を使用し、Display オプションを 'iter' または 'iter-detailed' に設定します。以下に例を示します。
options = optimoptions(@fminunc,'Display','iter','Algorithm','quasi-newton'); [x fval exitflag output] = fminunc(@sin,0,options);
First-order
Iteration Func-count f(x) Step-size optimality
0 2 0 1
1 4 -0.841471 1 0.54
2 8 -1 0.484797 0.000993
3 10 -1 1 5.62e-05
4 12 -1 1 0
Local minimum found.
Optimization completed because the size of the gradient is less than
the value of the optimality tolerance.反復表示は、以下を除くすべてのソルバーで使用できます。
lsqlin'trust-region-reflective'アルゴリズムlsqnonnegquadprog'trust-region-reflective'アルゴリズム
一般的な見出し
この表は、反復表示における一般的な見出しの一部を示しています。
| 見出し | 表示される情報 |
|---|---|
| 現在の目的関数値 |
| 1 次の最適性の尺度です (1 次の最適性の尺度を参照)。 |
| 関数評価の回数です (反復と関数カウントを参照)。 |
| 反復回数です (反復と関数カウントを参照)。 |
| 現在のステップのサイズ (サイズはユークリッド ノルムまたは 2 ノルム) です。 |
関数特有の見出し
このセクションの表では、使用する最適化関数によって意味が異なる、反復表示の見出しを説明します。
fgoalattain、fmincon、fminimax、fseminf
この表は、fgoalattain、fmincon、fminimax、fseminf に特有の見出しを示します。
| fgoalattain、fmincon、fminimax、fseminf の見出し | 表示される情報 |
|---|---|
|
|
| 現在の反復に用いられる共役勾配法の反復数です (前処理付き共役勾配法を参照)。 |
| 探索方向に沿った目的関数の勾配です。 |
| 最大制約違反。ここで満たされる不等式制約の数は |
| 探索方向をスケールする乗法係数です (式 29を参照)。 |
| すべての制約 (内部で作成された制約とユーザー指定の制約の両方) の最大違反です。制約がない場合は、負になる場合もあります。 |
|
|
| ヘッシアンの更新手順:
詳細については、ヘッセ行列の更新を参照してください。 QP 部分問題の手順:
|
| 探索方向をスケールする乗法係数です (式 29を参照)。 |
| 現在の信頼領域の半径です。 |
fminbnd および fzero
この表は、fminbnd と fzero に特有の見出しを示します。
| fminbnd または fzero の見出し | 表示される情報 |
|---|---|
|
|
| アルゴリズムの現在点です。 |
fminsearch
この表は、fminsearch に特有の見出しを示します。
| fminsearch の見出し | 表示される情報 |
|---|---|
| 現在の反復でのシンプレックス処理です。手順は次のとおりです。
詳細については、fminsearch アルゴリズムを参照してください。 |
fminunc
この表は、fminunc に特有の見出しを示します。
| fminunc の見出し | 表示される情報 |
|---|---|
| 現在の反復に用いられる共役勾配法の反復数です (前処理付き共役勾配法を参照)。 |
| 探索方向をスケールする乗法係数です (式 11を参照)。 |
fminunc'quasi-newton' アルゴリズムは、skipped update メッセージを First-order optimality 列の右側に発行することがあります。このメッセージは、結果の行列が正定値ではなかったため、fminunc はヘッシアンの推定を更新しなかったことを意味します。通常、このメッセージは現在の点における目的関数が滑らかでないことを示します。
fsolve
この表は、fsolve に特有の見出しを示します。
| fsolve の見出し | 表示される情報 |
|---|---|
| 現在の目的関数値。目的関数ベクトルのユークリッド ノルムの二乗 |
| λk の値。次で定義されています。 レーベンバーグ・マルカート法 |
| 現在の信頼領域の半径 (信頼領域の半径のノルム変位) です。 |
intlinprog
この表は、intlinprog に特有の見出しを示します。
| intlinprog の見出し | 表示される情報 |
|---|---|
| 探索されたノードの累積数です。 |
|
|
| 検出された整数実行可能点の数です。 |
| 検出された最良の整数実行可能点に対する目的関数値です。この値は目的関数の最終値の上限です。 |
| ここで、
メモ
|
linprog
この表は、linprog に特有の見出しを示します。各アルゴリズムには独自の反復表示があります。
| linprog の見出し | 表示される情報 |
|---|---|
| 主問題の実行不可能性です。制約違反の尺度は、解においてゼロになります。 定義については、予測子修正子 ( |
| 双対問題の実行不可能性です。ラグランジュ関数の導関数の尺度は、解においてゼロになります。 ラグランジュ関数の定義については、予測子修正子を参照してください。双対問題の実行不可能性の定義については、予測子修正子 ( |
| 実行可能上限です。{x} は、有限の上限があるそれらの x を意味します。この値は、レガシ内点線形計画法における ru 残差です。 |
| 主目的関数と双対目的関数間の双対性ギャップです (レガシ内点線形計画法を参照)。 |
| メイン アルゴリズムの終わりに記述されている合計相対誤差です。 |
| ラグランジュ乗数の尺度と範囲からの距離の積で、解においてゼロになります。停止条件の変数 rc を参照してください。 |
|
|
lsqlin
lsqlin の 'interior-point' 反復表示は、quadprog 反復表示から継承されます。これらの関数の関係は、線形最小二乗法: 内点法または有効制約法で説明されています。反復表示の詳細については、quadprogを参照してください。反復表示の唯一の違いは、lsqlin が quadprog のタイトル f(x) の代わりに Resnorm というタイトルの列を表示することです。
lsqnonlin および lsqcurvefit
この表は、lsqnonlin と lsqcurvefit に特有の見出しを示します。
| lsqnonlin または lsqcurvefit の見出し | 表示される情報 |
|---|---|
| λk の値。次で定義されています。 レーベンバーグ・マルカート法 |
|
|
| 最大制約違反。ここで満たされる不等式制約の数は |
quadprog
この表は、quadprog に特有の見出しを示します。
| quadprog の見出し | 表示される情報 |
|---|---|
| 主問題の実行不可能性。 |
| 双対問題の実行不可能性。 |
| 非アクティブな不等式のラグランジュ乗数の最大絶対値の尺度。解においてゼロになります。この数量は、実行不可能性の検出における g です。 |
| 最大制約違反。ここで満たされる不等式制約の数は |