cern.colt.matrix.linalg

## Class LUDecomposition

- java.lang.Object
- - cern.colt.matrix.linalg.LUDecomposition

- All Implemented Interfaces:
    java.io.Serializable

      public class LUDecomposition
      extends java.lang.Object
      implements java.io.Serializable

  For an `m x n` matrix `A` with `m >= n`, the LU decomposition is an `m x n` unit lower triangular matrix `L`, an `n x n` upper triangular matrix `U`, and a permutation vector `piv` of length `m` so that `A(piv,:) = L*U`; If `m < n`, then `L` is `m x m` and `U` is `m x n`.

  The LU decomposition with pivoting always exists, even if the matrix is singular, so the constructor will never fail. The primary use of the LU decomposition is in the solution of square systems of simultaneous linear equations. This will fail if `isNonsingular()` returns false.

  See Also:
    Serialized Form

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `LUDecomposition(DoubleMatrix2D A)` Constructs and returns a new LU Decomposition object; The decomposed matrices can be retrieved via instance methods of the returned decomposition object.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `double` | `det()` Returns the determinant, `det(A)`.
    `DoubleMatrix2D` | `getL()` Returns the lower triangular factor, `L`.
    `int[]` | `getPivot()` Returns a copy of the pivot permutation vector.
    `DoubleMatrix2D` | `getU()` Returns the upper triangular factor, `U`.
    `boolean` | `isNonsingular()` Returns whether the matrix is nonsingular (has an inverse).
    `DoubleMatrix2D` | `solve(DoubleMatrix2D B)` Solves `A*X = B`.
    `java.lang.String` | `toString()` Returns a String with (propertyName, propertyValue) pairs.

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

      `equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### LUDecomposition

          public LUDecomposition(DoubleMatrix2D A)

      Constructs and returns a new LU Decomposition object; The decomposed matrices can be retrieved via instance methods of the returned decomposition object.
      Parameters:
        `A` - Rectangular matrix

  - ### Method Detail

    - #### det

          public double det()

      Returns the determinant, `det(A)`.
      Throws:
        `java.lang.IllegalArgumentException` - Matrix must be square

    - #### getL

          public DoubleMatrix2D getL()

      Returns the lower triangular factor, `L`.
      Returns:
        `L`

    - #### getPivot

          public int[] getPivot()

      Returns a copy of the pivot permutation vector.
      Returns:
        piv

    - #### getU

          public DoubleMatrix2D getU()

      Returns the upper triangular factor, `U`.
      Returns:
        `U`

    - #### isNonsingular

          public boolean isNonsingular()

      Returns whether the matrix is nonsingular (has an inverse).
      Returns:
        true if `U`, and hence `A`, is nonsingular; false otherwise.

    - #### solve

          public DoubleMatrix2D solve(DoubleMatrix2D B)

      Solves `A*X = B`.
      Parameters:
        `B` - A matrix with as many rows as `A` and any number of columns.
      Returns:
        `X` so that `L*U*X = B(piv,:)`.
      Throws:
        `java.lang.IllegalArgumentException` - if B.rows() != A.rows().
        `java.lang.IllegalArgumentException` - if A is singular, that is, if `!this.isNonsingular()`.
        `java.lang.IllegalArgumentException` - if `A.rows() < A.columns()`.

    - #### toString

          public java.lang.String toString()

      Returns a String with (propertyName, propertyValue) pairs. Useful for debugging or to quickly get the rough picture. For example,

          rank          : 3
          trace         : 0

      Overrides:
        `toString` in class `java.lang.Object`

Jump to the Colt Homepage