看了Gauss消元法,自己作了个c程序,大家有兴趣,运行看看。 #include<stdio.h> #include<math.h> #include<conio.h> #define N 100 #define epsilon 1e-6 float a[N][N+1],s=0;
void main( ) { int i,j,n,k,l; clrscr( ); printf("It is strongly recommended that you read this before you run the programming:\n"); printf("1.This is Gauss method to solve linear equations.\n"); printf("2.Please review the principles of Gauss method.\n"); printf("3.Be careful,don't just depend on computers,you have mind!\n"); printf("4.Probably there are some defects in this programme.\n"); printf(" If any,please send messages to the creator.\n"); printf("5.Copyright 2005-5-12 Zhang Zujin\n"); printf(" QQ:283421560 E-mail:zhangzujin360732@163.com\n"); printf("\n"); printf("Input fangzhen jieshu:"); scanf("%d",&n); printf("Input Extended Matrix:\n"); for(i=0;i<n;i++) for(j=0;j<n+1;j++) scanf("%f",&a[i][j]); for(k=0;k<n-1;k++) { if(abs(a[k][k])<epsilon) { printf("Error,Gauss can't be durable,break at %d!\n",k+1); return; } else { for(i=k+1;i<n;i++) { a[i][k]=a[i][k]/a[k][k]; for(j=k+1;j<n+1;j++) a[i][j]=a[i][j]-a[i][k]*a[k][j]; } printf("\n*******The Final Equations*******\n"); for(k=0;k<n;k++) { for(j=0;j<k;j++) printf(" 0.00"); for(j=k;j<n+1;j++) printf("%8.2f",a[k][j]); printf("\n"); } } } if(abs(a[n-1][n-1])<epsilon) { printf("Error,Divid cann't be executed,break at %d!\n",n); return; } else { a[n-1][n]=a[n-1][n]/a[n-1][n-1]; for(k=n-2;k>=0;k--) { s=0; for(j=k+1;j<n;j++) s+=a[k][j]*a[j][n]; a[k][n]=(a[k][n]-s)/a[k][k]; } } printf("\n******* The Roots *******\n"); for(k=0;k<n;k++) printf(" x[%d]=%.2f\n",k+1,a[k][n]); getch( ); }