欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    现代机械优化设计Matlab编程.doc

    • 资源ID:78951851       资源大小:343KB        全文页数:9页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    现代机械优化设计Matlab编程.doc

    现代机械优化设计方法 程 序 指导老师: 学 生: 学 号: 机电工程学院2011年12月一、一维优化问题练习题1、 黄金分割法 黄金分割法的基本思想:黄金分割法是通过不断单峰区间的长度来搜索极小点的一种有效方法,它是搜索区间比例缩小,通过计算比较函数值,以确定取舍区间。黄金分割法程序框图黄金分割法 matlab程序: clcsyms t;f=t2-10*t+36;a=2;b=10;c=a+0.382*(b-a);d=a+0.618*(b-a);f1=subs(f,c);f2=subs(f,d);while(abs(b-a)>=0.01) if(f1>f2) a=c;c=d;f1=f2; d=a+0.618*(b-a);f2=subs(f,d); else if(f1<f2) b=d;d=c;f2=f1; c=a+0.382*(b-a);f1=subs(f,c); else a=c;b=d; c=a+0.382*(b-a); d=a+0.618*(b-a); end endendt=0.5*(b+a)f0=subs(f)结果分析,给出的结果为最优解:,由于定义为单精度类型,故满足了精度要求。Matlab运行结果如下:二、无约束优化问题1、初始点:(1)梯度法梯度法的基本思想:梯度方向就是函数值变化最大的方向,沿着梯度问题,函数值上升最快,而负梯度方向是函数值下降最快的方向,此方法是沿着负梯度方向进行搜索的无约束方法。梯度法程序框图梯度法在matlab程序:(1)function y=fun(x1,x2)y=4*(x1-5)2+(x2-6)2;%此定义子函数,并保存为fun.m文件。(2) clcsyms x1 x2 d;f=4*(x1-5)2+(x2-6)2;fx1=diff(f,'x1');fx2=diff(f,'x2');x1=8;x2=9;for n=1:100 f0=subs(f); f1=subs(fx1); f2=subs(fx2); if(double(sqrt(f12+f22)<=0.) n x1=vpa(x1) x2=vpa(x2) f0=vpa(f0) break; else D=fun(x1-d*f1,x2-d*f2); Dd=diff(D,'d'); dd=solve(Dd); x1=x1-dd*f1; x2=x2-dd*f2; endend %此为梯度法的主函数,并保存为tdf.m文件。经matlab运行结果如下: (2)牛顿法与一维搜索讲的牛顿法公式推导一样,只不过推广到n维。牛顿法收敛速度快。牛顿法程序框图牛顿法在matlab中的程序如下:clcsyms x1 x2;f=4*(x1-5)2+(x2-6)2;fx1=diff(f,'x1');fx2=diff(f,'x2');fx1x1=diff(fx1,'x1');fx1x2=diff(fx1,'x2');fx2x1=diff(fx2,'x1');fx2x2=diff(fx2,'x2');x1=8;x2=9;for n=1:100 f0=subs(f); f1=subs(fx1); f2=subs(fx2); if(double(sqrt(f12+f22)<=0.) n x1=vpa(x1) x2=vpa(x2) f0=vpa(f0) break; else X=x1 x2'-inv(fx1x1 fx1x2;fx2x1 fx2x2)*f1 f2' x1=X(1,1); x2=X(2,1); endend 经matlab运行结果如下:三、约束优化方法内点法基本思想这种方法是将新目标函数定义于可行域内,迭代过程均在可行域内进行,逐步逼近最优点。内点法只能用来求解具有不等式约束的优化问题。1)在可行域内选一个初始点内点X0,初始点应选择一个离约束边界较远的可行点。2)选取适当的罚因子初值r0,降低系数c(0<c<1),计算精度。内点法程序框图Matlab程序:clc;count=0;n=100;r=1;c=0.5;flag=0;x0=3,3'esp=1.0e-5;while(flag=0)&&(count<n) syms x1 x2; f=(x1-2)2+(x2-1)2; g1=x12-x2; g2=x1+x2-2; F=(x1-2)2+(x2-1)2+r*(log(g1)+log(g2); f1=diff(F,x1); f2=diff(F,x2); s=solve(f1,f2,'x1','x2'); x1=s.x1 s.x2' norm=subs(sqrt(x1(1)-x0(1)2+(x1(2)-x0(2)2); if(norm<esp) flag=1; break; end x0=x1; r=c*r; count=count+1;endx1=x0(1)x2=x0(2)f=subs(f)count程序的运行结果:

    注意事项

    本文(现代机械优化设计Matlab编程.doc)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开