Package org.apache.commons.math3.linear
Class CholeskyDecomposition
java.lang.Object
org.apache.commons.math3.linear.CholeskyDecomposition
Calculates the Cholesky decomposition of a matrix.
The Cholesky decomposition of a real symmetric positive-definite matrix A consists of a lower triangular matrix L with same size such that: A = LLT. In a sense, this is the square root of A.
This class is based on the class with similar name from the JAMA library, with the following changes:
- a
getLT
method has been added, - the
isspd
method has been removed, since the constructor of this class throws aNonPositiveDefiniteMatrixException
when a matrix cannot be decomposed, - a
getDeterminant
method has been added, - the
solve
method has been replaced by agetSolver
method and the equivalent method provided by the returnedDecompositionSolver
.
- Since:
- 2.0 (changed to concrete class in 3.0)
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static class
Specialized solver. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate RealMatrix
Cached value of L.private RealMatrix
Cached value of LT.static final double
Default threshold below which diagonal elements are considered null and matrix not positive definite.static final double
Default threshold above which off-diagonal elements are considered too different and matrix not symmetric.private double[][]
Row-oriented storage for LT matrix data. -
Constructor Summary
ConstructorsConstructorDescriptionCholeskyDecomposition
(RealMatrix matrix) Calculates the Cholesky decomposition of the given matrix.CholeskyDecomposition
(RealMatrix matrix, double relativeSymmetryThreshold, double absolutePositivityThreshold) Calculates the Cholesky decomposition of the given matrix. -
Method Summary
-
Field Details
-
DEFAULT_RELATIVE_SYMMETRY_THRESHOLD
public static final double DEFAULT_RELATIVE_SYMMETRY_THRESHOLDDefault threshold above which off-diagonal elements are considered too different and matrix not symmetric.- See Also:
-
DEFAULT_ABSOLUTE_POSITIVITY_THRESHOLD
public static final double DEFAULT_ABSOLUTE_POSITIVITY_THRESHOLDDefault threshold below which diagonal elements are considered null and matrix not positive definite.- See Also:
-
lTData
private double[][] lTDataRow-oriented storage for LT matrix data. -
cachedL
Cached value of L. -
cachedLT
Cached value of LT.
-
-
Constructor Details
-
CholeskyDecomposition
Calculates the Cholesky decomposition of the given matrix.Calling this constructor is equivalent to call
CholeskyDecomposition(RealMatrix, double, double)
with the thresholds set to the default valuesDEFAULT_RELATIVE_SYMMETRY_THRESHOLD
andDEFAULT_ABSOLUTE_POSITIVITY_THRESHOLD
- Parameters:
matrix
- the matrix to decompose- Throws:
NonSquareMatrixException
- if the matrix is not square.NonSymmetricMatrixException
- if the matrix is not symmetric.NonPositiveDefiniteMatrixException
- if the matrix is not strictly positive definite.- See Also:
-
CholeskyDecomposition
public CholeskyDecomposition(RealMatrix matrix, double relativeSymmetryThreshold, double absolutePositivityThreshold) Calculates the Cholesky decomposition of the given matrix.- Parameters:
matrix
- the matrix to decomposerelativeSymmetryThreshold
- threshold above which off-diagonal elements are considered too different and matrix not symmetricabsolutePositivityThreshold
- threshold below which diagonal elements are considered null and matrix not positive definite- Throws:
NonSquareMatrixException
- if the matrix is not square.NonSymmetricMatrixException
- if the matrix is not symmetric.NonPositiveDefiniteMatrixException
- if the matrix is not strictly positive definite.- See Also:
-
-
Method Details
-
getL
Returns the matrix L of the decomposition.L is an lower-triangular matrix
- Returns:
- the L matrix
-
getLT
Returns the transpose of the matrix L of the decomposition.LT is an upper-triangular matrix
- Returns:
- the transpose of the matrix L of the decomposition
-
getDeterminant
public double getDeterminant()Return the determinant of the matrix- Returns:
- determinant of the matrix
-
getSolver
Get a solver for finding the A × X = B solution in least square sense.- Returns:
- a solver
-