Click or drag to resize
SVD Class
Singular Value Decomposition (SVD) of a rectangular matrix of type double.
Inheritance Hierarchy
SystemObject
  Imsl.MathSVD

Namespace: Imsl.Math
Assembly: ImslCS (in ImslCS.dll) Version: 6.5.2.0
Syntax
[SerializableAttribute]
public class SVD

The SVD type exposes the following members.

Constructors
Methods
  NameDescription
Public methodEquals
Determines whether the specified object is equal to the current object.
(Inherited from Object.)
Protected methodFinalize
Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.
(Inherited from Object.)
Public methodGetHashCode
Serves as a hash function for a particular type.
(Inherited from Object.)
Public methodGetS
Returns the singular values.
Public methodGetType
Gets the Type of the current instance.
(Inherited from Object.)
Public methodGetU
Returns the left singular vectors.
Public methodGetV
Returns the right singular vectors.
Public methodInverse
Compute the Moore-Penrose generalized inverse of a real matrix.
Protected methodMemberwiseClone
Creates a shallow copy of the current Object.
(Inherited from Object.)
Public methodToString
Returns a string that represents the current object.
(Inherited from Object.)
Top
Properties
  NameDescription
Public propertyInfo
Returns the index of the first singular value for which the algorithm converged.
Public propertyNumberOfProcessors
Perform the parallel calculations with the maximum possible number of processors set to NumberOfProcessors.
Public propertyRank
Returns the rank of the matrix used to construct this instance.
Top
Remarks

SVD is based on the LINPACK routine SSVDC; see Dongarra et al. (1979).

Let n be the number of rows in A and let p be the number of columns in A. For any

n x p matrix A, there exists an n x n orthogonal matrix U and a p x p orthogonal matrix V such that

U^T A V = \left\{  \begin{array}{cl} \left[ 
            \begin{array}{l} \Sigma \\ 0 \end{array} \right] & \mbox{if $n \ge 
            p$} \\ \left[ \Sigma \,\, 0 \right] & \mbox{if $n \le p$} 
            \end{array} \right.

where \Sigma = {\rm diag}(\sigma_1, \ldots, \sigma_m)
            , and m = \min(n, p). The scalars \sigma_1 \geq \sigma_2 \geq \ldots \geq \sigma_m \geq 0
            are called the singular values of A. The columns of U are called the left singular vectors of A. The columns of V are called the right singular vectors of A.

The estimated rank of A is the number of \sigma_k
            that is larger than a tolerance \eta. If \tau is the parameter tol in the program, then

\eta  = \left\{ \begin{array}{cl} \tau \hfill 
            & \mbox {if $\tau \gt 0$} \\ {\left| \tau \right|\left\| A 
            \right\|_\infty } \hfill & \mbox {if $\tau \lt  0$} \end{array} 
            \right.

The Moore-Penrose generalized inverse of the matrix is computed by partitioning the matrices U, V and \Sigma as U = (U_1,U_2), V = (V_1,V_2) and \Sigma_1 = {\rm diag}(\sigma_1,\ldots,\sigma_k) where the "1" matrices are k by k. The Moore-Penrose generalized inverse is V_1 \Sigma_1^{-1} U_1^T.

See Also

Reference

Other Resources