给定一个距离矩阵和一组点,如何计算这些点的坐标?
编辑:这是在飞机上。
这个问题在这里得到了回答,但是在尝试不同的距离矩阵时,我真的不能使用这个答案,因为 M 矩阵有负值,我的特征向量也是如此。因此,当您取平方根时,程序(在 R 中)为这些相关条目输出“NaN”。我猜每次 D(i,j)^2 大于 D(1,j)^2 + D(i,1)^2 时都会发生这种情况。
例如,假设我有一个距离矩阵:
0    73   102  496  432  184
73    0   303  392  436  233
102  303    0  366  207  353
496  392  366    0  172  103
432  436  207  172    0  352
184  233  353  103  352    0
使用方程 M(i,j) = (0.5)(D(1,j)^2+D(i,1)^2-D(i,j)^2),我得到 (它已经有负条目):
0      0.0      0.0      0.0      0.0      0.0
0   5329.0 -38038.0  48840.5    928.5  -7552.0
0 -38038.0  10404.0  61232.0  77089.5 -40174.5
0  48840.5  61232.0 246016.0 201528.0 134631.5  
0    928.5  77089.5 201528.0 186624.0  48288.0
0  -7552.0 -40174.5 134631.5  48288.0  33856.0
然后我得到非零特征值和特征向量:
477718.27  101845.63   16474.30  -13116.72 -100692.49
        [,1]       [,2]        [,3]        [,4]        [,5]
 0.00000000  0.0000000  0.00000000  0.00000000  0.00000000
-0.05928626  0.3205747  0.84148945  0.04869546 -0.42806691
-0.16650486 -0.5670946 -0.04507520 -0.58222690 -0.55647098
-0.73371713  0.2827320  0.07386302 -0.45957443  0.40627254
-0.59727407 -0.4623603  0.07806418  0.64968004 -0.03617241
-0.27144823  0.5309625 -0.52755471  0.15920983 -0.58372335
由于有负特征值和特征向量,当我们计算 sqrt(eigenvector(i)*eigenvalue(i)) 时,我们将有负值。这是我的最终输出:
[,1]     [,2]      [,3]     [,4]      [,5]
   0   0.0000   0.00000  0.00000   0.00000
 NaN 180.6907 117.74103      NaN 207.61291
 NaN      NaN       NaN 87.38939 236.71174
 NaN 169.6910  34.88326 77.64089       NaN
 NaN      NaN  35.86158      NaN  60.35139
 NaN 232.5429       NaN      NaN 242.43877
这是不使用角度计算坐标点的唯一清晰方法吗?如果是,我们是否必须修复距离矩阵,使 D(i,j)^2 不大于 D(1,j)^2 + D(i,1)^2。
谢谢。

