|
Software Repository
Chapter 6: Singular Value Decomposition
In this chapter we consider the singular value decomposition (SVD)
of the m-by-n matrix A. We assume without loss of generality
that m > = n; if m < n consider A^*.
As described in section 2.4, this decomposition
may be written A = U Sigma V^*,
where U = [u_1,...,u_m] is an m-by-m unitary matrix,
V = [v_1,...,v_n] is an n-by-n unitary matrix,
and Sigma is an m-by-n diagonal matrix with
entries Sigma_{ii} = sigma_i for i=1,..,n.
The u_i are the left singular vectors,
the v_i are the right singular vectors,
and the sigma_i are the singular values.
The singular values are nonnegative and sorted so that
sigma_1 >= sigma_2 >= ... >= sigma_n >= 0.
The number r of nonzero singular values is the rank of A.
If A is real, U and V are real and orthogonal.
Software
Section |
Package Name |
Language |
Comments |
6.2 |
LAPACK |
Fortran 77, C++ wrapper |
direct methods |
|
6.3 |
ARPACK/ PARPACK |
Fortran 77, C++ wrapper |
implicitly restarted Lanczos method |
6.3 |
PLANSO |
Fortran 77 |
thick-restart Lanczos, compare to PARPACK
|
6.3 |
SVDPACK |
Fortran 77, C |
four SVD methods for large sparse matrices |
6.3 |
PROPACK |
Fortran 77, MATLAB |
SVD solver for large sparse matrices (also Lanczos method) |
|
|