svd_circle, a MATLAB code which analyzes a linear map of the unit circle caused by an arbitrary 2x2 matrix A, using the singular value decomposition.

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 Note that the transpose of V is used in the decomposition, and that the diagonal matrix S is typically stored as a vector.


The computer code and data files described and made available on this web page are distributed under the GNU LGPL license.


svd_circle is available in a MATLAB version.

Related Data and Programs:

svd_basis, a MATLAB code which computes a reduced basis for a collection of data vectors using the SVD.


svd_test, a MATLAB code which demonstrates the singular value decomposition for a simple example.

svd_faces, a MATLAB code which applies singular value decomposition (SVD) analysis to a set of images.

svd_fingerprint, a MATLAB code which reads a file containing a fingerprint image and uses the Singular Value Decomposition (SVD) to compute and display a series of low rank approximations to the image.

svd_gray, a MATLAB code which reads a gray scale image, computes the Singular Value Decomposition (SVD), and constructs a series of low rank approximations to the image.

svd_snowfall, a MATLAB code which reads a file containing historical snowfall data and analyzes the data with the Singular Value Decomposition (SVD).


  1. Lloyd Trefethen, David Bau,
    Numerical Linear Algebra,
    SIAM, 1997,
    ISBN: 0-89871-361-7,
    LC: QA184.T74.

Source Code:

Last revised on 10 December 2018.