Return the eigenvectors and eigenvalues of the symmetric matrix a'*a. If
a has more columns than rows, then that matrix will be rank-deficient,
and the non-zero eigenvalues and eigenvectors can be more easily extracted
from the matrix a*a', from the properties of the SVD:
if a of shape (m,n) has SVD u*s*v', then:
a'*a = v*s'*s*v'
a*a' = u*s*s'*u'
That is, v contains the eigenvectors of a'*a, with s'*s the eigenvalues,
according to the eigen-decomposition theorem.
Now, let s_hat, an array of shape (m,n), be such that s * s_hat = I(m,m)
and s_hat * s = I(n,n). With that, we can solve for u or v in terms of the
other:
v = a'*u*s_hat'
u = a*v*s_hat
|