Singular value decomposition
Singular value decomposition (SVD) is a type of factorization that decomposes a matrix into a product of three matrices. The SVD is a generalization of the previously discussed eigenvalue decomposition. SVD is very useful for algorithms such as the pseudo inverse, which we will discuss in the next section. The
svd()
function in the numpy.linalg
package can perform this decomposition. This function returns three matrices U
, ∑
, and V
such that U
and V
are unitary and ∑
contains the singular values of the input matrix:
The asterisk denotes the Hermitian conjugate or the conjugate transpose. The complex conjugate changes the sign of the imaginary part of a complex number and is therefore not relevant for real numbers.
Note
A complex square matrix A is unitary if A*A = AA* = I
(the identity matrix). We can interpret SVD as a sequence of three operations—rotation, scaling, and another rotation.
We already transposed matrices in this book. The transpose...