距離行列と一連の点が与えられた場合、これらの点の座標をどのように計算しますか?
編集:これは飛行機です。
この質問はここで回答されましたが、さまざまな距離行列を試してみると、固有ベクトルと同様に 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 より大きくならないように距離行列を修正する必要がありますか。
ありがとう。