gov.sandia.cognition.math.matrix.decomposition
Interface SingularValueDecomposition

All Known Implementing Classes:
AbstractSingularValueDecomposition, SingularValueDecompositionMTJ

@CodeReview(reviewer="Jonathan McClain",
            date="2006-05-17",
            changesNeeded=false,
            comments="Interface looks fine.")
@PublicationReference(author="Wikipedia",
                      title="Singular Value Decomposition",
                      type=WebPage,
                      year=2010,
                      url="http://en.wikipedia.org/wiki/Singular_value_decomposition")
public interface SingularValueDecomposition

Interface that describes the operations of all SingularValueDecompositions

Since:
1.0
Author:
Kevin R. Dixon

Method Summary
 double conditionNumber()
          Returns the condition number of the underlying matrix, which is simply the ratio of the largest to smallest singular value
 int effectiveRank(double effectiveZero)
          Returns the effective rank of the underlying matrix by counting the number of singular values whose values are larger than effectiveZero
 Matrix getS()
          Gets the PSD diagonal matrix containing the sorted singular values
 Matrix getU()
          Gets the orthonormal matrix containing the left singular vectors of the underlying matrix
 Matrix getVtranspose()
          Gets the transpose of the orthonormal matrix containing the right singular vectors of the underlying matrix
 double norm2()
          Returns the associated 2-norm (spectral norm) of the underlying matrix, which is simply the largest singular value
 Matrix pseudoInverse()
          Computes the Least Squares pseudoinverse of the underlying matrix
 Matrix pseudoInverse(double effectiveZero)
          Computes the Least Squares pseudoinverse of the underlying matrix, while clipping the singular values at effectiveZero
 int rank()
          Returns the rank of the underlying matrix by calling this.effectiveRank with an effectiveZero = 0.0
 

Method Detail

getU

Matrix getU()
Gets the orthonormal matrix containing the left singular vectors of the underlying matrix

Returns:
U

getS

Matrix getS()
Gets the PSD diagonal matrix containing the sorted singular values

Returns:
S

getVtranspose

Matrix getVtranspose()
Gets the transpose of the orthonormal matrix containing the right singular vectors of the underlying matrix

Returns:
Vtranspose

norm2

double norm2()
Returns the associated 2-norm (spectral norm) of the underlying matrix, which is simply the largest singular value

Returns:
Largest singular value on the interval [0.0, inf)

conditionNumber

double conditionNumber()
Returns the condition number of the underlying matrix, which is simply the ratio of the largest to smallest singular value

Returns:
Condition number on the interval [1.0, inf]

rank

int rank()
Returns the rank of the underlying matrix by calling this.effectiveRank with an effectiveZero = 0.0

Returns:
rank of the underlying matrix

effectiveRank

int effectiveRank(double effectiveZero)
Returns the effective rank of the underlying matrix by counting the number of singular values whose values are larger than effectiveZero

Parameters:
effectiveZero - threshold for considering a singular value to be zero
Returns:
effective rank of the underlying matrix

pseudoInverse

Matrix pseudoInverse()
Computes the Least Squares pseudoinverse of the underlying matrix

Returns:
pseudoinverse of the underlying matrix: V * pinv(S) * U'

pseudoInverse

Matrix pseudoInverse(double effectiveZero)
Computes the Least Squares pseudoinverse of the underlying matrix, while clipping the singular values at effectiveZero

Parameters:
effectiveZero - value below which to consider the singular values zero
Returns:
pseudoinverse of the underlying matrix: V * pinv(S,effectiveZero) * U'