7.1Normalgleichungen

7.1.1 Wenn es keine exakte Lösung gibt

Stell dir vor, du misst im Labor vier Punkte und suchst die Gerade, die am besten durchpasst. Kein gerades Lineal trifft alle vier Punkte exakt, denn jede Messung hat ihren kleinen Fehler. Was heißt dann überhaupt beste Lösung? Genau diese Frage beantwortet die Ausgleichsrechnung.

Bis jetzt haben wir lineare Gleichungssysteme Ax=cA\mathbf{x} = \mathbf{c} gelöst, bei denen es höchstens so viele Gleichungen wie Unbekannte gab. In realen Anwendungen ist es oft umgekehrt: Man hat viel mehr Gleichungen als Unbekannte. Jede Messung liefert eine Gleichung, aber gesucht sind nur wenige Modellparameter. Ein solches System heißt überbestimmt: ARm×nA \in \mathbb{R}^{m \times n} mit m>nm > n (mehr Zeilen als Spalten).

Bei einem überbestimmten System gibt es in aller Regel kein x\mathbf{x}, das alle mm Gleichungen gleichzeitig erfüllt. Der Grund ist anschaulich: Wir haben mehr Bedingungen als Stellschrauben, also lassen sich nicht alle Bedingungen exakt einhalten. Statt nach einer exakten Lösung zu suchen, fragen wir: Welches x\mathbf{x} kommt allen Gleichungen so nahe wie möglich?

Um den Fehler messen zu können, setzen wir alles auf eine Seite. Wir definieren den Residuenvektor r=Axc\mathbf{r} = A\mathbf{x} - \mathbf{c}. Seine Einträge r1,r2,,rmr_1, r_2, \ldots, r_m heißen Residuen (von lateinisch residuum, der Rest). Jedes rir_i ist der Rest, der in Gleichung ii übrig bleibt, also der Betrag, um den diese Gleichung verfehlt wird. Wäre Ax=cA\mathbf{x} = \mathbf{c} exakt lösbar, so wäre r=0\mathbf{r} = \mathbf{0}. Bei einem überbestimmten System ist das fast nie der Fall, und unser Ziel wird, r\mathbf{r} insgesamt so klein wie möglich zu machen.

!!
Überbestimmtes System
Ax=c,ARm×n,  cRm,  xRn,m>nA\mathbf{x} = \mathbf{c}, \qquad A \in \mathbb{R}^{m \times n},\; \mathbf{c} \in \mathbb{R}^m,\; \mathbf{x} \in \mathbb{R}^n,\quad m > n
Mehr Gleichungen (m) als Unbekannte (n). Meist keine exakte Lösung.
!!
Fehlergleichungen und Residuen
Axc=r,r=(r1r2rm)A\mathbf{x} - \mathbf{c} = \mathbf{r}, \qquad \mathbf{r} = \begin{pmatrix} r_1 \\ r_2 \\ \vdots \\ r_m \end{pmatrix}
rᵢ = Rest in Gleichung i. Exakte Lösung würde r = 0 bedeuten.
Notation Notation: A, x, c, r
ARm×nA \in \mathbb{R}^{m \times n} Koeffizientenmatrix (m Zeilen, n Spalten), xRn\mathbf{x} \in \mathbb{R}^n gesuchter Vektor, cRm\mathbf{c} \in \mathbb{R}^m rechte Seite (Messwerte), rRm\mathbf{r} \in \mathbb{R}^m Residuenvektor.
Definition Überbestimmtes System
Ax=cA\mathbf{x} = \mathbf{c} mit m>nm > n: mehr Gleichungen als Unbekannte. In der Regel ohne exakte Lösung; gesucht ist die beste Näherung.
Definition Residuum
Der Rest rir_i in Gleichung ii, gesammelt im Residuenvektor r=Axc\mathbf{r} = A\mathbf{x} - \mathbf{c}. Misst, wie stark eine Gleichung verfehlt wird.

7.1.2 Die Normalgleichungen: kleinste Fehlerquadrate

Welches x\mathbf{x} macht den Gesamtfehler am kleinsten? Dafür brauchen wir zuerst ein einziges Maß für die Größe des ganzen Residuenvektors r\mathbf{r}, nicht für jedes rir_i einzeln. Wir nehmen die Länge von r\mathbf{r}, also seine euklidische Norm (die gewöhnliche Pfeillänge im Raum). Diese Länge wollen wir minimieren.

Anschaulich: r2\|\mathbf{r}\|_2 ist die Gesamtlänge des Fehlervektors. Sie wird genau dann klein, wenn alle einzelnen Reste rir_i klein sind. Schreibt man die Norm aus, ist sie die Wurzel aus der Summe der Fehlerquadrate. Daher der Name Methode der kleinsten Quadrate: Wir minimieren r12+r22++rm2r_1^2 + r_2^2 + \cdots + r_m^2.

Jetzt das zentrale Resultat. Statt das Minimierungsproblem direkt anzugehen, gibt es ein erstaunlich einfaches lineares Gleichungssystem, dessen Lösung genau das gesuchte beste x\mathbf{x} liefert. Es heißt die Normalgleichungen und entsteht, indem man Ax=cA\mathbf{x} = \mathbf{c} von links mit ATA^{\mathsf{T}} (der Transponierten von AA) multipliziert. Die Lösungen dieses Systems stimmen mit den Lösungen des Minimierungsproblems überein.

Warum funktioniert das? Die Projektion auf den Spaltenraum. Erinnere dich an die Spaltensicht: AxA\mathbf{x} ist eine Linearkombination der Spalten von AA. Alles, was AA erreichen kann, liegt im Spaltenraum im(A)\operatorname{im}(A). Liegt c\mathbf{c} nicht in diesem Raum (der überbestimmte Fall), so ist der nächstgelegene erreichbare Punkt der Schatten (die senkrechte Projektion) von c\mathbf{c} auf den Spaltenraum. Der Residuenvektor r=Axc\mathbf{r} = A\mathbf{x} - \mathbf{c} steht dann senkrecht auf allem, was AA erzeugen kann. Genau diese Senkrecht-Bedingung schreibt sich als ATr=0A^{\mathsf{T}}\mathbf{r} = \mathbf{0}, und das ist umgestellt die Normalgleichung ATAx=ATcA^{\mathsf{T}} A \mathbf{x} = A^{\mathsf{T}} \mathbf{c}.

Warum quadrieren wir, statt einfach die Beträge zu summieren? Zwei Gründe. Erstens ist das Quadrat überall glatt und differenzierbar, der Betrag hat an der Null einen Knick; das macht das Minimieren rechnerisch sauber und führt direkt auf ein lineares System. Zweitens zählen große Abweichungen durch das Quadrat stärker, ein Ausreißer fällt also deutlich ins Gewicht. Deshalb "kleinste Quadrate" und nicht "kleinste Beträge".

Ist der Rang von AA voll, also rang(A)=n\operatorname{rang}(A) = n, so hat das Minimierungsproblem eine eindeutige Lösung. Anschaulich heißt voller Rang: Die Spalten von AA sind linear unabhängig, die Projektion landet auf genau einem Punkt, und dazu gehört genau ein Koeffizientenvektor x\mathbf{x}.

2-Norm des Residuums (zu minimieren)
r2=Axc2\|\mathbf{r}\|_2 = \|A\mathbf{x} - \mathbf{c}\|_2
Euklidische Länge des Fehlervektors. Klein ⇔ alle Reste klein.
Summe der Fehlerquadrate
r2=r12+r22++rm2    min\|\mathbf{r}\|_2 = \sqrt{r_1^2 + r_2^2 + \cdots + r_m^2} \;\longrightarrow\; \min
Wurzel aus der Summe der Quadrate aller m Residuen. Minimieren ⇔ kleinste Quadrate.
!!!
Normalgleichungen (Theorem)
ATAx=ATcA^{\mathsf{T}} A\, \mathbf{x} = A^{\mathsf{T}} \mathbf{c}
Lösungen dieses LGS = Lösungen von ‖Ax - c‖₂ = min. Bei Rang(A) = n eindeutig.
Formel Schlüsselformel
ATAx=ATcA^{\mathsf{T}} A\, \mathbf{x} = A^{\mathsf{T}} \mathbf{c}
Die Normalgleichungen. Multipliziere Ax=cA\mathbf{x} = \mathbf{c} von links mit ATA^{\mathsf{T}}. Ihre Lösung minimiert die Summe der Fehlerquadrate.
Notation Notation: ‖·‖₂
Die euklidische Norm (2-Norm): r2=r12++rm2\|\mathbf{r}\|_2 = \sqrt{r_1^2 + \cdots + r_m^2}, die gewöhnliche Pfeillänge von r\mathbf{r}. Manche Texte schreiben kurz r\|\mathbf{r}\|.
Merke Merke
Residuum ⟂ Spaltenraum. Der beste Fehler steht senkrecht auf allem, was AA erreichen kann.

7.1.3 Beispiel: Ausgleichspolynom durch vier Messpunkte

Jetzt rechnen wir es einmal komplett durch. Im Labor wurden vier Messpunkte aufgenommen: an den Stellen xi=1,0,1,2x_i = -1, 0, 1, 2 die Werte yi=0,1,3,4y_i = 0, 1, 3, 4. Gesucht ist ein quadratisches Polynom f(x)=ax2+bx+cf(x) = a\,x^2 + b\,x + c, das die Summe der Fehlerquadrate in yy-Richtung minimiert. Wir suchen also die drei Koeffizienten a,b,ca, b, c, sodass die Kurve möglichst gut durch die vier Punkte läuft.

Der Fehler in yy-Richtung am Punkt ii ist f(xi)yif(x_i) - y_i, also der vertikale Abstand zwischen Kurve und Messpunkt. Minimiert wird die Summe dieser quadrierten Abstände.

Zielgröße: Summe der Fehlerquadrate in y-Richtung
i=14[f(xi)yi]2    min\sum_{i=1}^{4} \big[\, f(x_i) - y_i \,\big]^2 \;\longrightarrow\; \min
Vertikaler Abstand Kurve - Messpunkt, quadriert und über alle vier Punkte summiert.

Lösungsweg, Ausgleichspolynom durch vier Punkte

  1. Schritt 1: Ansatzfunktionen festlegen
    Das Polynom f(x)=ax2+bx+cf(x) = a\,x^2 + b\,x + c ist eine Linearkombination dreier fester Bausteine. Diese Bausteine heißen Ansatz- oder Basisfunktionen; ihre Gewichte sind die gesuchten Koeffizienten.
    Die drei Basisfunktionen sind:
    α(x)=x2,β(x)=x,γ(x)=1\alpha(x) = x^2, \qquad \beta(x) = x, \qquad \gamma(x) = 1
  2. Schritt 2: Matrix A aufstellen
    Jede Zeile von AA gehört zu einem Messpunkt und enthält die Ansatzfunktionen, an dieser Messstelle ausgewertet. So wird aus „Polynom durch Punkte" ein lineares System in a,b,ca, b, c.
    Für xi=1,0,1,2x_i = -1, 0, 1, 2 ergeben die Zeilen (α(xi)  β(xi)  γ(xi))=(xi2  xi  1)\big(\alpha(x_i)\;\beta(x_i)\;\gamma(x_i)\big) = \big(x_i^2\;x_i\;1\big):
    A=(α(1)β(1)γ(1)α(0)β(0)γ(0)α(1)β(1)γ(1)α(2)β(2)γ(2))=(111001111421)A = \begin{pmatrix} \alpha(-1) & \beta(-1) & \gamma(-1) \\ \alpha(0) & \beta(0) & \gamma(0) \\ \alpha(1) & \beta(1) & \gamma(1) \\ \alpha(2) & \beta(2) & \gamma(2) \end{pmatrix} = \begin{pmatrix} 1 & -1 & 1 \\ 0 & 0 & 1 \\ 1 & 1 & 1 \\ 4 & 2 & 1 \end{pmatrix}
  3. Schritt 3: Unbekannten- und Messvektor
    Der gesuchte Koeffizientenvektor sammelt a,b,ca, b, c; die rechte Seite sammelt die gemessenen yy-Werte. Damit steht das überbestimmte System Ax=fA\mathbf{x} = \mathbf{f} (44 Gleichungen, 33 Unbekannte).
    Koeffizienten und Messwerte:
    x=(abc),f=(0134)\mathbf{x} = \begin{pmatrix} a \\ b \\ c \end{pmatrix}, \qquad \mathbf{f} = \begin{pmatrix} 0 \\ 1 \\ 3 \\ 4 \end{pmatrix}
  4. Schritt 4: Normalgleichungen ansetzen
    Wir wenden direkt das Resultat aus 7.1.2 an: von links mit ATA^{\mathsf{T}} multiplizieren. Weil hier der Messvektor f\mathbf{f} heißt, steht auf der rechten Seite ATfA^{\mathsf{T}}\mathbf{f} statt ATcA^{\mathsf{T}}\mathbf{c}, die Rolle ist dieselbe.
    Die Normalgleichungen lauten:
    ATAx=ATfA^{\mathsf{T}} A\, \mathbf{x} = A^{\mathsf{T}} \mathbf{f}
  5. Schritt 5: Mit Aᵀ ausschreiben
    Wir setzen ATA^{\mathsf{T}} (Zeilen werden Spalten) auf beiden Seiten ein, damit nur noch Zahlen multipliziert werden müssen.
    (101410121111)(111001111421)(abc)=(101410121111)(0134)\begin{aligned} &\begin{pmatrix} 1 & 0 & 1 & 4 \\ -1 & 0 & 1 & 2 \\ 1 & 1 & 1 & 1 \end{pmatrix} \begin{pmatrix} 1 & -1 & 1 \\ 0 & 0 & 1 \\ 1 & 1 & 1 \\ 4 & 2 & 1 \end{pmatrix} \begin{pmatrix} a \\ b \\ c \end{pmatrix} \\[4pt] &= \begin{pmatrix} 1 & 0 & 1 & 4 \\ -1 & 0 & 1 & 2 \\ 1 & 1 & 1 & 1 \end{pmatrix} \begin{pmatrix} 0 \\ 1 \\ 3 \\ 4 \end{pmatrix} \end{aligned}
  6. Schritt 6: Das 3×3-System ausmultiplizieren
    ATAA^{\mathsf{T}} A ist die symmetrische 3×33 \times 3-Matrix, ATfA^{\mathsf{T}} \mathbf{f} die neue rechte Seite. Aus vier Gleichungen sind jetzt genau drei geworden.
    Ausgerechnet:
    (1886862624)(abc)=(19118)\begin{aligned} &\begin{pmatrix} 18 & 8 & 6 \\ 8 & 6 & 2 \\ 6 & 2 & 4 \end{pmatrix} \begin{pmatrix} a \\ b \\ c \end{pmatrix} \\[4pt] &= \begin{pmatrix} 19 \\ 11 \\ 8 \end{pmatrix} \end{aligned}
  7. Schritt 7: 3×3-LGS lösen
    Dieses kleine quadratische System löst man wie gewohnt mit dem Gaußverfahren.
    Die Lösung ist:
    a=0,b=75,c=1310a = 0, \qquad b = \tfrac{7}{5}, \qquad c = \tfrac{13}{10}
  8. Schritt 8: Ausgleichspolynom hinschreiben
    Koeffizienten in den Ansatz einsetzen. Weil a=0a = 0 herauskam, fällt der quadratische Term weg, die beste „Parabel" ist hier eine Gerade.
    Das Ausgleichspolynom lautet:
    f(x)=75x+1310f(x) = \tfrac{7}{5}\,x + \tfrac{13}{10}
  9. Schritt 9: Restlänge (Residuenlänge) ausrechnen
    Wie gut passt die Gerade wirklich? Das misst die Länge des Residuenvektors r\mathbf{r}. Wir werten f(xi)yif(x_i) - y_i an allen vier Messstellen aus und nehmen die euklidische Norm (vergleiche 7.1.2).
    Mit f(x)=75x+1310f(x) = \tfrac{7}{5}\,x + \tfrac{13}{10} und den Messstellen xi=1,0,1,2x_i = -1, 0, 1, 2:
    r=(f(1)0f(0)1f(1)3f(2)4)=(110310310110)r22=1+9+9+1100=15r2=15=550,447\begin{aligned} \mathbf{r} &= \begin{pmatrix} f(-1) - 0 \\ f(0) - 1 \\ f(1) - 3 \\ f(2) - 4 \end{pmatrix} = \begin{pmatrix} -\tfrac{1}{10} \\ \tfrac{3}{10} \\ -\tfrac{3}{10} \\ \tfrac{1}{10} \end{pmatrix} \\[4pt] \|\mathbf{r}\|_2^2 &= \tfrac{1 + 9 + 9 + 1}{100} = \tfrac{1}{5} \\[4pt] \|\mathbf{r}\|_2 &= \sqrt{\tfrac{1}{5}} = \tfrac{\sqrt{5}}{5} \approx 0{,}447 \end{aligned}
Notation Notation: drei Rollen von x
Achtung, xx tritt hier in drei Bedeutungen auf: x=(a,b,c)T\mathbf{x} = (a, b, c)^{\mathsf{T}} der Koeffizientenvektor (fett), xx das Argument des Polynoms f(x)f(x) (skalar), und xix_i die Messstellen. Im Fließtext immer mitlesen, welche gemeint ist.
Notation Notation: f statt c
In diesem Beispiel heißt der Messvektor f\mathbf{f} (weil die gemessene Funktion „f" ist). Er spielt dieselbe Rolle als rechte Seite wie das c\mathbf{c} aus der Theorie.
Definition Ausgleichspolynom
Polynom f(x)=ax2+bx+cf(x) = a\,x^2 + b\,x + c, dessen Koeffizienten die Summe der vertikalen Fehlerquadrate i[f(xi)yi]2\sum_i [f(x_i) - y_i]^2 minimieren.
Merke Merke
Matrix AA aufstellen: jede Zeile ist ein Messpunkt, jede Spalte eine Ansatzfunktion, ausgewertet an diesem Punkt.
Prüfungstipp Manche Aufschriebe drucken die Summe als i=44\sum_{i=4}^{4}. Das ist ein Druckfehler; gemeint ist i=14\sum_{i=1}^{4} über alle vier Messpunkte.

7.2QR-Zerlegung

7.2.1 QR-Zerlegung: warum und das Kochrezept

Warum noch ein zweites Verfahren, wenn die Normalgleichungen doch schon funktionieren? Der Grund ist numerische Genauigkeit. Beim Aufstellen von ATAA^{\mathsf{T}} A werden Zahlen quadriert und aufsummiert. Das verschlechtert die Kondition der Matrix: Kleine Rundungsfehler in den Daten werden in der Lösung stark verstärkt. Für präzise Anwendungen (etwa am Computer mit endlicher Rechengenauigkeit) sind die Normalgleichungen deshalb oft zu ungenau. Die QR-Zerlegung umgeht ATAA^{\mathsf{T}} A komplett und ist numerisch stabil.

Die Idee steckt im folgenden Satz: Jede Matrix AA lässt sich als Produkt A=QRA = QR schreiben. Dabei ist QQ eine orthogonale Matrix und RR eine Matrix in Treppenform, oben eine quadratische obere Dreiecksmatrix R0R_0, darunter nur Nullen. Genauer: Zu ARm×nA \in \mathbb{R}^{m \times n} mit nmn \le m existiert eine orthogonale Matrix QRm×mQ \in \mathbb{R}^{m \times m}, sodass A=QRA = QR gilt.

Was heißt orthogonal, und warum hilft das? Eine quadratische Matrix QQ heißt orthogonal, wenn ihre Spalten paarweise senkrecht und auf Länge 11 normiert sind. Die entscheidende Eigenschaft: Bei einer orthogonalen Matrix ist die Inverse gleich der Transponierten, Q1=QTQ^{-1} = Q^{\mathsf{T}}. Außerdem ist eine orthogonale Abbildung längentreu: Multiplizieren mit QQ (oder QTQ^{\mathsf{T}}) ändert die Länge eines Vektors nicht, QTr2=r2\|Q^{\mathsf{T}}\mathbf{r}\|_2 = \|\mathbf{r}\|_2. Genau deshalb dürfen wir das Problem mit QTQ^{\mathsf{T}} drehen, ohne den Fehler zu verfälschen. Als orthogonales QQ nutzt man in der Praxis oft Givens-Rotationsmatrizen (Drehmatrizen), weil sie numerisch besonders stabil sind. Ist rang(A)=n\operatorname{rang}(A) = n, so ist R0R_0 regulär (invertierbar).

Wann brauche ich das? Immer dann, wenn es auf Genauigkeit ankommt, also bei großen oder schlecht konditionierten Problemen und bei jeder seriösen numerischen Software. Für eine schnelle Handrechnung mit kleinen Zahlen tun es die Normalgleichungen auch; die QR-Zerlegung ist die robuste Variante.

Das eigentliche Verfahren ist ein festes Kochrezept aus vier Schritten. Es löst die Fehlergleichungen Axc=rA\mathbf{x} - \mathbf{c} = \mathbf{r} direkt, ohne ATAA^{\mathsf{T}} A je zu bilden.

!!!
QR-Zerlegung (Theorem)
A=QR,ARm×n,  nm,QRm×m orthogonalA = QR, \qquad A \in \mathbb{R}^{m \times n},\; n \le m,\quad Q \in \mathbb{R}^{m \times m}\ \text{orthogonal}
Q orthogonal (Q⁻¹ = Qᵀ, längentreu), R in Treppenform.
Blockstruktur von R
R=(R00),R0Rn×n obere DreiecksmatrixR = \begin{pmatrix} R_0 \\ 0 \end{pmatrix}, \qquad R_0 \in \mathbb{R}^{n \times n}\ \text{obere Dreiecksmatrix}
Oben die quadratische obere Dreiecksmatrix R₀, darunter lauter Nullen.

Kochrezept der QR-Zerlegung (4 Schritte)

  1. Schritt 1: A in Treppenform drehen
    Wir multiplizieren AA von links mit QTQ^{\mathsf{T}}. Das dreht das Koordinatensystem so, dass AA oben dreieckig wird und unten nur Nullen übrig bleiben.
    Ergebnis ist die Treppenmatrix RR:
    R=QTAR = Q^{\mathsf{T}} A
  2. Schritt 2: Rechte Seite mitdrehen
    Dieselbe Drehung muss auch auf die rechte Seite c\mathbf{c} wirken, sonst beschreiben beide Seiten nicht mehr dasselbe System.
    Der gedrehte Vektor heißt d\mathbf{d}:
    d=QTc\mathbf{d} = Q^{\mathsf{T}} \mathbf{c}
  3. Schritt 3: Kleines Dreieckssystem lösen
    Nur der obere n×nn \times n-Block zählt für die Lösung. Mit d0\mathbf{d}_0 als den oberen nn Zeilen von d\mathbf{d} löst man das Dreieckssystem durch Rückwärtseinsetzen.
    Lösen nach x\mathbf{x}:
    R0x=d0(d0=obere n Zeilen von d)R_0\, \mathbf{x} = \mathbf{d}_0 \qquad (\mathbf{d}_0 = \text{obere } n \text{ Zeilen von } \mathbf{d})
  4. Schritt 4: Minimalen Fehler gratis ablesen
    Die unteren mnm - n Zeilen von d\mathbf{d} lassen sich durch kein x\mathbf{x} wegmachen, sie sind der unvermeidbare Rest. Weil QTQ^{\mathsf{T}} längentreu ist, ist ihre Länge genau die minimale Fehlerlänge.
    Mit d1\mathbf{d}_1 als den unteren mnm - n Zeilen von d\mathbf{d}:
    r2=d12\|\mathbf{r}\|_2 = \|\mathbf{d}_1\|_2
Notation Notation: Q orthogonal
QQ orthogonal heißt: Spalten paarweise senkrecht und auf Länge 11. Folge: Q1=QTQ^{-1} = Q^{\mathsf{T}} und QQ ist längentreu. Gerechnet wird mit QTQ^{\mathsf{T}} (R=QTAR = Q^{\mathsf{T}} A, d=QTc\mathbf{d} = Q^{\mathsf{T}} \mathbf{c}).
Notation Notation: R₀, d₀, d₁
R0R_0 obere n×nn \times n-Dreiecksmatrix, d0\mathbf{d}_0 obere nn Zeilen von d\mathbf{d} (fürs LGS), d1\mathbf{d}_1 untere mnm - n Zeilen von d\mathbf{d} (für den Fehler).
Formel Auf einen Blick: 4 Schritte
R=QTAd=QTcR0x=d0r2=d12\begin{aligned} R &= Q^{\mathsf{T}} A \\ \mathbf{d} &= Q^{\mathsf{T}} \mathbf{c} \\ R_0 \mathbf{x} &= \mathbf{d}_0 \\ \|\mathbf{r}\|_2 &= \|\mathbf{d}_1\|_2 \end{aligned}
QR-Kochrezept kompakt. d0\mathbf{d}_0 obere nn, d1\mathbf{d}_1 untere mnm - n Zeilen.
Merke Merke
QR vermeidet ATAA^{\mathsf{T}} A und ist deshalb numerisch stabil. Bevorzugt für genaue Anwendungen.

7.2.2 Beispiel: Ausgleichsproblem mit Givens-Rotation

Jetzt das Kochrezept an einem konkreten Fall. Gegeben sind die drei Fehlergleichungen x1+x21=r1x_1 + x_2 - 1 = r_1, x23=r2x_2 - 3 = r_2, x24=r3x_2 - 4 = r_3. Gesucht ist die Lösung des Ausgleichsproblems mit der QR-Zerlegung. Das Lehrreiche an diesem Beispiel: Die Rotationsmatrix QTQ^{\mathsf{T}} ist noch nicht fertig gegeben, wir müssen ihren Drehwinkel φ\varphi selbst bestimmen.

Zuerst bringen wir das Problem in die Form Axc=rA\mathbf{x} - \mathbf{c} = \mathbf{r}, lesen also AA und c\mathbf{c} aus den Gleichungen ab. Danach folgen die vier Schritte des Kochrezepts.

Lösungsweg, QR-Zerlegung mit selbst bestimmtem Winkel

  1. Schritt 1: A und c ablesen
    Die Koeffizienten der x1,x2x_1, x_2 bilden die Spalten von AA; die Zahlen auf der anderen Seite bilden c\mathbf{c}. Aus x1+x21=r1x_1 + x_2 - 1 = r_1 usw. folgt direkt:
    A=(110101),c=(134)A = \begin{pmatrix} 1 & 1 \\ 0 & 1 \\ 0 & 1 \end{pmatrix}, \qquad \mathbf{c} = \begin{pmatrix} 1 \\ 3 \\ 4 \end{pmatrix}
  2. Schritt 2: Givens-Rotation ansetzen
    AA ist 3×23 \times 2, also wählt man QTQ^{\mathsf{T}} als 3×33 \times 3-Givens-Rotation. Sie dreht nur in der unteren (2,3)(2,3)-Ebene, lässt die erste Zeile in Ruhe und soll den störenden Eintrag in der letzten Zeile beseitigen.
    Ansatz mit noch unbekanntem Winkel φ\varphi:
    QT=(1000cos(φ)sin(φ)0sin(φ)cos(φ))Q^{\mathsf{T}} = \begin{pmatrix} 1 & 0 & 0 \\ 0 & \cos(\varphi) & \sin(\varphi) \\ 0 & -\sin(\varphi) & \cos(\varphi) \end{pmatrix}
  3. Schritt 3: Qᵀ A ausrechnen
    Wir multiplizieren aus, um zu sehen, welcher Eintrag vom Winkel abhängt. Ziel ist QTA=RQ^{\mathsf{T}} A = R in Treppenform.
    Es ergibt sich:
    QTA=(110cos(φ)+sin(φ)0cos(φ)sin(φ)),R0=(110cos(φ)+sin(φ))Q^{\mathsf{T}} A = \begin{pmatrix} 1 & 1 \\ 0 & \cos(\varphi) + \sin(\varphi) \\ 0 & \cos(\varphi) - \sin(\varphi) \end{pmatrix}, \qquad R_0 = \begin{pmatrix} 1 & 1 \\ 0 & \cos(\varphi) + \sin(\varphi) \end{pmatrix}
  4. Schritt 4: Winkel φ aus der Nullbedingung
    Damit RR wirklich Treppenform hat, muss die letzte Zeile verschwinden. Der Eintrag dort ist cos(φ)sin(φ)\cos(\varphi) - \sin(\varphi), also setzen wir ihn null. Das bestimmt den Winkel; nichts wird geraten.
    Aus cos(φ)sin(φ)=0\cos(\varphi) - \sin(\varphi) = 0 folgt:
    cos(φ)=sin(φ)    φ=π4\cos(\varphi) = \sin(\varphi) \;\Longrightarrow\; \varphi = \tfrac{\pi}{4}
  5. Schritt 5: R fertig einsetzen
    Mit φ=π/4\varphi = \pi/4 ist cos(φ)+sin(φ)=2\cos(\varphi) + \sin(\varphi) = \sqrt{2} und die letzte Zeile wird null.
    Die fertige Treppenmatrix:
    QTA=(110200)Q^{\mathsf{T}} A = \begin{pmatrix} 1 & 1 \\ 0 & \sqrt{2} \\ 0 & 0 \end{pmatrix}
  6. Schritt 6: rechte Seite drehen (d = Qᵀ c)
    Dieselbe Rotation mit φ=π/4\varphi = \pi/4 (also cos(φ)=sin(φ)=22\cos(\varphi) = \sin(\varphi) = \tfrac{\sqrt{2}}{2}) auf c\mathbf{c} anwenden.
    Es ergibt sich:
    d=QTc=(1000222202222)(134)=(172222)\begin{aligned} \mathbf{d} = Q^{\mathsf{T}} \mathbf{c} &= \begin{pmatrix} 1 & 0 & 0 \\ 0 & \tfrac{\sqrt{2}}{2} & \tfrac{\sqrt{2}}{2} \\ 0 & -\tfrac{\sqrt{2}}{2} & \tfrac{\sqrt{2}}{2} \end{pmatrix} \begin{pmatrix} 1 \\ 3 \\ 4 \end{pmatrix} \\[4pt] &= \begin{pmatrix} 1 \\ \tfrac{7\sqrt{2}}{2} \\ \tfrac{\sqrt{2}}{2} \end{pmatrix} \end{aligned}
  7. Schritt 7: Dreieckssystem R₀ x = d₀ lösen
    d0\mathbf{d}_0 sind die oberen zwei Zeilen von d\mathbf{d}. Das 2×22 \times 2-Dreieckssystem löst man durch Rückwärtseinsetzen (zuerst x2x_2, dann x1x_1).
    Das System und seine Lösung:
    (1102)(x1x2)=(1722)  x=(5272)\begin{aligned} &\begin{pmatrix} 1 & 1 \\ 0 & \sqrt{2} \end{pmatrix} \begin{pmatrix} x_1 \\ x_2 \end{pmatrix} = \begin{pmatrix} 1 \\ \tfrac{7\sqrt{2}}{2} \end{pmatrix} \\[4pt] &\Longrightarrow\; \mathbf{x} = \begin{pmatrix} -\tfrac{5}{2} \\ \tfrac{7}{2} \end{pmatrix} \end{aligned}

Ist die Rotationsmatrix QQ bereits gegeben, wird es noch kürzer. Dann entfällt das Bestimmen des Winkels, und man rechnet R=QTAR = Q^{\mathsf{T}} A und d=QTc\mathbf{d} = Q^{\mathsf{T}} \mathbf{c} direkt aus. Der folgende Fall zeigt das.

Lösungsweg, QR mit bereits gegebenem Q

  1. Schritt 1: A, c und Q
    Aus den Fehlergleichungen 4x1+x29=r14x_1 + x_2 - 9 = r_1, 7x1+x212=r27x_1 + x_2 - 12 = r_2, 4x1+4x215=r34x_1 + 4x_2 - 15 = r_3 liest man AA und c\mathbf{c} ab; die orthogonale Matrix QQ ist hier gegeben.
    Es ist:
    A=(417144),c=(91215),Q=19(418744481)\begin{aligned} A &= \begin{pmatrix} 4 & 1 \\ 7 & 1 \\ 4 & 4 \end{pmatrix}, \quad \mathbf{c} = \begin{pmatrix} 9 \\ 12 \\ 15 \end{pmatrix}, \\[4pt] Q &= \tfrac{1}{9}\begin{pmatrix} 4 & -1 & 8 \\ 7 & -4 & -4 \\ 4 & 8 & -1 \end{pmatrix} \end{aligned}
  2. Schritt 2: R = Qᵀ A
    Mit QTQ^{\mathsf{T}} (Zeilen und Spalten von QQ vertauscht) von links multiplizieren. Die letzte Zeile wird null, RR ist also in Treppenform.
    Ergebnis:
    R=QTA=19(474148841)(417144)=(930300)\begin{aligned} R = Q^{\mathsf{T}} A &= \tfrac{1}{9}\begin{pmatrix} 4 & 7 & 4 \\ -1 & -4 & 8 \\ 8 & -4 & -1 \end{pmatrix}\begin{pmatrix} 4 & 1 \\ 7 & 1 \\ 4 & 4 \end{pmatrix} \\[4pt] &= \begin{pmatrix} 9 & 3 \\ 0 & 3 \\ 0 & 0 \end{pmatrix} \end{aligned}
  3. Schritt 3: d = Qᵀ c
    Dieselbe Multiplikation auf die rechte Seite anwenden.
    Ergebnis:
    d=QTc=19(474148841)(91215)=(2071)\begin{aligned} \mathbf{d} = Q^{\mathsf{T}} \mathbf{c} &= \tfrac{1}{9}\begin{pmatrix} 4 & 7 & 4 \\ -1 & -4 & 8 \\ 8 & -4 & -1 \end{pmatrix}\begin{pmatrix} 9 \\ 12 \\ 15 \end{pmatrix} \\[4pt] &= \begin{pmatrix} 20 \\ 7 \\ 1 \end{pmatrix} \end{aligned}
  4. Schritt 4: obere Blöcke und Lösung
    R0R_0 und d0\mathbf{d}_0 sind die oberen zwei Zeilen. Das 2×22 \times 2-Dreieckssystem R0x=d0R_0 \mathbf{x} = \mathbf{d}_0 durch Rückwärtseinsetzen lösen.
    Mit R0=(9303)R_0 = \begin{pmatrix} 9 & 3 \\ 0 & 3 \end{pmatrix} und d0=(207)\mathbf{d}_0 = \begin{pmatrix} 20 \\ 7 \end{pmatrix}:
    R0x=d0    x=(13973)R_0\, \mathbf{x} = \mathbf{d}_0 \;\Longrightarrow\; \mathbf{x} = \begin{pmatrix} \tfrac{13}{9} \\ \tfrac{7}{3} \end{pmatrix}
Notation Notation: φ (Drehwinkel)
φ\varphi ist der Drehwinkel der Givens-Rotation. Er wird so gewählt, dass der zu eliminierende Matrixeintrag verschwindet.
Definition Givens-Rotationsmatrix
Orthogonale Drehmatrix, die nur in einer Koordinatenebene dreht. Mit ihr lässt sich gezielt ein einzelner Matrixeintrag auf null bringen. Numerisch stabil.
Merke Merke
Letzte Zeile von RR null setzen \Rightarrow Gleichung für den Winkel φ\varphi. Hier cos(φ)=sin(φ)\cos(\varphi) = \sin(\varphi), also φ=π4\varphi = \tfrac{\pi}{4}.
Prüfungstipp d0\mathbf{d}_0 = obere nn Zeilen von d\mathbf{d} (fürs LGS). Der Rest d1\mathbf{d}_1 ist der Fehler, nicht Teil der Gleichung.

Aufgaben mit Musterlösungen

Aufgaben zu diesem Kapitel folgen.

Die Aufgaben für dieses Kapitel werden in einer zukünftigen Version ergänzt.

MerkeErst selbst rechnen, dann Lösung prüfen!