您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 线性方程组的数值解法与比较论文
目录1引言..............................................................12线性方程组的相关概念..............................................13讨论线性方程组的数值解法..........................................23.1高斯消元法解线性方程组......................................23.1.1高斯顺序消元法.........................................23.1.2高斯列主元素消元法.....................................63.2矩阵三角分解法解线性方程组..................................93.2.1直接三角分解法.........................................93.2.2追赶法...............................................124总结.............................................................16参考文献...........................................................17致谢...............................................................18线性方程组的数值解法与比较摘要:本文给出了线性方程组数值解法的几种直接求解方法,探讨这些方法的主要思想,具体解法以及它们各自的特点,针对几种解法对于不同条件下的线性方程组的求解,进行了一定的分析,并对其加以比较,以此来促进对线性方程组数值解法的理解.关键词:线性方程组;高斯消元法;直接三角分法;追赶法ThenumericalsolutionandcomparedoflinearequationsAbstract:Thispapergivesseveraldirectsolvingmethodsoflinearequationsnume-rically,probingintothemainideas,thespecificmethodandtheirrespectiveconclu-sions.Accordingtoseveralsolutionstodifferentconditionsoflinearequationsofthesolution,thispaperanalyzesandcomparesinordertopromotetheunderstandingoflinearequationsnumerically.Keyword:linearequations;Gaussianelimination;directtrianglepointsmethod;Chase-aftermethod11引言线性方程组是最简单也是最重要的一类代数方程组.在实际生活中,存在大量的解线性方程组的问题,很多数值方法到最后都会涉及到线性方程组的求解问题.它的数值解法不仅在实际问题中起到重要的作用,而且在计算数学中更是占有重要的地位.针对我们所学习的现有的中小型线性方程组,直接法就可以直接简明的对其进行求解.我们所运用的求解线性方程组的直接法,通常包括高斯消元法中的高斯顺序消元法与高斯列主消元法,以及矩阵三角分解法中的直接三角分解法与追赶法.本文通过探讨这几种求解方法的思想,解法与结论,对其加以分析并进行了相应的比较.2线性方程组的相关概念一线性方程组的一般形式含m个方程,n个未知量的线性方程组的一般形式为:11112211211222221122nnnnmmmnnmaxaxaxbaxaxaxbaxaxaxb其中12,,,nxxx为未知量,ija和ib为常数]4[;称为mn型线性方程组如果0ib,则称方程组为齐次线性方程组如果存在0ib,则称方程组为非齐次线性方程组例:22型线性方程组的一般形式为:11112212112222axaxbaxaxb其中每一个方程都表示平面上一条直线,一个22型线性方程组中两直线在平面上的位置有下列三种情况[1]:(1)两直线相交于一点,则交点就是方程组的唯一解;(2)平行,则该方程组无解;(3)重合,则直线上任何一个点都是方程组的解.例:33型齐次线性方程组的一般形式为:111122133211222233311322333000axaxaxaxaxaxaxaxax其中每一个方程都表示一个以向量i1i2i3=[a,a,a]Ti为法向量,过点[0,0,0]T的2平面,其解是一个与1平行.2,3均正交的向量X.(1)若1,2,3不共面,则方程组只有零解[0,0,0]TX;(2)若1,2,3共面但不共线,则垂直于i,1,2,3i的向量均是解,这些解彼此平行;(3)若1,2,3共线,则以i为法向量的平面是所有向量,都是解.即解向量组成一个平面.定义1.1:设有mn型线性方程组(I)和kn型线性方程组(II),如果(I)和(II)的解向量集合相等,则称(I)和(II)为等价的线性方程组[2].齐次线性方程组可以看成是非齐次线性方程组常数列均0的情形,因而对于非齐次线性方程适用的结论对齐次方程也是适用的[6].3讨论线性方程组的数值解法设有n元线性方程组11112211211222223113223341142244(3.1)nnnnnnnnaxaxaxbaxaxaxbaxaxaxbaxaxaxb或(3.2)AXb其中111111,,nnnnnnaaxbAxbaaxb设系行列式det()0A,则方程组(3.1)有唯一解.[7]直接法解线性方程组:如果不计运算过程的舍入误差,经过有限次运算后可得到方程组的精确解的方法[5].3.1高斯消元法解线性方程组3.1.1高斯顺序消元法写出方程组(3.1)的增广矩阵,并记()(,1,2,,)iijijaaijn,()(1,2,,)iiibbin(1)(1)(1)(1)111211(1)(1)(1)(1)(1)(1)212222(1)(1)(1)(1)12[,][,]nnnnnnnaaabaaabAbAbaaab若()0iiia,则施行第一次消元[9]:对1,2,,in计算3(1)(1)1111(2)(1)1(2)(1)(1)(1)1/,2,3,,iiijijiijiiimaaaamajnbbmb原增广矩阵被变换成:(1)(1)(1)(1)111211(2)(2)(2)(2)(2)2222(2)(2)(2)20[,]0nnnnnnaaabaabAbaab将这一过程继续下去........第(1,2,,1)kkn步的计算过程为若()0kkka,则施行第一次消元:对1,2,,ikkn计算()()(1)()()(1)()()/,1,2,,kkikikkkkkkijijikkjkkkiiikkmaaaamajkknbbmb原增广矩阵被变换成(1)(1)(1)(1)(1)111,1,111()()()(),,1(1)(1)(1)(1)(1)1,11,1(1)(1)(1),10[,],0000kknkkkkkkkkknkkkkkkkkknkkkknknnnaaaabaaabAbaabaab若所有的()0(1,2,,1)kkkakn,则经过n-1次消元得到:(1)(1)(1)(1)111211(2)(2)(2)()()2222()()0[,]00nnnnnnnnnaaabaabAbab以()()[,]nnAb为增广矩阵的上三角线性方程组(1)(1)(1)(1)11112211(2)(2)(2)22222()()(3.3)nnnnnnnnnaxaxaxbaxaxbab与原方程组(3.1)是同解方程组.回代过程就是由方程组(3.3)的最后一个方程解出nx,然后通过逐步回代,依次求1221,,,,nnxxxx.4具体算法为()()()()1()(1,2,,2,1)nnnnnnnkkkkjjjkkkkkbxabaxxknna例1用顺序Gauss消去法解以下线性方程组12341234123412344658521333232626434825524456410xxxxxxxxxxxxxxxx解:用增广矩阵表示法求解:消元过程14658521333232()626434825524456410Ab146580137802718230415395014658013780014700013回代过程12342343444658378473xxxxxxxxxx同解方程组为12341253xxxx5程序为:#includestdio.h#includemath.h#defineN4/*N为方程组系数矩阵的阶数*/intGauss(floata[N][N],floatb[N]){inti,j,k,flag=1;floatt;for(i=0;iN-1;i++){if(a[i][i]==0){flag=0;break;}else{for(j=i+1;jN;j++)/*消元过程开始*/{t=-a[j][i]/a[i][i];b[j]=b[j]+t*b[i];for(k=i;kN;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;iN;i++){for(j=0;jN;j++)printf(%10f,a[i][j]);printf(%10f,b[i]);printf(\n);}printf(\n);}voidmain(){staticfloata[N][N]={{1.0,-4.0,6.0,-5.0},{-5.0,21.0,-33.0,32.0},{6.0,-26.0,43.0,-48.0},{5.0,-24.0,45.0,-64.0}};6floatb[N]={8.0,-32.0,25.0,-10.0};floatx[N]={0,0,0,0};inti,j,flag;zg_matric(a,b);flag=Gauss(a,b);if(flag==0)/*无解*/printf(Gaussmethoddoesnotrun.);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;jN;j++)x[i]=x[i]-a[i][j]*x[j];x[i]=x[i]/a[i][i];}for(i=0;iN;i++)/*输出方程组的解*/printf(x%d=%11.7f\n,i+1,x[i]);}};[8]运行结果截图为:3.1.2高斯列主元素消元法引例考虑用顺序Gauss消去法求解以下方程组,在
本文标题:线性方程组的数值解法与比较论文
链接地址:https://www.777doc.com/doc-3860911 .html