public class LUDecomposition extends Object
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.
getP
method has been added,det
method has been renamed as getDeterminant
,getDoublePivot
method has been removed (but the int based
getPivot
method has been kept),solve
and isNonSingular
methods have been replaced
by a getSolver
method and the equivalent methods
provided by the returned DecompositionSolver
.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.
|
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.
|
public LUDecomposition(RealMatrix matrix)
matrix
- Matrix to decompose.MathIllegalArgumentException
- if matrix is not square.public LUDecomposition(RealMatrix matrix, double singularityThreshold)
matrix
- The matrix to decompose.singularityThreshold
- threshold (based on partial row norm)
under which a matrix is considered singularMathIllegalArgumentException
- if matrix is not squarepublic RealMatrix getL()
L is a lower-triangular matrix
public RealMatrix getU()
U is an upper-triangular matrix
public RealMatrix getP()
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
.
getPivot()
public int[] getPivot()
getP()
public double getDeterminant()
public DecompositionSolver getSolver()
Copyright © 2016–2020 Hipparchus.org. All rights reserved.