<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=QR-Algorithmus</id>
	<title>QR-Algorithmus - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=QR-Algorithmus"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=QR-Algorithmus&amp;action=history"/>
	<updated>2026-05-25T10:52:13Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=QR-Algorithmus&amp;diff=437054&amp;oldid=prev</id>
		<title>imported&gt;Alex Writer WEH: /* growthexperiments-addlink-summary-summary:1|0|0 */</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=QR-Algorithmus&amp;diff=437054&amp;oldid=prev"/>
		<updated>2025-06-21T16:18:18Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;growthexperiments-addlink-summary-summary:1|0|0&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Dieser Artikel|behandelt ein Verfahren, das nicht im Zusammenhang mit der Erzeugung des mit derselben Abkürzung benannten [[QR-Code]]s steht.}}&lt;br /&gt;
Der &amp;#039;&amp;#039;&amp;#039;QR-Algorithmus&amp;#039;&amp;#039;&amp;#039; ist ein [[Numerische Mathematik|numerisches]] Verfahren zur Berechnung aller [[Eigenwert]]e und eventuell der Eigenvektoren einer quadratischen [[Matrix (Mathematik)|Matrix]]. Das auch QR-Verfahren oder QR-Iteration genannte Verfahren basiert auf der [[QR-Zerlegung]] und wurde in den Jahren 1961 und 1962 unabhängig voneinander von [[John G. F. Francis]] und [[Wera Nikolajewna Kublanowskaja]] eingeführt. Ein Vorläufer war der [[LR-Algorithmus]] von [[Heinz Rutishauser]] (1958), der aber weniger stabil ist und auf der [[Gaußsches Eliminationsverfahren|LR-Zerlegung]] basiert. Oft konvergieren die Iterierten aus dem QR-Algorithmus gegen die [[Schur-Zerlegung|Schur-Form]] der Matrix. Das originale Verfahren ist recht aufwendig und damit – selbst auf heutigen Rechnern – für Matrizen mit hunderttausenden Zeilen und Spalten nicht praktikabel.&lt;br /&gt;
&lt;br /&gt;
Abgeleitete Varianten wie das Multishift-Verfahren von Z. Bai und [[James Demmel]] 1989 und die numerisch stabilere Variante von K. Braman, R. Byers und R. Mathias 2002 haben praktische Laufzeiten, die kubisch in der Größe der Matrix sind. Letzteres Verfahren ist in der numerischen Softwarebibliothek [[LAPACK]] implementiert, die wiederum in vielen Computeralgebrasystemen (CAS) für die numerischen Matrixalgorithmen verwendet wird.&lt;br /&gt;
&lt;br /&gt;
== Beschreibung des QR-Algorithmus ==&lt;br /&gt;
=== Ziel des Rechenverfahrens ===&lt;br /&gt;
&lt;br /&gt;
Ausgehend von einer reellen oder komplexen Matrix &amp;lt;math&amp;gt;A\in\R^{n\times n}&amp;lt;/math&amp;gt; bzw. &amp;lt;math&amp;gt;A\in\mathbb{C}^{n\times n}&amp;lt;/math&amp;gt; wird eine Folge orthogonaler oder unitärer Matrizen &amp;lt;math&amp;gt;Q_1,Q_2,\dots&amp;lt;/math&amp;gt; bestimmt, so dass die rekursive Matrixfolge &amp;lt;math&amp;gt;A_1=A,\,A_2=Q_1^{-1}A_1Q_1,\dots,A_{k+1}=Q_k^{-1}A_kQ_k,\dots&amp;lt;/math&amp;gt; weitestgehend gegen eine obere Dreiecksmatrix konvergiert. Da alle Umformungen in der Rekursion Ähnlichkeitstransformationen sind, haben alle Matrizen der Matrixfolge &amp;lt;math&amp;gt;A_1,A_2,\dots&amp;lt;/math&amp;gt; dieselben Eigenwerte mit denselben Vielfachheiten.&lt;br /&gt;
&lt;br /&gt;
Wird im Grenzwert eine obere Dreiecksmatrix erreicht, eine [[Schurform]] von &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt;, so lassen sich die Eigenwerte aus den Diagonalelementen ablesen. Im Falle einer reellen Matrix mit orthogonalen Umformungen kann es jedoch auch komplexe Eigenwerte geben. Dann ist das Ergebnis des Verfahrens eine obere Blockdreiecksmatrix, deren Diagonalblöcke die Größe &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; für die reellen Eigenwerte oder die Größe &amp;lt;math&amp;gt;2&amp;lt;/math&amp;gt; für komplexe Eigenwerte haben. Einem Eigenwert &amp;lt;math&amp;gt;\lambda=a+\mathrm{i} b&amp;lt;/math&amp;gt; und seinem konjugiert komplexen Eigenwert entspricht dabei der Diagonalblock der entsprechenden Drehstreckung &amp;lt;math&amp;gt;\left(\begin{smallmatrix}a&amp;amp;-b\\b&amp;amp;a\end{smallmatrix}\right)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Allgemeines Schema des Verfahrens ===&lt;br /&gt;
Ausgehend von einer Matrix &amp;lt;math&amp;gt;A_1=A\in\R^{n\times n}&amp;lt;/math&amp;gt; (bzw. &amp;lt;math&amp;gt;A\in\mathbb{C}^{n\times n}&amp;lt;/math&amp;gt;) wird eine Folge von Matrizen &amp;lt;math&amp;gt;A_i&amp;lt;/math&amp;gt; nach folgender Vorschrift bestimmt:&lt;br /&gt;
&lt;br /&gt;
# for &amp;lt;math&amp;gt;i\in\mathbb{N}&amp;lt;/math&amp;gt; do&lt;br /&gt;
# Bestimme ein [[Polynom]] &amp;lt;math&amp;gt;p_i&amp;lt;/math&amp;gt; und werte es in der Matrix &amp;lt;math&amp;gt;A_i&amp;lt;/math&amp;gt; aus.&lt;br /&gt;
# Berechne die [[QR-Zerlegung]] von &amp;lt;math&amp;gt;p_i(A_i)=Q_iR_i&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Berechne die neue Iterierte: &amp;lt;math&amp;gt;A_{i+1}=Q_i^{-1}A_iQ_i&amp;lt;/math&amp;gt;.&lt;br /&gt;
# end for&lt;br /&gt;
&lt;br /&gt;
In dieser allgemeinen Form können auch die Varianten mit (impliziten) Shifts (engl. für Verschiebung) und Mehrfach-Shifts dargestellt und analysiert werden.&lt;br /&gt;
&lt;br /&gt;
Die Matrixfunktion &amp;lt;math&amp;gt;p_i&amp;lt;/math&amp;gt; ist oft ein Polynom (hier also eine Linearkombination von Matrixpotenzen) mit reellen (bzw. komplexen) Koeffizienten. Im einfachsten Fall wird ein [[lineares Polynom]] gewählt, das dann die Gestalt &amp;lt;math&amp;gt;p_i(A_i)=A_i-\kappa_iI&amp;lt;/math&amp;gt; hat. Der Algorithmus vereinfacht sich in diesem Fall auf die &amp;#039;&amp;#039;klassische Version&amp;#039;&amp;#039; (mit Einfach-Shift):&lt;br /&gt;
&lt;br /&gt;
# for &amp;lt;math&amp;gt;i\in\mathbb{N}&amp;lt;/math&amp;gt; do&lt;br /&gt;
# Bestimme eine geeignete Zahl &amp;lt;math&amp;gt;\kappa_i&amp;lt;/math&amp;gt;&lt;br /&gt;
# Berechne die [[QR-Zerlegung]] von &amp;lt;math&amp;gt;A_i-\kappa_iI=Q_iR_i&amp;lt;/math&amp;gt;&lt;br /&gt;
# Berechne die neue Iterierte: &amp;lt;math&amp;gt;A_{i+1}=Q_i^{-1}A_iQ_i=Q_i^{-1}(Q_iR_i+\kappa_iI)Q_i=R_iQ_i+\kappa_iI&amp;lt;/math&amp;gt;&lt;br /&gt;
# end for&lt;br /&gt;
&lt;br /&gt;
Wird in jedem Iterationsschritt &amp;lt;math&amp;gt;\kappa_i=0&amp;lt;/math&amp;gt; gesetzt, so stimmt das Verfahren mit der auf Unterräume (hier den vollen Vektorraum) erweiterten [[Potenzmethode]] überein.&lt;br /&gt;
&lt;br /&gt;
Das die QR-Zerlegung steuernde Polynom kann von Anfang an fixiert sein oder dynamisch in jedem Iterationsschritt der aktuellen Matrix &amp;lt;math&amp;gt;A_i&amp;lt;/math&amp;gt; angepasst werden. Es gibt auch Versuche, für &amp;lt;math&amp;gt;p_i&amp;lt;/math&amp;gt; rationale Matrixfunktionen zu verwenden, d.&amp;amp;nbsp;h. Funktionen der Form &amp;lt;math&amp;gt;p(A)=h(A)^{-1}g(A)&amp;lt;/math&amp;gt; mit Polynomen &amp;lt;math&amp;gt;g&amp;lt;/math&amp;gt; und &amp;lt;math&amp;gt;h&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Deflation ===&lt;br /&gt;
Ergibt es sich in einem Iterationsschritt, dass ein linksunterer Block aus den Spalten &amp;lt;math&amp;gt;1,\dots,i&amp;lt;/math&amp;gt; und deren Zeilen &amp;lt;math&amp;gt;i+1,\dots,n&amp;lt;/math&amp;gt; in den Beträgen aller seiner Komponenten eine vorher bestimmte Schwelle unterschreitet, so wird das Verfahren auf den zwei diagonalen quadratischen Teilblöcken der Zeilen/Spalten &amp;lt;math&amp;gt;1,\dots,i&amp;lt;/math&amp;gt; sowie &amp;lt;math&amp;gt;i+1,\dots,n&amp;lt;/math&amp;gt; separat fortgesetzt. Sind die durch Teilung entstandenen Matrizen klein genug, so kann die Bestimmung der Eigenwerte z.&amp;amp;nbsp;B. mittels Berechnung des [[Charakteristisches Polynom|charakteristischen Polynoms]] und dessen Nullstellen beendet werden.&lt;br /&gt;
&lt;br /&gt;
=== Transformation auf Hessenberg-Form ===&lt;br /&gt;
Das Ziel des QR-Algorithmus ist es, eine obere Dreiecksform oder eine Block-Dreiecksform herzustellen, in der Blöcke der Größe &amp;lt;math&amp;gt;2&amp;lt;/math&amp;gt; komplexen Eigenwerten entsprechen. Das kann nahezu auf einfache Weise durch eine Ähnlichkeitstransformation auf [[Hessenbergform|Hessenberg-Form]], d.&amp;amp;nbsp;h. auf eine Matrix mit nur einer (nicht identisch verschwindenden) unteren Nebendiagonalen, erreicht werden.&lt;br /&gt;
&lt;br /&gt;
* Setze &amp;lt;math&amp;gt;\tilde A=A&amp;lt;/math&amp;gt;&lt;br /&gt;
* für &amp;lt;math&amp;gt;k=1&amp;lt;/math&amp;gt; bis &amp;lt;math&amp;gt;n-1&amp;lt;/math&amp;gt; führe aus&lt;br /&gt;
:# Bilde das Spaltensegment &amp;lt;math&amp;gt;u=\tilde A_{k+1:n,\,k}&amp;lt;/math&amp;gt;&lt;br /&gt;
:# Bestimme die Householder-Spiegelung &amp;lt;math&amp;gt;\tilde P_k=I-2vv^\mathrm{T}&amp;lt;/math&amp;gt;, die &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; auf den ersten kanonischen Basisvektor abbildet&lt;br /&gt;
:# Führe mit der [[Blockmatrix]] &amp;lt;math&amp;gt;P_k=\left(\begin{smallmatrix}I_k&amp;amp;0\\0&amp;amp; \tilde P_k\end{smallmatrix}\right)&amp;lt;/math&amp;gt; die Ersetzung von &amp;lt;math&amp;gt;\tilde A&amp;lt;/math&amp;gt; durch die ähnliche Matrix &amp;lt;math&amp;gt;P_k^{-1}\tilde AP_k=P_k\tilde AP_k&amp;lt;/math&amp;gt; durch.&lt;br /&gt;
* Vermerke die Gesamttransformationsmatrix &amp;lt;math&amp;gt;Q_0=P_1P_2\cdots P_{n-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
* &amp;lt;math&amp;gt;A_1=\tilde A=Q_0^{-1}AQ_0&amp;lt;/math&amp;gt; befindet sich nun in Hessenberg-Form.&lt;br /&gt;
&lt;br /&gt;
Durch die Hessenberg-Form wird die Bestimmung der charakteristischen Polynome von [[Teilmatrix|Teilmatrizen]] erleichtert. Die Hessenberg-Form einer [[Symmetrische Matrix|symmetrischen Matrix]] hat eine [[Tridiagonalmatrix|Tridiagonalform]], was weitere Rechnungen wesentlich beschleunigt.&lt;br /&gt;
&lt;br /&gt;
Weiterhin wird in jedem Schritt des QR-Algorithmus die Hessenberg-Form erhalten. Grundlage hierfür ist die Arithmetik verallgemeinerter Dreiecksmatrizen, bei denen alle Einträge unterhalb einer unteren Nebendiagonalen verschwinden. Eine Hessenberg-Matrix ist demnach eine verallgemeinerte Dreiecksmatrix mit einer Nebendiagonalen. Unter Multiplikation addieren sich die Anzahlen nichtverschwindender Nebendiagonalen, bei Addition bleibt meist die größere Anzahl erhalten.&lt;br /&gt;
&lt;br /&gt;
Daher haben &amp;lt;math&amp;gt;p_i(A_i)&amp;lt;/math&amp;gt; sowie die orthogonale Matrix &amp;lt;math&amp;gt;Q_i=p_i(A_i)R_i^{-1}&amp;lt;/math&amp;gt; die Anzahl von &amp;lt;math&amp;gt;m=\deg p_i&amp;lt;/math&amp;gt; unteren Nebendiagonalen. Nun gilt wegen &amp;lt;math&amp;gt;A_{i+1}=Q_i^{-1}A_iQ_i&amp;lt;/math&amp;gt; auch&lt;br /&gt;
:&amp;lt;math&amp;gt;p_i(A_{i+1})=Q_i^{-1}p_i(A_i)Q_i=R_iQ_i&amp;lt;/math&amp;gt;,&lt;br /&gt;
und letzteres Produkt hat ebenfalls &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; Nebendiagonalen. Das ist im Allgemeinen nur möglich, wenn &amp;lt;math&amp;gt;A_{i+1}&amp;lt;/math&amp;gt; genau eine Nebendiagonale aufweist, also wieder in Hessenbergform ist. Aus der Zerlegung von &amp;lt;math&amp;gt;p_i&amp;lt;/math&amp;gt; in Linearfaktoren folgt (s.&amp;amp;nbsp;unten), dass dies immer der Fall ist.&lt;br /&gt;
&lt;br /&gt;
Man kann darauf aufbauend zeigen (Francis 1962 nach Bai/Demmel), dass schon die erste Spalte &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; von &amp;lt;math&amp;gt;p_i(A_i)&amp;lt;/math&amp;gt;, die auch proportional zur ersten Spalte von &amp;lt;math&amp;gt;Q_i&amp;lt;/math&amp;gt; ist, die nachfolgende Matrix &amp;lt;math&amp;gt;A_{i+1}=Q_i^{-1}A_iQ_i&amp;lt;/math&amp;gt; vollständig bestimmt. Genauer: Ist &amp;lt;math&amp;gt;U&amp;lt;/math&amp;gt; eine [[orthogonale Matrix]], deren erste Spalte proportional zu &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; ist, so entsteht &amp;lt;math&amp;gt;A_{i+1}&amp;lt;/math&amp;gt;, indem die transformierte Matrix &amp;lt;math&amp;gt;U^{-1}A_iU&amp;lt;/math&amp;gt; wieder in Hessenbergform gebracht wird. Da in &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; nur die Komponenten der Zeilen &amp;lt;math&amp;gt;1, \ldots ,m+1&amp;lt;/math&amp;gt; von Null verschieden sind, kann &amp;lt;math&amp;gt;U&amp;lt;/math&amp;gt; als eine Modifikation der [[Einheitsmatrix]] im linksoberen &amp;lt;math&amp;gt;s\times s&amp;lt;/math&amp;gt;-Block sein, mit einem &amp;lt;math&amp;gt;s &amp;gt; m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Varianten des QR-Algorithmus ==&lt;br /&gt;
=== Einfache QR-Iteration ===&lt;br /&gt;
Es wird &amp;lt;math&amp;gt;p_i(A)=A&amp;lt;/math&amp;gt; gewählt. Das Verfahren kann dann kurz als QR-Zerlegung &amp;lt;math&amp;gt;A_i=Q_iR_i&amp;lt;/math&amp;gt; gefolgt vom Zusammenmultiplizieren &amp;lt;math&amp;gt;A_{i+1}=R_iQ_i&amp;lt;/math&amp;gt; in umgekehrter Reihenfolge angegeben werden. Dieses Verfahren ist die direkte Verallgemeinerung der simultanen Potenzmethode zur Bestimmung der ersten &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; Eigenwerte einer Matrix. Dieser Zusammenhang wird bei der [[Unterraumiteration]] hergeleitet. Indirekt wird auch eine simultane inverse Potenzmethode ausgeführt.&lt;br /&gt;
&lt;br /&gt;
=== QR-Algorithmus mit einfachen Shifts ===&lt;br /&gt;
Es wird &amp;lt;math&amp;gt;p_i(A)=A-\kappa_iI&amp;lt;/math&amp;gt; gesetzt. Damit kann das Verfahren alternativ auch als QR-Zerlegung &amp;lt;math&amp;gt;A_i-\kappa_iI=Q_iR_i&amp;lt;/math&amp;gt; gefolgt vom um den Shift korrigierten Zusammenmultiplizieren &amp;lt;math&amp;gt;A_{i+1}=R_iQ_i+\kappa_iI&amp;lt;/math&amp;gt; dargestellt werden. Üblicherweise wird versucht, mit dem Shift &amp;lt;math&amp;gt;\kappa_i&amp;lt;/math&amp;gt; den betragskleinsten Eigenwert zu approximieren. Dazu kann das letzte Diagonalelement &amp;lt;math&amp;gt;\kappa_i=(A_i)_{n,n}&amp;lt;/math&amp;gt; gewählt werden. Die einfache QR-Iteration ergibt sich, indem alle Shifts zu Null gesetzt werden.&lt;br /&gt;
&lt;br /&gt;
Besitzt &amp;lt;math&amp;gt;A_i&amp;lt;/math&amp;gt; Hessenberg-Form, so muss &amp;lt;math&amp;gt;Q_i=(A_i-\kappa_iI)R_i^{-1}&amp;lt;/math&amp;gt; als [[Matrizenprodukt|Produkt]] einer Matrix mit und einer Matrix ohne [[Nebendiagonale]]n ebenfalls Hessenberg-Form besitzen. Das Gleiche gilt daher auch für &amp;lt;math&amp;gt;A_{i+1}=R_iQ_i+\kappa_iI&amp;lt;/math&amp;gt;. Wird also in Vorbereitung des QR-Algorithmus in &amp;lt;math&amp;gt;A_1=Q_0^{-1}AQ_0&amp;lt;/math&amp;gt; auf Hessenberg-Form gebracht, so bleibt dies während des gesamten Algorithmus erhalten.&lt;br /&gt;
&lt;br /&gt;
=== Einfache Shifts für symmetrische Matrizen ===&lt;br /&gt;
Eine symmetrische reelle Matrix &amp;lt;math&amp;gt;A_1=A&amp;lt;/math&amp;gt; hat ausschließlich reelle Eigenwerte. Die Symmetrie bleibt während des QR-Algorithmus in allen &amp;lt;math&amp;gt;A_i&amp;lt;/math&amp;gt; erhalten. Für symmetrische Matrizen schlug Wilkinson (1965) vor, denjenigen Eigenwert der rechtsuntersten &amp;lt;math&amp;gt;2\times2&amp;lt;/math&amp;gt;-Teilmatrix&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{pmatrix}&lt;br /&gt;
a_{n-1,n-1}&amp;amp;a_{n-1,n}\\a_{n,n-1}&amp;amp;a_{n,n}&lt;br /&gt;
\end{pmatrix}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
als Shift zu wählen, der näher an &amp;lt;math&amp;gt;a_{n,n}&amp;lt;/math&amp;gt; liegt. Wilkinson zeigte, dass die so bestimmte Matrixfolge &amp;lt;math&amp;gt;(A_i)_{i\in\N}&amp;lt;/math&amp;gt; gegen eine [[Diagonalmatrix]] konvergiert, deren Diagonalelemente die Eigenwerte von &amp;lt;math&amp;gt;A=A_1&amp;lt;/math&amp;gt; sind. Die [[Konvergenzgeschwindigkeit]] ist dabei quadratisch.&lt;br /&gt;
&lt;br /&gt;
=== QR-Algorithmus mit doppelten Shifts ===&lt;br /&gt;
Es kann ein Paar von einfachen Shifts in einem Iterationsschritt zusammengefasst werden. In der Konsequenz bedeutet dies, dass für reelle Matrizen auf komplexe Shifts verzichtet werden kann. In der oben angegebenen Notation ist&lt;br /&gt;
:&amp;lt;math&amp;gt;(A_1-\kappa_2I)(A_1-\kappa_1I)=(A_1-\kappa_2I)Q_1R_1=Q_1(A_2-\kappa_2I)R_1=Q_1Q_2R_2R_1&amp;lt;/math&amp;gt;&lt;br /&gt;
eine QR-Zerlegung für das quadratische Polynom &amp;lt;math&amp;gt;p_1(x)=x^2-(\kappa_1+\kappa_2)x+\kappa_1\kappa_2&amp;lt;/math&amp;gt;, ausgewertet in &amp;lt;math&amp;gt;A_1&amp;lt;/math&amp;gt;. Die Koeffizienten dieses Polynoms sind auch für ein konjugiertes Paar komplexer Shifts reell. Somit können auch komplexe Eigenwerte reeller Matrizen approximiert werden, ohne dass in der Rechnung komplexe Zahlen auftauchen.&lt;br /&gt;
&lt;br /&gt;
Eine übliche Wahl für diesen Doppelshift besteht aus den Eigenwerten der rechtsuntersten &amp;lt;math&amp;gt;2\times2&amp;lt;/math&amp;gt;-Teilmatrix, d.&amp;amp;nbsp;h., das quadratische Polynom ist das charakteristische Polynom dieses Blocks,&lt;br /&gt;
:&amp;lt;math&amp;gt;p_i(x) = x^2-(a_{n-1,n-1}+a_{n,n})x+a_{n-1,n-1}a_{n,n}-a_{n-1,n}a_{n,n-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== QR-Algorithmus mit multiplen Shifts ===&lt;br /&gt;
&lt;br /&gt;
Es wird eine Zahl &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; größer &amp;lt;math&amp;gt;2&amp;lt;/math&amp;gt;, aber wesentlich kleiner als die Größe &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; der Matrix &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; festgelegt. Das Polynom &amp;lt;math&amp;gt;p_i(x)&amp;lt;/math&amp;gt; kann als das charakteristische Polynom der rechtsuntersten quadratischen &amp;lt;math&amp;gt;m\times m&amp;lt;/math&amp;gt;-Teilmatrix der aktuellen Matrix &amp;lt;math&amp;gt;A_i&amp;lt;/math&amp;gt; gewählt werden. Eine andere Strategie besteht darin, die &amp;lt;math&amp;gt;s &amp;gt; m&amp;lt;/math&amp;gt; Eigenwerte der rechtsuntersten &amp;lt;math&amp;gt;s\times s&amp;lt;/math&amp;gt;-Teilmatrix zu bestimmen und die &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; betragskleinsten Eigenwerte &amp;lt;math&amp;gt;s_1,\dots,s_m&amp;lt;/math&amp;gt; darunter auszuwählen. Mit diesen wird dann eine QR-Zerlegung von&lt;br /&gt;
:&amp;lt;math&amp;gt;p_i(A_i)=(A_i-s_1I)(A_i-s_2I)\cdots(A_i-s_mI)=Q_iR_i&amp;lt;/math&amp;gt; und &amp;lt;math&amp;gt;A_{i+1}=Q_i^{-1}A_iQ_i&amp;lt;/math&amp;gt;&lt;br /&gt;
bestimmt.&lt;br /&gt;
&lt;br /&gt;
Mit einem Multishift-Verfahren wird oft erreicht, dass die Komponenten des linksunteren &amp;lt;math&amp;gt;(n-m+1,\dots,n)\times(1,\dots,n-m)&amp;lt;/math&amp;gt;-Blocks in der Folge der iterierten Matrizen besonders schnell klein werden und somit eine Aufspaltung des Eigenwertproblems erreicht wird.&lt;br /&gt;
&lt;br /&gt;
=== Implizite Multishift-Iteration ===&lt;br /&gt;
Das Zusammenfassen mehrfacher Shifts in der allgemeinen Form ist sehr aufwendig. Wie oben angesprochen, kann der Aufwand dadurch verringert werden, dass in einem vorbereitenden Schritt in &amp;lt;math&amp;gt;A_1=Q_0^{-1}AQ_0&amp;lt;/math&amp;gt; die Hessenberg-Form hergestellt wird. Da jeder Multishift-Schritt aus einzelnen (auch komplexen) Shifts zusammengesetzt werden kann, bleibt die Hessenberg-Form während des gesamten Algorithmus erhalten.&lt;br /&gt;
&lt;br /&gt;
Dadurch kann der QR-Algorithmus in einen &amp;#039;&amp;#039;„Bulge-chasing“&amp;#039;&amp;#039;-Algorithmus umgewandelt werden, der eine Delle in der Hessenbergform am oberen Diagonalenende erzeugt und diese dann die Diagonale herunter und am unteren Ende aus der Matrix „jagt“.&lt;br /&gt;
&lt;br /&gt;
# for &amp;lt;math&amp;gt;j\in\mathbb{N}_0&amp;lt;/math&amp;gt; do&lt;br /&gt;
# Berechne das Polynom &amp;lt;math&amp;gt;p(x)&amp;lt;/math&amp;gt; nach einer der angegebenen Varianten,&lt;br /&gt;
# Bestimme den Vektor &amp;lt;math&amp;gt;x=p(A_j)e_1&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Bestimme eine Spiegelung von &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; auf den ersten Einheitsvektor. Da in &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; nur die ersten &amp;lt;math&amp;gt;m+1&amp;lt;/math&amp;gt; Komponenten nicht verschwinden, hat diese Spiegelung eine einfache Blockgestalt.&lt;br /&gt;
# Bilde die Matrix &amp;lt;math&amp;gt;\tilde A=U^{-1}A_jU&amp;lt;/math&amp;gt; und transformiere sie so, dass &amp;lt;math&amp;gt;A_{j+1}=Q^{-1}U^{-1}A_jUQ&amp;lt;/math&amp;gt; wieder in Hessenberg-Form ist.&lt;br /&gt;
# end for&lt;br /&gt;
&lt;br /&gt;
Wird &amp;lt;math&amp;gt;Q&amp;lt;/math&amp;gt; aus Householder-Spiegelungen zusammengesetzt, &amp;lt;math&amp;gt;Q=P_1P_2\cdots P_{n-1}&amp;lt;/math&amp;gt;, so haben diese Blockdiagonalgestalt &amp;lt;math&amp;gt;P_k=\mathrm{diag}(I_k,\tilde P_k,I_{\max(0,n-k-m)})&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Anmerkungen zur Funktionsweise ==&lt;br /&gt;
=== Ähnlichkeitstransformationen ===&lt;br /&gt;
Die im QR-Algorithmus berechneten Matrizen sind zueinander unitär ähnlich, da&lt;br /&gt;
aufgrund von &amp;lt;math&amp;gt;A_i-\kappa_iI=Q_iR_i\quad\Leftrightarrow\quad R_i=Q_i^H(A_i-\kappa_iI)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;A_{i+1}=R_iQ_i+\kappa_iI&lt;br /&gt;
                =Q_i^H(A_i-\kappa_iI)Q_i+\kappa_iI&lt;br /&gt;
                =Q_i^HA_iQ_i-\kappa_iQ_i^HQ_i+\kappa_iI&lt;br /&gt;
                =Q_i^HA_iQ_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
gilt. Damit haben alle Matrizen &amp;lt;math&amp;gt;A_i&amp;lt;/math&amp;gt; dieselben Eigenwerte (mit der algebraischen und geometrischen Vielfachheit gezählt).&lt;br /&gt;
&lt;br /&gt;
=== Wahl der Shifts, Konvergenz ===&lt;br /&gt;
Eine einfache, aber nicht sehr effektive Wahl ist die Wahl von Shifts identisch Null. Die Iterierten &amp;lt;math&amp;gt;A_i&amp;lt;/math&amp;gt; des resultierenden Algorithmus, des QR-Algorithmus in der Grundform, konvergieren teilweise, wenn sich alle Eigenwerte dem Betrage nach unterscheiden, gegen eine obere Dreiecksmatrix mit den Eigenwerten auf der Diagonalen. Teilweise Konvergenz bedeutet hier, dass die Elemente des unteren Dreiecks von &amp;lt;math&amp;gt;A_i&amp;lt;/math&amp;gt; gegen Null gehen und die Diagonalelemente gegen die Eigenwerte. Über die Elemente im oberen Dreieck wird also &amp;#039;&amp;#039;nichts&amp;#039;&amp;#039; ausgesagt.&lt;br /&gt;
&lt;br /&gt;
Werden die Shifts als das Matrixelement unten rechts der aktuellen Iterierten gewählt, also &amp;lt;math&amp;gt;\kappa_i=a_{nn}^{(i)}&amp;lt;/math&amp;gt;, so konvergiert der Algorithmus unter geeigneten Umständen quadratisch oder sogar kubisch. Dieser Shift ist als Rayleigh-Quotienten-Shift bekannt, da er über die [[Inverse Iteration]] mit einem [[Rayleigh-Quotient]]en im Zusammenhang steht.&lt;br /&gt;
&lt;br /&gt;
Bei der Rechnung im Reellen (&amp;lt;math&amp;gt;A\in\mathbb{R}^{n\times n}&amp;lt;/math&amp;gt;) möchte man die reelle Schur-Form berechnen und trotzdem mit konjugiert komplexen Eigenwerten arbeiten können. Dazu gibt es verschiedene Shift-Strategien.&lt;br /&gt;
&lt;br /&gt;
Eine Erweiterung von einfachen Shifts ist der nach [[James Hardy Wilkinson]] benannte Wilkinson-Shift. Für den Wilkinson-Shift wird der näher am letzten Matrixelement liegende Eigenwert der letzten &amp;lt;math&amp;gt;2\times 2&amp;lt;/math&amp;gt; Hauptunterabschnittsmatrix&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\begin{pmatrix}&lt;br /&gt;
            a_{n-1,n-1}^{(i)} &amp;amp; a_{n-1,n}^{(i)} \\&lt;br /&gt;
            a_{n,n-1}^{(i)} &amp;amp; a_{n,n}^{(i)}&lt;br /&gt;
         \end{pmatrix}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
verwendet.&lt;br /&gt;
&lt;br /&gt;
=== Der QR-Algorithmus als Erweiterung der Potenzmethode ===&lt;br /&gt;
Zur Analyse des Algorithmus werden die zusätzlichen Matrixfolgen der kumulierten Produkte &amp;lt;math&amp;gt;\tilde Q_k=Q_1Q_2\cdots Q_k&amp;lt;/math&amp;gt; und &amp;lt;math&amp;gt;\tilde R_k=R_kR_{k-1}\cdots R_2R_1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;k\in\N&amp;lt;/math&amp;gt; definiert. Dabei sind die Produkte &amp;lt;math&amp;gt;\tilde Q_k&amp;lt;/math&amp;gt; von orthogonalen bzw. unitären Matrizen wieder orthogonale bzw. unitäre Matrizen, genauso sind die Produkte &amp;lt;math&amp;gt;\tilde R_k&amp;lt;/math&amp;gt; von rechtsoberen Dreiecksmatrizen wieder rechtsobere Dreiecksmatrizen. Die Matrizen der QR-Iteration ergeben sich durch Ähnlichkeitstransformationen aus &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt;, denn&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
  A_1=A,\;&lt;br /&gt;
  A_2=R_1Q_1=Q_1^{-1}A_1Q_1,\;&lt;br /&gt;
  A_3=Q_2^{-1}A_2Q_2=\tilde Q_2^{-1}A\tilde Q_2,&lt;br /&gt;
  \dots,\;&lt;br /&gt;
  A_k=\tilde Q_k^{-1}A\tilde Q_k,&lt;br /&gt;
  \dots&lt;br /&gt;
&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Daraus folgert man auf QR-Zerlegungen der Potenzen von &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt;:&lt;br /&gt;
:&amp;lt;math&amp;gt;\begin{align}&lt;br /&gt;
A=&amp;amp;&amp;amp;&amp;amp;Q_1R_1&amp;amp;=&amp;amp;\tilde Q_1\tilde R_1\\&lt;br /&gt;
A^2=&amp;amp;AQ_1R_1=Q_1A_2R_1&amp;amp;=&amp;amp;Q_1Q_2R_2R_1&amp;amp;=&amp;amp;\tilde Q_2\tilde R_2\\&lt;br /&gt;
\vdots&amp;amp;\\&lt;br /&gt;
A^k=&amp;amp;A\tilde Q_{k-1}\tilde R_{k-1} =\tilde Q_{k-1}A_{k}\tilde R_{k-1}&amp;amp;=&amp;amp;\tilde Q_{k-1}Q_{k}R_k\tilde R_{k-1} &amp;amp;=&amp;amp;\tilde Q_k\tilde R_k&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es werden also im Verlaufe des Algorithmus implizit QR-Zerlegungen der Potenzen der Matrix &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; bestimmt. Aufgrund der Form dieser Zerlegungen gilt, dass für jedes &amp;lt;math&amp;gt;j=1,2, \ldots ,n&amp;lt;/math&amp;gt; die ersten &amp;lt;math&amp;gt;j&amp;lt;/math&amp;gt; Spalten der Matrix &amp;lt;math&amp;gt;A^k&amp;lt;/math&amp;gt; denselben Unterraum aufspannen wie die ersten &amp;lt;math&amp;gt;j&amp;lt;/math&amp;gt; Spalten der Matrix &amp;lt;math&amp;gt;\tilde Q_k&amp;lt;/math&amp;gt;; zusätzlich sind die Spalten von &amp;lt;math&amp;gt;\tilde Q_k&amp;lt;/math&amp;gt; orthonormal zueinander. Dieses jedoch ist genau die Situation nach dem &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt;-ten Schritt einer simultanen Potenziteration. Die Diagonalelemente von &amp;lt;math&amp;gt;R_k&amp;lt;/math&amp;gt; sind wegen &amp;lt;math&amp;gt;A\tilde Q_{k-1}=\tilde Q_k R_k&amp;lt;/math&amp;gt; die Approximationen der Eigenwerte von &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt;. Daher lassen sich die Konvergenzeigenschaften der Potenziteration übertragen:&lt;br /&gt;
&lt;br /&gt;
Der einfache QR-Algorithmus konvergiert nur, wenn alle Eigenwerte in ihren Beträgen voneinander verschieden sind. Sind die Eigenwerte nach&lt;br /&gt;
:&amp;lt;math&amp;gt;|\lambda_1|&amp;lt;|\lambda_2|&amp;lt;\dots&amp;lt;|\lambda_n|&amp;lt;/math&amp;gt;&lt;br /&gt;
sortiert, so ist die Konvergenzgeschwindigkeit linear mit einem Kontraktionsfaktor, der dem Minimum der Quotienten &amp;lt;math&amp;gt;\tfrac{|\lambda_k|}{|\lambda_{k+1}|}&amp;lt;/math&amp;gt; entspricht.&lt;br /&gt;
&lt;br /&gt;
Insbesondere für reelle Matrizen kann dieser Algorithmus nur konvergieren, wenn alle Eigenwerte reell sind (da sonst konjugiert komplexe Paare mit gleichem Betrag existieren würden). Diese Situation ist für alle symmetrischen Matrizen gegeben.&lt;br /&gt;
&lt;br /&gt;
== Der QR-Algorithmus als simultane inverse Potenziteration ==&lt;br /&gt;
&lt;br /&gt;
Falls &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; invertierbar ist, gilt für die [[Transponierte]] (für komplexe Matrizen die hermitesch [[Adjungierte]]) der Inversen von &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; und alle ihre Potenzen&lt;br /&gt;
:&amp;lt;math&amp;gt;(A^{-T})^k=(A^k)^{-T}=(\tilde R_k^{-1}\tilde Q_k^{-1})^T=\tilde Q_k\tilde R_k^{-T}&amp;lt;/math&amp;gt;&lt;br /&gt;
Die Inverse einer rechtsoberen Dreiecksmatrix ist wieder eine rechtsobere Dreiecksmatrix, deren Transponierte eine linksuntere Dreiecksmatrix. Damit bestimmt der QR-Algorithmus auch eine QL-Zerlegung der Potenzen von &amp;lt;math&amp;gt;A^{-T}&amp;lt;/math&amp;gt;. Aus der Form dieser Zerlegung ist klar, dass für jedes &amp;lt;math&amp;gt;j=1,2, \ldots ,n&amp;lt;/math&amp;gt; die letzten &amp;lt;math&amp;gt;j&amp;lt;/math&amp;gt; Spalten von &amp;lt;math&amp;gt;\tilde Q_k&amp;lt;/math&amp;gt; denselben Unterraum aufspannen wie die letzten &amp;lt;math&amp;gt;j&amp;lt;/math&amp;gt; Spalten von &amp;lt;math&amp;gt;(A^{-T})^k&amp;lt;/math&amp;gt;. In der letzten Spalte von &amp;lt;math&amp;gt;\tilde Q_k&amp;lt;/math&amp;gt; wird somit eine inverse Potenziteration für &amp;lt;math&amp;gt;A^T&amp;lt;/math&amp;gt; durchgeführt, diese Spalte konvergiert also gegen den dualen Eigenvektor zum kleinsten Eigenwert von &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt;. Im Produkt &amp;lt;math&amp;gt;\tilde Q_k^T A \tilde Q_k=A_k&amp;lt;/math&amp;gt; ist also die linke untere Komponente &amp;lt;math&amp;gt;(A_k)_{nn}&amp;lt;/math&amp;gt; der sog. [[Rayleigh-Quotient]] der inversen Potenziteration. Die Konvergenzeigenschaften sind analog zum oben angegebenen.&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://lp.uni-goettingen.de/get/text/2035 LP: QR-Verfahren für allgemeine EWP], Georg-August-Universität Göttingen&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
* {{Literatur |Titel=Numerik-Algorithmen|Autor=Gisela Engeln-Müllges, Klaus Niederdrenk, Reinhard Wodicka|Verlag=Springer-Verlag|Ort=Berlin, Heidelberg|Auflage=10|Datum=2011|ISBN=978-3-642-13472-2|Kapitel=Abschnitt 7.6 &amp;#039;Bestimmung der Eigenwerte positiv definiter, symmetrischer, tridiagonaler Matrizen mit Hilfe des QD-Algorithmus&amp;#039; und 7.7 &amp;#039;Transformationen auf Hessenbergform, LR- und QR-Verfahren&amp;#039;}}&lt;br /&gt;
* J. G. F. Francis (1961): &amp;#039;&amp;#039;The QR Transformation: A Unitary Analogue to the LR Transformation—Part 1&amp;#039;&amp;#039;. The Computer Journal Vol. 4(3), S. 265–271. {{doi|10.1093/comjnl/4.3.265}}&lt;br /&gt;
* J. G. F. Francis (1962): &amp;#039;&amp;#039;The QR Transformation—Part 2&amp;#039;&amp;#039;. The Computer Journal 1962 4(4):332-345; ([http://comjnl.oxfordjournals.org/content/4/4/332.abstract online])&lt;br /&gt;
* David S. Watkins (1982): &amp;#039;&amp;#039;Understanding the QR algorithm&amp;#039;&amp;#039;, SIAM Review, Vol. 24, S. 427–440 ([http://links.jstor.org/sici?sici=0036-1445%28198210%2924%3A4%3C427%3AUTA%3E2.0.CO%3B2-N JSTOR])&lt;br /&gt;
* Z. Bai; J. Demmel (1989): &amp;#039;&amp;#039;On a block implementation of Hessenberg multishift QR iteration&amp;#039;&amp;#039;, International Journal of High Speed Computing, Vol. 1(1), S. 97–112. (siehe [http://wwwuser.gwdg.de/~parallel/parallelrechner/scalapack/lawns/index.html LAPACK Working Notes])&lt;br /&gt;
* A. A. Dubrulle; G. H. Golub (1994): [http://citeseer.ist.psu.edu/dubrulle94multishift.html &amp;#039;&amp;#039;A multishift QR iteration without computation of the shifts&amp;#039;&amp;#039;]. Numerical Algorithms, Vol 7, S. 173–181&lt;br /&gt;
* K. Braman; R. Byers; R. Mathias (2002): [http://www.mcs.sdsmt.edu/kbraman/Research/QR-I.pdf &amp;#039;&amp;#039;The Multishift QR Algorithm. Part I: Maintaining Well-Focused Shifts and Level 3 Performance&amp;#039;&amp;#039;] (PDF; 224&amp;amp;nbsp;kB). SIAM Journal on Matrix Analysis and Applications, Vol. 23, No. 4, S. 929–947&lt;br /&gt;
* K. Braman; R. Byers; R. Mathias (2002): [http://www.mcs.sdsmt.edu/kbraman/Research/QR-II.pdf &amp;#039;&amp;#039;The Multishift QR Algorithm. Part II: Aggressive Early Deflation&amp;#039;&amp;#039;] (PDF; 265&amp;amp;nbsp;kB). SIAM Journal on Matrix Analysis and Applications, Vol. 23, No. 4, S. 948–989&lt;br /&gt;
* David S. Watkins : [http://www.math.wsu.edu/faculty/watkins/pdfiles/qrevisit.pdf &amp;#039;&amp;#039;The QR algorithm revisited&amp;#039;&amp;#039;] (PDF; 417&amp;amp;nbsp;kB) , SIAM Review, Vol. 50, No. 1, S. 133–145&lt;br /&gt;
* [[Martin Hermann (Mathematiker)|M. Hermann]]: &amp;#039;&amp;#039;Numerische Mathematik, Band 1: Algebraische Probleme&amp;#039;&amp;#039;. 4., überarbeitete und erweiterte Auflage. Walter de Gruyter Verlag, Berlin und Boston 2020. ISBN 978-3-11-065665-7.&lt;br /&gt;
&lt;br /&gt;
{{DEFAULTSORT:Qr-Algorithmus}}&lt;br /&gt;
[[Kategorie:Numerische lineare Algebra]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Alex Writer WEH</name></author>
	</entry>
</feed>