资源描述:
《大连理工大学优化方法上机作业.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、优化方法上机大作业学院:电子信息与电气工程学部姓名:学号:指导老师:上机大作业(一)%目标函数functionf=fun(x)f=100*(x(2)-x(1)^2)^2+(1-x(1))^2;end%目标函数梯度functiongf=gfun(x)gf=[-400*x(1)*(x(2)-x(1)^2)-2*(1-x(1));200*(x(2)-x(1)^2)];End%目标函数Hess矩阵functionHe=Hess(x)He=[1200*x(1)^2-400*x(2)+2,-400*x(1);-400*x(1),200;];end%线搜索步长functionmk=armijo
2、(xk,dk)beta=0.5;sigma=0.2;m=0;maxm=20;while(m<=maxm)if(fun(xk+beta^m*dk)<=fun(xk)+sigma*beta^m*gfun(xk)'*dk)mk=m;break;endm=m+1;endalpha=beta^mknewxk=xk+alpha*dkfk=fun(xk)newfk=fun(newxk)%最速下降法function[k,x,val]=grad(fun,gfun,x0,epsilon)%功能:梯度法求解无约束优化问题:minf(x)%输入:fun,gfun分别是目标函数及其梯度,x0是初始点,%e
3、psilon为容许误差%输出:k是迭代次数,x,val分别是近似最优点和最优值maxk=5000;%最大迭代次数beta=0.5;sigma=0.4;k=0;while(k4、^mk*dk;k=k+1;endx=x0;val=feval(fun,x0);>>x0=[0;0];>>[k,x,val]=grad('fun','gfun',x0,1e-4)迭代次数:k=1033x=0.99990.9998val=1.2390e-008%牛顿法x0=[0;0];ep=1e-4;maxk=10;k=0;while(k5、4e-030迭代次数k0=2%BFGS方法function[k,x,val]=bfgs(fun,gfun,x0,varargin)%功能:梯度法求解无约束优化问题:minf(x)%输入:fun,gfun分别是目标函数及其梯度,x0是初始点,%epsilon为容许误差%输出:k是迭代次数,x,val分别是近似最优点和最优值N=1000;epsilon=1e-4;beta=0.55;sigma=0.4;n=length(x0);Bk=eye(n);k=0;while(k6、k;enddk=-Bkgk;m=0;mk=0;while(m<20)newf=feval(fun,x0+beta^m*dk,varargin{:});oldf=feval(fun,x0,varargin{:});if(newf<=oldf+sigma*beta^m*gk'*dk)mk=m;break;endm=m+1;endx=x0+beta^mk*dk;sk=x-x0;yk=feval(gfun,x,varargin{:})-gk;if(yk'*sk>0)Bk=Bk-(Bk*sk*sk'*Bk)/(sk'*Bk*sk)+(yk*yk')/(yk'*sk);endk=k+1;x
7、0=x;endval=feval(fun,x0,varargin{:});>>x0=[0;0];>>[k,x,val]=bfgs('fun','gfun',x0)k=20x=1.00001.0000val=2.2005e-011%共轭梯度法function[k,x,val]=frcg(fun,gfun,x0,epsilon,N)ifnargin<5,N=1000;endifnargin<4,epsilon=1e-4;endbeta=0.6;sigma=0.4;n=length(x