Class RectangularCholeskyDecomposition

java.lang.Object
org.apache.commons.math4.linear.RectangularCholeskyDecomposition

public class RectangularCholeskyDecomposition
extends java.lang.Object
Calculates the rectangular Cholesky decomposition of a matrix.

The rectangular Cholesky decomposition of a real symmetric positive semidefinite matrix A consists of a rectangular matrix B with the same number of rows such that: A is almost equal to BBT, depending on a user-defined tolerance. In a sense, this is the square root of A.

The difference with respect to the regular CholeskyDecomposition is that rows/columns may be permuted (hence the rectangular shape instead of the traditional triangular shape) and there is a threshold to ignore small diagonal elements. This is used for example to generate correlated random n-dimensions vectors in a p-dimension subspace (p < n). In other words, it allows generating random vectors from a covariance matrix that is only positive semidefinite, and not positive definite.

Rectangular Cholesky decomposition is not suited for solving linear systems, so it does not provide any decomposition solver.

Since:
2.0 (changed to concrete class in 3.0)
See Also:
MathWorld, Wikipedia
  • Constructor Summary

    Constructors 
    Constructor Description
    RectangularCholeskyDecomposition​(RealMatrix matrix)
    Decompose a symmetric positive semidefinite matrix.
    RectangularCholeskyDecomposition​(RealMatrix matrix, double small)
    Decompose a symmetric positive semidefinite matrix.
  • Method Summary

    Modifier and Type Method Description
    int getRank()
    Get the rank of the symmetric positive semidefinite matrix.
    RealMatrix getRootMatrix()
    Get the root of the covariance matrix.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait