org.apache.commons.math3.linear Class CholeskyDecomposition

java.lang.Object org.apache.commons.math3.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:

Since:
2.0 (changed to concrete class in 3.0)
Version:
\$Id: CholeskyDecomposition.java 1416643 2012-12-03 19:37:14Z tn \$
MathWorld, Wikipedia

Field Summary
static double DEFAULT_ABSOLUTE_POSITIVITY_THRESHOLD
Default threshold below which diagonal elements are considered null and matrix not positive definite.
static double DEFAULT_RELATIVE_SYMMETRY_THRESHOLD
Default threshold above which off-diagonal elements are considered too different and matrix not symmetric.

Constructor Summary
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
double getDeterminant()
Return the determinant of the matrix
RealMatrix getL()
Returns the matrix L of the decomposition.
RealMatrix getLT()
Returns the transpose of the matrix L of the decomposition.
DecompositionSolver getSolver()
Get a solver for finding the A × X = B solution in least square sense.

Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

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.

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.

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 values DEFAULT_RELATIVE_SYMMETRY_THRESHOLD and DEFAULT_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.
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 decompose
relativeSymmetryThreshold - threshold above which off-diagonal elements are considered too different and matrix not symmetric
absolutePositivityThreshold - 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.
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