Levenberg–Marquardt algorithm

function [x,minf] = minLM(f,x0,beta,u,v,var,eps)format long;if nargin == 6eps = 1.0e-6;endS = transpose(f)*f;k = length(f);n = length(x0);x0 = transpose(x0);A = jacobian(f,var);tol = 1;while tol>epsFx = zeros(k,1);for i=1:kFx(i,1) = Funval(f(i),var,x0);endSx = Funval(S,var,x0);Ax = Funval(A,var,x0);gSx = transpose(Ax)*Fx;Q = transpose(Ax)*Ax;while 1dx = -(Q+u*eye(size(Q)))\gSx;x1 = x0 + dx;for i=1:kFx1(i,1) = Funval(f(i),var,x1);endSx1 = Funval(S,var,x1);tol = norm(dx);if tol<=epsbreak;endif Sx1 >= Sx+beta*transpose(gSx)*dxu = v*u;continue;elseu = u/v;break;endendx0 = x1;endx = x0;minf = Funval(S,var,x);format short;

,生活不是等待风暴过去,而是学会在雨中翩翩起舞。

Levenberg–Marquardt algorithm

相关文章:

你感兴趣的文章:

标签云: