Levenberg-Marquardt method伪代码

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) ifhlmε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:=2v
e n d end end

参考文献

K. Madsen, H. B. Nielsen, O. Tingleff, Methods for Non-Linear Least Squares Problems

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值