Widersprüchliche Eigenvektorausgaben zwischen Matlab und Numpy

8

Ich berechne Eigenvektoren in Matlab und Numpy, bekomme aber unterschiedliche Ergebnisse. Ich hatte den Eindruck, dass es nur eine Menge Eigenvektoren für eine gegebene Matrix gab, jedoch scheinen beide Ausgaben gültig zu sein.

Hier ist mein Matlab-Code:

%Vor%

ig_val enthält:

%Vor%

ig_vec enthält:

%Vor%

Hier ist mein Python-Code:

%Vor%

ig_val enthält:

%Vor%

ig_vec enthält:

%Vor%

Kann jemand erklären, warum diese Ausgänge unterschiedlich sind, so scheint es, als ob die zwei verschiedenen Sätze von Eigenvektoren gegeneinander verdrehte Versionen sind. Ist der eine Satz richtiger der andere?

    
mackuntu 18.09.2013, 23:51
quelle

1 Antwort

14

Es ist nicht sofort offensichtlich, aber die Eigenvektoren, die Sie zurückgeben, sind in beiden Fällen gleich. Versuchen Sie Folgendes:

%Vor%

Sie können also die Matlab-Eigenvektoren erhalten, indem Sie die Anzahl der Nullen mit -0.13-0.99j multiplizieren, d. h. sie sind kolinear und daher für Eigenvektoren gleich.

    
Jaime 19.09.2013, 00:12
quelle