给定一个距离矩阵和一组点,如何计算这些点的坐标?
编辑:这是在飞机上。
这个问题在这里得到了回答,但是在尝试不同的距离矩阵时,我真的不能使用这个答案,因为 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。
谢谢。