SingularValueDecomposition is a particular decomposition in MatrixAnalysis. It depends upon the fact that if a matrix A of size m by n is transposed to form At (which will be of size n by m) such that
At[j,i] = A[i,j]for all i and j, the product At A is square and will have EigenValues which are either positive or zero. The positive square roots of these values are the singular values of the original matrix A. Associated with the singular values are two matrices U and V which form the remainder of the SingularValueDecomposition.
A = U S Vtwhere S is a diagonal matrix of the singular values. The U and V matrices each have orthonormal columns, defining directions in the spaces.
For more information, see for example NumericalRecipesInCee p.60.
It is used in LatentSemanticIndexing.
Practical implementations are provided by code libraries, for example the LinearAlgebraPackage LAPACK (see http://www.netlib.org/lapack/lug/node53.html), and the products of the NumericalAlgorithmsGroup.
Sections of the book NumericalRecipesInCee (2nd edition) are available for download from http://www.nr.com/.
WikiPedia has the following article http://en.wikipedia.org/wiki/Singular_value_decomposition.
Note: The above description applies to a real matrix. If the matrix has complex number values then the word transpose needs to be replaced with hermitian transpose i.e. take the transpose and the conjugate of all the values.
The MatrixRank is the number of nonzero singular values. Because of numerical inaccuracy, some of the singular values which should be exactly zero will have small values instead, so the count of zeroes is taken as all those values below some chosen threshold.
Related: PrincipalComponentAnalysis