稀疏矩阵计算实验报告.docVIP

  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文档。上传文档
查看更多
稀疏矩阵计算实验报告

东北师范大学 稀疏矩阵计算实验报告 姓名: 孙洋 学号: 2015101763 稀疏矩阵计算实验报告 实验名称 稀疏矩阵计算实验 指导教师 李冰玉 姓名 孙洋 年级 研一 学号 2015101763 成绩 实验 稀疏矩阵计算实验 一、实验目的:   1、学习使用matlab编写矩阵计算程序。 2、了解共轭梯度法(CG)和预优共轭梯度法(PCG)的原理和编程方法。 二、实验要求: 1、阐述共轭梯度法(CG)和预优共轭梯度法(PCG)的原理和编程方法。 2、根据共轭梯度法(CG)和预优共轭梯度法(PCG)编写matlab程序,并运行得出结果。 3、Test1: 假定线性方程组Ax=b的系数矩阵A和右端项b分别为 , 显然,此方程的真解为x*=(1,1,…,1)T,应用共轭梯度法求解该线性方程组,迭代64步后得到的近似解满足 画出迭代过程,其中横坐标为迭代步骤k,纵坐标为,这里rk是第k步得到的剩余向量。 Test2: 考虑实验一中的线性方程组,如果我们选取预优矩阵M为A的对角元构成的对角矩阵,即 M=diag(1,2,…,100), 则预优共轭梯度法迭代在13步之后得到的近似解就满足 画出迭代过程,其中横坐标为迭代步骤k,纵坐标为,这里rk是第k步得到的剩余向量。并与实验一的结果作比较。 三、实验原理: 共轭梯度法(CG)是介于最速下降法与牛顿法之间的一个方法,它仅需利用一阶导数信息,但克服了最速下降法收敛慢的缺点,又避免了牛顿法需要存储和计算Hesse矩阵并求逆的缺点,共轭梯度法不仅是解决大型线性方程组最有用的方法之一,也是解大型非线性最优化最有效的算法之一。在各种优化算法中,共轭梯度法是非常重要的一种。其优点是所需存储量小,具有步收敛性,稳定性高,而且不需要任何外来参数。 CG法步骤及格式: 选取步长 选取方向CG法基本格式: =+ =- = = 预优共轭梯度法是将原方程组变形,使其系数矩阵的谱相对集中。简单的说,就是先选择一个适当的对称正定矩阵M,使矩阵M-1A的谱相对集中,在运用共轭梯度法方法到等价的方程组 上即可。PCG法基本格式: =+ =-= 四、实验内容与步骤:   1、实验内容:依照实验原理编共轭梯度法(CG)和预优共轭梯度法(PCG)的程序。   2、实验步骤: 实验程序如下: 程序代码 Test1 a1=1:100; a2=ones(1,99); A=diag(a1)-diag(a2,-1)-diag(a2,1); %形成三对角矩阵A b=0:97; b=[0 b]; b=[b 99]; %形成100行1列矩阵b x0=zeros(100,1); [x0 R err]=CGmethod(A,b,x0); k0=0:64; err R=log10(R); plot(k0,R,r-o) %画出残差向量图 function [x0 R err]=CGmethod(A,b,x0) r0=b-A*x0; p0=r0; %初始梯度 R=norm(r0); k=0; while k64 h=r0*r0; l=p0*A*p0; elpha=h/l; x1=x0+elpha*p0; r1=r0-elpha*A*p0; R=[R norm(r1)]; h1=r1*r1; beta=h1/h; p1=r1+beta*p0; x0=x1; r0=r1; p0=p1; k=k+1; end x=ones(100,1); err=norm(x0-x); End Test2 a1=1:1:100; a2=ones(1,99); A=diag(a1)-diag(a2,-1)-diag(a2,1); %形成三对角矩阵A b=0:98; b(99)=99; %形成100行1列矩阵b b=[0 b]; x0=zeros(100,1); C=d

文档评论(0)

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

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

1亿VIP精品文档

相关文档