Package org.apache.commons.math.linear
Class LUDecompositionImpl
- java.lang.Object
-
- org.apache.commons.math.linear.LUDecompositionImpl
-
- All Implemented Interfaces:
LUDecomposition
public class LUDecompositionImpl extends java.lang.Object implements LUDecomposition
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: PA = LU, L is lower triangular, and 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.
- Since:
- 2.0
-
-
Constructor Summary
Constructors Constructor Description LUDecompositionImpl(RealMatrix matrix)
Calculates the LU-decomposition of the given matrix.LUDecompositionImpl(RealMatrix matrix, double singularityThreshold)
Calculates the LU-decomposition of the given matrix.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description double
getDeterminant()
Return the determinant of the matrixRealMatrix
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
-
LUDecompositionImpl
public LUDecompositionImpl(RealMatrix matrix) throws InvalidMatrixException
Calculates the LU-decomposition of the given matrix.- Parameters:
matrix
- The matrix to decompose.- Throws:
InvalidMatrixException
- if matrix is not square
-
LUDecompositionImpl
public LUDecompositionImpl(RealMatrix matrix, double singularityThreshold) throws NonSquareMatrixException
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 an lower-triangular matrix
- Specified by:
getL
in interfaceLUDecomposition
- 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
- Specified by:
getU
in interfaceLUDecomposition
- 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
.- Specified by:
getP
in interfaceLUDecomposition
- Returns:
- the P rows permutation matrix (or null if decomposed matrix is singular)
- See Also:
LUDecomposition.getPivot()
-
getPivot
public int[] getPivot()
Returns the pivot permutation vector.- Specified by:
getPivot
in interfaceLUDecomposition
- Returns:
- the pivot permutation vector
- See Also:
LUDecomposition.getP()
-
getDeterminant
public double getDeterminant()
Return the determinant of the matrix- Specified by:
getDeterminant
in interfaceLUDecomposition
- Returns:
- determinant of the matrix
-
getSolver
public DecompositionSolver getSolver()
Get a solver for finding the A × X = B solution in exact linear sense.- Specified by:
getSolver
in interfaceLUDecomposition
- Returns:
- a solver
-
-