- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
机械优化设计报告( 3)
利用 MATLAB 实现黄金分割法求极值问题
姓名: xxx 学号: xxx
(北京理工大学机械与车辆学院车辆工程,北京 100081 )
1. 黄金分割法的基本思想
黄金分割法 (golden section method)是优化方法中的经典算法, 以算法简单、
效果显著而著称,是许多优化算法的基础。但它只适用于一维区间 [a,b] 上的凸
函数。其基本思想是:依照“去坏留好”原则、对称原则以及等比收缩原则,利
用序列消去原理, 通过不断缩小单峰区间长度, 即每次迭代都消去一部分无用区
间,使搜索区间不断缩小, 来逐步缩小搜索范围, 从而不断逼近目标函数极小点
的一种优化方法。该方法对函数没有特殊要求,函数甚至可以是不连续的。
在 搜 索 区 间 [a b, ]内 必 须 按 下 述 规 则 对 称 地 取 a1 和 a2 两 点 :
a1 b b a, a2 a b a ,a1和 a2 将区间分成三段, 其中 λ称为区间收缩
率,黄金分割法中 λ≈0.618,然后计算插入点的函数值。应用函数的单峰性质,
通过函数值大小的比较, 删去其中一段, 使搜索区间得以缩小。 然后再在保留下
来的区间上作同样的处理, 如此迭代下去, 是搜索区间无限缩小, 从而得到极小
点的数值近似解。
黄金分割法程序结构简单, 容易理解, 但计算效率偏低, 较适用于设计变量
1
机械优化设计报告( 3)
少的优化问题中的一维搜索。
2.迭代过程和算法流程图
2.1 迭代过程
(1) 给定区间 a, b ,并输入 0 ;
(2 ) 计算 a1 b 0.618(b-a), a2 a 0.618( b-a) ;
(3 ) 判断 b a ,若成立,则迭代终止,到最后一步( 7 );否则,继续;
(4 ) 若 f (a1) f (a2) ,转( 5 ),否则转( 6 );
(5 ) 令 b a2 , a2 a1, a1=b-0.618(b-a) ,转(3 );
(6 ) 令 a a1, a1 a2 , a2=a+0.618(b-a) ,转( 3);
(7 ) 得出最优解: * * *
x (a b) / 2 , y f (x ) 。
2.2 算法流程图
黄金分割法的算法流程图如图 3-1.
2
机械优化设计报告( 3)
图 3-1 黄金分割法的算法框图
3.利用 MATLAB 求解实例
3.1 实例
本文以本章课后习题 (3.1 )为例来练习黄金分割法算法在 MATLAB 里的实
现。
* *
用黄金分割法求解 f (x ) x( x 2) 的近似极小点 x 及 f ( x ) , a 3 , b 5 ,
0.01 。
程序如下:
3
机械优化设计报告(
文档评论(0)