收藏 分享(赏)

黄金分割法及其代码.pdf

上传人:精品资料 文档编号:8329419 上传时间:2019-06-20 格式:PDF 页数:9 大小:648.67KB
下载 相关 举报
黄金分割法及其代码.pdf_第1页
第1页 / 共9页
黄金分割法及其代码.pdf_第2页
第2页 / 共9页
黄金分割法及其代码.pdf_第3页
第3页 / 共9页
黄金分割法及其代码.pdf_第4页
第4页 / 共9页
黄金分割法及其代码.pdf_第5页
第5页 / 共9页
点击查看更多>>
资源描述

1、线性搜索之 黄金分割法 及其应用 摘 要 最优化理论和方法日益受到重视,已经渗透到生产、管理、商业、军事、决策等各个领域,而最优化模型与方法广泛应用于工业、农业、交通运输、商业、国防、建筑、 通讯和 政府机关等领域。伴随着计算机技术的高速发展,最优化理论与方法的迅速进步为解决实际最优化问题的软件也在飞速发展。其中, MATLAB软件已经成为最优化领域应用最广的软件之一。有了 MATLAB 这个强大的计算平台,既可以利用 MATLAB优化工具箱( OptimizationToolbox)中的函数,又可以通过算法变成实现相应的最优化计算。 在最优化计算中一维最优化方法是优化设计中最简单、最基本的方

2、法。一维搜索,又称为线性搜索,一维问题是多维问题的基础,在数值方法迭代计算过程中,都要进行一维搜索,也可以把多维问题化为一些一维问题来处理。一维问题的算法好坏,直接影响到最优化问题的求解速度。而黄金分割法是一维搜索方法中重要的方法之一,它适用于任何单峰函数求最小值的问题,甚至于对函数可以不要求连续,是一种基于区间收缩的极小点搜索算法。 关键词:最优化、黄金分割法、 MATLAB 软件 、一维搜索 引 言 数学科学不仅是自然科学的基础,也是一切重要技术发展的基础。最优化方法更是数学科学里面的一个巨大的篇幅,在这个信息化的时代,最优化方法广泛应用于工业、农业、国防、建筑、通信与政府机关、管理等各领

3、域;它主要解决最优计划、最优分配、最优决策、最佳设计、最佳管理等最优化问题。而最优解问题是这些所有问题的中心,是最优化方法的重中之重,在求最优解问题中,有多种方法解决,我们在这里着重讨论无约束一维极值问题,即非线性规划的一维搜索方法之黄金分割法。黄金分割法也叫 0.618法,属于区间收缩法,首先找出包含极小点的初始搜 索区间,然后按黄金分割点通过对函数值的比较不断缩小搜索区间。当然要保证极小点始终在搜索区间内,当区间长度小到精度范围之内时,可以粗略地认为区间端点的平均值即为极小值的近似值。所以用 0.618法得出的是比较精确的最优解了 一、 最优化方法原理 1.1 无约束问题 的最优性条件 无

4、约束问题的最优解所要满足的必要条件和充分条件是我们设计算法的依据,为此我们有以下几个定理。 定理 1 设 :f 1RRn 在点 _x 处可微。若存在 nRp ,使 0)(_ pxf T 则向量 p 是 f 在点 _x 处的下降方向。 定理 2 设 :f 1RRn 在点 nRx* 处可微。若 *x 是无约束问题的局部最优解,则 0)( * xf 由数学分析中我们已经知道,使 0)( * xf 的点 x 为函数 f 的驻点或平稳点。函数 f 的一个驻点可以是极小点;也可以是极大点;甚至也可能既不是极小点也不是极大点,此时称它为函数 f 的鞍点。以上定理告诉我们, *x 是无约束问题的的局部最优解的

5、必要条件是: *x 是其目标函数 f 的驻点。 现给出无约束问题局部最优解的充分条件。 定理 3 设 :f 1RRn 在点 nRx* 处的 Hesse矩阵 )( *2 xf 存在。若 0)( * xf ,并且 )( *2 xf 正定 则 *x 是无约束问题的严格局部最优解。 一般而言,无约束问题的目标函数的驻点不一定是无约束问题的最优解。但对于其目标函数是凸函数的无约束凸规划,下面定理证明了,它的目标函数的驻点就是它的整体最优解。 定理 4 设 :f 1RRn , nRx* , f 是 nR 上的可微凸函数。若有 0)( * xf 则 *x 是无约束问题的整体最优解。 二、 黄金分割法的基本思

6、想与原理 2.1 黄金分割法基本思路: 黄金分割法适用于 , ba 区间上的任何单股函数求极小值问题,对函数除要求“单峰”外不做其他要求,甚至可以不连续。因此,这种方法的适应面非常广。黄金分割法也是建立在区间消去法原理基础上的试探方法,即在搜索区间 , ba内适当插入两点 1a , 2a ,并计算其函数值。 1a , 2a 将区间分成三段,应用函数的单峰性质,通过函数值大小的比较,删去其中一段,是搜索区间得以缩小。然后再在保留下来的区间上作同样的处理,如此迭代下去,是搜索区间无限缩小,从而得到极小点的数值近似解。 2.2 黄金分割法的基本原理 与步骤 一 维搜索是解函数极小值的方法之一,其解法

7、思想为沿某一已知方向求目标函数的极小值点。一维搜索的解法很多,这里主要采用黄金分割法( 0.618法)。 如图所示 黄金分割法是用于一元函数 )(xf 在给定初始区间 , ba 内搜索极小点 *a 的一种方法。它是优化计算中的经典算法,以算法简单、收敛速度均匀、效果较好而著称,是许多优化算法的基础,但它只适用于一维区间上的凸函数,即只在单峰区间内才能进行一维寻优,其收敛效率较低。其基本原理是:依照 “ 去劣存优 ” 原则、对称原则、以及等比收缩原则来逐步缩小搜索区间。具体步骤是:在区间 , ba 内取点: 2,1aa 把 , ba 分为三段。如果 )2()1( afaf ,令,21,1 aaa

8、a )(*2 abraa ;如果 )2()1( afaf ,令 12,2 aaab , )(*1 abraa ,如果 bab /)( 和 2/)21( yyy 都大于收敛精度 重新开始。因为 , ba 为单峰区间,这样每次可将搜索区间缩小 0.618 倍或 0.382倍,处理后的区间都将包含极小点的区间缩小,然后在保留下来的区间上作同样的处理,如此迭代下去,将使搜索区 , ba 逐步缩小,满足预先给定的精度时,即获得一维优化问题的近似最优解。 2.3 0.618 法算法 ( 1)给定区间 , ba ,及 0eps ; ( 2)计算 );(61 8.0),(38 2.0 abauabar ; (

9、 3)若 )()( ufrf ,转( 4),否则转( 5) ( 4)若 epsru ,则停,输出 )(, * uffux 否则令 ra , ur , )(618.0 abau ,转( 3) ( 5)若 epsru ,则停,输出 )(, * rffrx 否则令 ub , ru , )(382.0 abar ,转( 3) 2.4 算法流程图 代码见附录 。 三、 黄金分割法应用举例 3.1 例 1 根据 0.618 算法编写程序,求函数 xexxxf 306 )1ta n ()(s in)( 在区间 1,0 上的极大值。 解: 令 xexxxfxg 306 )1t a n ()(s i n)()(

10、 ,求 )(min1,0 xgxfun1程序为: function dy,val=fun1(x) val=-(sin(x)6*tan(1-x)*exp(30*x); dy=-(6*(sin(x)5*cos(x)*tan(1-x)*exp(30*x)+(sin(x)6*(1/cos(1-x)2*(-1)*exp(30*x)+(sin(x)6*tan(1-x)*exp(30*x)*30); 取 eps=1e-5 给定 , 以及取两个点 ,计算 得出近似解 Y N N Y 运行结果: x,fval,iter=f618(0,1) the1iteration search area is :0.382,

11、1 the2iteration search area is :0.61808,1 the3iteration search area is :0.76397,1 the4iteration search area is :0.85413,1 the5iteration search area is :0.90985,1 the6iteration search area is :0.94429,1 the7iteration search area is :0.94429,0.97872 the8iteration search area is :0.95744,0.97872 the9it

12、eration search area is :0.96557,0.97872 the10iteration search area is :0.96557,0.9737 the11iteration search area is :0.96867,0.9737 the12iteration search area is :0.96867,0.97178 the13iteration search area is :0.96986,0.97178 the14iteration search area is :0.96986,0.97104 the15iteration search area

13、is :0.97031,0.97104 the16iteration search area is :0.97031,0.97077 the17iteration search area is :0.97049,0.97077 the18iteration search area is :0.97059,0.97077 the19iteration search area is :0.97059,0.9707 the20iteration search area is :0.97063,0.9707 the21iteration search area is :0.97063,0.97067

14、the22iteration search area is :0.97065,0.97067 the23iteration search area is :0.97066,0.97067 the24iteration search area is :0.97066,0.97067 x =0.9707 fval =-4.1086e+010 iter =24 则 )(min1,0 xgx为 4.1086e+010 3.2 例 2 求函数 tt eet )( 在 1,1 内的极小值 解 : fun1程序为: function dy,val=fun1(x) val=exp(-x)+exp(x); dy

15、=-exp(-x)+exp(x); 令 eps=1e-5 运行结果 ; x,fval,iter=f618(-1,1) the1iteration search area is :-1,0.236 the2iteration search area is :-0.52785,0.236 the3iteration search area is :-0.23606,0.236 the4iteration search area is :-0.055732,0.236 the5iteration search area is :-0.055732,0.12456 the6iteration sear

16、ch area is :-0.055732,0.055688 the7iteration search area is :-0.01317,0.055688 the8iteration search area is :-0.01317,0.029384 the9iteration search area is :-0.01317,0.013129 the10iteration search area is :-0.0031238,0.013129 the11iteration search area is :-0.0031238,0.0069202 the12iteration search

17、area is :-0.0031238,0.0030834 the13iteration search area is :-0.00075262,0.0030834 the14iteration search area is :-0.00075262,0.001618 the15iteration search area is :-0.00075262,0.00071244 the16iteration search area is :-0.00019297,0.00071244 the17iteration search area is :-0.00019297,0.00036658 the

18、18iteration search area is :-0.00019297,0.00015283 the19iteration search area is :-6.0873e-005,0.00015283 the20iteration search area is :-6.0873e-005,7.1195e-005 the21iteration search area is :-6.0873e-005,2.0745e-005 the22iteration search area is :-2.9695e-005,2.0745e-005 the23iteration search area

19、 is :-1.0427e-005,2.0745e-005 the24iteration search area is :-1.0427e-005,8.8374e-006 the25iteration search area is :-3.068e-006,8.8374e-006 the26iteration search area is :-3.068e-006,4.2895e-006 x =6.1078e-007 fval =2.0000 iter =26 则原式极小值为: 6.1078e-007 总结 最开始接触黄金分割法大概要算初中时候学过的黄金分割点,是 把一条线段分割为两部分,使其

20、中一部分与全长之比等于另一部分与这部分之比。其比值是一个无理数,取其前三位数字的近似值是 0.618,所以也称为 0.618法。 然后在大学的最优化方法这门课上,我又重新认识了黄金分割法,知道它不仅是最优化中解决无约束问题的方法中重要的一环,而且是不可或缺的方法。 通过这次 作业 ,我重新学习了以前遗忘的知识,加深了记忆和理解。真正做到了理论和实践相结合,锻炼了自己分析,处理实际问题的能力,也认识到了自己的不足。 附录 f618程序 function x,fval,iter=f618(a,b) iter=0; while abs(b-a)1e-5 iter=iter+1; lambda=a+0

21、.382*(b-a); miu=a+0.618*(b-a); dy,f1=fun1(lambda); dy,f2=fun1(miu); if f1f2 a=lambda; disp(the num2str(iter) iteration search area is : num2str(a) , num2str(b) ) else b=miu; disp(the num2str(iter) iteration search area is : num2str(a) , num2str(b) ) end end x=(a+b)/2; dy,fval=fun1(x); fun1程序 functio

22、n dy,val=fun1(x) %val=exp(-x)+exp(x); %dy=-exp(-x)+exp(x); %val=-(sin(x)6*tan(1-x)*exp(30*x); %dy=-(6*(sin(x)5*cos(x)*tan(1-x)*exp(30*x)+(sin(x)6*(1/cos(1-x)2*(-1)*exp(30*x)+(sin(x)6*tan(1-x)*exp(30*x)*30); 参考文献 1 赵瑞安,吴方 .非线性最优化理论和方法 M.北京 :高等教育出版社, 1900 2 袁亚湘,孙文瑜 .最优化理论与方法 M.北京:科学出版社, 1997 3 陈开明 .非线性规划 M.上海:复旦大学出版社, 1991 4 张德丰 .MLTLAB数值计算方法 M.北京:机械工业出版社, 2010 5 张光澄 .非线性最优化计算方法 M.北京:高等教育出版社, 2005 6 傅英定,成孝予,唐应辉 .最优化理论与方法 M.北京:国防工业出版社, 2008 7 何坚勇 .最优化方法 M.北京:清华大学出版社, 2007

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报