|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.apache.commons.math.linear.SingularValueDecompositionImpl
public class SingularValueDecompositionImpl
Calculates the compact Singular Value Decomposition of a matrix.
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 Summary | |
|---|---|
SingularValueDecompositionImpl(RealMatrix matrix)
Calculates the compact Singular Value Decomposition of the given matrix. |
|
| Method Summary | |
|---|---|
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. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public SingularValueDecompositionImpl(RealMatrix matrix)
throws InvalidMatrixException
matrix - The matrix to decompose.
InvalidMatrixException - (wrapping a
ConvergenceException if
algorithm fails to converge| Method Detail |
|---|
public 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 SingularValueDecompositionInvalidMatrixException
public double[] getSingularValues()
throws InvalidMatrixException
The singular values are provided in non-increasing order, for compatibility with Jama.
getSingularValues in interface SingularValueDecompositionInvalidMatrixException
public 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 SingularValueDecompositionInvalidMatrixException
public double getConditionNumber()
throws InvalidMatrixException
getConditionNumber in interface SingularValueDecompositionInvalidMatrixException
public int getRank()
throws 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 SingularValueDecompositionIllegalStateExceptionpublic DecompositionSolver getSolver()
getSolver in interface SingularValueDecomposition
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||