public class SingularValueDecomposition
extends java.lang.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.
FIXME: This code has not been optimized AT ALL.
Modifier and Type | Class and Description |
---|---|
(package private) class |
SingularValueDecomposition.SVDImpl |
Constructor and Description |
---|
SingularValueDecomposition(Matrix A)
Construct the singular value decomposition
|
Modifier and Type | Method and Description |
---|---|
double |
cond()
Two norm condition number
|
Matrix |
getS() |
double[] |
getSingularValues() |
Matrix |
getU() |
Matrix |
getV() |
(package private) static double |
hypot(double a,
double b) |
static void |
main(java.lang.String[] args) |
double |
norm2() |
int |
rank()
Effective numerical matrix rank
|
public SingularValueDecomposition(Matrix A)
A
- Rectangular matrixpublic Matrix getU()
public Matrix getV()
public double[] getSingularValues()
public Matrix getS()
public double norm2()
public double cond()
public int rank()
static final double hypot(double a, double b)
public static void main(java.lang.String[] args)