资源描述:
《用高斯消元法求解线性代数方程组.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、用高斯消元法求解线性代数方程组(X*是方程组的精确解)1高斯消去法1.1基本思想及计算过程高斯(Gauss)消去法是解线性方程组最常用的方法之一,它的基本思想是通过逐步消元,把方程组化为系数矩阵为三角形矩阵的同解方程组,然后用回代法解此三角形方程组得原方程组的解。为便于叙述,先以一个三阶线性方程组为例来说明高斯消去法的基本思想。把方程(I)乘()后加到方程(II)上去,把方程(I)乘()后加到方程(III)上去,即可消去方程(II)、(III)中的x1,得同解方程组将方程(II)乘()后加于方程(III),得同解方程组:由回代公式(3.5)得x3=2,x2=
2、8,x1=-13。下面考察一般形式的线性方程组的解法,为叙述问题方便,将bi写成ai,n+1,i=1,2,…,n。(1-1)如果a11¹0,将第一个方程中x1的系数化为1,得其中,j=1,…,n+1(记,i=1,2,…,n;j=1,2,…,n+1)从其它n–1个方程中消x1,使它变成如下形式(1-2)其中,由方程(1-1)到(1-2)的过程中,元素起着重要的作用,特别地,把称为主元素。如果(1-2)中,则以为主元素,又可以把方程组(1-2)化为:(1-3)针对(1-3)继续消元,重复同样的手段,第k步所要加工的方程组是:设,第k步先使上述方程组中第k个方程
3、中xk的系数化为1:然后再从其它(n-k)个方程中消xk,消元公式为:(1-4)按照上述步骤进行n次后,将原方程组加工成下列形式:回代公式为:(1-5)综上所述,高斯消去法分为消元过程与回代过程,消元过程将所给方程组加工成上三角形方程组,再经回代过程求解。由于计算时不涉及xi,i=1,2,…,n,所以在存贮时可将方程组AX=b,写成增广矩阵(A,b)存贮。下面,我们统计一下高斯消去法的工作量;在(1-4)第一个式子中,每执行一次需要次除法,在(1-5)第二个式子中,每执行一次需要次除法。因此在消元过程中,共需要次乘作法。此外,回代过程共有次乘法。汇总在一起,
4、高斯消去法的计算量为:次乘除法。1.2基于VC的C语言程序#include#definen4/*n为方程组系数矩阵的阶数*/intGauss(floata[n][n],floatb[n]){inti,j,k,flag=1;floatt;for(i=0;i5、k];}}}return(flag);}voidzg_matric(floata[n][n],floatb[n])/*输出增广矩阵*/{inti,j;for(i=0;i6、floatx[n]={0,0,0,0};inti,j,flag;zg_matric(a,b);flag=Gauss(a,b);zg_matric(a,b);if(flag==0)/*无解*/printf("Gaussmethoddosenotrun.");else/*回带过程开始*/{x[n-1]=b[n-1]/a[n-1][n-1];for(i=n-2;i>=0;i--){x[i]=b[i];for(j=i+1;j7、的解*/printf("x%d=%11.7f",i+1,x[i]);}}1.3运行结果图