Class LUDecomposition
 java.lang.Object

 org.apache.commons.math4.legacy.linear.LUDecomposition

public class LUDecomposition extends Object
Calculates the LUPdecomposition of a square matrix.The LUPdecomposition 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 asgetDeterminant
,  the
getDoublePivot
method has been removed (but the int basedgetPivot
method has been kept),  the
solve
andisNonSingular
methods have been replaced by agetSolver
method and the equivalent methods provided by the returnedDecompositionSolver
.
 a


Constructor Summary
Constructors Constructor Description LUDecomposition(RealMatrix matrix)
Calculates the LUdecomposition of the given matrix.LUDecomposition(RealMatrix matrix, double singularityThreshold)
Calculates the LUdecomposition of the given matrix.

Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method 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.



Constructor Detail

LUDecomposition
public LUDecomposition(RealMatrix matrix)
Calculates the LUdecomposition of the given matrix. This constructor uses 1e11 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 LUdecomposition 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 lowertriangular 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 uppertriangular 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

