资源简介

优化方法:最速下降、阻尼牛顿、共轭梯度、BFGS法 matlab程序,以求解Rosen Brock函数极小值为例
程序有详细注释。

资源截图

代码片段和文件信息

function [xvalk]=minBFGS(fungfunx0)
%优化方法四:BFGS
%fuction:用共轭梯度法求解无约束问题:min f(x)
%Input:x0是初始点,fun是函数,gfun是偏导
%Output:x,val是近似最优点和最优值k是迭代次数
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)        break;
    end
    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);
 

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件         796  2020-04-14 20:47  opt\minBFGS.m
     文件        1095  2020-04-14 17:37  opt\minGE.m
     文件         834  2020-04-14 18:39  opt\minNT.m
     文件        2465  2020-04-14 23:01  opt\opt_steep.m
     文件         268  2020-04-13 18:03  opt\Rosenbrock.m
     文件          99  2020-04-09 21:05  opt\Rosenbrock_t.m

评论

共有 条评论