MATLAB-Eigenwerte und Eigenvektoren

Ammar Ali 1 April 2022
MATLAB-Eigenwerte und Eigenvektoren

In diesem Tutorial wird das Finden der Eigenwerte und Eigenvektoren einer gegebenen Matrix mit der Funktion eig() in MATLAB erläutert.

Finden von Eigenwerte und Eigenvektoren mit der Funktion eig() in MATLAB

Matlab bietet eine eingebaute Funktion eig(), um die Eigenwerte und Eigenvektoren einer gegebenen Matrix zu finden. Die Matrix sollte eine quadratische Matrix sein. Andernfalls zeigt Matlab einen Fehler an; die Syntax: E = eig(mat) liefert einen Spaltenvektor, der die Eigenwerte der Matrix mat enthält. Lassen Sie uns zum Beispiel eine Zufallsmatrix erstellen und ihre Eigenwerte mit der Funktion eig() ermitteln. Siehe den Code unten.

mat = [1 3; 4 2]
E = eig(mat)

Ausgabe:

mat =

     1     3
     4     2


E =

    -2
     5

Die Syntax: [EV, DV] = eig(mat) gibt eine Matrix EV zurück, deren Spalten die rechten Eigenvektoren und die Diagonalmatrix DV der Eigenwerte der gegebenen Matrix mat sind. Lassen Sie uns zum Beispiel die Eigenwerte und Eigenvektoren der obigen Matrix finden. Siehe den Code unten.

mat = [1 3; 4 2]
[EV,DV] = eig(mat)

Ausgabe:

mat =

     1     3
     4     2


EV =

   -0.7071   -0.6000
    0.7071   -0.8000


DV =

    -2     0
     0     5

Sie können das Ergebnis auch anhand der Beziehung verifizieren: mat x EV - EV x DV = 0. Das Ergebnis der linken Seite der Gleichung sollte nahe Null, aber nicht genau Null sein, da eig() die Zerlegung mit Hilfe von Fließkommaberechnungen durchführt. Wie Sie sehen, enthält die Variable DV die sortierten Eigenwerte an den Diagonaleinträgen. In vielen Fällen sind sie jedoch unsortiert. Um diese Werte zu sortieren, können wir die Funktion diag() verwenden, um die diagonalen Einträge zu extrahieren, und mit der Funktion sort() können wir die Werte sortieren. Lassen Sie uns zum Beispiel mit der Funktion magic() eine weitere Matrix erstellen und deren sortierte Werte finden. Siehe den Code unten.

mat = magic(3)
[EV,DV] = eig(mat)
[SV, indi] = sort(diag(DV))

Ausgabe:

mat =

     8     1     6
     3     5     7
     4     9     2


EV =

   -0.5774   -0.8131   -0.3416
   -0.5774    0.4714   -0.4714
   -0.5774    0.3416    0.8131


DV =

   15.0000         0         0
         0    4.8990         0
         0         0   -4.8990


SV =

   -4.8990
    4.8990
   15.0000


indi =

     3
     2
     1

Die Eigenwerte innerhalb der Matrix DV sind unsortiert, aber die Funktion diag() und sort() sortiert die Werte nun in der Variablen SV. Die Funktion sort() lieferte auch die Indizes der Eigenwerte. Wir können die Indizes verwenden, um die sortierten Eigenwerte wieder in die Matrix DV einzufügen. Jetzt können wir die sortierte DV- und EV-Matrix anhand der Indizes und des SV-Vektors finden. Siehe den Code unten.

mat = magic(3);
[EV,DV] = eig(mat);
[SV, indi] = sort(diag(DV));
DVs = DV(indi,indi)
SVs = EV(:,indi)

Ausgabe:

DVs =

   -4.8990         0         0
         0    4.8990         0
         0         0   15.0000


SVs =

   -0.3416   -0.8131   -0.5774
   -0.4714    0.4714   -0.5774
    0.8131    0.3416   -0.5774

Wie Sie können, enthält die Diagonalmatrix DVs jetzt sortierte Eigenwerte. Mit obiger Relation können Sie das Ergebnis auch bestätigen: mat x SVs - SVs x DVs = 0. Die Syntax: [EV, DV, WV] = eig(mat) gibt die rechten Eigenvektoren EV, Eigenwerte DV und die linken Eigenvektoren WV zurück. Lassen Sie uns zum Beispiel die rechten Eigenvektoren, Eigenwerte und linken Eigenvektoren der obigen Matrixmatte finden. Siehe den Code unten.

mat = magic(3)
[EV,DV,WV] = eig(mat)

Ausgabe:

EV =

   -0.5774   -0.8131   -0.3416
   -0.5774    0.4714   -0.4714
   -0.5774    0.3416    0.8131


DV =

   15.0000         0         0
         0    4.8990         0
         0         0   -4.8990


WV =

   -0.5774   -0.7416   -0.0749
   -0.5774    0.6667   -0.6667
   -0.5774    0.0749    0.7416

Wir können auch die Funktion eig() verwenden, um die verallgemeinerten Eigenwerte und rechten Eigenvektoren von zwei Matrizen zu finden. Die Syntax: [EV,DV] = eig(mat1, mat2), liefert die verallgemeinerten Eigenwerte und rechten Eigenvektoren des Paares (mat1, mat2). Lassen Sie uns zum Beispiel zwei Matrizen erstellen und ihre verallgemeinerten Eigenwerte und rechten Eigenvektoren mit der Funktion eig() ermitteln. Siehe den Code unten.

mat1 = magic(2)
mat2 = [1 2; 2 1]
[EV,DV] = eig(mat1,mat2)

Ausgabe:

mat1 =

     1     3
     4     2


mat2 =

     1     2
     2     1


EV =

    1.0000   -0.5000
   -1.0000    1.0000


DV =

    2.0000         0
         0    1.6667

Wir können das Ergebnis anhand der Beziehung verifizieren: mat1 x EV - mat2 x EV x DV = 0. Die linke Seite der Gleichung wird nahe Null sein.

Autor: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

Verwandter Artikel - MATLAB Vector