利用MATLAB实现黄金分割法求极值问题-北京理工大学-机械优化设计_第1页
利用MATLAB实现黄金分割法求极值问题-北京理工大学-机械优化设计_第2页
利用MATLAB实现黄金分割法求极值问题-北京理工大学-机械优化设计_第3页
利用MATLAB实现黄金分割法求极值问题-北京理工大学-机械优化设计_第4页
利用MATLAB实现黄金分割法求极值问题-北京理工大学-机械优化设计_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、机械优化设计报告(3)利用MATLAB实现黄金分割法求极值问题姓名:XXX学号:XXX(北京理工大学机械与车辆学院车辆工程,北京100081)1. 黄金分割法的基本思想黄金分割法(golden section method是优化方法中的经典算法,以算法简单、 效果显著而著称,是许多优化算法的基础。但它只适用于一维区间a,b上的凸函数。其基本思想是:依照“去坏留好”原则、对称原则以及等比收缩原则,禾 用序列消去原理,通过不断缩小单峰区间长度,即每次迭代都消去一部分无用区 间,使搜索区间不断缩小,来逐步缩小搜索范围,从而不断逼近目标函数极小点 的一种优化方法。该方法对函数没有特殊要求,函数甚至可以

2、是不连续的。在搜索区间a b内必须按下述规则对称地取al和a2两点: 印=b叫 b- aa2二a ,a1和a2将区间分成三段,其中入称为区间收缩 率,黄金分割法中 入&618,然后计算插入点的函数值。应用函数的单峰性质, 通过函数值大小的比较,删去其中一段,使搜索区间得以缩小。然后再在保留下 来的区间上作同样的处理,如此迭代下去,是搜索区间无限缩小,从而得到极小 点的数值近似解。黄金分割法程序结构简单,容易理解,但计算效率偏低,较适用于设计变量 少的优化问题中的一维搜索。2. 迭代过程和算法流程图2.1迭代过程(1) 给定区间la,b 1,并输入;7;(2) 计算 a1 二b-0.61

3、8(b-a),a2 二 a 0.618(b-a);(3) 判断b_a<s若成立,则迭代终止,到最后一步(7);否则,继续;(4) 若 f(a1)兰 f(a2),转(5),否则转(6);(5) 令 b=a2,a2=a1,a1=b-0.618(b-a),转(3);(6) 令a=a1,a仁a2,a2=a+0.618(b-a),转(3);(7) 得出最优解:x (a b) /2, y* = f(x*)。2.2算法流程图3. 利用MATLAB求解实例3.1实例本文以本章课后习题(3.1)为例来练习黄金分割法算法在 MATLAB里的实 现。用黄金分割法求解f(x) = x(x2)的近似极小点x及f(

4、x*),a=-3,b = 5, ;=0.01。程序如下:(1)首先建立函数。建立.m文件,命名为fun_gs.m,文件内容如下:function y=fun_gs(x)y=xA2+2*x;(2)编写迭代程序主体。建立gs.m文件,内容如下:a=-3;b=5;eps=0.01;n=0;i=100;a1= b-0.618*(b-a);a2=a+0.618*(b-a);y1=fun_gs(a1);y2=fun_gs(a2);for k=1:iif (abs(b-a)v=eps)y=fun_gs(b+a)/2);break;elseif (y1<=y2)y2=fun_gs(a1);b=a2;a2

5、=a1;a1= b-0.618*(b-a);y1=fun_gs(a1);elsey仁 fun_gs(a2); a=a1;a仁 a2;a2=a+0.618*(b-a);y2=fun_gs(a2);endn=n+1;endendn;x=(a+b)/2;y;运行程序,结果为:n=14迭代次数x* =1.0013极小值点y* 1.0000极小值点的函数值计算结果如图:NameansbepsValueMinMax-1.0061-1.00”.-1,00.-1.0025-liOOub-l.DO.b.-1,0002-1-OOmr*1,00.-1.0000-1.00.-1.00.-0.9966-0.99,-0,

6、99.0.01000.01000.0100100100100151515141414-1.0013-I,OOr.-1.00.,-1.0000-l.OOubJ,00 -1.0000-L00f-1,00.,.-1.0000-l.DO.j.-l.OO.b.图3-2计算结果(:-0.01)3.2实例结果分析f (x)二x(x 2) =x2 2x的最小值为x b = -2 = T时取得,此时有2a 25机械优化设计报告(3)从上述计算结果可以看出,利用 MATLAB实现的黄金分割法,通过14次 迭代可以满足收敛精度要求,并且计算结果和理论结果基本一致,误差为.:=(-1.0013)-(-1) =0.00

7、13,即求得了函数的全局最优解。当;=0.001时,即收敛精度缩小为原来1/10,此时再进行一次迭代求解,计算结果如图3-3:Workspace田| 严虽| 裁鬲 Stack;国* No valid plots for n寸Name ValueMinMaxa-1.0006'lnDObidal-1,0002-lrOO+.h1.0000-1.00.-1.00.a ns-1.0000-l-00+ih-IhQOrub0.9997-0.99.-0.99.eps1,00006-031.000.1000.i100100100k202020壬!1191919X-1.0001-1.00 uh-L00.y1,0000*LQ0.yi1.0000-1.00 bib”1*00.“疋1,0000-LOOu-LOO.,.图3-3计算结果(.;:=0.001)迭代次数增加到 19 次,最优点 x二-1.0001,-二(-1.0001)-(-1) =0.0001 可见计算精度进一步提高,更加接近理论值。所以,在计算机性能允许的前提下, 解决

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论