Package org.hipparchus.linear
Class CholeskyDecomposition
- java.lang.Object
-
- org.hipparchus.linear.CholeskyDecomposition
-
public class CholeskyDecomposition extends Object
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.
- a
-
-
Field Summary
Fields Modifier and Type Field Description static doubleDEFAULT_ABSOLUTE_POSITIVITY_THRESHOLDDefault threshold below which diagonal elements are considered null and matrix not positive definite.static doubleDEFAULT_RELATIVE_SYMMETRY_THRESHOLDDefault threshold above which off-diagonal elements are considered too different and matrix not symmetric.
-
Constructor Summary
Constructors Constructor Description CholeskyDecomposition(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
All Methods Instance Methods Concrete Methods Modifier and Type Method Description doublegetDeterminant()Return the determinant of the matrixRealMatrixgetL()Returns the matrix L of the decomposition.RealMatrixgetLT()Returns the transpose of the matrix L of the decomposition.DecompositionSolvergetSolver()Get a solver for finding the A × X = B solution in least square sense.
-
-
-
Field Detail
-
DEFAULT_RELATIVE_SYMMETRY_THRESHOLD
public static final double DEFAULT_RELATIVE_SYMMETRY_THRESHOLD
Default threshold above which off-diagonal elements are considered too different and matrix not symmetric.- See Also:
- Constant Field Values
-
DEFAULT_ABSOLUTE_POSITIVITY_THRESHOLD
public static final double DEFAULT_ABSOLUTE_POSITIVITY_THRESHOLD
Default threshold below which diagonal elements are considered null and matrix not positive definite.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
CholeskyDecomposition
public CholeskyDecomposition(RealMatrix matrix)
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(RealMatrix, double, double),DEFAULT_RELATIVE_SYMMETRY_THRESHOLD,DEFAULT_ABSOLUTE_POSITIVITY_THRESHOLD
-
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:
CholeskyDecomposition(RealMatrix),DEFAULT_RELATIVE_SYMMETRY_THRESHOLD,DEFAULT_ABSOLUTE_POSITIVITY_THRESHOLD
-
-
Method Detail
-
getL
public RealMatrix getL()
Returns the matrix L of the decomposition.L is an lower-triangular matrix
- Returns:
- the L matrix
-
getLT
public RealMatrix 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
public DecompositionSolver getSolver()
Get a solver for finding the A × X = B solution in least square sense.- Returns:
- a solver
-
-