具体思路看数值分析课本吧....下面是我学数分时候写过的一个"选主元素法"解方程的程序,可以参考一下#include<stdio.h>#include<math.h>#define M 3#define N 3main(){ double a[M][M]={10,-1,-2,-1,10,-2,-1,-1,5};//系数 double b[M]={7.2,8.3,4.2}; int k,i,j,l; double d,t; k=0; for(k=0;k<N;k++){ d=a[k][k]; l=k; i=k+1; for(i=k+1;i<N;i++){ if(fabs(a[i][k])>fabs(d)){ d=a[i][k]; l=i; } } if(d!=0){ if(l!=k){ for(j=k;j<N;j++){ t=a[l][j]; a[l][j]=a[k][j]; a[k][j]=t; } t=b[k]; b[k]=b[l]; b[l]=t; } } for(j=k+1;j<N;j++) a[k][j]=a[k][j]/a[k][k]; b[k]/=a[k][k]; for(i=k+1;i<N;i++) for(j=k+1;j<N;j++)a[i][j]=a[i][j]-a[i][k]*a[k][j]; for(i=k+1;i<N;i++)b[i]=b[i]-a[i][k]*b[k]; } for(i=N-1;i>=0;i--){ for(j=i+1;j<N;j++) b[i]-=a[i][j]*b[j]; } for(i=0;i<N;i++) printf("%lf ",b[i]); getchar();getchar(); return 0;}