1、数值分析实验报告实验编号:实验二课题名称:列主元 Gauss 消去法一、算法介绍1、输入矩阵的阶数 n,方程组的增广矩阵 A;2、对 k=0,1,n-2,循环:选取列中绝对值最大的元素,将主元所在的行的元素保存在数组 tempn+1中。若主元为零,则系数矩阵奇异,计算停止;否则,顺序进行。如果绝对值最大的元素就在矩阵的对角线上,则进行普通高斯消元法的第一大步,否则将方程组系数换行之后再进行普通高斯消元法的第一大步;3、然后利用回代法求解线性方程组。二、程序代码#include#include#includeusing namespace std;int main()int n=0,k=0,i=
2、0,j=0,h=0,g=0,flag=0,i1,j1;double max=0,m=0; coutn; double ann+1;double tn+1;double xn; memset(a,0,sizeof(a);memset(x,0,sizeof(x);coutaij; for(k=0;kmax)max=fabs(aik);i1=i;j1=k; if(max=0)cout=0;k-)sum=0;for(i=n-1;i=k;i-)sum+=aki*xi;xk=(akn-sum)/akk; cout“该线性方程组的解为:“endl; for(i=0;in;i+)cout“x“i+1“=“setiosflags(ios:fixed)setprecision(2)xiendl; system(“pause“);return 0; 三、运算结果截屏四、算法分析列主元 Gauss 消元法避免了普通高斯消元法中出现的问题:遇到某个主元为零或者当主元绝对值很小时,计算将会停止或求出的结果将与其实际结果相差很远。但是当方程组各行系数的量级相差很大时列主元 Gauss 高斯消元法就会失效,也会使方程组的结果不准确。