資源簡介
優化方法:最速下降、阻尼牛頓、共軛梯度、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
評論
共有 條評論