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];
}
}
转载于:https://my.oschina.net/u/615618/blog/301832