Existenzsatz der Zerlegung mit QR
Die -Zerlegung faktorisiert eine Matrix in einen orthogonalen und einen oberen dreieckigen Faktor. Orthogonale Multiplikationen erhalten Längen und Winkel und eignen sich deshalb für stabile numerische Rechnungen.
Sei mit und . Dann gibt es eine orthogonale Matrix mit und eine obere Dreiecksmatrix , deren erste Diagonaleinträge positiv sind, sodass
Diese Faktorisierung heißt -Zerlegung von .
Beweis mit Orthogonalisierung nach Gram und Schmidt
Sei die -te Spalte von . Das Gram-Schmidt-Verfahren entfernt die Anteile in bereits bestimmten Richtungen und normiert anschließend den Rest:
Der volle Spaltenrang garantiert in jedem Schritt. Die normierten Vektoren bilden die Spalten von und erfüllen . Jede ursprüngliche Spalte lässt sich darstellen als
Damit gilt , wobei eine obere Dreiecksmatrix mit ist.
Ergänzt man um orthonormale Spalten, entsteht .
Durch Anhängen von Nullzeilen an entsteht:
Die ergänzten Matrizen erfüllen weiterhin .
Vollständige und reduzierte Zerlegung mit QR
Für mit beschreiben die vollständige und die reduzierte Form dieselbe Faktorisierung mit unterschiedlichen Matrixgrößen. Beide ergeben beim Zurückmultiplizieren wieder , sodass die Wahl davon abhängt, ob du die vollständige Orthonormalbasis brauchst oder nur die Spalten, die die Daten tragen.
Vollständige Zerlegung mit QR
Die vollständige Form behält alle Spalten von :
Dabei ist orthogonal. Die Matrix enthält oben einen dreieckigen -Block und darunter Nullzeilen.
Reduzierte Zerlegung mit QR
Die reduzierte Form entfernt diese Nullzeilen und die dazugehörigen ungenutzten Spalten von :
Hier enthält die ersten Spalten von , und ist eine obere Dreiecksmatrix. Das Speichern von spart Speicher und vermeidet Rechnungen mit Blöcken, die bereits als null bekannt sind.
Die ungenutzten Spalten bilden eine Orthonormalbasis des Kerns von :
Der Kern von enthält genau die Vektoren , die erfüllen.
Eindeutigkeit
Für eine Matrix mit vollem Spaltenrang ist die reduzierte Faktorisierung eindeutig, wenn alle Diagonaleinträge von positiv sind. Diese Vorzeichenbedingung beseitigt die verbleibende Freiheit, denn multiplizierst du eine Spalte von und die zugehörige Zeile von mit , bleibt das Produkt unverändert.
Beispiel einer dünnen Zerlegung mit QR
Sei
Gram-Schmidt liefert zunächst
Damit gilt
Householderverfahren zur Zerlegung mit QR
Das klassische Gram-Schmidt-Verfahren lässt sich direkt herleiten, kann aber bei nahezu linear abhängigen Spalten in Gleitkommaarithmetik Orthogonalität verlieren. Das modifizierte Verfahren verringert diesen Fehler. Numerische Software verwendet für dichte Matrizen meist Householder-Spiegelungen. Givens-Rotationen eignen sich, wenn nur einzelne Einträge beseitigt werden sollen.
Householdertransformation
Für einen Einheitsvektor ist die Householder-Matrix definiert durch
Das äußere Produkt multipliziert eine -Spalte mit einer -Zeile und ergibt daher eine -Matrix vom Rang eins. Das umgekehrte Produkt ist der Skalar .
Eigenschaften der Householdertransformation
Für und gelten folgende Eigenschaften. Symmetrie und Orthogonalität folgen aus dem Einheitsvektor in der Definition, die Spiegelung erklärt die Wirkung auf einen Vektor, und Konditionszahl eins bedeutet, dass eine exakte Spiegelung die euklidische Norm eines Störvektors erhält.
-
ist symmetrisch:
-
ist eine orthogonale Matrix:
-
spiegelt an der zu senkrechten Hyperebene
Householderverfahren
Sei mit und . In jedem Householder-Schritt werden die Einträge unter einer Diagonalposition null, während die bereits erzeugten Nullen erhalten bleiben.
Wir beginnen mit und spiegeln die erste Spalte auf ein Vielfaches des ersten Koordinatenvektors:
Iterativer Transformationsprozess
Mit werden alle Einträge der ersten Spalte unterhalb der Diagonale null:
In der Matrix gilt und .
Im nächsten Schritt spiegeln wir die erste Spalte der verbleibenden Untermatrix:
Der zweite Reflektor wird in den rechten unteren Block der Einheitsmatrix eingebettet:
Danach sind auch die Einträge der zweiten Spalte unterhalb der Diagonale null:
Dabei gilt und . Durch Wiederholung bleibt schließlich die letzte aktive Spalte
Nach der letzten Spiegelung ist die transformierte Matrix oberdreieckig:
Da jeder Reflektor orthogonal und symmetrisch ist, liefert ihr Produkt
Die Matrix ist als Produkt orthogonaler Reflektoren ebenfalls orthogonal.
Implementierungsalgorithmus
Zuerst werden die aktive Matrix und der gesammelte orthogonale Faktor initialisiert:
Im Schritt wird der aktive Teil der -ten Spalte entnommen:
Danach werden Norm, Vorzeichen und Householder-Vektor berechnet. Das Vorzeichen verhindert die Subtraktion fast gleicher Zahlen:
Der zugehörige Skalenfaktor ist
Der normierte Vektor und der vollständige Reflektor lauten
Die aktive Matrix und der gesammelte Faktor werden ohne ein zusätzliches dichtes Matrixprodukt aktualisiert:
Nach Schritten gilt
Numerische Eigenschaften und Aufwand
Die Umsetzung der Zerlegung in Gleitkommaarithmetik wirft zwei praktische Fragen auf, nämlich wie viele Operationen sie kostet und wie sich der Rundungsfehler verhält. Beide Antworten entscheiden, ob das Verfahren zum Problem passt: Die Operationszahl bestimmt die Laufzeit bei einer großen Matrix, und das Rundungsverhalten bestimmt, wie viel vom berechneten Ergebnis du verwerten kannst.
Rechenkomplexität
Die folgende Zählung speichert implizit als Reflektoren und berechnet . Das explizite Bilden der vollständigen -Matrix benötigt zusätzliche Arbeit.
Für benötigt eine -Zerlegung mit Householder-Spiegelungen ungefähr:
Die ungefähre Anzahl an Gleitkommaoperationen für beträgt:
Numerische Eigenschaften
Orthogonale Multiplikationen erhalten die Singulärwerte. Daher gilt für eine Matrix mit vollem Spaltenrang .
Im Schritt entsteht der neue Diagonaleintrag . Das folgende Vorzeichen verhindert beim Berechnen des Reflektors die Subtraktion fast gleicher Zahlen:
Nach der Faktorisierung können die Vorzeichen einer Spalte von und der zugehörigen Zeile von gemeinsam gewechselt werden, damit die Diagonale von positiv ist. Gilt , fehlt der volle Spaltenrang und diese Eindeutigkeitsbedingung entfällt. Eine -Zerlegung mit Spaltenpivotisierung eignet sich besser, wenn der numerische Rang bestimmt werden soll.
Eine kompakte Implementierung skaliert den Householder-Vektor so, dass sein erster aktiver Eintrag 1 ist. Die übrigen Einträge werden unterhalb der Diagonalen gespeichert, die Reflektorstärke in einem separaten Skalar. Diagonale und oberes Dreieck enthalten weiterhin . Die gespeicherten Reflektoren lassen sich ohne explizites anwenden.
Die reduzierte Faktorisierung behält die ersten Spalten von und die ersten Zeilen von .