Class RectangularCholeskyDecomposition

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

public class RectangularCholeskyDecomposition extends 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 invalid input: '<' 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:
  • Constructor Details

  • Method Details

    • getRootMatrix

      public RealMatrix getRootMatrix()
      Get the root of the covariance matrix. The root is the rectangular matrix B such that the covariance matrix is equal to B.BT
      Returns:
      root of the square matrix
      See Also:
    • getRank

      public int getRank()
      Get the rank of the symmetric positive semidefinite matrix. The r is the number of independent rows in the symmetric positive semidefinite matrix, it is also the number of columns of the rectangular matrix of the decomposition.
      Returns:
      r of the square matrix.
      See Also: