利用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李志锋。机械优化设计。高等教育出版社。

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

  1. 环形网络潮流计算matlab 利用matlab编程计算任意环形网络牛拉法潮流计算程序

    环形网络潮流计算matlab 利用matlab编程计算任意环形网络牛拉法潮流计算程序,程序通用性强,通过修改参数可以得到任意节点和网络的环形网络牛拉法潮流计算. YID:856064261479453 ...

  2. 环形网络潮流计算matlab 利用matlab编程计算任意环形网络牛拉法潮流计算程序,程序通用性强

    环形网络潮流计算matlab 利用matlab编程计算任意环形网络牛拉法潮流计算程序,程序通用性强,通过修改参数可以得到任意节点和网络的环形网络牛拉法潮流计算. 现有:6960642614794538 ...

  3. 环形网络潮流计算matlab 利用matlab编程计算任意环形网络牛拉法潮流计算程序,程序通用性强,通过修改参数

    环形网络潮流计算matlab 利用matlab编程计算任意环形网络牛拉法潮流计算程序,程序通用性强,通过修改参数可以得到任意节点和网络的环形网络牛拉法潮流计算. 现有:6960642614794538 ...

  4. 多元函数的极值matlab,利用MATLAB求多元函数的极值(2)

    利用MATLAB求多元函数的极值分两种情况,(1)无约束条件:(2)有约束条件. (2)有约束条件下求极小值的方法: 假设多变量非线性函数的数学模型为 min f(x) c(x)<=0 ceq( ...

  5. 二维静电场有限元matlab,利用MATLAB计算电磁场有关分布

    <利用MATLAB计算电磁场有关分布>由会员分享,可在线阅读,更多相关<利用MATLAB计算电磁场有关分布(17页珍藏版)>请在人人文库网上搜索. 1.电磁场实验报告实验一 模 ...

  6. 物联网控制原理与技术--基于Matlab/利用MATLAB进行频域分析(伯德图)的应用(超详细/设计/实验/作业/练习)

    目录 课程名:物联网控制原理与技术 内容/作用:设计/实验/作业/练习 学习:利用MATLAB进行频域分析(伯德图) 一.前言 二.环境与设备 三.原理 四.内容 五.结果与分析 课程名:物联网控制原 ...

  7. 单闭环调速仿真matlab,利用Matlab仿真平台设计单闭环直流调速系统

    内容简介: 毕业论文 利用Matlab仿真平台设计单闭环直流调速系统 共21页,3989字. 目 录 一.摘要 --------------------------2 二.总体方案设计 ------- ...

  8. 多普勒谱matlab,利用MATLAB仿真多普勒效应.doc

    利用MATLAB仿真多普勒效应 利用MATLAB仿真多普勒效应 某某某 摘 要:分析多普勒效应特性,建立数学模型,利用MATLAB软件对其进行仿真试验,进行定量分析,根据仿真试验结果绘制出听者接收到的 ...

  9. 热传递 matlab,利用matlab程序解决热传导问题

    利用matlab程序解决热传导问题 1哈佛大学能源与环境学院课程作业报告作业名称:传热学大作业--利用 matlab 程序解决热传导问题院系:能源与环境学院专业:建筑环境与设备工程学号:5201314 ...

  10. 神经网络人口预测matlab,利用MATLAB工具模拟实现人口预测实例分析.doc

    摘要:人口预测对于国民经济计划的制定和社会战略目标的决策具有重要参考价值.本文主要利用MATLAB软件对中国1974-2015年的人口总数数据进行统计分析,建立BP神经网络预测模型.把它与一元非线性回 ...

最新文章

  1. Nutch 二次开发之parse正文内容
  2. PHP验证码和Ajax验证
  3. 使用TDI与WinSock进行客户端服务器编程
  4. linux sort,uniq,cut,wc命令详解
  5. FZU1969(最大公约数之和)
  6. 中国如何引进CMM评估,促进软件产业发展
  7. 同步请求和ajax请求,ajax 同步请求和异步请求的差异分析
  8. aswing JTable用法
  9. Android 布局 优先显示右侧的控件
  10. iOS 16要来了:速度更快、UI改动明显?苹果WWDC大会或将在线下举行
  11. XML文档的使用方法
  12. Tomcat启动时日志报 dcom.sun.manager.jmxremote 异常导致无法正常启动使用
  13. Java程序员最常犯的错误盘点之Top 10
  14. java 定义泛型方法_Java中泛型方法的定义
  15. 删除word空白页的6钟方法
  16. input隐藏变显示
  17. android中常见的异常总结
  18. 按关键词搜索商品 淘宝API
  19. Docker常见使用
  20. 如何将npm升级到最新版本

热门文章

  1. java 验证码_如何用java实现验证码?
  2. python gui与pyside
  3. 盘点下半年EI国际会议,值得收藏!
  4. Python:实现拓扑排序算法(附完整源码)
  5. JDK10 新特性详解
  6. 给ftp服务器创建文件夹,ftp服务器上创建文件夹
  7. 拼多多商品采集、商品数据解析详解
  8. 项目总结 【电商后台管理系统】
  9. exadata存储相关学习
  10. RT-Thread (3) 为RTT增加SP485驱动||RTT UART设备