资源描述:
《最优化理论与方法上机实验报告.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、2012年最优化理论与方法上机报告学院:电子工程专业:智能科学与技术文章详细介绍了使用matlab实现无约束和约束最优化问题的方法和程序,及使用方法,包含黄金分割法、最速下降法、牛顿法、外点法、内点法,例子丰富.最优化理论与方法上机报告最优化理论与方法上机报告虽然上机题仅有两个,但我又增加了一个,以验证程序的正确性!报告按照优化方法:黄金分割法、最速下降法、牛顿法、外点法、内点法的顺序叙述,分为两篇,第一篇为无约束优化,第二篇为约束优化.第一篇无约束优化1.黄金分割法黄金分割法又称0.618法,其基本思想是试探点函数值的比较,使包含极小点的搜索区间不断缩小
2、.该方法仅需计算函数值,适用范围广,使用方便.由于该方法思想简单,在此不给出具体算法流程,仅介绍思想和matlab实现的程序.1.1思想xa0.382(ba)1在搜索区间[,]ab内插入点xx12,,其中,,把[,]ab区间xa0.618(ba)2*分为了三段,比较fx()12与fx()的大小,若fx()12fx,则x[,],xb1去掉[,];ax1*若fx()fx,则x[,ax],去掉[,]xb,然后在余下的区间上根据对称原则再1222计算一个对称点的函数值,再重复上述操作,直到满足精度.1.2实现及结果采用matlab
3、2011a实现,命名为golden,具体程序见附录golden.m文件.该程序的使用方法,请参见附录中golden.m文件中绿色部分,下面给出程序26运行结果,其中目标函数为:fx()xx6,精度采用默认:10.111/25最优化理论与方法上机报告图1-1-1黄金分割法运行结果2由fx()xx6,求导得fx()2x1,易知x0.5为其极小点,可见程1111序正确.2.最速下降法最速下降法是求解无约束优化问题最简单和最古老的方法之一,时至今日已不再具有实用性,但它是研究其它无约束优化算法的基础.最速下降法适合解决下述优化问题:min()
4、fxxRnn其中fx()是R上的连续可谓函数.2.1思想无约束优化问题下降类算法的一般框架是,用不同的方式确定搜索方向和搜索步长,就得到不同的算法,最速下降法采用负梯度方向dfx()kk2/25最优化理论与方法上机报告作为搜索方向,由于该方向是函数值下降最快的方向,故称为最速下降法.2.2算法最速下降法的算法如下:nStep1取初始点xR,容许误差01,令k:=0.0Step2计算dfx().kk*Step3若d,则停止迭代,取xx,否则,转下一步.kkStep4求0,使fx(d)min(fxd).kkkkkk0
5、Step5令xxdk,:k1,转Step2.k1kk2.3实现及结果采用matlab2011a实现,具体程序见附录fast.m文件.下面以上机题第一题为例介绍具体使用方法:上机题1的优化目标函数为2244fx()(x10)x5(xx)(x2)x10(xx),12342314首先分别建立两个文件即目标函数文件func.m和对应梯度文件gfunc.m内容分别如下:func.m文件functionf=func(x)%---------------最速下降法、牛顿法用------------f=(x(1)+10*x(2))^2+5*(x
6、(3)-x(4))^2+(x(2)-2*x(3))^4+10*(x(1)-x(4))^4;gfunc.m文件functiongf=gfunc(x)%目标函数的梯度gf=[2*(x(1)+10*x(2))+40*(x(1)-x(4))^320*(x(1)+10*x(2))+4*(x(2)-2*x(3))^310*(x(3)-x(4))-8*(x(2)-2*x(3))^3-10*(x(3)-x(4))-40*(x(1)-x(4))^3];3/25最优化理论与方法上机报告然后在命令窗口输入:X0=[1234]’,再输入:fast(@func,gfunc,X0);
7、即可(加粗部分,X0为初始点,任意),运行结果如下:(a)精度较高时的情况(b)精度较低时的情况图1-2-1最速下降法运行结果由于最速下降法收敛速度很缓慢,要达到较高精度,迭代的次数要很大,正6如上图(a)所示,当设置的精度较高时(10),迭代了50000次也未达到,实际上*T需要366304次才可以,给出的最优解为x0.0049,0.0005,0.0024,0.0024.但精度不是很高时,得到的结果也是令人满意的,如图(b)所示.2.4体会Matlab的运算速度不太令人满意,当然有时程序的运算速度是和算法及编程实现者的水平密不可分的!在最速下降
8、法的实现过程中,刚开始使用subs函数计算函数值和一般的函数调用方