用高斯消元法求解线性代数方程组.(优选)_第1页
用高斯消元法求解线性代数方程组.(优选)_第2页
用高斯消元法求解线性代数方程组.(优选)_第3页
用高斯消元法求解线性代数方程组.(优选)_第4页
用高斯消元法求解线性代数方程组.(优选)_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

/7用高斯消元法求解线性代数方程组TOC\o"1-5"\h\z1115-2823-2103-2(X*是方程组的精确解)-4_3x1x2「13「11X*=丁14x315117x191—141——1--1高斯消去法1.1基本思想及计算过程高斯(Gauss)消去法是解线性方程组最常用的方法之一,它的基本思想是通过逐步消元,把方程组化为系数矩阵为三角形矩阵的同解方程组,然后用回代法解此三角形方程组得原方程组的解。为便于叙述,先以一个三阶线性方程组为例来说明高斯消去法的基本思想。‘2x+3x+4x=6(I)123<3x+5x+2x二5(II)1234x1+3x2+30x二323(III)把方程⑴乘(—3)后加到方程(II)上去,把方程⑴乘(—4)后加到方程(III)上22去,即可消去方程(II)、(III)中的",得同解方程组TOC\o"1-5"\h\zx+3x+4x=6(I)123'丿{0.5x-4x=—4(II)23-3x+22x=20(III)23将方程(II)乘(2)后加于方程(hi),得同解方程组:0.52x+3x+4x=6123(I)0.5x-4x=-423(II)-2x=-43(III)由回代公式(3.5)得x3=2,x2=8,x1=-13。下面考察一般形式的线性方程组的解法,为叙述问题方便,将b写成a.+1,=1,2,・n。ii,n+1

ax+ax+axHFax=a1111221331nn1,n+1ax+ax+ax++ax=av2112222332nn2,n+1ax+axax+axn11n22+ax++axn33nnn=an,n+1其中a(1)=1jj=1,…,n+1(记a(o)ij从其它n-1其中a(1)=1jj=1,…,n+1(记a(o)ij从其它n-1个方程中消x「使它变成如下形式+a(1)x+…+a(1)x1221nna(1)x+…+a(1)x2222nn=a(1)n+1

a(1)n+11-2)其中a(1)=aijij—m-a(1)i1ij由方程(1-1)到(1-2)的过程中,a(1)x+…+a(1)xn22nna(1)n,n+1=2,…,n,m=i1a(1)/

儿‘a11j=2,3,…,n+1元素an起着重要的作用’特别地,把an称为主元素。如果a11丰0,将第一个方程中x1的系数化为1,得x+a(1)x++a(1)x=a⑴11221nn1,n+1a,i=1,2,...,n;j=1,2,...,n+1)ij如果(1-2)中網厂0,则以a22)为主元素’又可以把方程组(1-2)化为:x+x+a⑴x+…+a(1)x=a(1)11221nn1,n+1x+a(2)x+…+a(2)x=a(2)22332nn2,n+1va(2)x+…+a(2)x=a(3):3333nn3,n+1a(2)x+…+a(2)x=a(2)n33nnnn,n+11-3)针对(1-3)继续消元,重复同样的手段,第k步所要加工的方程组是:x+x+a(2)xH—2233Ha(2)x=a(2)2nn2,nH1x+a⑴x+a⑴xH—1n1nn1,nH1+a(k-i)xH卜a(k-i)x=a(k-1)k-k-ik-ikknnk-1,nH1a(ka(k-i)xHHa(k-i)xkkknnn=a(k-1)k,nH1a(k-i)xHHa(k-i)x=a(k-i)nkknnnnkknnnn,nH1设a(k-1)工0,第k步先使上述方程组中第k个方程中xk的系数化为1:kkkx+a(k)xH——a(k)x=a(k)kk,kH1kknnk,nH1然后再从其它(n-k)个方程中消xk,消元公式为:a(k-1)a(k)=——j=k,k+1,…,n+1ka(k-1)kkva(k)=a(k-1)一a(k-1)・a(k)(1-4)ijijikkjj=k+1,…,n+1i=k+1,…n按照上述步骤进行n次后,将原方程组加工成下列形式:Ha(1)xHa(1)xH…Ha(1)x=a(1)11221331nn1,nH1xHa(2)xH…Ha(2)x=a(2)22332nn2,nH1xHa(n-1)x=a(n-1)n-1nnnn-1,nH1x=a(n)nn,nH1回代公式为:x=x=a(n)nn,n+1vx=a(k)-Fa(k)xk=n-1,…,1kk,nH1kjjj=kH11-5)综上所述,高斯消去法分为消元过程与回代过程,消元过程将所给方程组加工成上三角形方程组,再经回代过程求解。由于计算时不涉及xz„i=1,2,・n・”所以在存贮时可将方程组AX=b,写成增广矩阵(A,b)存贮。面,我们统计一下高斯消去法的工作量;在(1-4)第一个式子中,每执行一次需要n-(n-k)次除法,在(1-5)第二个式子中,每执行一次需要[n-(k-1)]x(n-k)次除法。因此在消元过程中,共需要工l(n-k+1)x(n-k)+(n-k+1)]k=1=工(n-k+1)2=1n(n+1)(2n+1)6k=1次乘作法。此外,回代过程共有£(n-k)=—(n-1)2k=1次乘法。汇总在一起,高斯消去法的计算量为:nn3n(n2+3n一1)=+n—一33次乘除法。1.2基于VC的C语言程序#include<stdio.h>#definen4/*n为方程组系数矩阵的阶数*/intGauss(floata[n][n],floatb[n]){inti,j,k,flag=1;floatt;for(i=0;i<n-1;i++){if(a[i][i]==0){flag=0;break;}else{for(j=i+1;j<n;j++)/*消元过程*/{t=-a[j][i]/a[i][i];b[j]=b[j]+t*b[i];for(k=i;k<n;k++)a[j][k]=a[j][k]+t*a[i][k];}}}return(flag);}voidzg_matric(floata[n][n],floatb[n])/*输出增广矩阵*/{inti,j;for(i=0;i<n;i++){for(j=0;j<n;j++)printf("%10f",a[i][j]);printf("%10f",b[i]);printf("\n");}printf("\n");}voidmain(){staticfloata[n][n]={{11,1,5,-4},{-2,8,2,3},{3,-2,10,4},{1,3,-2,17}};floatb[n]={13,11,15,19};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;j

温馨提示

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

评论

0/150

提交评论