資源簡介
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
評論
共有 條評論