org.apache.commons.math3.linear

## Class LUDecomposition

- java.lang.Object
- - org.apache.commons.math3.linear.LUDecomposition

-     public class LUDecomposition
      extends Object

  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: P×A = L×U. L is lower triangular (with unit diagonal terms), 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.

  This class is based on the class with similar name from the JAMA library.

  - a `getP` method has been added,
  - the `det` method has been renamed as `getDeterminant`,
  - the `getDoublePivot` method has been removed (but the int based `getPivot` method has been kept),
  - the `solve` and `isNonSingular` methods have been replaced by a `getSolver` method and the equivalent methods provided by the returned `DecompositionSolver`.
  Since:
    2.0 (changed to concrete class in 3.0)
  Version:
    $Id: LUDecomposition.java 1244107 2012-02-14 16:17:55Z erans $
  See Also:
    MathWorld, Wikipedia

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `LUDecomposition(RealMatrix matrix)` Calculates the LU-decomposition of the given matrix.
    `LUDecomposition(RealMatrix matrix, double singularityThreshold)` Calculates the LU-decomposition of the given matrix.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `double` | `getDeterminant()` Return the determinant of the matrix
    `RealMatrix` | `getL()` Returns the matrix L of the decomposition.
    `RealMatrix` | `getP()` Returns the P rows permutation matrix.
    `int[]` | `getPivot()` Returns the pivot permutation vector.
    `DecompositionSolver` | `getSolver()` Get a solver for finding the A × X = B solution in exact linear sense.
    `RealMatrix` | `getU()` Returns the matrix U of the decomposition.

    - ### Methods inherited from class java.lang.Object

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

- - ### Constructor Detail

    - #### LUDecomposition

          public LUDecomposition(RealMatrix matrix)

      Calculates the LU-decomposition of the given matrix. This constructor uses 1e-11 as default value for the singularity threshold.
      Parameters:
        `matrix` - Matrix to decompose.
      Throws:
        `NonSquareMatrixException` - if matrix is not square.

    - #### LUDecomposition

          public LUDecomposition(RealMatrix matrix,
                         double singularityThreshold)

      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 Detail

    - #### getL

          public RealMatrix getL()

      Returns the matrix L of the decomposition.

      L is a lower-triangular matrix

      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

      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`.

      Returns:
        the P rows permutation matrix (or null if decomposed matrix is singular)
      See Also:
        `getPivot()`

    - #### getPivot

          public int[] getPivot()

      Returns the pivot permutation vector.
      Returns:
        the pivot permutation vector
      See Also:
        `getP()`

    - #### 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 exact linear sense.
      Returns:
        a solver

Copyright © 2003-2012 The Apache Software Foundation. All Rights Reserved.