Advertisement
Guest User

Untitled

a guest
May 19th, 2017
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.90 KB | None | 0 0
  1. private BigDecimal[] gauss(BigDecimal[][] A, BigDecimal[] B) {
  2. BigDecimal[] X = new BigDecimal[64];
  3. Arrays.fill(X, BigDecimal.ZERO);
  4. int n = 64;
  5. for (int j = 0; j < n; ++j) {
  6. int bestI = j;
  7. for (int i = j + 1; i < n; ++i)
  8. if (A[i][j].abs().compareTo(A[bestI][j].abs()) > 0) {
  9. bestI = i;
  10. }
  11. BigDecimal[] tm = A[j];
  12. A[j] = A[bestI];
  13. A[bestI] = tm;
  14. BigDecimal tmp = B[j];
  15. B[j] = B[bestI];
  16. B[bestI] = tmp;
  17. for (int i = j + 1; i < n; ++i) {
  18. BigDecimal d = A[i][j].divide(A[j][j], mc);
  19. for (int t = 0; t < n; ++t) {
  20. A[i][t] = A[i][t].subtract(A[j][t].multiply(d, mc), mc);
  21. }
  22. B[i] = B[i].subtract(B[j].multiply(d, mc), mc);
  23. }
  24. }
  25. for (int i = n - 1; i >= 0; --i) {
  26. for (int j = i + 1; j < n; ++j) {
  27. B[i] = B[i].subtract(A[i][j].multiply(X[j], mc), mc);
  28. }
  29. X[i] = B[i].divide(A[i][i], mc);
  30. }
  31. return X;
  32. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement