質問

私は私がmatrix.eig()を使用していたときに(も確認するために複数回実行することで確認)間違った固有ベクトルを取得しています。行列は次のとおりです。

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とJAMAのための固有の値が一致しているが、最初の5列は符号が逆になっていると最後の列は正確である。固有値はベクトル

Jama.Matrix.EigenvalueDecomposition.eig()入力の種類のいずれかの問題があります 受け入れる、または同じで、他の問題?私はエラーを修正する方法を教えてください。事前に感謝します。

役に立ちましたか?

解決

ここに誤りがない、両方の結果が正確である - 他のスカラー倍固有ベクトルであるとして。

ほとんどのソフトウェアプログラムは、1の長さを持つベクトルを報告し、そのちょうど大会 -

仕事固有ベクトルの無限の数があります。ジャマは、MATLABのものは、おそらく、彼らが使用されるアルゴリズムの単なるアーティファクトであると-1倍と等しい固有ベクトルを報告すること。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top