欢迎来到天天文库
浏览记录
ID:62379486
大小:123.50 KB
页数:13页
时间:2021-04-30
《最优化 马昌凤 第五章作业说课材料.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、最优化马昌凤第五章作业__________________________________________________最优化方法及其Matlab程序设计习题作业暨实验报告学院:数学与信息科学学院班级:12级信计一班姓名:李明学号:1201214049____________________________________________________________________________________________________________________________________________________________________________
2、____________________________第四章共轭梯度法一、上机问题与求解过程1、用算法求解取初始点和初始矩阵为。解:仿照书上编写程序,将程序矩阵变为具体如下:function[x,val,k]=dfp(fun,gfun,x0)%功能:用DFP算法求解吴宇舒问题:minf(x)%输入:x0是初始点,fun,gfun分别是目标函数及其梯度%输出:x,val分别是近似最优点和最优值,k是迭代次数maxk=1e5;%给出最大迭代次数rho=0.55;sigma=0.4;epsilon=1e-5;k=0;n=length(x0);Hk=[21;11];while(k3、feval(gfun,x0);%计算梯度if(norm(gk)4、=x-x0;yk=feval(gfun,x)-gk;if(sk'*yk>0)Hk=Hk-(Hk*yk*yk'*Hk)/(yk'*Hk*yk)+(sk*sk')/(sk'*yk);endk=k+1;x0=x;endval=feval(fun,x0);然后仿照书上建立两个目标函数和梯度的M文件:functionf=fun(x)f=x(1)^2+3*x(2)^2;functiong=gfun(x)g=[2*x(1)6*x(2)]';____________________________________________________________________________________5、________________选取初始点为,调用函数程序,得出最小极值点为,极小值为,在界面框中输入的程序如下:x0=[1-1]';[x,val,k]=dfp('fun','gfun',x0)x=1.0e-06*-0.2203-0.1599val=1.2527e-13k=4从结果可以看出迭代次数为次,如果选取不同的初值点则迭代次数不一样,但是极小值相同。2、用算法求的极小点,选取初始点为解:仿照书上编写程序具体如下:function[x,val,k]=bfgs(fun,gfun,x0,varargin)%功能:用BFGS算法求解无约束问题:minf(x);%输入:x0是初始点,fun,gf6、un分别是目标函数及梯度;%varargin是输入的可变参数变量,简单调用bfgs时可以忽略它;%但若其他程序循环调用该程序时将会发生重要的作用%输出:x,val分别为近似最优点和最优值,k是迭代次数maxk=500;rho=0.55;sigma=0.4;epsilon=1e-5;____________________________________________________________________________________________________k=0;n=length(x0);Bk=eye(n);while(k7、arargin{:});if(norm(gk)
3、feval(gfun,x0);%计算梯度if(norm(gk)4、=x-x0;yk=feval(gfun,x)-gk;if(sk'*yk>0)Hk=Hk-(Hk*yk*yk'*Hk)/(yk'*Hk*yk)+(sk*sk')/(sk'*yk);endk=k+1;x0=x;endval=feval(fun,x0);然后仿照书上建立两个目标函数和梯度的M文件:functionf=fun(x)f=x(1)^2+3*x(2)^2;functiong=gfun(x)g=[2*x(1)6*x(2)]';____________________________________________________________________________________5、________________选取初始点为,调用函数程序,得出最小极值点为,极小值为,在界面框中输入的程序如下:x0=[1-1]';[x,val,k]=dfp('fun','gfun',x0)x=1.0e-06*-0.2203-0.1599val=1.2527e-13k=4从结果可以看出迭代次数为次,如果选取不同的初值点则迭代次数不一样,但是极小值相同。2、用算法求的极小点,选取初始点为解:仿照书上编写程序具体如下:function[x,val,k]=bfgs(fun,gfun,x0,varargin)%功能:用BFGS算法求解无约束问题:minf(x);%输入:x0是初始点,fun,gf6、un分别是目标函数及梯度;%varargin是输入的可变参数变量,简单调用bfgs时可以忽略它;%但若其他程序循环调用该程序时将会发生重要的作用%输出:x,val分别为近似最优点和最优值,k是迭代次数maxk=500;rho=0.55;sigma=0.4;epsilon=1e-5;____________________________________________________________________________________________________k=0;n=length(x0);Bk=eye(n);while(k7、arargin{:});if(norm(gk)
4、=x-x0;yk=feval(gfun,x)-gk;if(sk'*yk>0)Hk=Hk-(Hk*yk*yk'*Hk)/(yk'*Hk*yk)+(sk*sk')/(sk'*yk);endk=k+1;x0=x;endval=feval(fun,x0);然后仿照书上建立两个目标函数和梯度的M文件:functionf=fun(x)f=x(1)^2+3*x(2)^2;functiong=gfun(x)g=[2*x(1)6*x(2)]';____________________________________________________________________________________
5、________________选取初始点为,调用函数程序,得出最小极值点为,极小值为,在界面框中输入的程序如下:x0=[1-1]';[x,val,k]=dfp('fun','gfun',x0)x=1.0e-06*-0.2203-0.1599val=1.2527e-13k=4从结果可以看出迭代次数为次,如果选取不同的初值点则迭代次数不一样,但是极小值相同。2、用算法求的极小点,选取初始点为解:仿照书上编写程序具体如下:function[x,val,k]=bfgs(fun,gfun,x0,varargin)%功能:用BFGS算法求解无约束问题:minf(x);%输入:x0是初始点,fun,gf
6、un分别是目标函数及梯度;%varargin是输入的可变参数变量,简单调用bfgs时可以忽略它;%但若其他程序循环调用该程序时将会发生重要的作用%输出:x,val分别为近似最优点和最优值,k是迭代次数maxk=500;rho=0.55;sigma=0.4;epsilon=1e-5;____________________________________________________________________________________________________k=0;n=length(x0);Bk=eye(n);while(k7、arargin{:});if(norm(gk)
7、arargin{:});if(norm(gk)
此文档下载收益归作者所有