uniqueness of SVD


Ruye Wang
01-05-2005, 06:07 PM
Hi everybody,

I am a new comer and have the following question.

I need to use svdcmp function to find the singular value decomposition of a given matrix A, i.e., A=UWV^t, where W is a diagonal matrix containing all the singular values. My question is the uniqueness of U=[u_1,...u_n] and V=[v_1,...v_n]. Obviously, if I let u_i=-u_i and v_i=-v_i, the SVD equaion above still holds

Interstingly, I find in one particular case, by introducing a small (< 1%) random perturbance to the matrix A, the sign of some columns in U and V may switch from + to - or vice versa, while the changes in absolute values of U, V, and W are insignificant.

How does svdcmp determine the sign of the columns of both U and V?

In some applications of SVD, the negation of some corresponding columns in both U and V will lead to different and wrong results, such as the problem I am dealing with, based on the algorithm by Tsai, Huang, Zhu, Estimating three-dimensional motion parameters of a rigid planar patch, II: singular value decompositon, IEEE trans. ASSP. ASSP-30, No. 4. August, 1982.

I greatly appreciate any help. Thanks in advance!

Ruye Wang
01-08-2005, 01:23 PM
The following is Dr. Saul Teukolsky's response to my previous question. Hope it will also help others with similar questions.

"The signs can be very sensitive, even to things like roundoff. Running
the same problem on different machines or with different compilers can
change the roundoff properties enough to give different signs. But as
you note, this has no importance to any application. The overall sign
change always cancels out. "

My own comment: for an n-by-n matrix A, the svdcmp function may return
any of the 2^n possible sets of U and V (while the singular values are always the same), as each of the n pairs of columns u_i and v_i can have either positive or negative sign. However, the equation A=UWV^t always holds, no matter what sign each of the column pairs takes.