
public class SingularValueDecomposition extends Object
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.
| Modifier and Type | Field and Description | 
|---|---|
| private int | mRow and column dimensions. | 
| private int | nRow and column dimensions. | 
| private double[] | sArray for internal storage of singular values. | 
| private double[][] | UArrays for internal storage of U and V. | 
| private double[][] | VArrays for internal storage of U and V. | 
| Constructor and Description | 
|---|
| SingularValueDecomposition(double[][] Arg)Constructor. | 
| SingularValueDecomposition(Matrix Arg)Construct the singular value decomposition | 
| Modifier and Type | Method and Description | 
|---|---|
| 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 | 
private double[][] U
private double[][] V
private double[] s
private int m
private int n
public SingularValueDecomposition(Matrix Arg)
Arg - Rectangular matrixpublic SingularValueDecomposition(double[][] Arg)
Arg - Rectangular input matrixpublic Matrix getU()
public Matrix getV()
public double[] getSingularValues()
public Matrix getS()
public double norm2()
public double cond()
public int rank()