实验报告(列主消元解方程).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文档。上传文档
查看更多
实验报告 课程名称: _ 计算方法________________指导老师:______辛焕海______成绩:__________________ 实验名称:_______列主元消去法求解方程组____________实验类型: 上机实验________ 引言(背景等介绍) 问题描述(如目的等)(必填) 内容和原理(必填) 操作方法和实验步骤(流程图等)(必填) 实验数据记录和处理 实验结果与分析(必填) 讨论、心得 引言 利用克莱姆法则解方程组,计算量特别大。对于维数较高的矩阵,计算机也无能为力。因此在实际解方程组时,大多应用高斯消去法,乘法次数是维数n的三次方级别。而高斯消去法是“一锤子买卖”,对于不同的方程组解b向量,该方法又要重新进行消去,计算重复较慢。因此,将A矩阵实现L、U分解能很好地保留中间过程,对于不同的b只需作矩阵乘法即可得到解x.。当主对角元有0元素或绝对值较小元素时,高斯消去法会出现很大的数值误差,因此要对列元素进行比较,每次消去前作行交换,将绝对值最大的元最为除数,这就得到了列主元消去法。应用matlab编程,得到求解方程组的过程,计算十分方便。 问题表述 用列主元消去法求解方程组 计算解X 输出矩阵L U P 内容和原理 首先将A进行分解,使得PA=LU 对A矩阵第i列(i=1,2,3’’’n)依次进行判别,每次选择出绝对值最大的值作为分母,对A实行行变换,用P矩阵记录变化。再利用公式A(t,i)=A(t,i)/A(i,i) 在原矩阵上进行修改,再输出下三角矩阵L和上三角矩阵U,最后利用P、L、U对b进行计算,解出X向量。 流程图表述如下 实验步骤和实验结果 打开matlab程序 2. 编制程序源代码,如下图 3、运行结果如下 因此,该程序源代码记录如下 clear all A=input(输入需要分解的矩阵); b=input(输入方程的解); b=b; n=size(A); L=eye(n); U=zeros(n); P=eye(n); for(i=1:n-1) temp=abs(A(i,i)); x=i; for(t=i:n) %找出最大元,实现行交换,P记录行交换% if abs(A(t,i))temp temp=abs(A(t,i)); x=t ;end;end temp2=A(i,:); A(i,:)=A(x,:); A(x,:)=temp2; temp2=P(i,:); P(i,:)=P(x,:); P(x,:)=temp2; for(t=i+1:n) %在原矩阵上变换得到LU% A(t,i)=A(t,i)/A(i,i);end for(t=i+1:n) for(m=i+1:n) A(t,m)=A(t,m)-A(t,i)*A(i,m);end end end for(i=2:n) for(t=1:i-1) L(i,t)=A(i,t); end end for(i=1:n) for(t=i:n) U(i,t)=A(i,t); end end L U P x=U^(-1)*L^(-1)*P*b 最终输出得到方程组的解为x1=x2=x3=x4=x5=x6=x7=1,L、U、P矩阵输出如上图。 讨论与心得 对于满秩矩阵,LU三角分解法能很好、快速地实现分解,找出方程组的解。而对于A不满秩的情况,尽管能实现形式上的L、U分解,但得到的U矩阵不可逆,因此无法求出方程组的解,在使用前还需要判断det(A)是否等于0.对于det(A) 0的情况,运行结果如下。 尽管如此,matlab提供的数组运算功能十分强大, 为编程提供了许多便利,省去了C语言中利用循环遍历数组的麻烦。 专业:电气工程及其自动化 姓名:_朱超越____ _______ 学号:3100103453________ 日期:_2012/3/18_________

文档评论(0)

企业资源 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档