math.matrix
Class SingularValueDecomposition
java.lang.Object
|
+--math.matrix.SingularValueDecomposition
- All Implemented Interfaces:
- java.io.Serializable
- public class SingularValueDecomposition
- extends java.lang.Object
- implements java.io.Serializable
Singular Value Decomposition.
For an m-by-n matrix A with m >= n, the singular value decomposition is
an m-by-n orthogonal matrix U, an n-by-n diagonal matrix S, and
an n-by-n orthogonal matrix V so that A = U*S*V'.
This class also allows for the SVD of an m-by-n matrix B where the number
of rows is less than the number of columns (m
The singular values, sigma[k] = S[k][k], are ordered so that
sigma[0] >= sigma[1] >= ... >= sigma[n-1].
The singular value decomposition always exists for healthy matrices,
so the constructor will never fail. (An unhealthy matrix is null, or
with number of rows or columns < 1. In this case the constructor will
throw an IllegalArgumentException runtime exception).
The matrix condition number and the effective numerical
rank can be computed from this decomposition.
- See Also:
- Serialized Form
Method Summary |
double |
cond()
Two norm condition number |
Matrix |
getS()
Return the diagonal matrix of singular values |
double[] |
getSingularValues()
Return the one-dimensional array of singular values |
Matrix |
getU()
Return the left singular vectors |
Matrix |
getV()
Return the right singular vectors |
double |
norm2()
Two norm |
int |
rank()
Effective numerical matrix rank |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
SingularValueDecomposition
public SingularValueDecomposition(Matrix Arg)
- Construct the singular value decomposition. The structure returned
allows user to access U, S and V.
- Parameters:
Arg
- the rectangular matrix to be decomposed
getU
public Matrix getU()
- Return the left singular vectors
- Returns:
- U
getV
public Matrix getV()
- Return the right singular vectors
- Returns:
- V
getSingularValues
public double[] getSingularValues()
- Return the one-dimensional array of singular values
- Returns:
- diagonal of S.
getS
public Matrix getS()
- Return the diagonal matrix of singular values
- Returns:
- S
norm2
public double norm2()
- Two norm
- Returns:
- max(S)
cond
public double cond()
- Two norm condition number
- Returns:
- max(S)/min(S)
rank
public int rank()
- Effective numerical matrix rank
- Returns:
- Number of nonnegligible singular values.
mvt.icons