System.out.println(System.currentTimeMillis()); double a[][] = {{1,-2,1},{1,2,3},{-3,-2,5}}; double b[] = {1,3,1}; int para = a.length; double x[] = new double[para]; Gauss(a,b); for (int i = 0; i < a.length; i++) { for (int j = 0; j < a[i].length; j++) { System.out.print(a[i][j]+","); } System.out.println(b[i]); } printX(x,a,b); for (int i = 0; i < x.length; i++) { System.out.println(x[i]); } System.out.println(System.currentTimeMillis()); } public static void Gauss(double a[][],double b[]){ int n = a.length; for (int i = 0; i < n-1; i++) { for (int j = i+1; j < n; j++) {//j表示行 double l = a[j][i]/a[i][i]; for (int e = i+1; e<n;e++){ a[j][e] = a[j][e]-l*a[i][e]; } b[j] = b[j] - l*b[i]; a[j][i] = 0; } } } public static void printX(double x[],double a[][],double b[]){ for (int i = a.length-1; i >= 0 ; i--) { for(int j = a.length-1;j > i;j--){ b[i] -= a[i][j]*x[j]; } System.out.println(a[i][i]+"===="+b[i]); x[i] = b[i]/a[i][i]; } }