欢迎来到天天文库
浏览记录
ID:1212728
大小:326.39 KB
页数:11页
时间:2017-11-08
《数学实验——无约束优化》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、数学实验报告实验6无约束优化实验6无约束优化分1黄浩2011011743一、实验目的1.掌握用MATLAB优化工具箱的基本用法,对不同算法进行初步分析、比较。2.练习用无约束优化方法建立和求解实际问题模型(包括非线性最小二乘拟合)。二、实验内容1.《数学实验》第二版(问题2.1)问题叙述:取不同的初值计算非线性规划:minz=x1x22(1-x1)2[1-x1-x2(1-x1)5]2尽可能求出所有局部极小点,进而找出全局极小点,并对不同算法(搜索方向、步长搜索、数值梯度与分析梯度等)的结果进行分析、比较。实验过程:首先绘制这个函数的三维图形以及等高线(程序见四.1),结果如下:11数
2、学实验报告实验6无约束优化通过观察这两幅图,可以得到,x2确定时,x1越负,函数值越大,x1确定时,x2绝对值越大,函数值越大。但对于x1正向偏离0的情况,并没有很好的反映,于是扩大绘图范围,做出下图(程序见四.2):11数学实验报告实验6无约束优化由上面两幅图可见,方程像是一个四角被捏起的花布,而且z的最小值为0。因此只要求解该方程的零点,即得到了方程的局部极小点,且若将原方程变形为:z=x1x22(1-x1)4[1-x2(1-x1)4]2我们容易发现,该方程的零点为:x2=0或x1=0或x1=1或x2(1-x1)4=1在求解零点之前,先针对一个零点,不妨用x1=1,x2=1,分析
3、不同算法的优劣。在matlab的无约束优化中,可以使用fminumc和fminsearch两种函数,搜索方向的算法有BFGS公式、DFP公式和最速下降法三种(书中还提到的Gill-Murray公式在matlab中已经不再使用),步长的一维搜索有混合二次三次多项式插值和三次多项式插值两种方法,另外,在求解函数梯度是也有数值方法和分析方法两种。在对上述四类算法因素进行分析时,我们采用控制变量法,每次只保持一种或两种算法因素改变,分析它的精度及效率。(一)分析fminumc与fminsearch两种方法的精度及效率选择初值为x1=0.8,x2=0.8,使用fminunc和fminsearc
4、h的默认算法及控制参数,输出结果如下(程序见四.3、四.4):11数学实验报告实验6无约束优化最优解x1最优解x2最优值z迭代次数z调用次数fminunc9.9400e-0017.9238e-0018.0435e-0101239fminsearch1.0000e+0005.8842e-0019.5246e-05767123因为精确解为x1=1,z=0,我们便可以比较出不同算法的精度。由上表可见,fminunc的迭代次数和目标函数的调用次数较少,效率较高,但最优值的精度较低,与之相反的是,fminsearch的迭代次数和目标函数的调用次数较多,效率比较低,然而精度很高。(一)比较不同搜
5、索方向和不同步长的算法精度及效率使用fminunc函数,选择初值为x1=0.6,x2=0.8,分别用BFGS公式、DFP公式和最速下降法三种搜索方向,混合二次三次多项式插值和三次多项式插值两种步长算法,共2*3=6种方式进行运算,结果如下(程序见四.5):搜索方向步长算法最优解x1最优解x2最优值z迭代次数z调用次数BFGS混合二次三次多项式插值1.0072e+0007.6715e-0011.5634e-009727DFP1.0074e+0007.5404e-0011.7336e-009521最速下降法9.9290e-0017.2793e-0011.3266e-00939255BFG
6、S三次多项式插值1.0072e+0007.6715e-0011.5634e-009727DFP1.0074e+0007.5404e-0011.7336e-009521最速下降法9.9290e-0017.2793e-0011.3266e-00939255显然,精确解应为x1=1,z=0.由上表可知,计算效率:DFP>BFGS>最速下降法,而且DFP和BFGS的迭代次数近似,最速下降法的迭代次数远远大于前两者。这是因为最速下降法的收敛阶数为1,开始时收敛非常快,但当接近最优解时,收敛就变慢了。而前两种算法均利用到了二阶导数项,收敛阶数较高,因此总体上收敛速率较快,计算效率更高。对于解的精
7、度,三者近似相同,没有很大的区别。此外,通过对比可以看出,对于混合二次三次多项式插值和三次多项式插值两种步长算法,他们的最优解以及迭代次数都是一样的。但事实上不是二者没有区别,我通过翻阅matlab的warning消息,得知LineSearchType的控制参数已经不存在了,因而matlab只使用了某一种步长算法。(二)比较数值方法和分析方法的精度及效率首先编写含梯度的函数M文件(程序见四.6),然后选择初值x1=0.6,11数学实验报告实验6无约束优化x
此文档下载收益归作者所有