While it would be great if every matrix could be decomposed through eigenvalue diagonalization, unfortunately, this method is limited by the requirement that the given matrix must be a square matrix. We aim to extend decomposability to matrices that are not square.
Buildup
Let us consider two natural numbersm>n for a matrix A∈Cm×n whose coefficients are given by rankA=n. Then, it is possible to think about dimC(A)=dimC(AT)=n, its orthonormal vectors v1,⋯,vn∈C(A) and u1,⋯,un∈C(AT).
Similar to when contemplating the geometric meaning of eigenvalues,
Avi=σiui
let us assume that a σi>0 exists that satisfies this. Then, A is a linear transformation that aligns the direction of vi with ui, and σi>0 adjusts its magnitude. This σi is defined not as an eigenvalue but as the singular value of A, although, regrettably, its meaning has nothing to do with singular value decomposition (SVD). The difference from the discussion on eigenvalues here is A∈Cm×n, that is vi∈Cn, and ui∈Cm, which means A changes the dimension of vectors too. For matrix A, we have A=σiuivi∗ and can confirm that both sides have the dimension m×n=(m×1)×(1×n). Note that, unlike eigenvectors, there is a distinction between left and right, so ui is defined as the left singular vector, and vi is the right singular vector. If we now rewrite Avi=σiui for 1≤i≤n, it becomes
A[v1v2⋯vn]=[u1u2⋯un]σ10⋮00σ2⋱⋯⋯⋱⋱00⋮0σm
For simplicity, let’s express it as below.
V:=[v1v2⋯vn]∈Cn×nU:=[u1u2⋯un]∈Cm×nΣ:=diag(σ1,σ2,⋯,σn)
For convenience, let’s say σi≥σj>0. Summarizing,
AV=UΣ
since VV∗=V∗V=I, we have
A=UΣV∗
Of course, since U∈Cm×n, although U is not a unitary matrix, it has orthonormality, so U∗U=In,
A∗A====(UΣV∗)∗(UΣV∗)VΣU∗UΣV∗VΣ2V∗VΣ2V−1
A=Sλ10⋮00λ2⋱⋯⋯⋱⋱00⋮0λmS−1
This can be seen as the result of completing eigenvalue diagonalization for the square matrixA∗A∈Cm×m. σi2 is the eigenvalue of A∗A, and vi becomes the eigenvector corresponding to σi2. Now, for numerical calculations, let’s trace back through the process in reverse.
Algorithm
For the matrixA∈Cm×n(m≥n), it is given that rankA=n.
Step 1.
Find the eigenvalues σ1≥σ2≥⋯≥σn>0 of A∗A. For any x=0,
x∗A∗Ax=∣∣Ax∣∣2>0
meaning, since A∗A is positive definite, σi>0 is guaranteed.
Step 2.
Find orthonormal vectors V=[v1v2⋯vn] corresponding to the found eigenvalues.
Step 3.
Through ui=σi1Avi, find U=[u1u2⋯un].
Reduced Singular Value Decomposition and Full Singular Value Decomposition
Decomposing A into three matrices satisfying A=UΣV∗ is known as reduced singular value decomposition (rSVD).
In order to distinguish this from full singular value decomposition (fSVD), notations like U and Σ were used. The concept behind full SVD is merely an expanded version of the reduced SVD. It involves finding un+1,⋯,um that turns matrix
U:=[Uun+1⋯um]∈Cm×m
into a unitary matrix and then appending 0 to the bottom of Σ to construct the matrix Σ:=[ΣO]
which is decomposed into form A=UΣV∗.
fSVD is theoretically more robust, and rSVD is more advantageous for actual computations. Whether it is fSVD or rSVD, being told to perform SVD essentially means to find U or U, Σ or Σ, V.