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.

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top