public class SingularValueDecompositionImpl extends java.lang.Object implements SingularValueDecomposition
The Singular Value Decomposition of matrix A is a set of three matrices: U, Σ and V such that A = U × Σ × VT. Let A be a m × n matrix, then U is a m × p orthogonal matrix, Σ is a p × p diagonal matrix with positive or null elements, V is a p × n orthogonal matrix (hence VT is also orthogonal) where p=min(m,n).
| Constructor and Description |
|---|
SingularValueDecompositionImpl(RealMatrix matrix)
Calculates the compact Singular Value Decomposition of the given matrix.
|
| Modifier and Type | Method and Description |
|---|---|
double |
getConditionNumber()
Return the condition number of the matrix.
|
RealMatrix |
getCovariance(double minSingularValue)
Returns the n × n covariance matrix.
|
double |
getNorm()
Returns the L2 norm of the matrix.
|
int |
getRank()
Return the effective numerical matrix rank.
|
RealMatrix |
getS()
Returns the diagonal matrix Σ of the decomposition.
|
double[] |
getSingularValues()
Returns the diagonal elements of the matrix Σ of the decomposition.
|
DecompositionSolver |
getSolver()
Get a solver for finding the A × X = B solution in least square sense.
|
RealMatrix |
getU()
Returns the matrix U of the decomposition.
|
RealMatrix |
getUT()
Returns the transpose of the matrix U of the decomposition.
|
RealMatrix |
getV()
Returns the matrix V of the decomposition.
|
RealMatrix |
getVT()
Returns the transpose of the matrix V of the decomposition.
|
public SingularValueDecompositionImpl(RealMatrix matrix) throws InvalidMatrixException
matrix - The matrix to decompose.InvalidMatrixException - (wrapping a
ConvergenceException if
algorithm fails to convergepublic RealMatrix getU() throws InvalidMatrixException
U is an orthogonal matrix, i.e. its transpose is also its inverse.
getU in interface SingularValueDecompositionInvalidMatrixExceptionSingularValueDecomposition.getUT()public RealMatrix getUT() throws InvalidMatrixException
U is an orthogonal matrix, i.e. its transpose is also its inverse.
getUT in interface SingularValueDecompositionInvalidMatrixExceptionSingularValueDecomposition.getU()public RealMatrix getS() throws InvalidMatrixException
Σ is a diagonal matrix. The singular values are provided in non-increasing order, for compatibility with Jama.
getS in interface SingularValueDecompositionInvalidMatrixExceptionpublic double[] getSingularValues()
throws InvalidMatrixException
The singular values are provided in non-increasing order, for compatibility with Jama.
getSingularValues in interface SingularValueDecompositionInvalidMatrixExceptionpublic RealMatrix getV() throws InvalidMatrixException
V is an orthogonal matrix, i.e. its transpose is also its inverse.
getV in interface SingularValueDecompositionInvalidMatrixExceptionSingularValueDecomposition.getVT()public RealMatrix getVT() throws InvalidMatrixException
V is an orthogonal matrix, i.e. its transpose is also its inverse.
getVT in interface SingularValueDecompositionInvalidMatrixExceptionSingularValueDecomposition.getV()public RealMatrix getCovariance(double minSingularValue)
The covariance matrix is V × J × VT where J is the diagonal matrix of the inverse of the squares of the singular values.
getCovariance in interface SingularValueDecompositionminSingularValue - value below which singular values are ignored
(a 0 or negative value implies all singular value will be used)public double getNorm()
throws InvalidMatrixException
The L2 norm is max(|A × u|2 / |u|2), where |.|2 denotes the vectorial 2-norm (i.e. the traditional euclidian norm).
getNorm in interface SingularValueDecompositionInvalidMatrixExceptionpublic double getConditionNumber()
throws InvalidMatrixException
getConditionNumber in interface SingularValueDecompositionInvalidMatrixExceptionpublic int getRank()
throws java.lang.IllegalStateException
The effective numerical rank is the number of non-negligible singular values. The threshold used to identify non-negligible terms is max(m,n) × ulp(s1) where ulp(s1) is the least significant bit of the largest singular value.
getRank in interface SingularValueDecompositionjava.lang.IllegalStateExceptionpublic DecompositionSolver getSolver()
getSolver in interface SingularValueDecompositionCopyright © 2010 - 2023 Adobe. All Rights Reserved