Problème avec la fonction de décomposition Eigenvalue de Jama
-
23-08-2019 - |
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.
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é.