我正在使用 Eigen 的 Levenberg-Marquardt 实现,想知道如何为应该优化的参数设置一些界限。
当我将一些 GNU octave 程序迁移到 Eigen 时,我预计可能会有一些边界可以很容易地作为模块的参数提供。
我实现的布局与本示例中的几乎相同。我没有提供 df() 实现,而是使用 Eigen::NumericalDiff 来近似它。
那么如何对提供给最小化()的参数实施一些限制?当离开我的预期范围时,我考虑过将 operator() 中的错误(fvec)设置为一些较高的值,但在一些小型测试中,这导致了奇怪的结果。