1
matrix.eig()
を使用しているときに、間違った固有ベクトル(確かに複数回実行してチェックしています)が発生しています。行列である:Jamaの固有値分解関数の問題
1.2290 1.2168 2.8760 2.6370 2.2949 2.6402
1.2168 0.9476 2.5179 2.1737 1.9795 2.2828
2.8760 2.5179 8.8114 8.6530 7.3910 8.1058
2.6370 2.1737 8.6530 7.6366 6.9503 7.6743
2.2949 1.9795 7.3910 6.9503 6.2722 7.3441
2.6402 2.2828 8.1058 7.6743 7.3441 7.6870
関数は固有ベクトル返し:
-0.1698 0.6764 0.1442 -0.6929 -0.1069 0.0365
-0.1460 0.6478 0.1926 0.6898 0.0483 -0.2094
-0.5239 0.0780 -0.5236 0.1621 -0.2244 0.6072
-0.4906 -0.0758 -0.4573 -0.1279 0.2842 -0.6688
-0.4428 -0.2770 0.4307 0.0226 -0.6959 -0.2383
-0.4884 -0.1852 0.5228 -0.0312 0.6089 0.2865
をMATLABは、同じ入力に対する次の固有ベクトルを与える:
0.1698 -0.6762 -0.1439 0.6931 0.1069 0.0365
0.1460 -0.6481 -0.1926 -0.6895 -0.0483 -0.2094
0.5237 -0.0780 0.5233 -0.1622 0.2238 0.6077
0.4907 0.0758 0.4577 0.1278 -0.2840 -0.6686
0.4425 0.2766 -0.4298 -0.0227 0.6968 -0.2384
0.4888 0.1854 -0.5236 0.0313 -0.6082 0.2857
MATLAB用固有値ジャマはマッチングしていますが固有ベクトルは最初の5つの列が符号で反転され、最後の列だけが正確です。
Jama.Matrix.EigenvalueDecomposition.eig()
が受け入れる入力の種類やその他の問題がありますか?私はエラーを修正する方法を教えてください。前もって感謝します。
慎重に参照してください。スカラー倍ではない別の固有ベクトル最後の列を符号なしに反転しました。 最後の列は同じです...間違っています。 – BHS
結果に使用されている規則を理解しているので、各列は固有ベクトルです。だから、それらのうちの1つがサインでひっくり返されていない。各列は依然としてノルム1の有効な固有ベクトルになります。問題はどこにありますか? – Varkhan
固有ベクトはそれぞれ記号で反転されていても安全です。そして、私の疑いは解消されます。ありがとう.. – BHS