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

    用MATLAB实现最速下降法-牛顿法和共轭梯度法求解实例(共5页).doc

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

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

    用MATLAB实现最速下降法-牛顿法和共轭梯度法求解实例(共5页).doc

    精选优质文档-倾情为你奉上 实验的题目和要求 一、 所属课程名称: 最优化方法二、 实验日期: 2010年5月10日2010年5月15日三、 实验目的掌握最速下降法,牛顿法和共轭梯度法的算法思想,并能上机编程实现相应的算法。二、实验要求用MATLAB实现最速下降法,牛顿法和共轭梯度法求解实例。四、实验原理最速下降法是以负梯度方向最为下降方向的极小化算法,相邻两次的搜索方向是互相直交的。牛顿法是利用目标函数在迭代点处的Taylor展开式作为模型函数,并利用这个二次模型函数的极小点序列去逼近目标函数的极小点。共轭梯度法它的每一个搜索方向是互相共轭的,而这些搜索方向仅仅是负梯度方向与上一次接待的搜索方向的组合。五运行及结果如下: 最速下降法:题目:f=(x-2)2+(y-4)2M文件:function R,n=steel(x0,y0,eps)syms x;syms y;f=(x-2)2+(y-4)2;v=x,y;j=jacobian(f,v);T=subs(j(1),x,x0),subs(j(2),y,y0);temp=sqrt(T(1)2+(T(2)2);x1=x0;y1=y0;n=0;syms kk;while (temp>eps) d=-T; f1=x1+kk*d(1);f2=y1+kk*d(2); fT=subs(j(1),x,f1),subs(j(2),y,f2); fun=sqrt(fT(1)2+(fT(2)2); Mini=Gold(fun,0,1,0.00001); x0=x1+Mini*d(1);y0=y1+Mini*d(2); T=subs(j(1),x,x0),subs(j(2),y,y0); temp=sqrt(T(1)2+(T(2)2); x1=x0;y1=y0; n=n+1;endR=x0,y0调用黄金分割法:M文件:function Mini=Gold(f,a0,b0,eps)syms x;format long;syms kk;u=a0+0.382*(b0-a0);v=a0+0.618*(b0-a0);k=0;a=a0;b=b0;array(k+1,1)=a;array(k+1,2)=b;while(b-a)/(b0-a0)>=eps) Fu=subs(f,kk,u); Fv=subs(f,kk,v); if(Fu<=Fv) b=v; v=u; u=a+0.382*(b-a); k=k+1; elseif(Fu>Fv) a=u; u=v; v=a+0.618*(b-a); k=k+1; end array(k+1,1)=a;array(k+1,2)=b;endMini=(a+b)/2;输入:R,n=steel(0,1,0.0001)R = 1.642 3.463R = 1.642 3.463n = 1牛顿法:题目:f=(x-2)2+(y-4)2M文件:syms x1 x2; f=(x1-2)2+(x2-4)2; v=x1,x2; df=jacobian(f,v); df=df.' G=jacobian(df,v); epson=1e-12;x0=0,0'g1=subs(df,x1,x2,x0(1,1),x0(2,1);G1=subs(G,x1,x2,x0(1,1),x0(2,1);k=0;mul_count=0;sum_count=0; mul_count=mul_count+12;sum_count=sum_count+6; while(norm(g1)>epson) p=-G1g1; x0=x0+p; g1=subs(df,x1,x2,x0(1,1),x0(2,1); G1=subs(G,x1,x2,x0(1,1),x0(2,1); k=k+1; mul_count=mul_count+16;sum_count=sum_count+11; end; k x0 mul_count sum_count结果:k = 1x0 = 2 4mul_count = 28sum_count = 17共轭梯度法:题目:f=(x-2)2+(y-4)2M文件:function f=conjugate_grad_2d(x0,t)x=x0;syms xi yi af=(xi-2)2+(yi-4)2;fx=diff(f,xi);fy=diff(f,yi);fx=subs(fx,xi,yi,x0);fy=subs(fy,xi,yi,x0);fi=fx,fy;count=0;while double(sqrt(fx2+fy2)>t s=-fi; if count<=0 s=-fi; else s=s1; end x=x+a*s; f=subs(f,xi,yi,x); f1=diff(f); f1=solve(f1); if f1=0 ai=double(f1); else break x,f=subs(f,xi,yi,x),count end x=subs(x,a,ai); f=xi-xi2+2*xi*yi+yi2; fxi=diff(f,xi); fyi=diff(f,yi); fxi=subs(fxi,xi,yi,x); fyi=subs(fyi,xi,yi,x); fii=fxi,fyi; d=(fxi2+fyi2)/(fx2+fy2); s1=-fii+d*s; count=count+1; fx=fxi; fy=fyi;endx,f=subs(f,xi,yi,x),count输入:conjugate_grad_2d(0,0,0.0001)结果:x = 0.785 -0.273f = 0.176count = 10ans = 0.176六、 结论如下:最速下降法越接近极小值,步长越小,前进越慢。牛顿法要求二阶导数,计算量很大。共轭梯度法是介于最速下降和牛顿法之间的算法,克服了最速下降法的收敛速度慢的缺点,又避免了牛顿法的大计算量。专心-专注-专业

    注意事项

    本文(用MATLAB实现最速下降法-牛顿法和共轭梯度法求解实例(共5页).doc)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

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




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

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

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

    收起
    展开