I'm currently trying to retrieve the coordinates of nodes using from the distance matrix using MDS
Assuming I have my original coordinates are (0,0), (0,2), (2,0) and (2,2). Hence the Distance matrix will be:
\begin{bmatrix}0 & 2 & 2 & 2.82842712 \\2 & 0 & 2.82842712 & 2 \\2 & 2.82842712 & 0 & 2 \\2.82842712 & 2 & 2 & 0 \end{bmatrix}
Decomposition of this Distance matrix will return Eigen Values: \begin{bmatrix} -0.21338835 & 0.08838835 & 0.03661165 & 0.08838835 \end{bmatrix}
and Eigen Vectors: $ U = \begin{bmatrix} \\5.00000000e-01 & 7.07106781e-01 & 5.00000000e-01 & 3.26334304e-01 \\5.00000000e-01 & -1.85675350e-16 & -5.00000000e-01 & -6.27300504e-01 \\5.00000000e-01 & -8.85308358e-17 & -5.00000000e-01 & 6.27300504e-01 \\5.00000000e-01 & -7.07106781e-01 & 5.00000000e-01 & -3.26334304e-01 \end{bmatrix} $
We could get the final result of the points using the formula: $X = U \sqrt{S}$
where S is the diagonal matrix of the Eigen Values.
But taking the square-root of the Eigen Value diagonal matrix will return imaginary numbers for some values. And hence it wouldn't be possible to recalculate the original coordinator.
Is there a way to solve this?