Problem mit Jamas Eigenwertzerlegung Funktion
-
23-08-2019 - |
Frage
Ich erhalte eine falsche Eigenvektor (auch durch Ausführen von mehrfach überprüft, um sicherzustellen,) wenn ich matrix.eig()
verwende. Die Matrix ist:
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
Die Funktion gibt die Eigenvektoren:
-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 gibt folgenden Eigenvektor für den gleichen Eingang:
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
Die Eigenwerte für Matlab und JAMA passen aber Eigenvektoren die ersten 5 Spalten in umgekehrtem Vorzeichen und nur die letzte Spalte korrekt.
Gibt es eine Frage nach der Art der Eingabe, die Jama.Matrix.EigenvalueDecomposition.eig()
nimmt oder ein anderes Problem mit dem gleichen? Bitte sagen Sie mir, wie kann ich den Fehler beheben kann. Vielen Dank im Voraus.
Lösung
Es gibt keine Fehler ist hier, sind beide Ergebnisse korrekt - wie alle anderen skalaren Zeiten ist die Eigenvektoren.
Es gibt eine unendliche Anzahl von Eigenvektoren, die funktionieren - die nur Konvention, dass die meisten Software-Programme, die die Vektoren berichten, die Länge eines haben. Das Jama Eigenvektoren gleich -1 mal berichtet die von Matlab ist wahrscheinlich nur ein Artefakt der Algorithmus sie verwendet wird.