数值分析第一次程序题.docxVIP

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

数值分析第一次程序题题目:病态线性方程组的求解理论分析表明,数值求解病态线性方程组很困难。考虑求解如下的线性方程组的求解Hx = b,期中H是Hilbert矩阵,,,i,j = 1,2,…,n估计矩阵的2-条件数和阶数的关系对不同的n,取,分别用Gauss消去,Jacobi迭代,Gauss-seidel迭代,SOR迭代和共轭梯度法求解,比较结果。结合计算结果,试讨论病态线性方程组的求解。解答过程1.估计矩阵的2-条件数和阶数的关系矩阵的2-条件数定义为:,将Hilbert矩阵带入有:调用cond(H)函数对其进行计算,取阶数n = 500,可得从1阶到500阶的2-条件数,以五位有效数字输出,其中前10项见表1。表1. 前十阶Hilbert矩阵的2-条件数阶数123452-条件数119.281524.061.5514e+0044.7661e+005阶数6789102-条件数1.4951e+0074.7537e+0081.5258e+0104.9315e+0111.6025e+013从表1可以看出,随着阶数每递增1,Hilbert矩阵的2-条件数都至少增加一个数量级,但难以观察出明显的相依规律。故考虑将这些数据点绘制在以n为横轴、Cond(H)2为纵轴的对数坐标系中,生成结果如图1。 图1.不同阶数(前50阶)下Hilbert矩阵的2-条件数分布图2.不同阶数(前500阶)下Hilbert矩阵的2-条件数分布由图可见,当维数较小时,在y-对数坐标系中cond(H)与n有良好的线性关系;但n超过12后,线性趋势开始波动,n超过14后更是几乎一直趋于平稳。当n较大时,H矩阵已经接近奇异,计算结果可能是不准确的。通过查阅相关资料,我找到了造成这种现象的原因:在matlab中,用inv函数求条件数过大的矩阵的逆矩阵将是不可靠的。而调用系统自带的专门对Hilbert矩阵求逆的invhilb(n)函数则不存在这个问题,但当n大于200时仍然无法计算出现Inf的提示,生成结果如图3。图3. 修正后的不同阶数(前200阶)下Hilbert矩阵的2-条件数分布简便起见,取n不大于200的项进行线性拟合,结果如图4。图4 200阶Hilbert矩阵2-条件数的线性拟合由拟合结果知,Cond(H)与n的关系为:Log(cond(H)) = 3.5191n - 5.0634 其线性相关系数r=1,可见二者具有较好的线性关系。这就是对Hilbert矩阵的-2条件数与其阶数n的关系估计。可见Hilbert矩阵的2-条件数会随其阶数n的增加呈指数增大趋势,因此当n较大时Hilbert矩阵将是严重病态的,甚至导致matlab中inv求逆运算失真。2.对不同的n,采用各种方法求解方程首先对几种算法作简要说明:a、matlab算法采用分量形式进行计算,以避免矩阵求逆计算所带来的误差b、除Jacobi迭代以外不设迭代次数上限,因为GS法与SOR法均可收敛c、SOR函数中自动寻找最优松弛因子,然后以最优因子进行求解d、迭代法设定终止计算精度为,本实验中误差定义为b-H*x的模,所得计算结果以16位有效数字输出e、分别取n = 2,5,10,20,50,对计算结果进行比较,进行比较的内容有:迭代次数和迭代结果x与真值x*差的最大值即(x-x*)的无穷范数具体内容详见表2~表6。表2. n=2的计算结果求解方法迭代矩阵谱半径p;是否收敛迭代次数N解向量x误差eGAUSS消元——1.0000000000000000.9999999999999995.551115123125783e-016Jacobi迭代0.866025403784439收敛1640.999999999943112 0.9999999999431115.688938209402750e-011GS迭代0.75收敛741.000000000378829 0.9999999994317575.682433412701471e-010SOR迭代0.35()收敛701.000000000322447 0.9999999992900287.099717480585355e-010CG迭代—收敛21.000000000000003 1.0000000000000024.325892909233043e-015从表2可看出,n=2时,四种迭代法都能够收敛,迭代次数最大为e+2量级(J法),最小仅要2次(CG法),并且五种解法都能给出非常精确的结果,最大误差为e-10量级(GS法)。表3 n=5的计算结果求解方法迭代矩阵谱半径p;是否收敛迭代次数N解向量x误差eGAUSS消元——0.999999999999992 1.000000000000002 1.000000000000387 0.99999999999899

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档