SVD and basis
April 19, 2020 | 3 min read
Suppose a matrix
Am×n=σ1u1v1T+⋯+σrurvrTwhere
σi=0, ui∈Rm, vi∈Rn ∀i=1,…,r and u1,…,ur are orthogonal and v1,…,vr are orthogonal. Then the rank of A is r, {u1,…,ur} can be a basis to C(A) and {v1,…,vr} can be a basis to C(AT).
Proof:
All columns of A are linear combinations of u1,…,ur. For example, take the first column of matrix A:
A⎣⎢⎢⎡1⋮0⎦⎥⎥⎤=σ1u1v1T⎣⎢⎢⎡1⋮0⎦⎥⎥⎤+⋯+σrurvrT⎣⎢⎢⎡1⋮0⎦⎥⎥⎤which is a linear combination of u1,…,ur.
Then, the column space of A, C(A) can be spanned by u1,…,ur but it is still not enough to prove that those can be a basis because maybe any k≤r−1 of u1,…,ur are enough to represent columns of A.
Suppose that’s the case and we assume u1,…,ur−1 are enough to represent columns of A (without loss of generality, we just assume don’t need ur). Then we can write A as
A=[u1…ur−1]B=[u1…ur−1]⎣⎢⎢⎡b1T⋮br−1T⎦⎥⎥⎤for some matrix B (we write B using row vectors)
∴A=u1b1T+⋯+ur−1br−1T=σ1u1v1T+⋯+σrurvrTMultiplying both sides by urT from the left,
urTA=urT(u1b1T+⋯+ur−1br−1T)0=urT(σ1u1v1T+⋯+σrurvrT)=σrvrT=0which leads to a contradiction. Hence, exactly r vectors u1,…,ur (not one less) can represent columns of A (using linear combination).
Obviously, u1,…,ur∈C(A). So, we have orthogonal vectors u1,…,ur∈C(A), exactly all of them (not one less) are needed to represent columns of A using linear combination. Hence, Dim(C(A))=r and {u1,…,ur} can be a basis to C(A). Similarly, {v1,…,vr} can be a basis to C(AT).