* 高斯列主元素消去法求解矩阵方程AX=B,其中A是N*N的矩阵,B是N*M矩阵
* 输入: n----方阵A的行数
* a----矩阵A
* m----矩阵B的列数
* b----矩阵B
* 输出: det----矩阵A的行列式值
* a----A消元后的上三角矩阵
* b----矩阵方程的解X
**************************************************************************/
double gaussian_elimination(int n,double a[M][M],int m,double b[M][1])
{
int i,j,k,mk;
double det,mm,f;
det = 1.0;
for(k = 0;k
mm=a[k][k];
mk = k;
for(i=k+1;i
if(fabs(mm)
mm = a[k];
mk = i;
}
}
if(fabs(mm)
if(mk!=k) /* 将第K列主元素换行到对角线上*/
{
for(j=k;j
f = a[k][j];
a[k][j]=a[mk][j];
a[mk][j]=f;
}
for(j=0;j
f = b[k][j];
b[k][j]=b[mk][j];
b[mk][j]=f;
}
det = -det;
}
for(i=k+1;i
mm = a[k]/a[k][k];
a[k]=0.0;
for(j=k+1;j
for(j=0;j
}
det = det*a[k][k];
}
if(fabs(a[k][k])
det=det*a[k][k];
for(i=0;i=0;j--)
{
for(k=j+1;k
b[j]=b[j]/a[j][j];
}
}
return(det);
}