jmathlib.toolbox.jmathlib.matrix._private.Jama
Class SingularValueDecomposition

java.lang.Object
  extended by jmathlib.toolbox.jmathlib.matrix._private.Jama.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'.

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.

See Also:
Serialized Form

Field Summary
private  int m
          Row and column dimensions.
private  int n
          Row and column dimensions.
private  double[] s
          Array for internal storage of singular values.
private  double[][] U
          Arrays for internal storage of U and V.
private  double[][] V
          Arrays for internal storage of U and V.
 
Constructor Summary
SingularValueDecomposition(double[][] A)
          Construct the singular value decomposition
SingularValueDecomposition(Matrix Arg)
           
 
Method Summary
 double cond()
          Two norm condition number
 double[][] getS()
          Return the diagonal matrix of singular values
 double[] getSingularValues()
          Return the one-dimensional array of singular values
 double[][] getU()
          Return the left singular vectors
 double[][] getV()
          Return the right singular vectors
static double hypot(double a, double b)
          sqrt(a^2 + b^2) without under/overflow.
 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
 

Field Detail

U

private double[][] U
Arrays for internal storage of U and V.


V

private double[][] V
Arrays for internal storage of U and V.


s

private double[] s
Array for internal storage of singular values.


m

private int m
Row and column dimensions.


n

private int n
Row and column dimensions.

Constructor Detail

SingularValueDecomposition

public SingularValueDecomposition(double[][] A)
Construct the singular value decomposition

Parameters:
A - Rectangular matrix

SingularValueDecomposition

public SingularValueDecomposition(Matrix Arg)
Method Detail

getU

public double[][] getU()
Return the left singular vectors

Returns:
U

getV

public double[][] 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 double[][] 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.

hypot

public static double hypot(double a,
                           double b)
sqrt(a^2 + b^2) without under/overflow.


FOOTER

BOTTOM