本文共 1558 字,大约阅读时间需要 5 分钟。
Algorithm 3.16. Levenberg-Marquardt method
b e g i n begin begin
k : = 0 ; v : = 2 ; x : = x 0 k:=0; v:=2; x:=x_0 k:=0;v:=2;x:=x0 A : = J ( x ) T J ( x ) ; g : = J ( x ) T f ( x ) A:=J(x)^TJ(x); g:=J(x)^Tf(x) A:=J(x)TJ(x);g:=J(x)Tf(x) f o u n d : = ( ∥ g ∥ ∞ ≤ ε 1 ) ; μ : = τ ∗ m a x { a i i } found:=(\|g\|_\infty \leq \varepsilon_1);\mu:=\tau*max\{a_{ii}\} found:=(∥g∥∞≤ε1);μ:=τ∗max{ aii} w h i l e ( n o t f o u n d ) a n d ( k < k m a x ) while (not found)and(k<k_{max}) while(notfound)and(k<kmax) k : = k + 1 ; S o l v e ( A + μ I ) h l m = − g k:=k+1; Solve(A+\mu I)h_{lm}=-g k:=k+1;Solve(A+μI)hlm=−g i f ∥ h l m ∥ ≤ ε 2 ( ∥ x ∥ + ε 2 ) if \|h_{lm}\| \leq \varepsilon_2(\|x\|+\varepsilon_2) if∥hlm∥≤ε2(∥x∥+ε2) f o u n d : = t r u e found:=true found:=true e l s e else else x n e w : = x + h l m x_{new}:=x+h_{lm} xnew:=x+hlm ϱ : = ( F ( x ) − F ( x n e w ) ) / ( L ( 0 ) − L ( h l m ) ) \varrho:=(F(x)-F(x_{new}))/(L(0)-L(h_{lm})) ϱ:=(F(x)−F(xnew))/(L(0)−L(hlm)) i f ϱ > 0 if \varrho>0 ifϱ>0{step acceptable} x : = x n e w x:=x_{new} x:=xnew A : = J ( x ) T J ( x ) ; g : = J ( x ) T f ( x ) A:=J(x)^TJ(x); g:=J(x)^Tf(x) A:=J(x)TJ(x);g:=J(x)Tf(x) f o u n d : = ( ∥ g ∥ ∞ ≤ ε 1 ) ; found:=(\|g\|_\infty \leq \varepsilon_1); found:=(∥g∥∞≤ε1); μ : = μ ∗ m a x { 1 3 , 1 − ( 2 ϱ − 1 ) 3 } ; v : = 2 \mu:=\mu*max\{\frac13,1-(2\varrho-1)^3\};v:=2 μ:=μ∗max{ 31,1−(2ϱ−1)3};v:=2 e l s e else else μ : = μ ∗ v ; v : = 2 ∗ v \mu:=\mu*v; v:=2*v μ:=μ∗v;v:=2∗v e n d end endK. Madsen, H. B. Nielsen, O. Tingleff, Methods for Non-Linear Least Squares Problems
转载地址:http://hkcqi.baihongyu.com/