LM算法学习(一)

一、LM算法伪代码

二、Matlab代码实现

clear all
%x=[1,1.5,2.3,3.1,5.3,6.2,7];
% y=[3.03,2.36,1.58,1.06,0.35,0.23,0.15];
% y=5*exp(-0.5.*x);
%%%%%%%原始数据%%%%%%%%%
x_origin=[1,1.5,2.3,3.1,5.3,6.2,7];
y_origin=[3.03,2.36,1.58,1.06,0.35,0.23,0.15];
k_max=150;%最大迭代次数
E=[1,0;0,1];%单位矩阵
v=0.001;%阻尼系数
a_0=0.01;%初始迭代系数
b_0=0.01;
a_it=a_0;%为迭代系数赋值
b_it=b_0;
[m,n]=size(y_origin);%维度
J=zeros(n,2);%构造雅可比矩阵
for k=1:k_max
    %%%%%%%%计算雅可比矩阵%%%%%%%%
    for i=1:n
        J(i,1)=exp(b_it*x_origin(i));
        J(i,2)=a_it*x_origin(i)*exp(b_it*x_origin(i));
    end
    %计算第一次计算结果
    y_res=a_it*exp(b_it.*x_origin);
    d=y_origin-y_res;%计算第一次迭代误差
    A=J'*J;%Hessian矩阵
    if(k==1)
        e=dot(d,d);
    end
    step=inv(A+v*E)*
  • 2
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值