【发布时间】:2018-06-21 04:01:26
【问题描述】:
问题:我最近的任务是设计一个非线性求解器,但我的求解器没有收敛到正确的解。
**Expected ** : 'minimize(x)' 方法应该将我的参数向量 x 减少到最小值。
观察到的:在我调用“minimize(x)”后,我得到一个状态返回,上面写着 RelativeErrorTooSmall。
问题:有人能解释一下这个枚举值的含义吗?
文档:关于 Eigen Levenberg Marquardt 类的唯一可用文档基本上是 .h 文件。以下是枚举列表:
enum Status {
NotStarted = -2,
Running = -1,
ImproperInputParameters = 0,
RelativeReductionTooSmall = 1,
RelativeErrorTooSmall = 2,
RelativeErrorAndReductionTooSmall = 3,
CosinusTooSmall = 4,
TooManyFunctionEvaluation = 5,
FtolTooSmall = 6,
XtolTooSmall = 7,
GtolTooSmall = 8,
UserAsked = 9
};
这里是头文件的链接:https://eigen.tuxfamily.org/dox/unsupported/NonLinearOptimization_2LevenbergMarquardt_8h_source.html
这是以前的堆栈溢出问题,其中包含测试程序: How to use the Eigen unsupported levenberg marquardt implementation?
【问题讨论】:
-
听起来
grep -IR RelativeErrorTooSmall是你的朋友。您可以访问源代码吗?还是只有标题? -
访问 LevenbergMarquardt.cpp?那是不存在的。该类由实现所有方法的结构组成。如果您要我的 cpp,我可以包含它,但它很大。
-
谁派你来的?是作业还是工作?
标签: c++ eigen levenberg-marquardt