svd(A) vs. eig(A'*A) and eig(A*A')

When I use [U,S,V]=svd(A), I can reproduce A by U*S*V'. However, if I generate U and V by solving two eigenvalue problems [V,D]=eig(A'*A) and [U,D]=eig(A*A'), respectively, the resulting U and V may or may NOT satisfy U*S*V'=A, due possibly to the sign difference of some of the columns (eigenvectors). While the columns of the U's and V's produced by these two different methods have the same absolute values, they may have different signs, simply because if u_i is an eigenvector of A*A', so is -u_i.
But if U*S*V'~=A for some U and V, isn't the SVD theorem violated?

 채택된 답변

Jan
Jan 2013년 2월 20일

0 개 추천

I do not understand, where you see a violation. When you create U and V by another method, and consider, that they are not uniquely defined, it can be expected, that you get incompatible U and V matrices. If you want the orientation of the eigenvectors to satisfy U*S*V'=A, calculating them by solving the two separate eigenvalue problems eig(A'*A) and eig(A*A') is not sufficient.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Linear Algebra에 대해 자세히 알아보기

제품

태그

질문:

2013년 2월 20일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by