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?
T_t
in this context? Did you applyeig()
to the right matrix? $\endgroup$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. $\endgroup$