Class LUDecompositionImpl

java.lang.Object
org.apache.commons.math.linear.LUDecompositionImpl
All Implemented Interfaces:
LUDecomposition

public class LUDecompositionImpl extends 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.

Since:
2.0
  • Constructor Details

    • LUDecompositionImpl

      public LUDecompositionImpl(RealMatrix matrix) throws InvalidMatrixException
      Calculates the LU-decomposition of the given matrix.
      Parameters:
      matrix - The matrix to decompose.
      Throws:
      InvalidMatrixException - if matrix is not square
    • LUDecompositionImpl

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

    • getL

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

      L is an lower-triangular matrix

      Specified by:
      getL in interface LUDecomposition
      Returns:
      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
      Returns:
      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
      Returns:
      the P rows permutation matrix (or null if decomposed matrix is singular)
      See Also:
    • getPivot

      public int[] getPivot()
      Returns the pivot permutation vector.
      Specified by:
      getPivot in interface LUDecomposition
      Returns:
      the pivot permutation vector
      See Also:
    • getDeterminant

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

      public DecompositionSolver getSolver()
      Get a solver for finding the A × X = B solution in exact linear sense.
      Specified by:
      getSolver in interface LUDecomposition
      Returns:
      a solver