快没时间了就求救了。。。。。
我们以前也做过
你可以去找<<常用数学算法描述>>看看
上面应该有的
不知道是不是,你看看用 Guass列主元素消去法解线性方程组
http://vod.swjtu.edu.cn/courseware/calculate/suanfa_3.htm
看看这个
#include<stdio.h>
#include<math.h>
#define N 3
double a[N][N]={{3,2,1},{2,2,0},{1,0,3}};
double b[N]={5,3,4};
main(){
int i,j,T,k=0;
double max,m[N][N],temp,tem,sum;
do{
max=0;
for(i=k;i<N;i++)
{
if(fabs(a[i][k])>fabs(max)){
max=a[i][k];
T=i;
}
}
if(max==0) return(0);
if(T!=k){
for(j=k;j<N;j++){
temp=a[T][j];
a[T][j]=a[k][j];
a[k][j]=temp;
}
tem=b[T];b[T]=b[k];b[k]=tem;
for(i=k+1;i<N;i++)
m[i][k]=a[i][k]/a[k][k];
}
else if(T==k){
for(i=k+1;i<N;i++)
m[i][k]=a[i][k]/a[k][k];
}
for(i=k+1;i<N;i++){
for(j=k+1;j<N;j++)
a[i][j]-=m[i][k]*a[k][j];
b[i]-=m[i][k]*b[k];
}
k++;
}while(k!=N-1);
for(i=N-1;i>=0;i--){
sum=0;
for(j=i+1;j<N;j++)
sum+=a[i][j]*b[j];
b[i]=(b[i]-sum)/a[i][i];
}
for(i=0;i<N;i++){
printf("x[%d]=%f\n",i,b[i]);
}
printf("\n");
getch();
}