weka.core.matrix

## Class SingularValueDecomposition

• java.lang.Object
• weka.core.matrix.SingularValueDecomposition
• All Implemented Interfaces:
java.io.Serializable, RevisionHandler

```public class SingularValueDecomposition
extends java.lang.Object
implements java.io.Serializable, RevisionHandler```
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'.

The singular values, sigma[k] = S[k][k], are ordered so that sigma[0] >= sigma[1] >= ... >= sigma[n-1].

The singular value decompostion always exists, so the constructor will never fail. The matrix condition number and the effective numerical rank can be computed from this decomposition.

Version:
\$Revision: 11815 \$
Author:
The Mathworks and NIST, Fracpete (fracpete at waikato dot ac dot nz), eibe@cs.waikato.ac.nz
Serialized Form
• ### Constructor Summary

Constructors
Constructor and Description
`SingularValueDecomposition(Matrix Arg)`
Construct the singular value decomposition
• ### Method Summary

All Methods
Modifier and Type Method and Description
`double` `cond()`
Two norm condition number
`java.lang.String` `getRevision()`
Returns the revision string.
`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

`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`
• ### Constructor Detail

• #### SingularValueDecomposition

`public SingularValueDecomposition(Matrix Arg)`
Construct the singular value decomposition
Parameters:
`Arg` - Rectangular matrix
• ### Method Detail

• #### 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.
• #### getRevision

`public java.lang.String getRevision()`
Returns the revision string.
Specified by:
`getRevision` in interface `RevisionHandler`
Returns:
the revision