下面是我写的关于高斯列主消元法的C程序实现方法。但是求解结果始终不正确啊!检查很久了,还是检查不出来,麻烦哪位大哥给指点下吧!先O(∩_∩)O谢谢了!
程序代码:
C/C++ code:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define N 4
#define EPS 1e-10
void main()
{
int A[N][N+1]={{5,2,3,2,-1},{2,4,1,-2,5},{1,-3,4,3,4},{3,2,2,8,-6}},x[N];
int i,j,k,Pr,t,total;
for(k=1;k<N;k++)
{
Pr=k-1;
for(i=k;i<N;i++)
{
if(abs(A[i][k-1])>abs(A[Pr][k-1]))
{
Pr=i;
}
}//End For i
if(abs(A[i][k-1])<EPS)
{
printf("主元接近于0,方法失效\n");
exit(0);
}
if(Pr>k-1)
{
for(j=k-1;j<N+1;j++)
{
t=A[k-1][j];
A[k-1][j]=A[Pr][j];
A[Pr][j]=t;
}//End For j
} //End if
for(i=k;i<N;i++)
{
t=A[i][k-1]/A[k-1][k-1];
for(j=k-1;j<N+1;j++)
{
A[i][j]=A[i][j]-t*A[k-1][j];
} //End For j
} //End For i
} //End For k
if(abs(A[N-1][N-1])<EPS)
{
printf("主元接近于0,方法失效\n");
exit(0);
} //End If
x[N