The singular value decomposition, or SVD, has numerous applications in statistics, signal processing, and numerical analysis. An m x n matrix A is decomposed into three matrices: an m x m unitary matrix U, an m x n diagonal matrix sigma, and an n x n real unitary matrix V. These matrices satisfy the relation:
Here, V* denotes the transpose of the complex conjugate of V.
It's also easy to compute the SVD with Sage:
A = Matrix(RDF, [[1,1], [1,1], [0,0]]) print("Matrix A:") show(A) print "SVD:" U, Sigma, V = A.SVD() print("U:") show(U) print("Sigma:") show(Sigma) print("V:") show(V) print("U.Sigma.V* recovers A:") show(U*Sigma*(V.conjugate().transpose()))
The result should look like this: