In
linear algebra, the 'singular value decomposition (SVD)' is an important
factorization of a rectangular
real or
complex matrix, with several applications in
signal processing and
statistics.
The
spectral theorem says that
normal matrices can be unitarily
diagonalized using a basis of
eigenvectors. The SVD can be seen as a generalization of the
spectral theorem to arbitrary, not necessarily square, matrices.
Statement of the theorem
Suppose ''M'' is an ''m''-by-''n''
matrix whose entries come from the
field ''K'', which is either the field of
real numbers or the field of
complex numbers. Then there exists a factorization of the form
:
where ''U'' is an ''m''-by-''m''
unitary matrix over ''K'', the matrix Σ is ''m''-by-''n'' with nonnegative numbers on the diagonal and zeros off the diagonal, and ''V
★ '' denotes the
conjugate transpose of ''V'', an ''n''-by-''n'' unitary matrix over ''K''. Such a factorization is called a ''singular-value decomposition'' of ''M''.
★ The matrix ''V'' thus contains a set of orthonormal "input" or "analysing" basis vector directions for ''M''
★ The matrix ''U'' contains a set of orthonormal "output" basis vector directions for ''M''
★ The matrix ''Σ'' contains the
singular values, which can be thought of as scalar "gain controls" by which each corresponding input is multiplied to give a corresponding output.
A common convention is to order the values Σ
''i'',''i'' in non-increasing fashion. In this case, the diagonal matrix Σ is uniquely determined by ''M'' (though the matrices ''U'' and ''V'' are not).
Certain programming languages, such as
R, use a notation wherein -- for ''p'' = min(''m'',''n'') -- ''U'' is ''m''-by-''p'', Σ is ''p''-by-''p'', and ''V'' is ''n''-by-''p''.
Example
Consider the matrix
:
A singular value decomposition, with 4 significant digits, of this matrix is given by
:
that is
:
Notice above that
has non-zero values only in its diagonal. Furthermore, as you can see below, multiplying the matrices
or
by their respective transpose yields an
identity matrix, i.e., both matrices are orthogonal.
:
and
:
It should also be noted that this singular value decomposition is not unique. For example, choosing
such that
:
is also a valid singluar value decomposition
Singular values, singular vectors, and their relation to the SVD
A non-negative real number σ is a 'singular value' for ''M'' if and only if there exist unit-length vectors ''u'' in ''K''
''m'' and ''v'' in ''K''
''n'' such that
:
The vectors ''u'' and ''v'' are called 'left-singular' and 'right-singular vectors' for σ, respectively.
In any singular value decomposition
:
the diagonal entries of Σ are necessarily equal to the singular values of ''M''. The columns of ''U'' and ''V'' are left- resp. right-singular vectors for the corresponding singular values. Consequently, the above theorem states that
★ An ''m'' × ''n'' matrix ''M'' has at least one and at most ''p'' = min(''m'',''n'') distinct singular values.
★ It is always possible to find a unitary basis for ''K''
''m'' consisting of left-singular vectors of ''M''.
★ It is always possible to find a unitary basis for ''K''
''n'' consisting of right-singular vectors of ''M''.
A singular value for which we can find two left (or right) singular vectors that are not linearly dependent is called ''degenerate''.
Non-degenerate singular values always have unique left and right singular vectors, up to multiplication by a unit phase factor ''e''
'i'φ (for the real case up to sign). Consequently, if all singular values of ''M'' are non-degenerate and non-zero, then its singular value decomposition is unique, up to multiplication of a column of ''U'' by a unit phase factor and simultaneous multiplication of the corresponding column of ''V'' by the same unit phase factor.
Degenerate singular values, by definition, have non-unique singular vectors. Furthermore, if ''u''
1 and ''u''
2 are two left-singular vectors which both correspond to the singular value σ, then any normalized linear combination of the two vectors is also a left singular vector corresponding to the singular value σ. The similar statement is true for right singular vectors. Consequently, if ''M'' has degenerate singular values, then its singular value decomposition is not unique.
Applications of the SVD
Pseudoinverse
The singular value decomposition can be used for computing the
pseudoinverse of a matrix. Indeed, the pseudoinverse of the matrix ''M'' with singular value decomposition
is
:
where Σ
+ is the transpose of Σ with every nonzero entry replaced by its reciprocal. The pseudoinverse is one way to solve
linear least squares problems.
Solving homogeneous linear equations
A set of
homogeneous linear equations can be written as
for a matrix
and vector
. A typical situation is that
is known and a non-zero
is to be determined which satisfies the equation. This
can be characterized as a right singular vector corresponding to a singular value of
that is zero. This observation means that if
has no vanishing singular value, the equation has no non-zero
as a solution. It also means that if there are several vanishing singular values, any linear combination of the corresponding right singular vectors is a valid solution.
Total least squares minimization
A total least squares problem means that the vector
which minimizes the 2-norm of a vector
under the constraint
should be determined. The solution turns out to be the right singular vector of
corresponding to the smallest singular value.
Range, null space and rank
Another application of the SVD is that it provides an explicit representation of the
range and
null space of a matrix ''M''. The right singular vectors corresponding to vanishing singular values of ''M'' span the null space of ''M''. The left singular vectors corresponding to the non-zero singular values of ''M'' span the range of ''M''. As a consequence, the
rank of ''M'' equals the number of non-zero singular values which is the same as the number of non-zero elements in
.
In numerical linear algebra the singular values can be used to determine the ''effective rank'' of a matrix, as
rounding error may lead to small but non-zero singular values in a rank deficient matrix.
Matrix approximation
Some practical applications need to solve the problem of approximating a matrix
with another matrix
which has a specific rank
. In the case that the approximation is based on minimizing the
Frobenius norm of the difference between
and
under the constraint that
it turns out that the solution is given by the SVD of
, namely
:
where
is the same matrix as
except that it contains only the
largest singular values (the other singular values are replaced by zero).
'Quick proof:' We hope to minimize
subject to
.
Suppose the SVD of
. Since the
Frobenius norm is unitarily invariant, we have an equivalent statement:
:
Note that since
is diagonal,
should be diagonal in order to minimize the
Frobenius norm. Remember that the
Frobenius norm is the square-root of the summation of the squared modulus of all entries.
This implies that
and
are also singular matrices of
. Thus we can assume that
to minimize the above statement has the form:
:
where
is diagonal. The diagonal entries
of
are not necessarily ordered as in SVD.
:
From the rank constraint, i.e.
has
non-zero diagonal entries, the minimum of the above statement is obtained as follows:
:
Therefore,
of rank
is the best approximation of
in the
Frobenius norm sense when
and the corresponding singular vectors are same as those of
.
Other examples
The SVD is also applied extensively to the study of linear
inverse problems, and is useful in the analysis of regularization methods such as that of
Tikhonov. It is widely used in
statistics where it is related to
principal component analysis, and in
signal processing and
pattern recognition. It is also used in output-only
modal analysis, where the non-scaled
mode shapes can be determined from the singular vectors. Yet another usage is
latent semantic indexing in natural language text processing.
One application of SVD to rather large matrices is in
numerical weather prediction, where
Lanczos methods are used to estimate the most linearly quickly growing few perturbations to the central numerical weather prediction over a given initial forward time period -- i.e. the singular vectors corresponding to the largest singular values of the linearised propagator for the global weather over that time interval. The output singular vectors in this case are entire weather systems! These perturbations are then run through the full nonlinear model to generate an
ensemble forecast, giving a handle on some of the uncertainty that should be allowed for around the current central prediction.
Relation to eigenvalue decomposition
The singular value decomposition is very general in the sense that it can be applied to any ''m'' × ''n'' matrix. The eigenvalue decomposition, on the other hand, can only be applied to certain classes of square matrices. Nevertheless, the two decompositions are related.
In the special case that
is a
Hermitian matrix which is
positive semi-definite, i.e., all its eigenvalues are real and non-negative, then the singular values and singular vectors coincide with the eigenvalues and eigenvectors of ''M'',
:
More generally, given an SVD of ''M'', the following two relations hold:
:
:
The right hand sides of these relations describe the eigenvalue decompositions of the left hand sides. Consequently, the squares of the non-zero singular values of ''M'' are equal to the non-zero eigenvalues of either
or
. Furthermore, the columns of ''U'' (left singular vectors) are eigenvectors of
and the columns of ''V'' (right singular vectors) are eigenvectors of
.
Existence
An eigenvalue ''λ'' of a matrix is characterized by the algebraic relation ''M u'' = ''λ u''. When ''M'' is Hermitian, a variational characterization is also available. Let ''M'' be a real ''n'' × ''n''
symmetric matrix. Define ''f'' :'R'
''n'' → 'R' by ''f''(''x'') = ''x
T M x''. This continuous function attains a maximum at some ''u'' when restricted to the closed unit sphere {||''x''|| ≤ 1}. By the Lagrange multipliers theorem, ''u'' necessarily satisfies
:
A short calculation shows the above leads to ''M u'' = ''λ u'' (symmetry of ''M'' is needed here). Therefore ''λ'' is the largest eigenvalue of ''M''. The same calculation performed on the orthogonal complement of ''u'' gives the next largest eigenvalue and so on. The complex Hermitian case is similar; there ''f''(''x'') = ''x
★ M x'' is a real-valued function of 2''n'' real variables.
Singular values are similar in that they can be described algebraically or from variational principles. Although, unlike the eigenvalue case, Hermiticity, or symmetry, of ''M'' is no longer required.
This section gives these two arguments for existence of singular value decomposition.
Based on the spectral theorem
Let ''M'' be an ''m''-by-''n'' matrix with complex entries. ''M
★ M'' is positive semidefinite, therefore Hermitian. By the
spectral theorem, there exists a unitary ''n''-by-''n'' matrix ''V'' such that
:
where ''D'' is diagonal and positive definite. Partition ''V'' appropriately so we can write
:
Therefore ''V
★ ''
1''M
★ MV''
1 = ''D'', and ''MV''
2 = 0. Define
:
Then
:
We see that this is almost the desired result, except that ''U''
1 and ''V''
1 are not unitary in general. ''U''
1 is a partial isometry (''U''
1''U
★ ''
1 = = ''I'' ) while ''V''
1 is an isometry (''V
★ ''
1''V''
1 = ''I'' ). To finish the argument, one simply has to "fill out" these matrices to obtain unitaries. ''V''
2 already does this for ''V''
1. Similarly, one can choose ''U''
2 such that
:
is unitary.
Define
:
where the extra 0 rows are added one row for each column of ''U''
2. Then
:
which is the desired result:
:
Notice the argument could begin with diagonalizing ''MM
★ '' rather than ''M
★ M'' (This shows directly that ''MM
★ '' and ''M
★ M'' have the same non-zero eigenvalues).
Based on variational characterization
The singular values can also be characterized as the maxima of ''u''
T''Mv'', considered as a function of ''u'' and ''v'', over particular subspaces. The singular vectors are the values of ''u'' and ''v'' where these maxima are attained.
Let ''M'' denote an ''m'' × ''n'' matrix with real entries. Let
and
denote the sets of unit 2-norm vectors in 'R'
''m'' and 'R'
''n'' respectively. Define the function
:
for vectors ''u'' ∈
and ''v'' ∈
. Consider the function ''σ'' restricted to
×
. Since both
and
are
compact sets, their
product is also compact. Furthermore, since ''σ'' is continuous, it attains a largest value for at least one pair of vectors ''u'' ∈
and ''v'' ∈
. This largest value is denoted ''σ''
1 and the corresponding vectors are denoted ''u''
1 and ''v''
1. Since
is the largest value of
it must be non-negative. If it was negative, changing the sign of either ''u''
1 or ''v''
1 would make it positive and thereby larger.
'Statement:' ''u''
1, ''v''
1 are left and right singular vectors of ''M'' with corresponding singular value ''σ''
1.
'Proof:' Similar to the eigenvalues case, by assumption the two vectors satisfy the Lagrange multiplier equation:
:
After some algebra, this becomes
:
and
:
Multiplying the first equation from left by
and the second equation from left by
and taking ||''u''|| = ||''v''|| = 1 into account gives
:
:
So ''σ''
1 = 2 ''λ''
1 = 2 ''λ''
2. By properties of the functional ''φ'' defined by
:
we have
:
Similarly,
:
This proves the statement.
More singular vectors and singular values can be found by maximizing ''σ''(''u'', ''v'') over normalized ''u'', ''v'' which are orthogonal to ''u''
1 and ''v''
1, respectively.
The passage from real to complex is similar to the eigenvalue case.
Geometric meaning
Because ''U'' and ''V'' are unitary, we know that the columns ''u''
1,...,''u
m'' of ''U'' yield an
orthonormal basis of ''K''
''m'' and the columns ''v''
1,...,''v
n''
of ''V'' yield an orthonormal basis of ''K''
''n'' (with respect to the standard
scalar products on these spaces).
The
linear transformation ''T'' :''K''
''n'' → ''K''
''m'' that takes a vector ''x'' to ''Mx'' has a particularly simple description with respect to these orthonormal bases: we have ''T''(''v
i'') = ''σ
i u
i'', for ''i'' = 1,...,min(''m'',''n''), where ''σ
i'' is the ''i''-th diagonal entry of Σ, and ''T''(''v''
''i'') = 0 for ''i'' > min(''m'',''n'').
The geometric content of the SVD theorem can thus be summarized as follows: for every linear map ''T'' :''K''
''n'' → ''K''
''m'' one can find orthonormal bases of ''K''
''n'' and ''K''
''m'' such that ''T'' maps the ''i''-th basis vector of ''K''
''n'' to a non-negative multiple of the ''i''-th basis vector of ''K''
''m'', and sends the left-over basis vectors to zero.
With respect to these bases, the map ''T'' is therefore represented by a diagonal matrix with non-negative real diagonal entries.
To get a more visual flavour of singular values and SVD decomposition —at least when working on real vector spaces— consider the sphere ''S'' of radius one in 'R'
''n''. The linear map ''T'' maps this sphere onto an ellipsoid in 'R'
''m''. Non-zero singular values are simply the lengths of the semi-axes of this ellipsoid. Especially when ''n''=''m'', and all the singular values are distinct and non-zero, the SVD decomposition of the linear map ''T'' can be easily analysed as a succession of three consecutive moves : consider the ellipsoid ''T''(''S'') and specifically its axes ; then consider the directions in 'R'
''n'' sent by ''T'' onto these axes. These directions happen to be mutually orthogonal. Apply first an isometry ''v
★ '' sending these directions to the coordinate axes of 'R'
''n''. On a second move, apply an endomorphism ''d'' diagonalized along the coordinate axes and stretching or shrinking in each direction, using the semi-axes lengths of ''T''(''S'') as stretching coefficients. The composition ''d''
o ''v
★ '' then sends the unit-sphere onto an ellipsoid isometric to ''T''(''S''). To define the third and last move ''u'', just apply an isometry to this ellipsoid so as to carry it over ''T''(''S''). As can be easily checked, the composition ''u''
o ''d''
o ''v
★ '' coincides with ''T''.
Calculating the SVD
The SVD of a matrix ''M'' can be found by computing the eigenvalue decomposition of ''M''
★ ''M'' as indicated in the
Linear algebraic proof above . However, this approach is
numerically unstable, especially for singular values close to zero (
Bau & Trefethen 1997, Lecture 31).
The
LAPACK subroutine
DGESVD represents a typical approach to the computation of the singular value decomposition. If the matrix has more rows than columns a
QR decomposition is first performed. The factor R is then reduced to a
bidiagonal matrix. The desired singular values and vectors are then found by performing a bidiagonal QR iteration, using the LAPACK routine
DBDSQR (See Demmel and Kahan for details).
The
GNU Scientific Library offers three alternative ways to compute the SVD: via the Golub-Reinsch algorithm, via the modified Golub-Reinsch algorithm (faster for matrices with many more rows than columns), or via a one-sided Jacobi orthogonalization. See the
GSL manual page on SVD.
Reduced SVDs
In applications it is quite unusual for the full SVD, including a full unitary decomposition of the null-space of the matrix, to be required. Instead, it is often sufficient (as well as faster, and more economical for storage) to compute a reduced version of the SVD. The following can be distinguished for an ''m''×''n'' matrix ''M'' of rank ''r'':
Thin SVD
:
Only the ''n'' column vectors of ''U'' corresponding to the row vectors of ''V
★ '' are calculated. The remaining column vectors of ''U'' are not calculated. This is significantly quicker and more economical than the full SVD if ''n''<<''m''. The matrix ''U''
n is thus ''m''×''n'', Σ
n is ''n''×''n'' diagonal, and ''V'' is ''n''×''n''.
The first stage in the calculation of a thin SVD will usually be a
QR decomposition of ''M'', which can make for a significantly quicker calculation if ''n''<<''m''.
Compact SVD
:
Only the ''r'' column vectors of ''U'' and ''r'' row vectors of ''V
★ '' corresponding to the non-zero singular values Σ
r are calculated. The remaining vectors of ''U'' and ''V
★ '' are not calculated. This is quicker and more economical than the thin SVD if ''r''<<''n''. The matrix ''U''
r is thus ''m''×''r'', Σ
r is ''r''×''r'' diagonal, and ''V''
r★ is ''r''×''n''.
Truncated SVD
:
Only the ''t'' column vectors of ''U'' and ''t'' row vectors of ''V
★ '' corresponding to the ''t'' largest singular values Σ
r are calculated. The rest of the matrix is discarded. This can be much quicker and more economical than the thin SVD if ''t''<<''r''. The matrix ''U''
t is thus ''m''×''t'', Σ
t is ''t''×''t'' diagonal, and ''V''
t★ is ''t''×''n'.
Of course the truncated SVD is no longer an exact decomposition of the original matrix ''M'', but as discussed below, the approximate matrix
is in a very useful sense the closest approximation to ''M'' that can be achieved by a matrix of rank ''t''.
Norms
Ky Fan norms
The sum of the ''k'' largest singular values of ''M'' is a
matrix norm, the 'Ky Fan ''k''-norm' of ''M''.
The first of the Ky Fan norms, the Ky Fan 1-norm is the same as the
operator norm of ''M'' as a linear operator with respect to the Euclidean norms of ''K''
''m'' and ''K''
''n''. In other words, the Ky Fan 1-norm is the operator norm induced by the standard ''l''
2 Euclidean inner product. For this reason, it is also called the operator 2-norm. One can easily verify the relationship between the Ky Fan 1-norm and singular values. It is true in general, for a bounded operator ''M'' on (possibly infinite dimensional) Hilbert spaces
:
But, in the matrix case, ''M
★ M''
½ is a
normal matrix, so ||''M
★ M''||
½ is the largest eigenvalue of ''M
★ M''
½, i.e. the largest singular value of ''M''.
The last of the Ky Fan norms, the sum of all singular values, is the
trace norm, defined by ||''M''|| = Tr[(''M
★ M'')
½] (the diagonal entries of ''M
★ M'' are the squares of the singular values).
Hilbert-Schmidt norm
The singular values are related to another norm on the space of operators. Consider the
Hilbert-Schmidt inner product on the ''n'' × ''n'' matrices, defined by <''M'', ''N''> = Tr ''N
★ M''. So the induced norm is ||''M''|| = <''M, M''>
½ = (Tr ''M
★ M'')
½. Since trace is invariant under unitary equivalence, this shows
:
where ''s
i'' are the singular values of ''M''. This is called the '
Frobenius norm', 'Schatten 2-norm', or 'Hilbert-Schmidt norm' of ''M''. Direct calculation shows that if
:
the Frobenius norm of ''M'' coincides with
:
2DSVD
SVD computes the low-rank approximation of a single matrix
(or a set of 1D vectors). This can be generalized to
two-dimensional singular value decomposition (2DSVD) to
do low-rank approximation of a set of 2D matrices such as
a set of images or 2D weather maps.
HOSVD
Higher Order Singular Value Decomposition (HOSVD) is a generalization of SVD
for multidimensional arrays (
tensors). It is able to give optimal
low-rank approximation in given dimensions of a tensor.
In the case of a 3 dimensional array (array of matrices)
executing HOSVD in 2 dimensions gives the same result as 2DSVD.
It is used in multilinear signal processing and in
tensor product model transformation which is the base of a modern controller
design method for
parameter-varying systems.
Bounded operators on Hilbert spaces
The factorization
can be extended to a
bounded operator ''M'' on a separable Hilbert space ''H''. Namely, for any bounded operator ''M'', there exist a
partial isometry ''U'', an unitary ''V'', a measure space ''(X, μ)'', and a non-negative measurable ''f'' such that
:
where
is the
multiplication by ''f'' on ''L''
2(''X'', ''μ'').
This can be shown by mimicking the linear algebraic argument for the matricial case above. ''VT
f V
★ '' is the unique positive square root of ''M
★ M'', as given by the
Borel functional calculus for
self adjoint operators. The reason why ''U'' need not be unitary is because, unlike the finite dimensional case, given an isometry ''U''
1 with non trivial kernel, a suitable ''U''
2 may not be found such that
:
is an unitary operator.
As for matrices, the singular value factorization is equivalent to the
polar decomposition for operators: we can simply write
:
and notice that ''U V
★ '' is still a partial isometry while ''VT
f V
★ '' is positive.
Singular values and compact operators
To extend notion of singular values and left/right-singular eigenvectors to the operator case, one needs to restrict to
compact operators. It is a general fact that compact operators on Banach spaces, therefore Hilbert spaces, have only discrete spectrum: If ''T'' is compact, every nonzero ''λ'' in its spectrum is an eigenvalue. Furthermore, a compact self adjoint operator can be diagonalized by its eigenvectors. If ''M'' is compact, so is ''M
★ M''. Applying the diagonalization result, the unitary image of its positive square root ''T
f'' has a set of orthonormal eigenvectors {''e
i''} corresponding to strictly positive eigenvalues {''σ
i''}. For any ''ψ'' ∈ ''H'',
:
where the series converges in the norm topology on ''H''. Notice how this resembles the expression from the finite dimensional case. The ''σ
i'' 's are called the singular values of ''M''. {''U e
i''} and {''V e
i''} can be considered the left- and right-singular vectors of ''M'' respectively.
Compact operators on a Hilbert space are the closure of
finite rank operators in the uniform operator topology. The above series expression gives an explicit such representation. An immediate consequence of this is:
'Theorem' ''M'' is compact if and only if ''M
★ M'' is compact.
History
The singular value decomposition was originally developed by
differential geometers, who wished to determine whether a real
bilinear form could be made equal to another by independent orthogonal transformations of the two spaces it acts on.
Eugenio Beltrami and
Camille Jordan discovered independently, in 1873 and 1874 respectively, that the singular values of the bilinear forms, represented as a matrix, form a complete set of
invariants for bilinear forms under orthogonal substitutions.
James Joseph Sylvester also arrived at the singular value decomposition for real square matrices in 1889, apparently independent of both Beltrami and Jordan. Sylvester called the singular values the ''canonical multipliers'' of the matrix ''A''. The fourth mathematician to discover the singular value decomposition independently is Autonne in 1915, who arrived at it via the
polar decomposition. The first proof of the singular value decomposition for rectangular and complex matrices seems to be by Eckart and Young in 1936; they saw it as a generalization of the
principal axis transformation for Hermitian matrices.
In 1907,
Erhard Schmidt defined an analog of singular values for
integral operators (which are compact, under some weak technical assumptions); it seems he was unaware of the parallel work on singular values of finite matrices. This theory was further developed by
Émile Picard in 1910, who is the first to call the numbers
''singular values'' (or rather, ''valeurs singulières'').
Practical methods for computing the SVD were unknown until 1965 when
Gene Golub and
William Kahan published their algorithm.
In 1970, Golub and
Christian Reinsch published a variant of the Golub/Kahan algorithm that is still the one most-used today.
See also
★
matrix decomposition
★
s-number
★
generalized singular value decomposition
★
polar decomposition
★
principal components analysis (PCA)
★
empirical orthogonal functions (EOFs)
★
canonical correlation analysis (CCA)
★
latent semantic analysis
External links
Implementations
★
ALGLIB includes a partial port of the LAPACK to C++, C#, Delphi, Visual Basic, etc.
★
JAMA A Java matrix package provided by the
NIST.
★
LAPACK users manual gives details of subroutines to calculate the SVD (see also
[1]).
★
Opencv vision library in C,C++.
★
PROPACK, computes the SVD of large and sparse or structured matrices.
★
SVDPACK, a library in ANSI FORTRAN 77 implementing four iterative SVD methods. Includes C and C++ interfaces.
★
SVDLIBC, re-writing of SVDPACK in C.
Texts and demonstrations
★
MIT Lecture series by Gilbert Strang. See Lecture #29 on the SVD (scroll down to the bottom till you see "Singular Value Decomposition"). The first 17 minutes give the overview. Then Prof. Strang works two examples. Then the last 4 minutes (min 36 to min 40) are a summary. You can probably fast forward the examples, but the first and last are an excellent concise visual presentation of the topic.
★
Applications of SVD on PC Hansen's web site.
★
Introduction to the Singular Value Decomposition by Todd Will of the University of Wisconsin--La Crosse. This site has animations for the visual minded as well as demonstrations of compression using SVD.
★
Los Alamos group's book chapter has helpful gene data analysis examples.
★
SVD, another explanation of singular value decomposition
★
Java script demonstrating the SVD more extensively, paste your data from a spreadsheet.
★
Chapter from "Numerical Recipes in C" gives more information about implementation and applications of SVD. (Acrobat DRM plug-in required)
★
Online Matrix Calculator Performs singular value decomposition of matrices.
References
★
★ .
★ Demmel, J. and Kahan, W. (1990). Computing Small Singular Values of Bidiagonal Matrices With Guaranteed High Relative Accuracy. ''SIAM J. Sci. Statist. Comput.'', '11' (5), 873-912.
★ Eckart, C., & Young, G. (1936). The approximation of one matrix by another of lower rank. Psychometrika, I, 211-218.
★ Golub, G. H. and Van Loan, C. F. (1996). "Matrix Computations". 3rd ed., Johns Hopkins University Press, Baltimore. ISBN 0-8018-5414-8.
★ Halldor, Bjornsson and Venegas, Silvia A. (1997).
"A manual for EOF and SVD analyses of climate data". McGill University, CCGCR Report No. 97-1, Montréal, Québec, 52pp.
★ Hansen, P. C. (1987). The truncated SVD as a method for regularization. ''BIT'', '27', 534-553.
★ Horn, Roger A. and Johnson, Charles R (1985). "Matrix Analysis". Section 7.3. Cambridge University Press. ISBN 0-521-38632-2.
★ Horn, Roger A. and Johnson, Charles R (1991). Topics in Matrix Analysis, Chapter 3. Cambridge University Press. ISBN 0-521-46713-6.
★ Strang G (1998). "Introduction to Linear Algebra". Section 6.7. 3rd ed., Wellesley-Cambridge Press. ISBN 0-9614088-5-5.
★ G.W. Stewart (1992).
"On the Early History of the Singular Value Decomposition". Technical Report TR-92-31, University of Maryland,Institute for Advanced Computer Studies.