Class SingularValueDecomposition

java.lang.Object
org.biojava.nbio.structure.jama.SingularValueDecomposition
All Implemented Interfaces:
Serializable

public class SingularValueDecomposition extends Object implements 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:
  • Constructor Details

    • SingularValueDecomposition

      public SingularValueDecomposition(Matrix Arg)
      Construct the singular value decomposition. Provides a data structure to access U, S and V.
      Parameters:
      Arg - Rectangular matrix
  • Method Details

    • getU

      public Matrix getU()
      Return the left singular vectors
      Returns:
      U
    • getV

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