• 大小: 1KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-18
  • 语言: Matlab
  • 标签: MATLAB  BFGS  算法  

资源简介

BFGS算法是目前最流行的,也是最有效的拟牛顿算法。是算法学习过程中必学的内容。通过Matlab实现了BFGS算法,其中对程序有讲解,望有助于大家的学习。

资源截图

代码片段和文件信息

function [xvalk]=BFGS(fungfunx0)
maxk=500;
rho=0.55;sigma=0.4;epsilon=1e-5;
k=0; n=length(x0);
Bk=eye(n);%Bk=feval(‘Hess‘x0);
while(k    gk=feval(gfunx0);
    if(norm(gk)    dk=-Bk\gk;
    m=0;mk=0;
    while(m<20)
        newf=feval(funx0+rho^m*dk);
        oldf=feval(funx0);
        if(newf            mk=m;break;
        end
        m=m+1;
    end
    x=x0+rho^mk*dk;
    sk=x-x0;yk=feval(gfunx)-gk;
    if(yk‘*sk>0)
        Bk=Bk-(Bk*sk*sk‘*Bk)/(sk‘*Bk*sk)+(yk*yk‘)/(yk‘*sk);
    end
    k=k+1;x0=x;
end
val=feval(funx0);

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件         614  2018-11-08 16:45  BFGS.m
     文件          81  2018-11-08 18:24  df.m
     文件          55  2018-11-08 18:24  f.m
     文件         313  2018-11-11 20:39  程序解释.txt

评论

共有 条评论