Package cern.colt.matrix.linalg
Class CholeskyDecomposition
java.lang.Object
cern.colt.matrix.linalg.CholeskyDecomposition
- All Implemented Interfaces:
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 Summary
FieldsModifier and TypeFieldDescriptionprivate boolean
Symmetric and positive definite flag.private DoubleMatrix2D
Array for internal storage of decomposition.private int
Row and column dimension (square matrix).(package private) static final long
-
Constructor Summary
ConstructorsConstructorDescriptionConstructs 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. -
Method Summary
Modifier and TypeMethodDescriptiongetL()
Returns the triangular factor, L.boolean
Returns whether the matrix A is symmetric and positive definite.Solves A*X = B; returns X.toString()
Returns a String with (propertyName, propertyValue) pairs.private DoubleMatrix2D
Solves A*X = B; returns X.
-
Field Details
-
serialVersionUID
static final long serialVersionUID- See Also:
-
L
Array for internal storage of decomposition. -
n
private int nRow and column dimension (square matrix). -
isSymmetricPositiveDefinite
private boolean isSymmetricPositiveDefiniteSymmetric and positive definite flag.
-
-
Constructor Details
-
CholeskyDecomposition
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
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
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
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
Returns a String with (propertyName, propertyValue) pairs. Useful for debugging or to quickly get the rough picture. For example,rank : 3 trace : 0
-