cern.colt.matrix.linalg

## Class SingularValueDecomposition

- java.lang.Object
- - cern.colt.matrix.linalg.SingularValueDecomposition

All Implemented Interfaces:
  java.io.Serializable

    public class SingularValueDecomposition
    extends java.lang.Object
    implements java.io.Serializable

For an `m x n` matrix `A` with `m >= n`, the singular value decomposition is an `m x n` orthogonal matrix `U`, an `n x n` diagonal matrix `S`, and an `n x 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 decomposition 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

### Constructor Summary

Constructors
Constructor and Description
`SingularValueDecomposition(DoubleMatrix2D Arg)` Constructs and returns a new singular value decomposition object; The decomposed matrices can be retrieved via instance methods of the returned decomposition object.

### Method Summary

Methods
`double` `cond()` Returns the two norm condition number, which is `max(S) / min(S)`.
`DoubleMatrix2D` `getS()` Returns the diagonal matrix of singular values.
`double[]` `getSingularValues()` Returns the diagonal of `S`, which is a one-dimensional array of singular values
`DoubleMatrix2D` `getU()` Returns the left singular vectors `U`.
`DoubleMatrix2D` `getV()` Returns the right singular vectors `V`.
`double` `norm2()` Returns the two norm, which is `max(S)`.
`int` `rank()` Returns the effective numerical matrix rank, which is the number of nonnegligible singular values.
`java.lang.String` `toString()` Returns a String with (propertyName, propertyValue) pairs.

### Methods inherited from class java.lang.Object

`equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Constructor Detail

#### SingularValueDecomposition

    public SingularValueDecomposition(DoubleMatrix2D Arg)

Constructs and returns a new singular value decomposition object; The decomposed matrices can be retrieved via instance methods of the returned decomposition object.

Parameters:
  `A` - A rectangular matrix.
Throws:
  `java.lang.IllegalArgumentException` - if `A.rows() < A.columns()`.

### Method Detail

#### cond

    public double cond()

Returns the two norm condition number, which is `max(S) / min(S)`.

#### getS

    public DoubleMatrix2D getS()

Returns the diagonal matrix of singular values.

Returns:
  S

#### getSingularValues

    public double[] getSingularValues()

Returns the diagonal of `S`, which is a one-dimensional array of singular values

Returns:
  diagonal of `S`.

#### getU

    public DoubleMatrix2D getU()

Returns the left singular vectors `U`.

Returns:
  `U`

#### getV

    public DoubleMatrix2D getV()

Returns the right singular vectors `V`.

Returns:
  `V`

#### norm2

    public double norm2()

Returns the two norm, which is `max(S)`.

#### rank

    public int rank()

Returns the effective numerical matrix rank, which is the number of nonnegligible singular values.

#### toString

    public java.lang.String toString()

Returns a String with (propertyName, propertyValue) pairs. Useful for debugging or to quickly get the rough picture. For example,

    rank          : 3
    trace         : 0

Overrides:
  `toString` in class `java.lang.Object`