Interface MatrixDecomposition.RankRevealing<N extends Comparable<N>>
- All Superinterfaces:
MatrixDecomposition<N>, MatrixDecomposition.Ordered<N>, Provider2D, Provider2D.Rank, Structure1D, Structure2D
- All Known Subinterfaces:
Cholesky<N>, Eigenvalue.Spectral<N>, LDL<N>, LDU<N>, LU<N>, QR<N>, SingularValue<N>
- All Known Implementing Classes:
DenseCholesky, DenseCholesky.C128, DenseCholesky.H256, DenseCholesky.Q128, DenseCholesky.R064, DenseCholesky.R128, DenseLDL, DenseLDL.C128, DenseLDL.H256, DenseLDL.Q128, DenseLDL.R064, DenseLDL.R128, DenseLU, DenseLU.C128, DenseLU.H256, DenseLU.Q128, DenseLU.R064, DenseLU.R128, DenseQR, DenseQR.C128, DenseQR.H256, DenseQR.Q128, DenseQR.R064, DenseQR.R128, DenseSingularValue, DenseSingularValue.C128, DenseSingularValue.H256, DenseSingularValue.Q128, DenseSingularValue.R064, DenseSingularValue.R128, HermitianEvD, HermitianEvD.C128, HermitianEvD.H256, HermitianEvD.Q128, HermitianEvD.R064, HermitianEvD.R128, RawCholesky, RawEigenvalue.Symmetric, RawLU, RawQR, RawSingularValue, SparseLU, SparseQDLDL
- Enclosing interface:
MatrixDecomposition<N extends Comparable<N>>
public static interface MatrixDecomposition.RankRevealing<N extends 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 MatrixDecomposition
MatrixDecomposition.Determinant<N>, MatrixDecomposition.EconomySize<N>, MatrixDecomposition.Factory<D>, MatrixDecomposition.Hermitian<N>, MatrixDecomposition.Ordered<N>, MatrixDecomposition.Pivoting<N>, MatrixDecomposition.RankRevealing<N>, MatrixDecomposition.Solver<N>, MatrixDecomposition.Updatable<N>, MatrixDecomposition.Values<N>Nested classes/interfaces inherited from interface Provider2D
Provider2D.Condition, Provider2D.Determinant<N>, Provider2D.Eigenpairs, Provider2D.Hermitian, Provider2D.Inverse<M>, Provider2D.Rank, Provider2D.Solution<M>, Provider2D.Symmetric, Provider2D.Trace<N>Nested classes/interfaces inherited from interface Structure1D
Structure1D.BasicMapper<T>, Structure1D.IndexMapper<T>, Structure1D.IntIndex, Structure1D.LongIndex, Structure1D.LoopCallbackNested classes/interfaces inherited from interface Structure2D
Structure2D.IntRowColumn, Structure2D.Logical<S,B>, Structure2D.LongRowColumn, Structure2D.ReducibleTo1D<R>, Structure2D.Reshapable, Structure2D.RowColumnKey<R, C>, Structure2D.RowColumnMapper<R, C> -
Field Summary
Fields inherited from interface MatrixDecomposition
TYPICAL -
Method Summary
Modifier and TypeMethodDescriptionintcountSignificant(double threshold) default intgetRank()The best (and most expensive) way to get the effective numerical rank is by calculating aSingularValuedecomposition and then find the number of nonnegligible singular values.doubledefault booleanMethods inherited from interface MatrixDecomposition
decompose, isComputed, reconstruct, resetMethods inherited from interface MatrixDecomposition.Ordered
isOrderedMethods inherited from interface Structure2D
count, countColumns, countRows, firstInColumn, firstInRow, getColDim, getMaxDim, getMinDim, getRowDim, isEmpty, isFat, isScalar, isSquare, isTall, isVector, limitOfColumn, limitOfRow, size
-
Method Details
-
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 aSingularValuedecomposition and then find the number of nonnegligible singular values.- Specified by:
getRankin 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
-