Package org.ojalgo.matrix.decomposition
Interface MatrixDecomposition.RankRevealing<N extends java.lang.Comparable<N>>
-
- All Superinterfaces:
MatrixDecomposition<N>
,MatrixDecomposition.Ordered<N>
,Provider2D
,Provider2D.Rank
,Structure1D
,Structure2D
- All Known Implementing Classes:
CholeskyDecomposition
,CholeskyDecomposition.C128
,CholeskyDecomposition.H256
,CholeskyDecomposition.Q128
,CholeskyDecomposition.R064
,CholeskyDecomposition.R128
,LDLDecomposition
,LDLDecomposition.C128
,LDLDecomposition.H256
,LDLDecomposition.Q128
,LDLDecomposition.R064
,LDLDecomposition.R128
,LUDecomposition
,LUDecomposition.C128
,LUDecomposition.H256
,LUDecomposition.Q128
,LUDecomposition.R064
,LUDecomposition.R128
,QRDecomposition
,QRDecomposition.C128
,QRDecomposition.H256
,QRDecomposition.Q128
,QRDecomposition.R064
,QRDecomposition.R128
,RawCholesky
,RawLU
,RawQR
,RawSingularValue
,SingularValueDecomposition
,SingularValueDecomposition.C128
,SingularValueDecomposition.H256
,SingularValueDecomposition.Q128
,SingularValueDecomposition.R064
,SingularValueDecomposition.R128
- Enclosing interface:
- MatrixDecomposition<N extends java.lang.Comparable<N>>
public static interface MatrixDecomposition.RankRevealing<N extends java.lang.Comparable<N>> extends MatrixDecomposition.Ordered<N>, Provider2D.Rank
A rank-revealing matrix decomposition of a matrix [A] is a decomposition that is, or can be transformed to be, on the form [A]=[X][D][Y]T where:- [X] and [Y] are square and well conditioned.
- [D] is diagonal with nonnegative and non-increasing values on the diagonal.
The defintion that [X] and [Y] should be well conditioned is subject to interpretation. A specific decomposition algorithm can be more or less good at revealing the rank. Typically the
SingularValue
decomposition is the best.The requirement to have the diagonal elements of [D] ordered can be very practical, but is not always strictly necessary in order to just reveal the rank. The method
MatrixDecomposition.Ordered.isOrdered()
indicates if the elements (rows and columns) of the returned matrix factors actually are ordered or not for this particular implementation.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.ojalgo.matrix.decomposition.MatrixDecomposition
MatrixDecomposition.Determinant<N extends java.lang.Comparable<N>>, MatrixDecomposition.EconomySize<N extends java.lang.Comparable<N>>, MatrixDecomposition.Factory<D extends MatrixDecomposition<?>>, MatrixDecomposition.Hermitian<N extends java.lang.Comparable<N>>, MatrixDecomposition.Ordered<N extends java.lang.Comparable<N>>, MatrixDecomposition.Pivoting<N extends java.lang.Comparable<N>>, MatrixDecomposition.RankRevealing<N extends java.lang.Comparable<N>>, MatrixDecomposition.Solver<N extends java.lang.Comparable<N>>, MatrixDecomposition.Values<N extends java.lang.Comparable<N>>
-
Nested classes/interfaces inherited from interface org.ojalgo.matrix.Provider2D
Provider2D.Condition, Provider2D.Determinant<N extends java.lang.Comparable<N>>, Provider2D.Eigenpairs, Provider2D.Hermitian, Provider2D.Inverse<M>, Provider2D.Rank, Provider2D.Solution<M>, Provider2D.Symmetric, Provider2D.Trace<N extends java.lang.Comparable<N>>
-
Nested classes/interfaces inherited from interface org.ojalgo.structure.Structure1D
Structure1D.BasicMapper<T>, Structure1D.IndexMapper<T>, Structure1D.IntIndex, Structure1D.LongIndex, Structure1D.LoopCallback
-
Nested classes/interfaces inherited from interface org.ojalgo.structure.Structure2D
Structure2D.IntRowColumn, Structure2D.Logical<S extends Structure2D,B extends Structure2D.Logical<S,B>>, Structure2D.LongRowColumn, Structure2D.ReducibleTo1D<R extends Structure1D>, Structure2D.Reshapable, Structure2D.RowColumnKey<R,C>, Structure2D.RowColumnMapper<R,C>
-
-
Field Summary
-
Fields inherited from interface org.ojalgo.matrix.decomposition.MatrixDecomposition
TYPICAL
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description int
countSignificant(double threshold)
default int
getRank()
The best (and most expensive) way to get the effective numerical rank is by calculating aSingularValue
decomposition and then find the number of nonnegligible singular values.double
getRankThreshold()
default boolean
isFullRank()
-
Methods inherited from interface org.ojalgo.matrix.decomposition.MatrixDecomposition
decompose, isComputed, reconstruct, reset
-
Methods inherited from interface org.ojalgo.matrix.decomposition.MatrixDecomposition.Ordered
isOrdered
-
Methods inherited from interface org.ojalgo.structure.Structure2D
count, countColumns, countRows, firstInColumn, firstInRow, getColDim, getMaxDim, getMinDim, getRowDim, isEmpty, isFat, isScalar, isSquare, isTall, isVector, limitOfColumn, limitOfRow, size
-
-
-
-
Method Detail
-
countSignificant
int countSignificant(double threshold)
- Parameters:
threshold
- Significance limit- Returns:
- The number of elements in the diagonal matrix that are greater than the threshold
-
getRank
default int getRank()
The best (and most expensive) way to get the effective numerical rank is by calculating aSingularValue
decomposition and then find the number of nonnegligible singular values.- Specified by:
getRank
in interfaceProvider2D.Rank
- Returns:
- The effective numerical rank (best estimate)
-
getRankThreshold
double getRankThreshold()
-
isFullRank
default boolean isFullRank()
- Returns:
- true if the rank is equal to the minimum of the row and column dimensions; false if not
-
-