求解线性方程组的高斯消去法的研究及实现(1)题目的复述;高斯消去法(Gausseliminationmethod)是求解线性方程组的基本方法,各种直接解法基本上都是高斯消去法的变形,或者针对特殊矩阵的改进。本文将简单分析用高斯消去法求解线性方程组的基本思想及其实现。(2)问题的分析;在科学研究和生产实践中,许多实际问题往往涉及到解线性方程组。因此,对线性方程组的研究具有十分重要的意义。线性方程组的数值解法一般有两类:1、直接法:就是经过有限步算术运算,可求得方程组精确解的方法(若计算过程中没有舍入误差),高斯消去法就是直接法中具有代表性的算法。2、迭代法:就是用某种极限过程去逐步逼近线性方程组的精确解的方法。也就是从解的某个近似值出发,通过构造一个无穷序列去逼近精确解的方法。(一般有限步内得不到精确解)高斯消去法解方程组基本思想是设法消去方程组的系数矩阵A的主对角线下的元素,而将Ax=b化为等价的上三角形方程组,然后再通过回代过程便可获得方程组的解。换一种说法就是用矩阵行的初等变换将原方程组系数矩阵化为上三角形矩阵,而以上三角形矩阵为系数的方程组的求解比较简单,可以从最后一个方程开始,依次向前代入求出未知变量nx,1-nx...1x。通过一个方程乘或除以某个常数,以及将两个方程相加减,逐步减少方程中的变元数,最终将方程组化成上三角方程组,一般将这一过程称为消元,然后再回代求解。(3)算法的建立和描述;高斯消去法算法构造:我们知道,齐次线性方程组用矩阵形式表示为nnnnnnnnbbbxxxaaaaaaaaa..................2121212222111211消元过程:设0)0(11a,令乘数)0(11)0(11/aamii,做(消去第i个方程组的ix)操作1im×第1个方程+第i个方程(i=2,3,.....n)则第i个方程变为1)1(2)1(2...ininibxaxa这样消去第2,3,。。。,n个方程的变元ix后。原线性方程组变为:)2()2(2)2(2)2(2)2(22)2(22)1(1)1(11)1(11...........nnnnnnnnnbxaxabxaxabxaxa此时矩阵形式表示为)2()2(2)1(121)2()2(2)2(2)2(22)1(1)1(12)1(11................nnnnnnnbbbxxxaaaaaaa这样就完成了第1步消元。只要0)(kkka,消元过程就可以进行下去,直到经过n-1次消元之后,消元过程结束,得到与原方程组等价的上三角形方程组,记为)()2(2)1(121)()2(2)2(22)1(1)1(12)1(11..............nnnnnnnnbbbxxxaaaaaa回代过程:在最后的一方程中解出nx,得:)1()1(/nnnnnnabx再将nx的值代入倒数第二个方程,解出1nx,依次往上反推,即可求出方程组的解:其通项为3,...1-n2,-nk/)()1(1)1()1(kkknkjjkkjkkkaxabx(4)程序实现代码;1.用高斯消元法解线性方程组Ax=b的MATLAB程序输入的量:系数矩阵A和常系数向量b;输出的量:系数矩阵A和增广矩阵B的秩RA,RB,方程组中未知量的个数n和有关方程组解X及其解的信息.function[RA,RB,n,X]=gaus(A,b)B=[Ab];n=length(b);RA=rank(A);RB=rank(B);zhica=RB-RA;ifzhica0,disp('因为RA~=RB,所以此方程组无解.')returnendifRA==RBifRA==ndisp('因为RA=RB=n,所以此方程组有唯一解.')X=zeros(n,1);C=zeros(1,n+1);forp=1:n-1fork=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);forq=n-1:-1:1X(q)=(b(q)-sum(A(q,q+1:n)*X(q+1:n)))/A(q,q);endelsedisp('因为RA=RBn,所以此方程组有无穷多解.')endend(5)数值实现结果及分析;编写高斯消元法的MATLAB文件如下:clear;A=[521;28-3;1-3-6];b=[8;21;1];[RA,RB,n,X]=gaus(A,b)运行结果为:因为RA=RB=n,所以此方程组有唯一解.RA=3RB=3n=3X=12-1(6)课程设计体会;1、高斯消去法的计算量:乘除法次数:MD=n(n-1)(2n-1)/6+n(n-1)/2=n(2n-1)/3加减法次数:AS=n(n-1)(2n-1)/62、高斯消去法的适用条件:一般线性方程组使用高斯消去法求解时,在消元过程中可能会出现)(kkka=0的情况,这时消去法将无法进行;即使0)(kkka,但它的绝对值很小时,用其作除数,会导致其他元素数量级的严重增长和舍入误差的扩散,将严重影响计算结果的精度。实际计算时必须避免这类情况的发生。主元素消去法就可弥补这一缺陷。