高斯消元

来源:互联网 发布:奥登nba健康数据 编辑:程序博客网 时间:2024/06/17 12:45
const int maxn=105;typedef double Matrix[maxn][maxn];Matrix A,S;//n是方程的个数void gauss(Matrix A,int n){    int i,j,k,r;    for(int i=0; i<n; i++)    {        r=i;        for( j=i+1; j<n; j++)            if(fabs(A[j][i])>fabs(A[r][i]))r=j;        if(r!=i)            for(j=0; j<=n; j++)swap(A[r][j],A[i][j]);        for(k=i+1; k<n; k++)        {            double f=A[k][i]/A[i][i];            for(j=i; j<=n; j++)                A[k][j]-=f*A[i][j];        }    }    for(i=n-1; i>=0; i--)    {        for(j=i+1; j<n; j++)            A[i][n]-=A[j][n]*A[i][j];        A[i][n]/=A[i][i];    }}
输出4个方程组时方程解;
for(int i=0; i<4; i++)    {        printf("%8.2f\n",A[i][4]);    }