Package com.macrofocus.high_d.mds.pca

# Class SingularValueDecomposition

java.lang.Object
com.macrofocus.high_d.mds.pca.SingularValueDecomposition

public class SingularValueDecomposition extends Object
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.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `SingularValueDecomposition(PCAMatrix Arg)`
  Construct the singular value decomposition Structure to access U, S and V.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `double`
  `cond()`
  Two norm condition number
  `PCAMatrix`
  `getS()`
  Return the diagonal matrix of singular values
  `double[]`
  `getSingularValues()`
  Return the one-dimensional array of singular values
  `PCAMatrix`
  `getU()`
  Return the left singular vectors
  `PCAMatrix`
  `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`

- ## Constructor Details

  - ### SingularValueDecomposition

    public SingularValueDecomposition(PCAMatrix Arg)
    Construct the singular value decomposition Structure to access U, S and V.
    Parameters:
      `Arg` - Rectangular matrix

- ## Method Details

  - ### getU

    public PCAMatrix getU()
    Return the left singular vectors
    Returns:
      U

  - ### getV

    public PCAMatrix 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 PCAMatrix 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.