Class CholeskyDecomposition

java.lang.Object
cern.colt.matrix.linalg.CholeskyDecomposition
All Implemented Interfaces:
Serializable

public class CholeskyDecomposition extends Object implements Serializable
For a symmetric, positive definite matrix A, the Cholesky decomposition is a lower triangular matrix L so that A = L*L'; If the matrix is not symmetric or positive definite, the constructor returns a partial decomposition and sets an internal flag that may be queried by the isSymmetricPositiveDefinite() method.
See Also:
  • Field Details

    • serialVersionUID

      static final long serialVersionUID
      See Also:
    • L

      private DoubleMatrix2D L
      Array for internal storage of decomposition.
    • n

      private int n
      Row and column dimension (square matrix).
    • isSymmetricPositiveDefinite

      private boolean isSymmetricPositiveDefinite
      Symmetric and positive definite flag.
  • Constructor Details

    • CholeskyDecomposition

      public CholeskyDecomposition(DoubleMatrix2D A)
      Constructs and returns a new Cholesky decomposition object for a symmetric and positive definite matrix; The decomposed matrices can be retrieved via instance methods of the returned decomposition object.
      Parameters:
      A - Square, symmetric matrix.
      Throws:
      IllegalArgumentException - if A is not square.
  • Method Details

    • getL

      public DoubleMatrix2D getL()
      Returns the triangular factor, L.
      Returns:
      L
    • isSymmetricPositiveDefinite

      public boolean isSymmetricPositiveDefinite()
      Returns whether the matrix A is symmetric and positive definite.
      Returns:
      true if A is symmetric and positive definite; false otherwise
    • solve

      public DoubleMatrix2D solve(DoubleMatrix2D B)
      Solves A*X = B; returns X.
      Parameters:
      B - A Matrix with as many rows as A and any number of columns.
      Returns:
      X so that L*L'*X = B.
      Throws:
      IllegalArgumentException - if B.rows() != A.rows().
      IllegalArgumentException - if !isSymmetricPositiveDefinite().
    • XXXsolveBuggy

      private DoubleMatrix2D XXXsolveBuggy(DoubleMatrix2D B)
      Solves A*X = B; returns X.
      Parameters:
      B - A Matrix with as many rows as A and any number of columns.
      Returns:
      X so that L*L'*X = B.
      Throws:
      IllegalArgumentException - if B.rows() != A.rows().
      IllegalArgumentException - if !isSymmetricPositiveDefinite().
    • toString

      public String toString()
      Returns a String with (propertyName, propertyValue) pairs. Useful for debugging or to quickly get the rough picture. For example,
      rank          : 3
      trace         : 0
      
      Overrides:
      toString in class Object