svd_test, a C++ code which demonstrates the computation of the singular value decomposition (SVD) and a few of its properties.
The singular value decomposition has uses in solving overdetermined or underdetermined linear systems, linear least squares problems, data compression, the pseudoinverse matrix, reduced order modeling, and the accurate computation of matrix rank and null space.
The singular value decomposition of an M by N rectangular matrix A has the form
A(mxn) = U(mxm) * S(mxn) * V'(nxn)where
svd_test m n seedwhere
The computer code and data files described and made available on this web page are distributed under the MIT license
svd_test is available in a C version and a C++ version and a FORTRAN90 version and a MATLAB version and a Python version.
FINGERPRINTS, a dataset directory which contains a few images of fingerprints.
LINPACK, a C++ code which includes routines to carry out the singular value decomposition.
SVD_BASIS, a C++ code which computes a reduced basis for a collection of data vectors using the SVD.
SVD_SNOWFALL, a C++ code which reads a file containing historical snowfall data and analyzes the data with the Singular Value Decomposition (SVD), and plots created by GNUPLOT.
SVD_TRUNCATED, a C++ code which demonstrates the computation of the reduced or truncated Singular Value Decomposition (SVD) that is useful for cases when one dimension of the matrix is much smaller than the other.
TOMS358, a FORTRAN77 routine which computes the singular value decomposition for a complex matrix.