Advertisement
Guest User

Untitled

a guest
Jan 21st, 2019
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.05 KB | None | 0 0
  1.  
  2.     protected double[] gauss(double[][] A, double[] b) {
  3.         int n = b.length;
  4.  
  5.         for (int p = 0; p < n; p++) {
  6.             int max = p;
  7.             for (int i = p + 1; i < n; i++) {
  8.                 if (Math.abs(A[i][p]) > Math.abs(A[max][p])) {
  9.                     max = i;
  10.                 }
  11.             }
  12.             double[] temp = A[p];
  13.             A[p] = A[max];
  14.             A[max] = temp;
  15.             double t = b[p];
  16.             b[p] = b[max];
  17.             b[max] = t;
  18.  
  19.             for (int i = p + 1; i < n; i++) {
  20.                 double alpha = A[i][p] / A[p][p];
  21.                 b[i] -= alpha * b[p];
  22.                 for (int j = p; j < n; j++) {
  23.                     A[i][j] -= alpha * A[p][j];
  24.                 }
  25.             }
  26.         }
  27.  
  28.         double[] x = new double[n];
  29.         for (int i = n - 1; i >= 0; i--) {
  30.             double sum = 0.0;
  31.             for (int j = i + 1; j < n; j++) {
  32.                 sum += A[i][j] * x[j];
  33.             }
  34.             x[i] = (b[i] - sum) / A[i][i];
  35.         }
  36.         return x;
  37.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement