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

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

机械优化设计报告(3)1利用MATLAB实现黄金分割法求极值问题姓名XXX学号XXX(北京理工大学机械与车辆学院车辆工程,北京100081)1黄金分割法的基本思想黄金分割法(GOLDENSECTION)是优化方法中的经典算法,以算法简单、效果显著而著称,是许多优化算法的基础。但它只适用于一维区间上,AB的凸函数。其基本思想是依照“去坏留好”原则、对称原则以及等比收缩原则,利用序列消去原理,通过不断缩小单峰区间长度,即每次迭代都消去一部分无用区间,使搜索区间不断缩小,来逐步缩小搜索范围,从而不断逼近目标函数极小点的一种优化方法。该方法对函数没有特殊要求,函数甚至可以是不连续的。在搜索区间内必须按下述规则对称地取和两点,AB1A2,,和将区间分成三段,其中Λ称为区间收1AB2A12缩率,黄金分割法中Λ≈0618,然后计算插入点的函数值。应用函数的单峰性质,通过函数值大小的比较,删去其中一段,使搜索区间得以缩小。然后再在保留下来的区间上作同样的处理,如此迭代下去,是搜索区间无限缩小,从而得到极小点的数值近似解。黄金分割法程序结构简单,容易理解,但计算效率偏低,较适用于设计变量少的优化问题中的一维搜索。2迭代过程和算法流程图21迭代过程(1)给定区间,并输入;,AB0机械优化设计报告(3)2(2)计算;1068,20618ABABA(3)判断,若成立,则迭代终止,到最后一步(7);否则,继续;(4)若,转(5),否则转(6);12FAF(5)令,,,转(3);BA1B08A(6)令,,,转(3);(7)得出最优解,。/2XYFX22算法流程图黄金分割法的算法流程图如图31机械优化设计报告(3)3图31黄金分割法的算法框图3利用MATLAB求解实例31实例本文以本章课后习题(31)为例来练习黄金分割法算法在MATLAB里的实现。用黄金分割法求解的近似极小点及,2FXXF,,。3A5B01程序如下(1)首先建立函数。建立M文件,命名为FUN_GSM,文件内容如下FUNCTIONYFUN_GSXYX22X(2)编写迭代程序主体。建立GSM文件,内容如下A3B5EPS001N0I100A1B0618BAA2A0618BAY1FUN_GSA1Y2FUN_GSA2FORK1IIFABSBAEPSYFUN_GSBA/2BREAKELSEIFY1Y2Y2FUN_GSA1BA2机械优化设计报告(3)4A2A1A1B0618BAY1FUN_GSA1ELSEY1FUN_GSA2AA1A1A2A2A0618BAY2FUN_GSA2ENDNN1ENDENDNXAB/2Y运行程序,结果为迭代次数14N极小值点03X极小值点的函数值Y计算结果如图图32计算结果()0132实例结果分析的最小值为时取得,此时有2FXX21BXA机械优化设计报告(3)5。1Y从上述计算结果可以看出,利用MATLAB实现的黄金分割法,通过14次迭代可以满足收敛精度要求,并且计算结果和理论结果基本一致,误差为,即求得了函数的全局最优解。当时,即10301301收敛精度缩小为原来,此时再进行一次迭代求解,计算结果如图33/图33计算结果()01迭代次数增加到19次,最优点,X。可见计算精度进一步提高,更加接近理论值。所1001以,在计算机性能允许的前提下,解决复杂优化问题时可以将收敛精度设为一个很小的值,以此来满足精度要求苛刻的工程问题。由此可见,在MATLAB里编写黄金分割法算法求解最优化问题是有效可行的,具有一定理论及实际应用价值。机械优化设计报告(3)6参考文献1李志锋。机械优化设计。高等教育出版社。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值