Advertisement
Guest User

Untitled

a guest
Dec 10th, 2019
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 0.82 KB | None | 0 0
  1. public static void cholesky(Matrix A) {
  2.  
  3.         if (!checkMatrixIsSymmetric(A, 0.01)) {
  4.             throw new RuntimeException("Matrix is not symmetric");
  5.         }
  6.  
  7.         int N = A.getColumnDimension();
  8.         Matrix L = new Matrix(N, N);
  9.  
  10.         for (int i = 0; i < N; i++) {
  11.             for (int j = 0; j <= i; j++) {
  12.                 double sum = 0.0;
  13.                 for (int k = 0; k < j; k++) {
  14.                     sum += L.get(i, k) * L.get(j, k);
  15.                 }
  16.                 if (i == j)
  17.                     L.set(i, i, Math.sqrt(A.get(i, i) - sum));
  18.                 else L.set(i,j,(1.0 / L.get(j,j) * (A.get(i,j)) - sum));
  19.             }
  20.             if (L.get(i,i) <= 0) {
  21.                 throw new RuntimeException("Matrix not positive definite");
  22.             }
  23.         }
  24.         L.print(6,5);
  25.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement