Class 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:
    Serialized Form
    • Constructor Detail

      • 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 Detail

      • 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.