研究生优化理论各种算法代码及运行结果.doc

研究生优化理论各种算法代码及运行结果.doc

  1. 1、本文档共35页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
研究生优化理论各种算法代码及运行结果

机械优化设计 目录: 1.1 进退法 - 3 - 1.1.1进退法的原理和流程图 - 3 - 1.1.2进退法程序代码 - 4 - 1.1.3程序的调试及运行结果 - 5 - 1.2 黄金分割 - 5 - 1.2.1黄金分割法的原理和流程图 - 5 - 1.2.2黄金分割法的程序代码 - 6 - 1.2.3程序的调试及运行结果 - 7 - 1.3 二次插值 - 8 - 1.3.1 二次插值确定搜索区间的原理和流程图 - 8 - 1.3.2二次插值的程序代码 - 8 - 1.3.3程序的调试及运行结果 - 9 - 1.4 牛顿型法 - 10 - 1.4.1牛顿型法的求极值的原理及其流程图 - 10 - 1.4.2牛顿型法的程序代码 - 11 - 1.4.3程序的调试及运行结果 - 13 - 1.5 鲍威尔法 - 14 - 1.5.1鲍威尔法的流程图 - 14 - 1.5.2鲍威尔法的程序代码 - 15 - 1.5.3程序的调试及运行结果 - 17 - 1.6 复合型法 - 17 - 1.6.1复合型法的求极值的原理及其流程图 - 17 - 1.6.2复合型法的程序代码 - 19 - 1.6.3程序的调试及运行结果 - 22 - 1.7 内点惩罚函数法 - 22 - 1.7.1内点惩罚函数法的求极值的原理及其流程图 - 22 - 1.7.2内点惩罚函数法的程序代码 - 23 - 1.7.3程序的调试及运行结果 - 25 - 2.1 圆柱齿轮减速器的优化计算 - 25 - 2.1.1圆柱齿轮减速器优化问题的背景 - 25 - 2.1.2圆柱齿轮减速器的优化设计 - 26 - 2.1.2.1目标函数的确定 - 26 - 2.1.2.2约束条件的确定 - 27 - 2.1.3求解优化问题的程序代码 - 31 - 2.1.4程序的调试及运行结果 - 32 - 3.1体会及建议 - 33 - 附录 - 34 - (1)fmincon函数 - 34 - 1.1 进退法 1.1.1进退法的原理和流程图 进退法是用来确定搜索区间(包含极小值点的区间)的算法,其理论依据是:为单谷函数(只有一个极值点),且为其极小值点的一个搜索区间,对于任意,如果 图1-1进退法程序框图 ,则为极小值的搜索区间,如果,则为极小值的搜索区间。不断重复即可得到所需的区间。 1.1.2进退法程序代码 h=input(请输入步长的值:); a1=input(请输入a1的值:); y1=xsf(a1); a2=h; y2=xsf(a2); if y2y1 h=-h; a3=a1; y3=y1; a1=a2; y1=y2; a2=a3; y2=y3; end a3=a2+2*h; y3=xsf(a3); while y2y3 h=2*h; a1=a2; y1=y2; a2=a3; y2=y3; a3=a2+2*h; y3=xsf(a3); end a1 a2 a3 y1 y2 y3 子程序: function y=xsf(a) y=a^4-a^2-2*a+5; 在进退法确定根所在的区间里面,我们所取的算例是y=a^4-a^2-2*a+5,并且取 图1-2 . 进退法确定根所在的区间的程序运行结果 1.2 黄金分割 1.2.1黄金分割法的原理和流程图 黄金分割法是建立在区间消去法原理的基础上的试探方法,即在搜索区间[a,b]内适当插入两点、、并计算其函数值。、将区间分成三段。应用函数单谷性质,通过函数值大小的比较,删去其中一段,使搜索区间得以缩短。然后再在保留下来的区间上作同样的处置,如此迭代下去,使搜索区间无限缩小,从而得到极小点的数值近似解。 1.2.2黄金分割法的程序代码 a=input(请输入a的值:) b=input(请输入b的值:) e=input(请输入e的值:) syms s,a,b,i i=1; h=0.618; a1=b-h*(b-a); y1=hjfg(a1); a2=a+h*(b-a); y2=hjfg(a2); while i==1 switch y1y2 case 1 a=a1; a1=a2; y1=y2; a2=a+h*(b-a); y2=hjfg(a2); if abs((y2-y1)/y2)e i=0 end case 0 图1-3 黄金分割法程序框

文档评论(0)

haihang2017 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档