Class LUDecompositionImpl

  • All Implemented Interfaces:

    public class LUDecompositionImpl
    extends java.lang.Object
    implements LUDecomposition
    Calculates the LUP-decomposition of a square matrix.

    The LUP-decomposition of a matrix A consists of three matrices L, U and P that satisfy: PA = LU, L is lower triangular, and U is upper triangular and P is a permutation matrix. All matrices are m×m.

    As shown by the presence of the P matrix, this decomposition is implemented using partial pivoting.

    • Constructor Detail

      • LUDecompositionImpl

        public LUDecompositionImpl​(RealMatrix matrix,
                                   double singularityThreshold)
                            throws NonSquareMatrixException
        Calculates the LU-decomposition of the given matrix.
        matrix - The matrix to decompose.
        singularityThreshold - threshold (based on partial row norm) under which a matrix is considered singular
        NonSquareMatrixException - if matrix is not square
    • Method Detail

      • getL

        public RealMatrix getL()
        Returns the matrix L of the decomposition.

        L is an lower-triangular matrix

        Specified by:
        getL in interface LUDecomposition
        the L matrix (or null if decomposed matrix is singular)
      • getU

        public RealMatrix getU()
        Returns the matrix U of the decomposition.

        U is an upper-triangular matrix

        Specified by:
        getU in interface LUDecomposition
        the U matrix (or null if decomposed matrix is singular)
      • getP

        public RealMatrix getP()
        Returns the P rows permutation matrix.

        P is a sparse matrix with exactly one element set to 1.0 in each row and each column, all other elements being set to 0.0.

        The positions of the 1 elements are given by the pivot permutation vector.

        Specified by:
        getP in interface LUDecomposition
        the P rows permutation matrix (or null if decomposed matrix is singular)
        See Also:
      • getDeterminant

        public double getDeterminant()
        Return the determinant of the matrix
        Specified by:
        getDeterminant in interface LUDecomposition
        determinant of the matrix