Gauss顺序消去法解线性方程组报告

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

Gauss顺序消去法解线性方程组制作人:陈静Gauss消去法是解线性方程组的一种直接方法,有时也称为精确法,这种算法只包含有限四次运算,并且在每一步运算过程都不会发生舍入误差的假设下,计算的结果就是方程组的精确解。但实际计算中不可避免舍入误差的存在和影响,所以这种方法只能求得线性方程组的近似解。一.实验目的:学会用Gauss顺序消去法解线性方程组。二.实验要求:线性方程组中)1(kkka0.三.顺序消去法解方程组原理:(1)消元计算:对k=1,2,,n-1),,1(),,1,(),,1()()()1()()()1()()(nkiblbbnkjialaankiaalkkikkikikkjikkijkijkkkkikik(2)回代计算:)1,2,,1()()(1)()()()(niaxabxabxiiinijjiijiiinnnnnn四.顺序消去法解方程组的解题步骤:设有线性代数方程组Ax=b其中A=nnnnnnaaaaaaaaa.....................212222111211,x=nxxx21,b=nbbb21.为了清晰起见,将方程组写成如下形式.,,)1()1(2)1(21)1(1)1(2)1(22)1(221)1(21)1(1)1(12)1(121)1(11nnnnnnnnnnbxaxaxabxaxaxabxaxaxa第一步设)1(11a0,首先计算乘数)1(11)1(11aalii(i=2,3,,n).用-1il乘上述方程组的第一个方程,再加到第i个(i=2,3,,n)方程上,消去上述方程组的第二个方程到第n个方程中的未知数1x,得与上述方程组等价的方程组)2()2(2)2(2)2(22)1(1)1(12)1(11nnnnnaaaaaaanxxx21=)2()2(2)1(1nbbb简记为xA)2(=)2(b,其中)2(A、)2(b的元素计算公式为.,,3,2,,,2,,,2,)1(11)1()2()1(11)1()2(niblbbninjalaaiiijiijij第二步仿照第一步的做法以此类推,到第n步便得到与上述方程组等价的方程组)()2(2)2(22)1(1)1(12)1(11nnnnnaaaaaanxxx21=))22)1(1nnbbb以上两步为高斯顺序消去法的消去过程。第三步将上述得到的方程组通过原理中的回代计算法:)1,2,,1()()(1)()()()(niaxabxabxiiinijjiijiiinnnnnn得到方程组的解ix(i=1,2,,n)。这步为高斯顺序消去法的回代过程。五.流程图如下:输入A矩阵开始kkkjikijijaaaaa;(i=k+1,…,n;j=k+1,…,n+1)k=1k=k+1kn-1结束rka=0?kkjkjnkkaxaax)(1,(j=k+1,k+2,…,n;k=n,n-1,…,2,1)YesYesNoNo六.源程序如下:#includestdio.h#includemath.h#defineN20main(){floatA[N][N];floatb[N];floatx[N];floatS,temp;inti,j,k;intn;printf(\t\t\tgauss列主元消去法解方程组\n\n);printf(\t\t\t\t制作人:陈静\n);printf(\t\t\t\t指导老师:金力老师\n);printf(请输入方程组的个数:);scanf(%d,&n);printf(n=%d\n,n);printf(\n);printf(请输入每行方程组的系数:\n);//输入方程组的系数矩阵A[][]for(i=0;in;i++){for(j=0;jn;j++){scanf(%f,&A[i][j]);}}printf(请输入每行方程组的y值:\n);//输入方程组的结果矩阵b[]for(i=0;in;i++){scanf(%f,&b[i]);}//输出方程组的系数矩阵A[][]printf(刚输入的矩阵A[][]:\n);for(i=0;in;i++){for(j=0;jn;j++)printf(%f,A[i][j]);printf(\n);}//输入方程组的结果矩阵b[]printf(刚输入的矩阵b[]:\n);for(i=0;in;i++)printf(%f,b[i]);printf(\n\n);//gauss消去法的求解过程for(k=0;kn-1;k++){printf(第%d次消去后的矩阵:\n,k+1);for(i=0;in;i++){for(j=0;jn;j++)printf(%f,A[i][j]);printf(\n);}if(!A[k][k])return-1;//消去过程for(i=k+1;in;i++){temp=A[i][k]/A[k][k];for(j=k;jn;j++){A[i][j]=A[i][j]-temp*A[k][j];}b[i]=b[i]-temp*b[k];}}//消去的结果printf(消去后的最终结果A[]:\n);for(i=0;in;i++){for(j=0;jn;j++)printf(%f,A[i][j]);printf(\n);}printf(消去后的最终结果b[]:\n);for(i=0;in;i++)printf(%f,b[i]);printf(\n\n);//回代过程x[n-1]=b[n-1]/A[n-1][n-1];for(k=n-2;k=0;k--){S=b[k];for(j=k+1;jn;j++){S=S-A[k][j]*x[j];}x[k]=S/A[k][k];}//输出结果printf(x的值为:\n);for(i=0;in;i++)printf(x%d=%f,i+1,x[i]);printf(\n);return0;}七.例题验证:书本题目P211方程组如下,655,7710,462332121321xxxxxxxx代入程序结果如下:书本题目P211

1 / 7
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功