2016-01-10 179 views
0

我成功地使用本徵的文伯格 - 馬夸特級以下的例子來設置文伯格 - 馬夸特阻尼:http://techblog.rga.com/determining-indoor-position-using-ibeacon/如何使用本徵

我試圖找出如何阻尼參數轉換,λ,進在本徵可用參數:

https://en.wikipedia.org/wiki/Levenberg-Marquardt_algorithm#Choice_of_damping_parameter

http://eigen.tuxfamily.org/dox/unsupported/classEigen_1_1LevenbergMarquardt.html#a20efa2f5a684efaf2499ba5bdd51e792

目前還不清楚我是什麼「的步驟開往傾斜移動」通過setFactor()那樣 - 我這與阻尼參數有關嗎?

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); 

回答

1

這是從minpack一個端口,所以還可以看其documentation

因子是在測定所結合的 初始步驟中使用的正輸入變量。這個界限被設置爲 因子和diag * x的歐幾里得範數(如果非零)的乘積,否則 是因子本身。在大多數情況下,因素應該在 區間(.1,100。)。100。是一個通常推薦的值。