## org.apache.commons.math3.linear Class LUDecomposition

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

`public class LUDecompositionextends 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.

Since:
2.0 (changed to concrete class in 3.0)
Version:
\$Id: LUDecomposition.java 1416643 2012-12-03 19:37:14Z tn \$
See Also:
MathWorld, Wikipedia

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