-
大小: 3KB文件類型: .zip金幣: 2下載: 1 次發(fā)布日期: 2021-06-13
- 語(yǔ)言: Matlab
- 標(biāo)簽: matlab??優(yōu)化方法??Rosen??Brock函數(shù)??
資源簡(jiǎn)介
優(yōu)化方法:最速下降、阻尼牛頓、共軛梯度、BFGS法 matlab程序,以求解Rosen Brock函數(shù)極小值為例
程序有詳細(xì)注釋。
程序有詳細(xì)注釋。

代碼片段和文件信息
function?[xvalk]=minBFGS(fungfunx0)
%優(yōu)化方法四:BFGS
%fuction:用共軛梯度法求解無(wú)約束問(wèn)題:min?f(x)
%Input:x0是初始點(diǎn),fun是函數(shù),gfun是偏導(dǎo)
%Output:x,val是近似最優(yōu)點(diǎn)和最優(yōu)值k是迭代次數(shù)
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);
?
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件?????????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
評(píng)論
共有 條評(píng)論