Package org.hipparchus.linear
Class CholeskyDecomposition
java.lang.Object
org.hipparchus.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 aMathIllegalArgumentException
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
.
-
Field Summary
Modifier and TypeFieldDescriptionstatic 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. -
Constructor Summary
ConstructorDescriptionCholeskyDecomposition
(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:
-
-
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:
MathIllegalArgumentException
- if the matrix is not square.MathIllegalArgumentException
- if the matrix is not symmetric.MathIllegalArgumentException
- 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:
MathIllegalArgumentException
- if the matrix is not square.MathIllegalArgumentException
- if the matrix is not symmetric.MathIllegalArgumentException
- 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
-