黄金分割法机械优化设计

上传人:cn****1 文档编号:487429688 上传时间:2023-03-06 格式:DOCX 页数:9 大小:197.65KB
返回 下载 相关 举报
黄金分割法机械优化设计_第1页
第1页 / 共9页
黄金分割法机械优化设计_第2页
第2页 / 共9页
黄金分割法机械优化设计_第3页
第3页 / 共9页
黄金分割法机械优化设计_第4页
第4页 / 共9页
黄金分割法机械优化设计_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《黄金分割法机械优化设计》由会员分享,可在线阅读,更多相关《黄金分割法机械优化设计(9页珍藏版)》请在金锄头文库上搜索。

1、机械优化设计黄金分割法班级:学硕一班学号:_姓名:黄金分割法黄金分割法也成为0.618法,是一种应用广泛的一维搜索方法。该方法对函数f (a )无 特殊要求,函数甚至可以是不连续的。黄金分割法是利用序列消去原理,通过不断缩小单峰区间长度,使搜索区间不断缩小 从而不断逼近目标函数极小点的一种优化方法。一、基本思想在搜索区间a,b内必须按下述规则对称地取=b 一九(b - a)a2 = a +入(b 一 ,这两点把区间分为三段,计算插入点的函数值,如图1-1所示。根据 单峰函数的性质,通过比较函数值大小,删去其中一段,使搜索区间缩小。在新的区间继续 上面的过程,使搜索区间不断缩小,当搜索区间无限缩

2、小时,便可得到函数在极小点附近的 近似解。在第一次缩小区间后,新区间只需要再插入一点即可形成区间新三段。按比例九缩小, 新区间三段与原区间三段具有相同的比例分布,每次缩小所得新区间长度与原区间长度之比 成为区间收缩率九。设初始区间长度为L,为了保证区间收缩率不变,第一次收缩后的长度为九L,第二次收缩后的长度为L(1 一九),而第二次的收缩率应该相等。九L L = (1 九)入厶T九2 = (1 九)解次方程并舍去负根,就可得到到二厉一12 = 0.618。所以,a和a两点的取法为: 12a = b 一 0.618(b 一 a) , a = a + 0.618(b 一 a ) 。所以,对于黄金分

3、割法,适用于设计变量少的优化问题中的一维搜索。二、黄金分割法的搜索过程1)给出初始搜索区间及收敛精度,将九赋以0.6182 )按坐标点计算公式计算a二b - 0.618(b - a), f二f (a ),1 1 1a = a + 0.618(b - a), f二f (a );并计算其对应的函数值。2 2 23)根据区间消去法原理缩短搜索区间。为了能用原来的坐标点计算公式,需进行区间 名称的代换,并在保留区间中计算一个新的试验点及其函数值。如果f f,则新区间=a ,b1 2 1令 a a,a a,f f,记 N0=1 ;如图 2-1 所示。2 1 2 1 2畑畑畑畑图 2-14)检查区间是否缩

4、短到足够小和函数值收敛到足够精度,如果收敛条件满足,则取最后两试验点的平均值作为极小点的数值近似解。如果条件不满足则转向步骤5。5 )产生新的插入点,然后再进行新的区间缩小。总体如图2-2所示。图 2-2从迭代过程可以看出,除第一次缩小区间长度时需要在选定的单峰区间内增加两个点 外,以后每次缩小区间长度只需要增加一个点,因此区间长度缩小次数应等于缩小区间长度 所增加的点数减一。例如,为了达到规定的收敛精度所需要增加的点数为n,则为达到规定 的收敛精度所需缩小区间长度的次数k=n-l。第一次缩小后新区间长度a二0.618(b - a)第二次缩小后新区间长度b a = 0.618(b a)二0.6

5、182(b a)21第k次缩小后新区间长度bk - a - 0618(bki - a)- 0618k (b - a)设k次缩小后区间长度已缩到足够小,满足规定的收敛精度,即b 一 a = 0.618 k (b 一 a) +1ln0.618编程计算时,可以根据预先规定的精度求得所需插入的点数n,然后用n作为终止迭 代的标志。、算法框图四、机械优化的算例某公司要预制一零件工具箱,初始设计为使用一块长为4m,宽为3m的长方形铁板作 为原材料,利用这块铁板按照一定比例分配,围成一个矩形制成工具箱的4个侧面,应该如 何设计才能使工具箱的底面积最大?万案-一一二三四五长(a)0.30.611.21.8宽(

6、b)1.71.410.80.2面积(S)0.510.8410.960.36根据方案可以看到:选取不同的长宽比例,会影响到底面积的大小,并且底面积的大小类似正态分布的图形也就是会出现一个峰值,因此可以使用黄金分割法进行简单的运算。 如图: 我们可以先设围成工具箱底面的矩形的长为X,因此宽则为2-X,而工具 箱的底面积为S,这我们可以把题目传化为以下模型: 目标函数:S=(2-X)*X; 约束条件:0WXW2; 设置搜索区间为:a,b=0,2,迭代精度为0.000001实现程序#include#include/#include StdAfx.h#define f(x) (2-x)*xint mai

7、n()double F1,F2,F3,FP,x1,x2,x3,xp,a,b,e; int n;n=1;printf(设| 置目标函数为f(x) = (2-x) *xn);printf(迭代精度:e=);scanf(%lf,&e);printf(搜索左区间:a=); scanf(%lf,&a);printf(搜索右区间:b=); scanf(%lf,&b);printf(n abx1x2F1F2n);x1=b-0.618*(b-a);x2=a+0.618*(b-a);F1=-f(x1);F2=-f(x2);printf(%d %.4lf%.4lf%.4lf%.4lf%.4lf%.4lfn,n,a

8、,b,x1,x2,F1,F2) ;n=n+;doif(F1= e&fabs(F2-F1)/F2)= e); xp=(a+b)*0.5;FP=f(xp);printf(其中为迭代次数,最后求得和如下所示:n);printf(x*=%.5lf F*=%.5lfn,xp,FP);double c,d;c=xp;d=2-c;printf(取长a=%.5lf 宽b=%.5lfn,c,d);prin tf(所围成的最大底面积S=%.5lfn,FP); getchar();scanf(%lf,&e);运行结果: 输入迭代精度0.000001。 如图 3-1所示。o丨耳C:UsersacerDeskto伉化设

9、计JKYHSJ.DebugXYHSJ exebx2Fl0.00090.7t435.76400.76430-76430.7fc43Q.J4430.94432.0000 2.0OSQ 1.2362 1.2360 1.05581.SE571.S555?1.S5570.7S401.23G61.05581.05570.94430.9430.9443B.98E81.23601.22G21.236;?1.05E8 1 -阳 7 0.9443 .9868 S.9869-09443-9.9442-0.996?-0.V96V-0.99fi9-0.99G9-0U?96? -0-9998F2-6.?443-G;j94

10、42-6?443-0l?969-G:j?9G9-6l?998-6.9998最求得x*和F戚讣所示:1.0OH31 F-l.090B6a=l. 0KB01 宽b=O/卵沾图 3-1 精度为 0.000001 当精度为0.1 时,所得结果如图3-2 所示。Fl -09443 -9.9442x21.23601.22G2a.b8.000920.7t432.SOG0F2-6.?443 -G-j?442-C:U se riacerDes Icto pfyjwUt.1xH-JXYHSJ Debug JXYHSJ exef 1 0 2 d - 1 I. s a b7.-._-e i ffl县左右 置代xl0.

11、76461.23GG 最后求潯甘和环虻”所示:*=1.38200 F*=B.8S408諏卡=仁3眈删 Sh=B.fl8fi0务圉成的最大庭面S-0.854OB=(回图 3-2 精度为 0.1 当精度为 0.00001 时,所得结果如图3-3 所示。回X10.7S4S1.23G01.0558 1.05S7 H.94430.0009O.7t40Q.76400.76430.7643其中联选代次数:最后求得“4如下所示;h*=Q.?0989 F*=O.99188型长a-e.?0989 b=l.09011.圻围成的最大底面和Z 一咖朋x21.23601.22G21.23601.05E81.05E7F2-

12、G;j?442-6?443-6l?969Fl -09443 -9.9443 -0.996?-0.99fi9f X ) =*xJg:_e =0.00001 区耳欝 2间:騒b2 .脚丽2.0OSQ1.23621.23601.BS5R图 3-3 精度为 0.00001当精度为 0.1 时,迭代次数只有2 次;所得到的值精度一般;当精度为 0.00001时,迭代次数只有5 次;所得到的值精度比0.1所得的高; 当精度为 0.000001时,迭代次数有8 次;所得到的值精度较高,接近结果; 精度越高,则越接近最优解。验算黄金分割法的可行性:由 S=(2-X)*X=2X-X*X;求导后得到S2-2*X,另导数等于0,求的当X等于1的时候,面积S可以取最大值1。 与黄金分割法最后计算出来的面积相差甚少。因此,可验证黄金分割法可行。总结: 通过学习机械优化设计这门课。我学习到了很多关于机械设计的方法,有传统的和 现代的。并且通过上课和训练学习了多种优化方法的思想和步骤。在此次设计中,由于对 C 语言使用还不是很熟悉,所以程序设计上并不是很完美,以后还要多多训练。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号