Eigenwerte in MATLAB

8

Wenn ich in MATLAB den Befehl [V,D] = eig(a) für eine symmetrische Matrix ausfühle, befindet sich der größte Eigenwert (und der zugehörige Vektor) in der letzten Spalte. Wenn ich es jedoch mit einer nicht symmetrischen Matrix ausführe, ist der größte Eigenwert in der ersten Spalte.

Ich versuche, die Eigenvektorzentralität zu berechnen, die erfordert, dass ich den Eigenvektor, der dem größten Eigenwert zugeordnet ist, berechnen lasse. Die Tatsache, dass der größte Eigenwert an zwei verschiedenen Stellen auftritt, macht es für mich schwierig, die Lösung zu finden.

    
Spencer 20.07.2010, 15:43
quelle

4 Antworten

5

Sie müssen nur den Index des größten Eigenwertes in D finden, was einfach mit der Funktion DIAG , um die Hauptdiagonale und die Funktion zu extrahieren MAX , um den maximalen Eigenwert und den Index zu erhalten, wo er auftritt:

%Vor%

HINWEIS: Wie Hackschnitzel darauf hinweist , Sie kann komplexe Eigenwerte für unsymmetrische Matrizen haben. Bei einer komplexen Eingabe X verwendet die Funktion MAX die Größe der komplexen Zahl max(abs(X)) . Bei Elementen gleicher Größe wird der Phasenwinkel max(angle(X)) verwendet.

    
gnovice 20.07.2010, 15:51
quelle
15

Was ich normalerweise mache ist:

%Vor%     
Amro 20.07.2010 17:46
quelle
4

Beachten Sie, dass nicht symmetrische Matrizen zu komplexen Eigenwerten neigen.

%Vor%

Beachten Sie auch, dass eig sortierte Eigenwerte nicht explizit zurückgibt (obwohl der zugrundeliegende Algorithmus dazu neigt, sie in einer nahezu sortierten Reihenfolge zu erzeugen, basierend auf der Größe des Eigenwerts), aber selbst wenn Sie eine Sortierung durchführen, müssen Sie dies verstehen wie funktioniert Sortierung auf komplexen Vektoren?

%Vor%

Beim Sortieren auf komplexe Eingaben wird die Größe der komplexen Zahl verwendet.

    
user85109 20.07.2010 19:58
quelle
1

Wenn Sie nur den Eigenvektor interessieren, der mit dem größten Eigenwert verknüpft ist, ist es nicht besser eigs ?

%Vor%     
Shai 27.11.2014 13:56
quelle