Problem : I have been recently tasked with designing a nonlinear solver, but my solver is not converging to the correct solution.
**Expected ** : The 'minimize(x)' method should reduced my parameter vector, x, to the minimun.
Observed : After I call 'minimize(x)' I get a status return that says RelativeErrorTooSmall.
Question : Could someone please explain what this enumeration value means?
Documentation : The only available documentation on the Eigen Levenberg Marquardt class is basically it's .h file. Here is a list of enumerations:
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
};
Here is a link to the header file: https://eigen.tuxfamily.org/dox/unsupported/NonLinearOptimization_2LevenbergMarquardt_8h_source.html
Here is a previous stack overflow question that has test program in it: How to use the Eigen unsupported levenberg marquardt implementation?