資源簡介
擬牛頓法只要求每一步迭代時知道目標函數(shù)的梯度。通過測量梯度的變化,構造一個目標函數(shù)的模型使之足以產(chǎn)生超線性收斂性。這類方法大大優(yōu)于最速下降法,尤其對于困難的問題。另外,因為擬牛頓法不需要二階導數(shù)的信息,所以有時比牛頓法(Newton's Method)更為有效。

代碼片段和文件信息
function?[xkvalk]=bfgs(x0)
maxk=500;
rho=0.55;
sigma=0.4;epsilon=1.0e-5;
k=0;n=length(x0);x=x0;
Bk=eye(n);%Bk=feval(‘hessen‘x0);
while(k ????gk=gfun(x0);
????if(norm(gk) ????????break;
????end?
???dk=-Bk\gk;
????m=0;mk=0;
????while?(m<20)
????????newf=fun(x0+rho^m*dk);
????????oldf=fun(x0);
????????if(newf ????????????mk=m;break;
????????end
????????m=m+1;
????end
????%BFGS校正
????xk=x0+rho^mk*dk;
????sk=xk-x0;
????yk=gfun(xk)-gk;
????if(yk‘*sk>0)
????????Bk=Bk-(Bk*sk*sk‘*Bk)/(sk‘*Bk*sk)+(yk*yk‘)/(yk‘*sk);
????end?
????k=k+1;
????x0=xk;
end?
val=fun(x0);??
end
????
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????648??2015-06-17?20:08??擬牛頓法\bfgs.m
?????文件?????????57??2015-06-17?20:00??擬牛頓法\fun.m
?????文件?????????83??2015-06-17?20:00??擬牛頓法\gfun.m
?????文件?????????82??2015-06-17?19:37??擬牛頓法\hessen.m
?????文件?????????31??2015-06-17?20:10??擬牛頓法\solve.m
?????目錄??????????0??2015-08-13?11:32??擬牛頓法
-----------?---------??----------?-----??----
??????????????????901????????????????????6
評論
共有 條評論