利用matlab解线性方程组.doc_第1页
利用matlab解线性方程组.doc_第2页
利用matlab解线性方程组.doc_第3页
利用matlab解线性方程组.doc_第4页
利用matlab解线性方程组.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数值计算实验解线性方程组西南交通大学2012级茅7班 20123257 陈鼎摘要本报告主要介绍了基于求解线性方程组的高斯消元法和列主消元法两种数值分析方法的算法原理及实现方法。运用matlab数学软件辅助求解。实验内容1编写用高斯消元法解线性方程组的MATLAB程序,并求解下面的线性方程组,然后用逆矩阵解方程组的方法验证。2编写用列主消元法解线性方程组的MATLAB程序,并求解下面的线性方程组,然后用逆矩阵解方程组的方法验证。给定方程组如下:0.325x1+2.564x2+3.888x3+5x4=1.521-1.548x1+3.648x2+4.214x3-4.214x4=2.614-2.154x1+1.647x2+5.364x3+x4=3.9780x1+2.141x2-2.354x3-2x4=4.214A. 高斯消元法一、算法介绍 高斯消元法是一种规则化的加减消元法。基本思想是通过逐次消元计算把需要求解的线性方程组转化成为上三角方程组,即把现形方程组的系数矩阵转化为上三角矩阵,从而使一般线性方程组的求解转化为等价的上三角方程组的求解。二、matlab程序function RA,RB,n,X=gaus(A,b)B=A b; n=length(b); RA=rank(A); RB=rank(B);zhica=RB-RA;if zhica0,disp(因为RA=RB,所以此方程组无解.)returnendif RA=RBif RA=ndisp(因为RA=RB=n,所以此方程组有唯一解.) X=zeros(n,1); C=zeros(1,n+1);for p= 1:n-1for k=p+1:nm= B(k,p)/ B(p,p); B(k,p:n+1)= B(k,p:n+1)-m* B(p,p:n+1);endendb=B(1:n,n+1);A=B(1:n,1:n); X(n)=b(n)/A(n,n);for q=n-1:-1:1X(q)=(b(q)-sum(A(q,q+1:n)*X(q+1:n)/A(q,q);endelsedisp(因为RA=RB0,disp(因为RA=RB,所以此方程组无解.)returnendif RA=RBif RA=ndisp(因为RA=RB=n,所以此方程组有唯一解.) X=zeros(n,1); C=zeros(1,n+1);for p= 1:n-1Y,j=max(abs(B(p:n,p); C=B(p,:);B(p,:)= B(j+p-1,:); B(j+p-1,:)=C;for k=p+1:nm= B(k,p)/ B(p,p); B(k,p:n+1)= B(k,p:n+1)-m* B(p,p:n+1);endendb=B(1:n,n+1);A=B(1:n,1:n); X(n)=b(n)/A(n,n);for q=n-1:-1:1X(q)=(b(q)-sum(A(q,q+1:n)*X(q+1:n)/A(q,q);endelsedisp(因为RA=RBn,所以此方程组有无穷多解.)endend三、实验过程与结果输入的量:系数矩阵A和常系数向量b;输出的量:系数矩阵A和增广矩阵B的秩RA、RB,方程中未知量的个数n和有关方程组解X及其解的信息。1. 编写列主消元法的运行MATLAB代码如下:tic,A=0.325 2.564 3.888 5;-1.548 3.648 4.214 -4.214;-2.154 1.647 5.364 1;0 2.141 -2.354 -2;b=1.521;2.614;3.978;4.214;RA,RB,n,X =liezhu(A,b),toc运行结果为:因为RA=RB=n,所以此方程组有唯一解.RA = 4RB = 4n = 4X = -3.2161 1.3785 -1.0959 0.6585Elapsed time is 0.003000 seconds.同时,与高斯消元法和逆矩阵检验运算结果一致。总结与体会:通过本次实验我掌握了消元法解方程的一些基本算法以及用matlab实现矩阵的几种基本计算,对MATLAB软件有了更深的了解。同时,在实验中,在输入向量b=1.521 ;2.614 ;3.978 ;4.214时错误的输成b=1.521 ;2.614 ;3.978 ;4.214,致使程序不能运行,无法得到预期的实验结果,后经多番仔细查找,最终发现分号应为英文输入法,以后在编程时,一定更加认真仔细,不犯同样的错误!在高斯消元法和列主消元法两种方法的选择上,需要仔细斟酌,同时我对两种方法做了如下的分析:如果给定了一方程组如:a11*x1+a12*x2=b1;a21*x1+a22*x2=b2;如何选择算法?通常高斯消去法有两个过程:消元过程和回代过程. 如果不选主元,消元过程第1步需要进行下面运算,a22-(a21/a11)*a12。这是消元后所得新的第2个方程的x2的系数,如果a11较a21小的多,则a21/a11就很大,由于在计算机上编程计算或手算时,舍入误差难以避免,如a12=1/3,计算时需舍入为有限小数,比如保留8位有效数字,1/3用0.33333333代替,误差很小,但是当a21/a11很大,比如a21=10,a11=0.000001,则a21/a11=10000000,此时计算a22-(a21/a11)*a12的值,由于a12有10(-8)的误差,则(a21/a11)*a12的误差却变为了10(-1),误差被大大的放大了,算法不稳定,不稳定的算法计算出的结果不可靠了,所以消元时要选主元,列主元消去法是调换方程的次序,使调换后方程的a11

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论