Difference between eigendecomposition and singular value decomposition for Hermitian matrices

Let consider the following Hermitian matrix

T =[   1.0000            -0.1000 - 0.0600i   0.3000 - 0.0300i
-0.1000 + 0.0600i   1.0000            -0.0400 + 0.0800i
0.3000 + 0.0300i  -0.0400 - 0.0800i   1.5000            ]


The SVD decomposition using matlab is [U,S,V] = svd(T)

U =

-0.4311 + 0.0000i   0.3253 - 0.0000i   0.8416 + 0.0000i
0.1302 - 0.1375i  -0.8697 + 0.1658i   0.4028 - 0.1345i
-0.8757 - 0.1074i  -0.2973 - 0.1484i  -0.3336 + 0.0024i

S =

1.0e+003 *

1.6662         0         0
0    1.0101         0
0         0    0.8237

V =

-0.4311             0.3253             0.8416
0.1302 - 0.1375i  -0.8697 + 0.1658i   0.4028 - 0.1345i
-0.8757 - 0.1074i  -0.2973 - 0.1484i  -0.3336 + 0.0024i


The eigendecomposition is [F,D] = eig(T_t)

F =

-0.8416 - 0.0059i  -0.2911 + 0.1453i   0.4279 - 0.0525i
-0.4037 + 0.1317i   0.7040 - 0.5368i  -0.1125 + 0.1524i
0.3336             0.3323             0.8822

D =

1.0e+003 *

0.8237         0         0
0    1.0101         0
0         0    1.6662


Theoretically, for Hermitian matrices both decompositions are equivalent. However, we observe that both decompositions give the same eigenvalues but the eigenvectors are different. Which decomposition is accurate?

• Welcome to SciComp! A tip: If you indent lines by 4 spaces, they'll be marked as a code sample. You can also highlight the code and click the "code" button (with "{}" on it). There's even syntax highlighting! Commented Jan 16, 2015 at 11:52
• What is T_t in this context? Did you apply eig() to the right matrix? Commented Jan 16, 2015 at 13:05
• "Theoretically, for Hermitian matrices both decompositions are equivalent". Actually, no. T may have negative eigenvalues, while its singular values must be nonnegative. So you need to allow for some sign flips at the very least. Commented Jan 16, 2015 at 15:55
• To add, one might consider the matrix, $\begin{bmatrix}1 & 0 \\ 0 & -1\end{bmatrix}$. Commented Jan 16, 2015 at 16:52

If you entrywise divide the third column of $F$ by the first column of either $U$ or $V$, you will find that the two are just scaled versions of each other. Matlab returns eigenvectors to be unit normed, but they can be scaled arbitrarily by a complex number of modulus 1.