Namespace:
Imsl.Math
Assembly:
ImslCS (in ImslCS.dll) Version: 6.5.0.0
Syntax
C# |
---|
[SerializableAttribute] public class SVD |
Visual Basic (Declaration) |
---|
<SerializableAttribute> _ Public Class SVD |
Visual C++ |
---|
[SerializableAttribute] public ref class SVD |
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.](eqn/eqn_1873.png)
where , and
. The scalars
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 that is larger than a tolerance
.
If
is the parameter tol in the program,
then

The Moore-Penrose generalized inverse of the matrix is computed by
partitioning the matrices U, V and
as
,
and
where the "1" matrices are k by k. The Moore-Penrose
generalized inverse is
.