最优化方法及其matlab程序设计 马昌凤版 课后答案 杭电课件
Hk=[21;11];while(k<maxk)
gk=feval(gfun,x0);%计算梯度
if(norm(gk)< ),break;end%检验终止准则dk=-Hk*gk;%计算搜索方向m=0;mk=0;
while(m<20)%用Armijo搜索求步长
′
if(feval(fun,x0+ρm dk)<feval(fun,x0)+σ ρm gk dk)
mk=m;break;endm=m+1;end%DFP校正x=x0+ρmk dk;
sk=x-x0;yk=feval(gfun,x)-gk;if(sk’*yk>0)
Hk=Hk-(Hk*yk*yk’*Hk)/(yk’*Hk*yk)+(sk*sk’)/(sk’*yk);end
k=k+1;x0=x;end
val=feval(fun,x0);(I)当
H0=
(21
11
)
(20)
13