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
getLTmethod has been added, - the
isspdmethod has been removed, since the constructor of this class throws aMathIllegalArgumentExceptionwhen a matrix cannot be decomposed, - a
getDeterminantmethod has been added, - the
solvemethod has been replaced by agetSolvermethod and the equivalent method provided by the returnedDecompositionSolver.
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final doubleDefault threshold below which diagonal elements are considered null and matrix not positive definite.static final doubleDefault threshold above which off-diagonal elements are considered too different and matrix not symmetric. -
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:
-
-
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_THRESHOLDandDEFAULT_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
-