Eigenwerte
Zerlegung von Eigenwerten
Eigenwert und Eigenvektor einer Quadratmatrix A sind ein Skalar λ bzw. ein Vektor υ ungleich null, die folgende Gleichung erfüllen:
Aυ = λυ.
Wenn die Eigenwerte entlang der Diagonalen einer Diagonalmatrix Λ und die entsprechenden Eigenvektoren die Spalten einer Matrix V bilden, liegt Folgendes vor:
AV = VΛ.
Wenn V nicht singulär ist, wird dies zur Eigenwertzerlegung
A = VΛV–1.
Ein gutes Beispiel ist die Koeffizientenmatrix der Differenzialgleichung dx/dt = Ax:
A =
0 -6 -1
6 2 -16
-5 20 -10Die Lösung für diese Gleichung wird mithilfe der Exponentialfunktion der Matrix ausgedrückt x(t) = etAx(0). Die Anweisung
lambda = eig(A)
ergibt einen Spaltenvektor, der die Eigenwerte von A enthält. Für diese Matrix sind die Eigenwerte komplex:
lambda =
-3.0710
-2.4645+17.6008i
-2.4645-17.6008iDer Realteil der jeweiligen Eigenwerte ist negativ, sodass eλt gegen null geht, wenn t erhöht wird. Der Imaginärteil von zwei der Eigenwerte, ±ω, trägt die oszillatorische Komponente, sin(ωt), zur Lösung der Differenzialgleichung bei.
Mit zwei Ausgabeargumenten berechnet eig die Eigenvektoren und speichert die Eigenwerte in einer Diagonalmatrix:
[V,D] = eig(A)
V =
-0.8326 0.2003 - 0.1394i 0.2003 + 0.1394i
-0.3553 -0.2110 - 0.6447i -0.2110 + 0.6447i
-0.4248 -0.6930 -0.6930
D =
-3.0710 0 0
0 -2.4645+17.6008i 0
0 0 -2.4645-17.6008iDer erste Eigenvektor ist reell und die beiden anderen Vektoren sind komplexe Konjugate voneinander. Alle drei Vektoren sind normalisiert, sodass sie eine euklidische Länge, norm(v,2), von eins aufweisen.
Die Matrix V*D*inv(V), die prägnanter auch als V*D/V geschrieben werden kann, ist innerhalb des Rundungsfehlers von A. Und inv(V)*A*V, oder V\A*V, ist innerhalb des Rundungsfehlers von D.
Mehrere Eigenwerte
Einige Matrizen haben keine Eigenvektorzerlegung. Diese Matrizen sind nicht diagonalisierbar. Beispiel:
A = [ 1 -2 1
0 1 4
0 0 3 ]Für diese Matrix ergibt
[V,D] = eig(A)
Folgendes:
V =
1.0000 1.0000 -0.5571
0 0.0000 0.7428
0 0 0.3714
D =
1 0 0
0 1 0
0 0 3Es liegt ein doppelter Eigenwert bei λ = 1 vor. Die erste und zweite Spalte von V sind identisch. Für diese Matrix liegt kein vollständiger Satz linearer, unabhängiger Eigenvektoren vor.
Schur-Zerlegung
Viele erweiterte Matrixberechnungen erfordern keine Eigenwertzerlegungen. Sie basieren stattdessen auf der Schur-Zerlegung
A = USU ′ ,
wobei U eine orthogonale Matrix und S eine obere Dreiecks-Blockmatrix mit 1x1 und 2x2 Blöcken entlang der Diagonalen ist. Die Eigenwerte werden von den Diagonalelementen und Blöcken von S erkannt, während die Spalten von U eine orthogonale Basis bereitstellen, die wesentlich bessere numerische Eigenschaften hat als eine Eigenvektormenge.
Vergleichen Sie beispielsweise die Eigenwert- und die Schur-Zerlegungen dieser fehlerhaften Matrix:
A = [ 6 12 19
-9 -20 -33
4 9 15 ];
[V,D] = eig(A)V = -0.4741 + 0.0000i -0.4082 - 0.0000i -0.4082 + 0.0000i 0.8127 + 0.0000i 0.8165 + 0.0000i 0.8165 + 0.0000i -0.3386 + 0.0000i -0.4082 + 0.0000i -0.4082 - 0.0000i D = -1.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 1.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 1.0000 - 0.0000i
[U,S] = schur(A)
U =
-0.4741 0.6648 0.5774
0.8127 0.0782 0.5774
-0.3386 -0.7430 0.5774
S =
-1.0000 20.7846 -44.6948
0 1.0000 -0.6096
0 0.0000 1.0000Die Matrix A ist fehlerhaft, weil sie keinen vollständigen Satz linear unabhängiger Eigenvektoren hat (die zweite und dritte Spalte von V sind identisch). Da nicht alle Spalten von V linear unabhängig sind, hat sie eine hohe Bedingungszahl von etwa ~1e8. Allerdings kann schur drei verschiedene Basisvektoren in U berechnen. Da U orthogonal ist, gilt cond(U) = 1.
Die Matrix S weist den reellen Eigenwert als ersten Eintrag entlang der Diagonalen auf, während der wiederholte Eigenwert durch den 2x2-Block rechts unten dargestellt wird. Die Eigenwerte des 2x2-Blocks sind ebenfalls Eigenwerte von A:
eig(S(2:3,2:3))
ans = 1.0000 + 0.0000i 1.0000 - 0.0000i