lsqnonlin 関数を使用して、matlab でパラメーター推定を行っています。
私の仕事では、グラフをプロットして、lsqnonlin 反復の観点からエラーを表示する必要があります。そのため、lsqnonlin の各時点でどの反復が実行されているかを知る必要があります。lsqnonlin の実行中に反復回数を抽出する方法を教えてください。
ありがとう、
lsqnonlin 関数を使用して、matlab でパラメーター推定を行っています。
私の仕事では、グラフをプロットして、lsqnonlin 反復の観点からエラーを表示する必要があります。そのため、lsqnonlin の各時点でどの反復が実行されているかを知る必要があります。lsqnonlin の実行中に反復回数を抽出する方法を教えてください。
ありがとう、
自分で使用したことはありませんが、のヘルプを見ると、ソルバーの反復ごとに呼び出されるカスタム出力関数lsqnonlin
を設定するオプションがあるようです。仕様を見ると、値とget が関数に渡されているように見えますが、これはおそらくあなたが興味を持っていることです。optimValues.iteration
optimValues.fval
したがって、適切な署名を使用して独自の関数を定義する必要があります。希望に応じて、この関数はコマンドラインに出力し、プロットを作成し、中間結果をベクトルに保存します。最後に、この関数を次のように渡す必要があります。ソルバーへの関数ハンドル: lsqnonlin(..., 'OutputFcn', @your_outputfun)
.
'display'
またはのいずれかに'iter'
オプションパラメータ設定を渡したい'iter-detailed'
http://www.mathworks.com/help/optim/ug/lsqnonlin.html#f265106
これを行う簡単な方法は次のとおりです。
これは、パフォーマンスが大きな問題ではない場合、ほとんどの場合にお勧めします。
ただし、このようにする余裕がない場合はedit lsqnonlin
、反復回数が見つかるまで掘り下げてみてください。次に、関数を変更して、その時点で必要な結果を確実に保存します。(後で元に戻すことを忘れないでください)。
良いニュースは、関連するすべてのファイルが編集可能であるように見えることです。悪いニュースは、現在の反復回数をどこで確認できるかが明確でないことです。クイック検索で にたどり着きましたがfminbnd
、これが実際に によって使用されていることを確認できませんでしたlsqnonlin
。