• 大小: 2KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-01-09
  • 语言: Matlab
  • 标签: LM算法  

资源简介

levenberg_Marquardt算法的详细流程,备注清晰,下载可用,是根据算法流程自己编写的程序,内含详细的参数设置介绍。

资源截图

代码片段和文件信息

%% 函数功能:利用Levenberg_Marquardt算法求解无约束的非线性最小二乘问题  
function [x_curr iter] = Levenberg_Marquardt(Difff var x0 lamda beita eps)  %eps为精度,
    % 相关参数  
    max_iter    = 100;  
    flag        = 1;  
    x_curr      = x0;                                                 
  
    for iter = 1 : max_iter  
        if flag  
            J   = double(subs(jacobian(Diff var) var x_curr));      % 雅可比矩阵  
            H   = transpose(J) * J;                                    % 赫森矩阵      
              
            if iter == 1  
                f_curr = double(subs(f var x_curr));  
            end  
        end  
  
        % 计算新Hessen矩阵  
        H_new = H + (lamda * eye(8 8));  
  
        % 计算步长d  
        diff = double(subs(Diff var x_curr));  

评论

共有 条评论