高斯消元法-实验报告.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文档。上传文档
查看更多
华中科技大学数值分析实验报告(实验6.1) PAGE \* MERGEFORMAT3 华 中 科 技 大 学 数值分析实验报告 系、年级 研究生院2012级 学 号 姓 名 类 别 硕 士 2013年5月6日 实验6.1 实验要求: 根据教材实验6.1做出相应改编:分别使用Gauss消元、列选主元。全选主元的方法求解线性方程组,分别比较三种消元方法的结果和算法的区别,并说明主元的选取在Gauss消元的中的作用。 问题提出: Gauss消去法是我们在线性代数中已经熟悉的。但由于计算机的数值运算是在一个有限的浮点数集合上进行的,如何才能确保Gauss消去法作为数值算法的稳定性呢?Gauss消去法从理论算法到数值算法,其关键是主元的选择。主元的选择从数学理论上看起来平凡,它却是数值分析中十分典型的问题。一般来说书本上采用的列选主元的办法对其线性方程组进行求解的,那么我们是否可以选择一种行列都选取主元消去的办法来减小相应的误差呢?全主元消元法和列主元消元法一样都是由高斯消元法演变而来。只不过选取主元的范围有所加大。全选主元相对于列选主元的更加复杂化了,因为在运算的过程中导致了元的位置发生了变化,这样我们就不得不追踪每个元的位置。本次实验就几个问题进行了matlab实验分析,比较几种计算方法的优劣性。 实验内容: 考虑线性方程组 编制一个程序:分别能进行Gauss消去、列选主元Gauss消去、全选主元Gauss消去法进行解线性方程组。对三种算法所得到的结果进行比较,分析三种计算方法的准确性。 具体内容: (1)取矩阵,则方程有解。取n=10、n=20计算矩阵的条件数。分别编写利用matlab编写运算程序,实现Gauss消去、列选主元消去以及全选主元消去的方法。比较三种计算方法的运算结果。在列选主元的过程中分别采用每步消去过程总选取按模最小或按模尽可能小的元素作为主元或每步消去过程总选取按模最大的元素作为主元,结果又如何?分析实验的结果。 1 采用普通Gauss消元法进行计算 Gauss消去法的基本思想是,通过将一个方程乘或除某个数以及两个方程相加减这两种运算手续,逐步减少方程组中变元的数目,最终使某个方程只含有一个变元,从而得出所求的解。对于Ax=b,Gauss消去法的求解思路为: 若a11(1)≠0,先让第一个方程组保持不变,利用它消去其余方程组中的x1,使之变成一个关于变元 按照(1)中的思路继续运算得到更为低阶的方程组。 经过n-1步的消元后,得到一个三角方程。 利用求解公式回代得到线性方程组的解。 根据这个思路编写matlab程序如下: function x=gauss(n) disp(请输入构造的矩阵的阶数(10/20)) n=input(); disp(构造矩阵为A=) A = diag(6*ones(1,n))+diag(ones(1,n-1),1)+diag(8*ones(1,n-1),-1) disp(由A构造出矩阵b=) b = A*ones(n,1) [m,n]=size(A); disp(增广矩阵为:) Ab=[A b] for i=1:n-1 yuan=Ab(i,i); for k=i+1:n Ab(k,i:(n+1))=Ab(k,i:(n+1))-(Ab(k,i)/yuan)*Ab(i,i:(n+1)); end disp(Ab); pause end x=zeros(n,1); x(n)=Ab(n,(n+1))/Ab(n,n); for i=n-1:-1:1 x(i)=(Ab(i,(n+1))-Ab(i,i+1:n)*x(i+1:n))/Ab(i,i); end 取n=10运行的结果为:Ab = 6 1 0 0 0 0 0 0 0 0 7 8 6 1 0 0 0 0 0 0 0 15 0 8 6 1 0 0 0 0 0 0 15 0 0 8 6 1 0 0 0 0 0 15 0 0 0 8 6 1 0 0 0 0 15 0 0

文档评论(0)

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

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

版权声明书
用户编号:5024214302000003

1亿VIP精品文档

相关文档