fsolve関数を使用するCでMatlabコードを再構築しようとしています。ドキュメントから、それは「信頼領域反射」アルゴリズムを使用しています(私はすでにLevenberg-marquardtアルゴリズムを使用してそれを構築しました、そしてそれは完全に異なって収束しています)。誰かがC/C ++でこのタイプの最適化を行うためのライブラリを推奨できますか?
質問する
4105 次
3 に答える
3
関数が凸であるかどうかを確認してみましたか。LMと他の凸最適化アルゴリズムの収束が異なる場合は、基本関数が凸ではない可能性があります。また、コスト関数が少なくとも2次であるかどうかを確認しましたか。この場合、コスト関数の2乗を最小化する方が、コスト関数だけを最小化するよりも優れている可能性があります。
于 2012-11-26T11:32:54.870 に答える
2
グローバル収束保証がある汎用アルゴリズムには2つのタイプがあります(標準的な仮定の下では、尋ねないでください:))。これらの方法は、ライン探索法と信頼領域法です。必要に応じて、このトピックの詳細については、Nocedal-Wright:NumericalOptimizationの本を参照してください。
私は最近Knitroを試していません。
Ipoptは、私が試したソルバーの中で最も堅牢なソルバーです。強くお勧めします。ライン探索法を実装し、C++で記述されています。
于 2012-10-25T17:43:04.123 に答える