(智能制造大作业.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(智能制造大作业

一、用最速下降法、沿直线最小化法、牛顿法、共轭梯度法求解方程组1、实验目的:了解最速下降法、沿直线最小化法、牛顿法、共轭梯度法的思路及求解过程,比较四种方法的优缺点,提高Matlab编程能力。2、实验要求:已知线性方程组,应用最速下降法、沿直线最小化法、牛顿法、共轭梯度法在Matlab软件中编程求解方程组的解。3、实验原理:3.1 最速下降法:从某个初始点 出发,沿在点处的负梯度方向求得的极小值点, 即 然后从出发,重复上面的过程得到。如此下去,得到序列{}可以证明,从任一初始点 出发, 用最速下降法所得到的序列{}均收敛于问题使最小化的解,也就是方程组的解。其收敛速度取决于,其中 ,分别为A的最小,最大特征值。最速下降法迭代格式:给定初值,按如下方法决定:3.2 共轭梯度法:其基本步骤是在点 处选取搜索方向, 使其与前一次的搜索方向 关于共轭,即:然后从点 出发,沿方向求得的极小值点 , 即:如此下去, 得到序列{}。不难求得的解为:注意到的选取不唯一,我们可取:由共轭的定义可得:共轭梯度法的计算过程如下:第一步:取初始向量, 计算第步:计算3.3 牛顿法: 牛顿法的原理是求的二次近似的驻点。求二次函数对的梯度并设它为零,则有:求解得:于是可以将牛顿法定义为:3.4 沿直线最小化法:选择学习速度的另一种方法是用使每次迭代的性能指数最小化。即选择使下式最小化:上式对的导数为:求出为:其中为在的赫森矩阵:4、方程题目:5、实验内容:5.1 沿直线最小化: %沿直线最小化法clear[x1,x2]=meshgrid([-1:0.05:1]);f=2*x1.^3+x2.^2+3*x1.*x2^2; %给定的函数contour(x1,x2,f,20); %画出函数的20条轮廓线A=[2 1;1 2];x=[0.3 -0.5] ; %迭代的初始值x(:,1)=[0.3 -0.5]; %把迭代初始值赋值给矩阵以作记录g(:,1)=[2*x(1,1)+x(2,1) x(1,1)+2*x(2,1)];%下降的方向p(:,1)=-g(:,1); %初始值a(1)=-dot(g(:,1),g(:,1))/(p(:,1)*A*p(:,1)) x(:,2)=x-a(1)*p(:,1) for i=2:5g(:,i)=[2*x(1,i)+x(2,i) x(1,i)+2*x(2,i)]; b(i)=dot(g(:,i),g(:,i))/dot(g(:,i-1),g(:,i-1)); p(:,i)=-g(:,i); a(i)=-dot(g(:,i),g(:,i))/(p(:,i)*A*p(:,i));x(:,i+1)=x(:,i)-a(:,i)*p(:,i); %记录迭代点if x(:,i)==x(:,i+1)%退出循环的条件breakend endx %打印迭代点的值hold onplot(x(1,:),x(2,:),g*,x(1,:),x(2,:)); %画出迭代收敛的轨迹title(沿直线最小化) hold off 图1 沿直线最小化法5.2 共轭梯度法:%利用梯度下降法求解轨迹路径clear[x1,x2]=meshgrid([-1:0.05:1]);f=2*x1.^3+x2.^2+3*x1.*x2^2; %给定的函数contour(x1,x2,f,20); %画出函数的20条轮廓线A=[2 1;1 2];x=[0.3 -0.5] ; %迭代的初始值x(:,1)=[0.3 -0.5]; %把迭代的初始值赋值给矩阵以作记录g(:,1)=[2*x(1,1)+x(2,1) x(1,1)+2*x(2,1)]; %下降方向p(:,1)=-g(:,1); %初始值a(1)=-dot(g(:,1),g(:,1))/(p(:,1)*A*p(:,1)) x(:,2)=x-a(1)*p(:,1) for i=2:5g(:,i)=[2*x(1,i)+x(2,i) x(1,i)+2*x(2,i)]; b(i)=dot(g(:,i),g(:,i))/dot(g(:,i-1),g(:,i-1)); p(:,i)=-g(:,i)+b(i)*p(:,i-1); a(i)=-dot(g(:,i),g(:,i))/(p(:,i)*A*p(:,i));x(:,i+1)=x(:,i)-a(:,i)*p(:,i); %记录迭代点if x(:,i)==x(:,i+1)%退出循环的条件breakend endx %打印迭代点的值hold onplot(x(1,:),x(2,:),g*,x(1,:),x(2,:)); %画出迭代点的轨迹title(共轭梯度法) hold off 图2 共轭梯度5.3 最速下降法%最速下降法clear[x1,x2]=meshgrid([-1:0.05:1]);f=

文档评论(0)

saity3 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档