- QZ-Algorithmus
-
Der QZ-Algorithmus ist ein numerisches Verfahren zur Lösung des verallgemeinerten Eigenwertproblems.
- , mit bzw.
Das verallgemeinerte Eigenwertproblem ist äquivalent zum Eigenwertproblem AB − 1y = λy, wobei y = Bx und B invertierbar sein muss. Es wird jedoch nicht explizit die Matrix B − 1 berechnet, um die Kondition des Problems nicht zu verschlechtern, sondern A und B werden simultan durch Ähnlichkeitstransformationen (Givens-Rotationen und Householder-Spiegelungen) in verallgemeinerte Schurform gebracht.
Gegeben ist ein Matrixbüschel A − λB Gesucht sind orthogonale Matrizen Q und Z, so dass QT(A − λB)Z = T − λS von verallgemeinerter Schurform ist, d. h. T ist von quasi-oberer Dreiecksform und S ist von oberer Dreiecksform. Im Fall ist T stets von oberer Dreiecksform. Aus der verallgemeinerten Schurform lassen sich dann die Eigenwerte und aus Q und Z (A,B)-invariante Unterräume des Matrixbüschels A − λB bestimmen.
Inhaltsverzeichnis
Vortransformation
Ziel dieses Schrittes ist es, die Matrix A durch orthogonale Transformationen auf obere Hessenbergform und die Matrix B auf obere Dreiecksform zu bringen. Durch n − 1 Householder-Spiegelungen von links wird B auf obere Dreiecksform transformiert. Wendet man die gleichen Transformationen gleichzeitig auf A an, ergibt sich (Veranschaulichung an einem Beispiel der Größe (4,4)): .
Man finde nun eine Givens-Rotation, die von links angewendet auf A folgende Matrix ergibt: . Damit erhält man für .
Durch Anwendung einer Givens-Rotation von rechts kann die obere Dreiecksform von B wiederhergestellt werden, ohne die Null an der linken unteren Position von A zu zerstören: .
Durch analoges spaltenweises Erzeugen von Nullen in A erhält man eine obere Hessenbergmatrix:
- .
Falls (A,B)-invariante Unterräume berechnet werden sollen, so ist es notwendig, das Produkt der Transformationsmatrizen, die jeweils von links auf A und B angewendet werden, in einer Matrix Q und das Produkt der Transformationsmatrizen, die von rechts angewendet werden, in einer Matrix Z zu speichern.
QZ-Algorithmus mit impliziten Shifts
1. q: = 0
2. while q < n do
3. Bestimme alle mit . Für diese j setze aj,j + 1 = 0.
4. Deflation: Finde minimales p und maximales q mit und definiere m: = n − p − q, so dass gilt: , wobei und A11 von oberer Hessenbergform, A22 von unreduzierter oberer Hessenbergform und A33 von quasi-oberer Dreiecksform ist.
5. Partitioniere B wie A, d. h. , wobei obere Dreiecksmatrizen sind.
6. Bringe A33 in obere Schurform: Finde orthogonale Q33,Z33 so, dass in Schurform und obere Dreiecksmatrix ist.Falls erforderlich: Aufdatieren von Q und Z: Q: = Qdiag(Ip,Im,Q33), Z: = Zdiag(Ip,Im,Z33).
7. if q < n:
if det(B22) = 0
Transformiere mithilfe einer Givens-Rotation von rechts an − q,n − q − 1 = 0, um die Rang-Defizienz von B22 auf B33 zu verschieben. Durch die Annullierung von an − q,n − q − 1 ist A22 keine unreduzierte Hessenbergmatrix mehr, somit wird q erhöht und es besteht die Möglichkeit, dass B22 in der neuen Partionierung regulär ist.
else
Führe einen impliziten QZ-Schritt für A22,B22 aus: .
end if
8. end if
Wahl der Shifts
9. Bestimme Shifts a,b als Eigenwerte des unteren 2*2-Blockes von
10. BestimmeDer implizite QZ-Schritt
11. Finde orthogonales Q1 mit
Für B22 folgt nun: .
Ziel ist es nun, die Dreiecksgestalt von B22 durch orthogonale Transformationen (Householder-Spiegelungen) von rechts wiederherzustellen:
12. Finde orthogonales mit .
Für A22 ergibt sich nun: .
13. Finde orthogonales mit .
Für A22 ergibt sich nun analog zur Multiplikation mit diag(Z1,Im − 3):
.
14. Man wiederhole die Schritte 11-14 nun für den Vektor , dann für usw. Auf diese Art und Weise "wandern" die Nicht-Null-Elemente unterhalb der Nebendiagonale von A Schritt für Schritt aus der Matrix. Diesen Prozess bezeichnet man auch als "Bulge-Chasing".
15. Nach m − 2 Schritten liegt A wieder in oberer Hessenbergform vor. Für Q22 ergibt sich nun . Analog erhält man für Z22:
.Falls (A,B)-invarianten Unterräume benötigt werden, ist es notwendig die Matrizen Q und Z aufzudatieren: Q: = Qdiag(Ip,Q22,Iq), Z: = Zdiag(Ip,Z22,Iq)
16. end while
Bestimmung der Eigenwerte
In den meisten Fällen konvergiert A im QZ-Algorithmus gegen seine Schur-Form. Es gilt . Falls ein i existiert, für das aii = bii = 0 ist, so ist . Falls bii = 0 und , so ist der i-te Eigenwert unendlich.
Literatur
- Gene H. Golub, Charles F. Van Loan: Matrix Computations. Johns Hopkins University Press, 1996, ISBN 0-8018-5414-8.
- G. W. Stewart: Matrix Algorithms Volume II: Eigensystems. SIAM 2001, ISBN 0-89871-503-2.
Wikimedia Foundation.