欢迎来到天天文库
浏览记录
ID:57687425
大小:13.50 KB
页数:2页
时间:2020-09-01
《DFP算法+wolfe性非线性搜索解决无约束问题的matlab程序.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、function[x,val,k]=dfp(fun,gfun,x0)%功能:用DFP算法求解无约束问题:minf(x)%输入:x0是初始点,fun,gfun分别是目标函数及其梯度%输出:x,val分别是近似最优点和最优值,k是迭代次数maxk=1e5;rho=0.25;sigma=0.75;epsilon=1e-3;alpha=1;a=0;b=Inf;k=0;n=length(x0);Hk=eye(n);while(k2、解方程组,计算搜索方向while(1)if(feval(fun,x0+alpha*dk)<=feval(fun,x0)+rho*alpha*gk'*dk)b=alpha;alpha=(alpha+a)/2;continue;endif(feval(gfun,x0+alpha*dk)'*dk>=sigma*gk'*dk)a=alpha;alpha=min([2*alpha,(b+alpha)/2]);continue;endbreak;endx=x0+alpha*dk;sk=x-x0;yk=feval(gfun,x)-gk;if(sk'*yk>0)Hk=Hk-(Hk*yk3、*yk'*Hk)/(yk'*Hk*yk)+(sk*sk')/(sk'*yk);endk=k+1;x0=x;endval=feval(fun,x0);functionf=fun(x)f=100*(x(1)^2-x(2))^2+(x(1)-1)^2;functiongf=gfun(x)gf=[400*x(1)*(x(1)^2-x(2))+2*(x(1)-1),-200*(x(1)^2-x(2))]';clearx0=[0,0]';[x,val,k]=dfp('fun','gfun',x0)
2、解方程组,计算搜索方向while(1)if(feval(fun,x0+alpha*dk)<=feval(fun,x0)+rho*alpha*gk'*dk)b=alpha;alpha=(alpha+a)/2;continue;endif(feval(gfun,x0+alpha*dk)'*dk>=sigma*gk'*dk)a=alpha;alpha=min([2*alpha,(b+alpha)/2]);continue;endbreak;endx=x0+alpha*dk;sk=x-x0;yk=feval(gfun,x)-gk;if(sk'*yk>0)Hk=Hk-(Hk*yk
3、*yk'*Hk)/(yk'*Hk*yk)+(sk*sk')/(sk'*yk);endk=k+1;x0=x;endval=feval(fun,x0);functionf=fun(x)f=100*(x(1)^2-x(2))^2+(x(1)-1)^2;functiongf=gfun(x)gf=[400*x(1)*(x(1)^2-x(2))+2*(x(1)-1),-200*(x(1)^2-x(2))]';clearx0=[0,0]';[x,val,k]=dfp('fun','gfun',x0)
此文档下载收益归作者所有