欢迎来到天天文库
浏览记录
ID:44774032
大小:883.76 KB
页数:34页
时间:2019-10-28
《数学实验第5次作业_无约束优化》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实用无约束优化一实验目的1掌握MATLAB优化工具箱的基本用法,对不同算法进行初步分析、比较。2练习用无约束优化方法建立和求解实际问题的模型(包括最小二乘拟合)。二实验内容1取不同的初值计算下列非线性规划,尽可能求出所有局部极小点,进而找出全局极小点,并对不同算法(搜索方向、搜索步长、数值梯度与分析梯度等)的结果进行分析、比较。minz=x1x22(1-x1)2[1-x1-x2(1-x1)5]2理论计算部分:根据多元微积分中求解函数的(局部)极值点的方法,首先要计算原函数的梯度以及Hessian矩阵。对于原函数z=x1x2
2、2(1-x1)2[1-x1-x2(1-x1)5]2,x∈R2首先计算梯度∇z=∂z∂x1∂z∂x2,文档实用∂z∂x1=2x2x1x21-x121-x1-x21-x152-21-x1x1x221-x1-x21-x152+25x21-x14-1x1x221-x12,∂z∂x2=2x1x1x21-x121-x1-x21-x152-21-x15x1x221-x12,然后计算Hessian矩阵∇2z=∂2z∂x12∂2z∂x1∂x2∂2z∂x2∂x1∂2z∂x22,此处由于计算所得式子非常复杂,所以不再继续计算。理论上可以通过求解
3、非线性方程组∇zx=0确定驻点,然后将每个驻点分别代入∇2z中判断矩阵是否正定,即可以确定该驻点是否为局部最优解。但是,通过上面的计算可以得知,要求解的非线性方程组较为复杂,及时解除解,要再带入Hessian矩阵判断正定也比较困难,所以此处不进行解析求解。观察原式,可以简单的看出,原式一定大于0,所以x1=0或1,x2=0是全局极小点,通过将最后一个式子因式分解[1-x1-x2(1-x1)5]2=(1-x1)2[1-x2(1-x1)4]2,还可以看出,(2,1)也是一个局部极小点。用MATLAB解决问题:对于目标函数是2维
4、以下的情况,不妨先绘制出可能出现局部最优解的区域的函数图象,这样有利于直观的判断函数在这个区域的大致情况。文档实用在MATLAB中输入以下命令:画出原图像如下:画出等高线如下:文档实用从图像上可以看出,由于所选择的范围太大,导致图像中右边大面积的点的值因为太小,所以相对于较大的值来讲全部被认为是0,使得无法确定零点。缩小选取的范围,输入命令如下:画出图像如下:文档实用画出等高线如下:对于点(2,1),输入命令如下:画出图像如下:文档实用画出等高线如下:从两幅图中可以大致看出,当x1=0或1或x2=0这一片区域中,函数值均为
5、0,而点(2,1)处,函数值也为0。文档实用下面用不同的初值进行计算首先编制函数的M文件:在命令栏中输入以下命令:输出结果如下:文档实用然后改变初值进行计算,输出结果如下:初值最优解函数值迭代次数函数调用次数[-1,-1](0.0000,-0.5000)016[-2,-2](-0.0003,-1.2880)6.2061e-0072272[0.1,0.2](0.0000,0.1719)1.1184e-018624[3,2](1.8782,1.6809)8.2624e-011939[2,0.9](2.0248,0.9066)1
6、.1459e-014530从上表中可以得到以下结论,极小值为0文档实用,但是极小点不唯一。当初值选择的不同时,最优解会向x1=0或1或x2=0或者点(2,1)收敛。但是初值不同,收敛的速度不同,初值越接近最优解,收敛越快。下面用不同的搜索方向和步长搜索进行计算在命令栏中输入以下命令(用三种搜索方向(BFGS,DFP和最速下降法)以及两种步长搜索(混合二、三次插值和三次插值)):分析梯度只需将命令中的opt1=optimset('LargeScale','off','MaxFunEvals',1000)改为opt1=opti
7、mset('LargeScale','off','MaxFunEvals',1000,'GradObj','on')文档实用即可。同时函数文件需要作如下改动(此处式子过长不适宜截图):function[y,g]=work1(x)y=(x(1)*x(2))^2*(1-x(1))^2*(1-x(1)-x(2)*(1-x(1))^5)^2;ifnargout>1g(1)=2*x(2)*(x(1)*x(2))*(1-x(1))^2*(1-x(1)-x(2)*(1-x(1))^5)^2-2*(1-x(1))*(x(1)*x(2))^
8、2*(1-x(1)-x(2)*(1-x(1))^5)^2+2*(5*x(2)*(1-x(1))^4-1)*(x(1)*x(2))^2*(1-x(1))^2;g(2)=2*x(1)*(x(1)*x(2))*(1-x(1))^2*(1-x(1)-x(2)*(1-x(1))^5)^2-2*(1-x(1))^5
此文档下载收益归作者所有