In linear algebra, the singular value decomposition (SVD) is a factorization of a real or complex matrix into a rotation, followed by a scaling, followed by another rotation. It generalizes the eigendecomposition of a square normal matrix with an orthonormal eigenbasis to any m × n {\displaystyle m\times n} matrix. It is related to the polar decomposition, and is a common means for implementing low-rank approximation for matrices. Specifically, the singular value decomposition of an m × n {\displaystyle m\times n} complex matrix M {\displaystyle \mathbf {M} } is a factorization of the form M = U Σ V ∗ {\displaystyle \mathbf {M} =\mathbf {U} \mathbf {\Sigma } \mathbf {V} ^{*}} , where U {\displaystyle \mathbf {U} } is an m × m {\displaystyle m\times m} complex unitary matrix, Σ {\displaystyle \mathbf {\Sigma } } is an m × n {\displaystyle m\times n} rectangular diagonal matrix with non-negative real numbers on the diagonal, V {\displaystyle \mathbf {V} } is an n × n {\displaystyle n\times n} complex unitary matrix, and V ∗ {\displaystyle \mathbf {V} ^{*}} is the conjugate transpose of V {\displaystyle \mathbf {V} } . Such decompositions always exist for any complex matrix. If M {\displaystyle \mathbf {M} } is real, then some U {\displaystyle \mathbf {U} } and V {\displaystyle \mathbf {V} } can be found which are real (orthogonal) matrices; a real-valued SVD is often denoted U Σ V T {\displaystyle \mathbf {U} \mathbf {\Sigma } \mathbf {V} ^{\mathsf {T}}} , where V T {\displaystyle \mathbf {V} ^{\mathsf {T}}} is the transpose of V {\displaystyle \mathbf {V} } . The diagonal entries σ i = Σ i , i {\displaystyle \sigma _{i}=\mathbf {\Sigma } _{i,i}} of Σ {\displaystyle \mathbf {\Sigma } } are uniquely determined by M {\displaystyle \mathbf {M} } , up to reordering, and are known as the singular values of M {\displaystyle \mathbf {M} } . Conventionally they are arranged in descending order (from largest to smallest), which uniquely determines Σ {\displaystyle \mathbf {\Sigma } } . The number of non-zero singular values, allowing repetitions, is equal to r {\displaystyle r} , the rank of M {\displaystyle \mathbf {M} } . The columns of U {\displaystyle \mathbf {U} } and the columns of V {\displaystyle \mathbf {V} } are called left-singular vectors and right-singular vectors of M {\displaystyle \mathbf {M} } , respectively. They form two orthonormal bases, { u 1 , … , u m } {\displaystyle \{\mathbf {u} _{1},\ldots ,\mathbf {u} _{m}\}} and { v 1 , … , v n } {\displaystyle \{\mathbf {v} _{1},\ldots ,\mathbf {v} _{n}\}} . In general the SVD is not unique, with certain unitary transformations of U {\displaystyle \mathbf {U} } and V {\displaystyle \mathbf {V} } producing valid alternative decompositions. The term SVD sometimes refers to the compact SVD, a similar decomposition M = U r Σ r V r ∗ {\displaystyle \mathbf {M} =\mathbf {U} _{r}\mathbf {\Sigma } _{r}\mathbf {V} _{r}^{*}} , in which Σ r {\displaystyle \mathbf {\Sigma } _{r}} is an r × r {\displaystyle r\times r} matrix with only the non-zero singular values (allowing repetitions) on its main diagonal. In this variant, U r {\displaystyle \mathbf {U} _{r}} is an m × r {\displaystyle m\times r} semi-unitary matrix whose columns { u 1 , … , u r } {\displaystyle \{\mathbf {u} _{1},\ldots ,\mathbf {u} _{r}\}} span the columns of M {\displaystyle \mathbf {M} } , and V r {\displaystyle \mathbf {V} _{r}} is an n × r {\displaystyle n\times r} semi-unitary matrix whose columns { v 1 , … , v r } {\displaystyle \{\mathbf {v} _{1},\ldots ,\mathbf {v} _{r}\}} span the columns of M ∗ {\displaystyle \mathbf {M} ^{*}\!} . The SVD (with sorted singular values) splits M {\displaystyle \mathbf {M} } into a sum of r {\displaystyle r} rank- 1 {\displaystyle 1} matrices, M = σ 1 u 1 v 1 ∗ + σ 2 u 2 v 2 ∗ + ⋯ + σ r u r v r ∗ {\displaystyle \textstyle \mathbf {M} =\sigma _{1}\mathbf {u} _{1}\mathbf {v} _{1}^{*}+\sigma _{2}\mathbf {u} _{2}\mathbf {v} _{2}^{*}+\cdots +\sigma _{r}\mathbf {u} _{r}\mathbf {v} _{r}^{*}\!} . Mathematical applications of the SVD include computing the pseudoinverse, matrix approximation, and determining the rank, range, and null space of a matrix. The SVD is also extremely useful in many areas of science, engineering, and statistics, such as signal processing, least squares fitting of data, and process control.
… excerpt ends here. Continue reading the full article.






