Я успешно использую класс Левенберг-Marquart Эйгена в следующем примере из: http://techblog.rga.com/determining-indoor-position-using-ibeacon/Как установить Левенберг-Marquardt Демпфирование с помощью Эйгена
Я пытаюсь понять, как перевести параметр затухания, лямбду, в параметры, доступные в Эйгене:
https://en.wikipedia.org/wiki/Levenberg-Marquardt_algorithm#Choice_of_damping_parameter
Это не для меня ясно, что делает «шаг связан для диагонального сдвига» с помощью setFactor() - я s это связано с параметром затухания?
distance_functor functor(matrix, count);
Eigen::NumericalDiff<distance_functor> numDiff(functor);
Eigen::LevenbergMarquardt<Eigen::NumericalDiff<distance_functor>,double> lm(numDiff);
lm.parameters.factor = 100; //step bound for the diagonal shift, is this related to damping parameter, lambda?
lm.parameters.maxfev = 2000;//max number of function evaluations
lm.parameters.xtol = 1.49012e-08; //tolerance for the norm of the solution vector
lm.parameters.ftol = 1.49012e-08; //tolerance for the norm of the vector function
lm.parameters.gtol = 0; // tolerance for the norm of the gradient of the error vector
lm.parameters.epsfcn = 0; //error precision
Eigen::LevenbergMarquardtSpace::Status ret = lm.minimize(x);