网站大量收购闲置独家精品文档,联系QQ:2885784924

刘振锋最终修改版.docVIP

  1. 1、本文档共15页,可阅读全部内容。
  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文档。上传文档
查看更多
刘振锋最终修改版

数值计算方法实践作业 学 院: 材料学院 姓 名: 刘振锋 学 号: 2120121234 2012年12月 第一题:选用一种编程语言实现列主元Gauss消去法,并把该程序用于一般矩阵的求逆。具体算例可以参考书P61.第1题,也可以自己设计算例。 对算法的叙述 在解答低阶稠密矩阵时,如果计算过程中没有舍入误差,则此种方法通过有限步四则运算可求的方程组的精确解,但实际计算中由于舍入误差的存在和影响,这种方法也只能求得方程组的近似解。但在采取高斯消去法解方程组时,当采用绝对值很小的主元素时,可能导致计算结果的失败,故在消去法中应避免采用绝对值很小的主元素。对于一般的线性方程组,需要引进选主元的技巧,即在高斯消去法的每一步应该在系数矩阵或消元后的低价矩阵中选取绝对值最大的元素作为主元素,保持乘数,以便减少计算过程中舍入误差对计算解的影响。 列主元Gauss消去法的基本思想是在每次消元前,在要消去未知数的系数中找到绝对值最大的系数作为主元,通过方程对换将其换到对角线上,然后进行消元。 2.列主元Gauss消去法的步骤: (1)先在增广矩阵[A,b]的第1列中选取绝对值最大的元,该元素位于第k行,则将第1行与第k行替换。记第一次互换后的矩阵为[A(1),b(1)],然后进行第一次消元,得矩阵[A(2),b(2)]。 (2)在经过第一次消元后矩阵[A(2),b(2)]的第二列中选绝对值最大的主元,比如第j行,然后将[A(2),b(2)]的第2行与第j行互换,再进行第二次消元,得矩阵[A(3),b(3)]。 (3)在经过第2次消元后的矩阵[A(i),b(i)]的第i列中选绝对值最大的主元,比如第l列,然后互换,再进行第i次消元。 (4)如此经过n-1步,[A,b]被化成上三角矩阵,最后由回代过程求解。 算法描述: 对于做到(4)。 按列选主元,即确定使 如果,则为奇异矩阵,停止计算。 如果,则交换第行与第行元素。 消元计算: 回代计算: 3.试用MATLAB软件编程实现矩阵的列主元素高斯消去法,并求Pascal矩阵的逆矩阵A-1。 具体算例: 【1 1 1 1 ;2 1 1 1 ;3 2 1 1 ;4 3 2 1 】 计算结果x1=0.999999;x2=1.000000;x3=1.0000002;x4=1.000000 A-1=【-1,1,0,0;1,-2,1,0;0,1,-2,1;1,0,1,-1】 总结 列主元素消去法的提出有效的控制了舍入误差的扩散。列主元素计算精度虽然不是最高的,但相对而言,其程序简单,计算时间短,工作量大为减少,且计算经验与理论分析均表明,它同样具有良好的数值稳定性,故列主元素法是求解中小型稠密线性方程组的最好方法之一。 把建立好的数学模型用计算机描述出来,这不仅使问题变得简单化,还大大的缩减了计算所需的时间,体现了数学与计算机的紧密结合。在以后的工作生活中我们要学会善于利用计算机与数学的关系,把复杂的问题简单化,减少计算时间,提高工作的效率。 程序 clear clc A=[1 1 1 1 ;2 1 1 1 ;3 2 1 1 ;4 3 2 1 ];B=[4;6;8;11]; n=length(B); X=zeros(n,1); c=zeros(1,n); d1=0; for i=1:n-1 max=abs(A(i,i)); m=i; for j=i+1:n if maxabs(A(j,i)) max=abs(A(j,i)); m=j; end end if(m~=i) for k=i:n c(k)=A(i,k); A(i,k)=A(m,k); A(m,k)=c(k); end d1=B(i); B(i)=B(m); B(m)=d1; end for k=i+1:n for j=i+1:n A(k,j)=A(k,j)-A(i,j)*A(k,i)/A(i,i)

文档评论(0)

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

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

1亿VIP精品文档

相关文档