org.hipparchus.linear

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

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

All 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:
MathIllegalArgumentException - 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:
MathIllegalArgumentException - 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)
getPivot()
• getPivot

public int[] getPivot()
Returns the pivot permutation vector.
Returns:
the pivot permutation vector
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