第一范文网 - 专业文章范例文档资料分享平台

用matlab实现最速下降法_牛顿法和共轭梯度法求解实例

来源:用户分享 时间:2025/6/4 17:32:22 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

用matlab实现最速下降法_牛顿法和共轭梯度法求解实例

实验的题目和要求 一、所属课程名称, 最优化方法 二、实验日期,

2010年5月10日~2010年5月15日 三、实验目的

掌握最速下降法,牛顿法和共轭梯度法的算法思想,并能上机编程实现相应的算法。

二、实验要求

用MATLAB实现最速下降法,牛顿法和共轭梯度法求解实例。 四、实验原理 最速下降法是以负梯度方向最为下降方向的极小化算法,相邻两次的搜索方向是互相直交的。牛顿法是利用目标函数在迭代点f(x)处的Taylor展开式作为模型函数,并利用这个二次模型函数的极xk

小点序列去逼近目标函数的极小点。共轭梯度法它的每一个搜索方向是互相共轭的,而这些搜索方向仅仅是负梯度方向与上一次接d,gkk待的搜索方向的组合。 dk,1

五,运行及结果如下: 最速下降法:

题目:f=(x-2)^2+(y-4)^2 M文件:

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; end R=[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; end Mini=(a+b)/2; 输入:

[R,n]=steel(0,1,0.0001)

R = 1.99999413667642 3.99999120501463 R = 1.99999413667642 3.99999120501463 n = 1

用matlab实现最速下降法_牛顿法和共轭梯度法求解实例.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c7zms0969vd0vngk58yua7wp9920csk00ztq_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top