利用matlab实现黄金分割法求极值问题-北京理工大学-机械优化设计.pdf

利用matlab实现黄金分割法求极值问题-北京理工大学-机械优化设计.pdf

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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)

171****9186 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档