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 -10
Die 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.6008i
Der 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.6008i
Der 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 3
Es 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.0000
Die 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