Question

Je reçois une mauvaise eigen vecteur (également vérifié en exécutant plusieurs fois pour être sûr) quand je suis en utilisant matrix.eig(). La matrice est la suivante:

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

La fonction retourne les vecteurs propres:

-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 donne le vecteur eigen suivant pour la même entrée:

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

Les valeurs propres pour Matlab et JAMA sélectionnés mais vecteurs propres les 5 premières colonnes sont inversées en signe et que la dernière colonne est exacte.

Y at-il question du type d'entrée qui Jama.Matrix.EigenvalueDecomposition.eig() accepte ou tout autre problème avec le même? S'il vous plaît me dire comment je peux corriger l'erreur. Merci à l'avance.

Était-ce utile?

La solution

Il n'y a pas d'erreur ici, les deux résultats sont corrects - comme cela est tout autre fois scalaire les vecteurs propres.

Il y a un nombre infini de vecteurs propres qui fonctionnent - sa juste convention que la plupart des logiciels rapportent les vecteurs qui ont une longueur d'un. Que les rapports Jama vecteurs propres égaux à -1 fois supérieurs à ceux de Matlab est probablement un artefact de l'algorithme qu'ils ont utilisé.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top