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 doublegetDeterminant()Return the determinant of the matrixRealMatrixgetL()Returns the matrix L of the decomposition.RealMatrixgetP()Returns the P rows permutation matrix.int[]getPivot()Returns the pivot permutation vector.DecompositionSolvergetSolver()Get a solver for finding the A × X = B solution in exact linear sense.RealMatrixgetU()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:
 getLin 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:
 getUin 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:
 getPin 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:
 getPivotin interfaceLUDecomposition- Returns:
 - the pivot permutation vector
 - See Also:
 LUDecomposition.getP()
 
- 
getDeterminant
public double getDeterminant()
Return the determinant of the matrix- Specified by:
 getDeterminantin 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:
 getSolverin interfaceLUDecomposition- Returns:
 - a solver
 
 
 - 
 
 -