Beruflich Dokumente
Kultur Dokumente
Wintersemester 2023/2024
Inhaltsverzeichnis
2.1 Beispiele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3 Direkte Lösungsverfahren 5
3.2 LR-Zerlegung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.3 Pivotstrategie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.4 Permutationsmatrizen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.6 Zeilenäquilibrierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
4 Iterative Lösungsverfahren 23
1
5 QR-Zerlegung 26
5.1 Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
5.2 Givensrotation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
5.3 Householdertransformation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Die Lösung linearer Gleichungssysteme ist das wichtigste Hilfsmittel bei der mathemati-
schen Modellierung physikalisch-technischer Problemstellungen, zum Beispiel bei Model-
lierung von Schwingungsabläufen, bei Diskretisierung von Differentialgleichungen, bei Aus-
gleichsrechnung und bei Interpolation (insbesondere Spline-Interpolation).
Es gibt sogar Fachleute aus der numerischen Mathematik, die behaupten, die gesamte nu-
merische Mathematik befasst sich mit der Lösung von LGS.
Ein System linearer algebraischer Gleichungen ist eine beliebige Menge von m Gleichungen
mit n unbekannten Variablen x 1 ,...,x n . Normalerweise gilt n = m
Geometrisch kann man die Lösung von so einem System als der Schnittpunkt m Geraden in
einem Raum mit n Dimensionen verstehen. Beispielsweise in dem Fall mit 2 Gleichungen
und 2 Variablen ist die Lösung der Schnittpunkt von 2 Geraden (jeweils mit einer Gleichung
dargestellt) auf einer Plane (2 Dimensionen).
2
x1
x
x = 2 der Lösungsvektor.
...
xm
Die Lösungsmenge des Gesamtsystems ist die konjunktive Verknüpfung der Lösungsmengen
der einzelnen Gleichungen. Sie ist also der Durchschnitt der Lösungsmenge der einzelnen
Systeme.
Einige Studierende haben vielleicht in einem früheren Kurs über lineare Algebra gelernt,
wie man ein System linearer Gleichungen mithilfe der Gauß-Elimination zusammen mit
der Rückwärtssubstitution löst. Allerdings ist dieser Algorithmus ineffizient und ist auch
instabil, wie wir gleich sehen werden. Deswegen untersuchen wir in diesem Kurs alternative
Algorithmen, die effizienter und stabiler sind.
Mithilfe des Gauß-Verfahrens lässt sich aus einem LGS ein gestaffeltes System herstellen.
Zusätzlich erhält man am Ende der Elimination (Stufenform) Informationen über die Lö-
sungsmenge:
3
So ein System hat keine Lösung:
−x + y + z = 0
−2 y − z = 5
0z = 18
−x + y + z = 0
−2 y − z = 5
0z = 0
Ein LGS ist nicht lösbar, wenn Variablen verschwinden, aber das absolute Glied nicht ver-
schwindet. Es gibt unendlich viele Lösungen, wenn überflüssige Gleichungen im System
vorkommen.
2.1 Beispiele
1 2 4
3 −1 x = 5 besitzt genau eine Lösung v = 2 Also die drei geraden schnei-
y 1
−4 5 −3
den sich genau in einem Punkt mit den Koordinaten (2,1)
1 2 4
3 −1 x = 5 besitzt keine Lösung. Die Geraden schneiden sich nicht in einem
y
−4 5 5
einzigen Punkt.
2 −3 4
−4 6 x = −8 besitzt die Lösungen u = 2 und v = −1 . Aber auch jedes x
y 0 −2
−2 3 4
2 − 3r
mit x = u+ r(v −u) = , r ∈ R ist eine Lösung. Die drei Geraden liegen aufeinander.
−2r
Ein (m,n)-System Ax = b ist genau dann lösbar, wenn der Rang der Koeffizientenmatrix
mit dem Rang der erweiterten Koeffizientenmatrix übereinstimmt:
Fallunterscheidung:
4
• r < n ⇒ unendlich viele Lösungen, wobei n − r der insgesamt Unbekannten frei
wählbar sind.
Für homogene Systeme gilt immer: Rg(A) = Rg(A|0), daraus entsteht dass ein homogenes
System immer lösbar ist.
Ein quadratisches System (m = n) besitzt eine Lösung wenn r = n, also det(A) 6= 0 und
damit A−1 existiert, wie wir in der Interaktivtät gesehen haben.
Wenn aber det(A) = 0 dann gilt:
Wir gehen nun davon aus, dass wir ein LGS zu lösen haben, das eindeutig lösbar ist.
3 Direkte Lösungsverfahren
Aus numerischer Sicht besteht die Aufgabe ein lineares Gleichungssystem direkt (also nicht
iterativ) zu lösen darin, die Matrix A zu faktorisieren (in Faktoren zu zerlegen), so dass das
LGS gut lösbar ist, wobei davon ausgegangen wird , dass det(A) 6= 0 gilt, das System also
eindeutig lösbar ist.
Damit das möglich ist, müssen für die Matrix A unterschiedliche Voraussetzungen erfüllt
sein.
Die bekannteste Methode, ein LGS Ax = b mit det(A) 6= 0 auf Dreiecksgestalt zu bringen ist
die Gauß-Elimination. So kann man durch Vertauschen von Zeilen und Umbenennen von
Unbekannten stets erreichen, dass a11 6= 0.
Eine Matrix R = (ri j )ni, j=1 nennt man eine obere Dreiecksmatrix, falls ri j = 0 für alle i > j
gilt.
5
Ausgeschrieben sieht eine obere Dreiecksmatrix damit wie folgt aus:
r11 r12 ... ... r1n
0 r22 ... ... r2n
: : ... : :
0 0 ... : :
0 0 ... 0 rnn
Dafür gilt det(R) = r11 · r22 · ... · rnn . Da die Determinante einer Dreiecksmatrix das Produkt
der Hauptdiagonalelemente ist, lässt sich bei einem System Rx = b mit Dreiecksmatrix die
Lösbarkeit sofort ablesen. Das System ist genau dann eindeutig lösbar, wenn alle Diagonal-
einträge a11 , a22 , ..., ann von Null verschieden sind.
Für solche Matrizen, ist es auch einfach den Rang zu bestimmen. Der Rang einer Dreiecks-
matrix entspricht der Anzahl von Zeilenvektoren, die ungleich Null sind.
Der erste Teil des Gauß-Verfahren (Elimination), hat das Ziel, die Matrix A in eine Dreiecks-
matrix umzuwandeln.
a11 a12 a13 ... a1n b1 a11 a12 a13 ... a1n b1
a21 a22 a23 ... a2n b2 0 a22 a23 ... a2n b2
(1) (2)
A =A = a31 a32 a33 ... a3n b3 A = 0 a32 a33 ... a3n b3
: : : ... : : : : : ... : :
an1 an2 an3 ... ann bn 0 an2 an3 ... ann bn
a11 a12 a13 ... a1n b1 a11 a12 a13 ... a1n b1
0 a22 a23 ... a2n b2 0 a22 a23 ... a2n b2
(3) (n−1)
A = 0 0 a33 ... a3n b3 ...... A = 0 0 a33 ... a3n b3
: : : ... : : : : : ... : :
0 0 an3 ... ann bn 0 0 0 ... ann bn
(k)
• Einträge der Matrix A(k) werden mit ai j notiert.
(k)
• Die Einträge in rot akk heißen Pivotelemente.
• Wir arbeiten mit der erweiterten Matrix (die rechte Seite b wird mit-umgeformt)
• Die Matrix A(n−1) (ohne die Erweiterung mit b) ist eine obere Dreiecksmatrix
Unser Ausgangssystem mit der Matrix A = A(1) sieht wie folgt aus:
(1) (1) (1) (1)
a11 x 1 + a12 x 2 + ... + a1n x n = b1
(1) (1) (1) (1)
a21 x 1 + a22 x 2 + ... + a2n x n = b2
...
(1) (1) (1)
an1 x 1 + an2 x 2 + ... + ann x n = bn(1)
6
Durch Subtraktion von Vielfachen der 1. Gleichung von allen anderen Gleichungen die
Größe ai1 für i ≥ 2 eliminieren.
Man erhält dann das System mit der Koeffizientenmatrix A(2) . Da wir lediglich elementare
Zeilenoperationen durchführen, ändert das die gesuchte Lösung nicht:
(2) (2) (2) (2)
a11 x 1 +a12 x 2 + ... + a1n x n = b1
(2) (2) (2)
a22 x 2 + ... + a2n x n = b2
...
(2) (2)
an2 x 2 + ... + ann x n = bn(2)
Dasselbe macht man mit der 2., 3., ..., n − 1. Spalte. Sukzessives Anwenden liefert nach n-1
Schritten ein System der Form:
(n−1) (n−1) (n−1) (n−1)
a11 x 1 + a12 x 2 + ...+a1n x n = b1
(n−1) (n−1) (n−1)
a22 x 2 + ...+a2n x n = b2
...
(n−1)
ann x n = bn(n−1)
Beginnend von der letzten Gleichung x n = bn /ann . Einsetzen von x in die vorletzte Glei-
chung: x n−1 = (bn−1 − an−1,n x n )/an−1,n−1 usw.
Bemerkung Der Gauß-Algorithmus ist in dieser Form nur durchführbar, wenn alle Pivot-
elemente ungleich Null sind.
Schleife k = i + 1,..., n
aki
Setze l ki =
aii
Schleife j = i + 1,..., n
7
Algorithmus Rückwärtssubstitution:
Initialisiere x i = 0
Schleife i = n,..., 1
Schleife j = n,..., i + 1
bi = bi − ai j · x j
bi
xi =
aii
3.1.1 Beispiel
Gauß-Elimination:
j=1
→ 2 −1 −3 3 1
4
l21 = 0 2 3 −5 −10
2
6 0 −3 −19
l31 = 2 4 8
−2
l41 = 2
0 −6 1 4 −11
j=2
2 −1 −3 3 1
→ 0 2 3 −5 −10
l32 = 4 0 0 2 7 1
2
−6
l42 = 2
0 0 10 −11 −41
8
3. Schritt: subtrahiere (l i3 × Zeile 3) von Zeile i
j=3
2 −1 −3 3 1
0 2 3 −5 −10
= (R|c)
→ 0 0 2 7 1
l43 = 10
2
0 0 0 −46 −46
9
Weil Ax = b ⇔ Rx = c liefert Rückwärtseinsetzen die Lösung: x = − , 2, −3, 1
2
aki
Der i-te Gaußschritt setzt unterhalb der Elemente aii Nullen. Dazu l ki := für k = i+1,..,n
aii
und ak j := ak j − l ki · ai j für j = i + 1,..,n
Es soll gelten 1 FLOP (floating point operation) = eine Multiplikation oder eine Addition.
Damit benötigt der erste Gaußschritt, unter Vernachlässigung der Berechnung von l ki , eine
Addition und eine Multiplikation für die Berechnung von jedem ak j also (n − 1) · (n − 1) · 2
FLOPs. Der zweite Schritt dann (n − 2) · (n − 2) · 2 FLOPs usw.
X
n−1
n(n − 1)(2n − 1)
2(n − 1) + 2(n − 2) + ... + 2 ∗ 2 + 2 = 2 ·
2 2 2
k2 = 2 ·
k=1
6
2 3
Das ist in erster Näherung gleich n FLOPs. Dabei werden die Terme in n2 und n vernach-
3
lässigt, weil sie bei großen n wesentlich kleiner sind.
Bei einem Gleichungssystem von 20 Gleichungen benötigt man 5333.33 FLOPs. Bei einem
System mit 5×109 FLOP/Sekunde (ein Core von einem Intel Core i5 CPU) wird ca. 1×10−6
Sekunden (1 Mikrosekunde) für die Berechnung der Elimination gebraucht.
Das sind in erster Näherung n2 FLOPs. Für 20 Gleichungen sind das dann ca. 400 FLOPs.
Das System von oben braucht dafür 8 × 10−8 Sekunden also 80 Nanosekunden.
9
3.1.3 Cramersche Regel
Man muss also lediglich n+1 Determinanten ausrechnen. Berechnet man die Determinante
einer (n × n)-Matrix nach dem Laplace’schen Entwicklungssatz, so benötigt man n! Opera-
tionen. Also insgesamt (n + 1) × n! = (n + 1)!
n 10 12 14 16 18 20
Rechenzeit ca. 8ms 1.25s 4.35 Min. 20 Std. 9.4 Monate 324 Jahre
3.2 LR-Zerlegung
Im vorigen Beispiel können wir diese l i j merken und in eine linke untere Dreiecksmatrix
schreiben, und die Hauptdiagonale davon mit Einsen auffüllen:
Ein interessantes Nebenprodukt bei Gauß-Algorithmus ist damit die Faktorisierung der Ma-
trix A in ein Produkt aus einer normierten unteren Dreiecksmatrix L und einer oberen Drei-
ecksmatrix R. Normiert ist die Matrix L deshalb, weil in der Hauptdiagonalen nur Einsele-
mente (die Zahlen 1) stehen.
Die LR-Zerlegung ist prinzipiell für beliebige, nicht allzu große (n <= 5000) LGSe bei
nichtsingulären Matrizen anwendbar.
10
Setzt man die l ki in eine Matrix L, füllt die Hauptdiagonale mit 1 und alle Elemente oberhalb
der Hauptdiagonalen mit 0, dann erhält man für ai j 6= 0 Ax = LRx = b. Setzt man nun
Rx = y, dann lässt sich y mittels Vorwärtssubstitution leicht ermitteln, sowie anschließend
x mittels Rückwärtssubstitution. Also man löst zunächst L y = b:
1 0 0 0 y1 1
2 1 0 0 y2 −8
3 =
2 1 0 y3 −16
−1 −3 5 1 y4 −12
Durch vorwärts Einsetzen beginnend mit y1 erhält man:
1 · y1 = 1 =⇒ y1 = 1
2 y1 + 1 · y2 = −8 =⇒ y2 = −10
Diese Werte stimmen mit den Werten der rechten Seite des letzten Schrittes überein (c).
Man braucht also die rechte Seite in jedem Schritt nicht neu zu berechnen, wenn man diesen
Weg verfolgt. Nun wird die Lösung des LGS Rx = y:
2 −1 −3 3 x1 1
0 2 3 −5 x 2 −10
0 0 =
2 7 x3 1
0 0 0 −46 x4 −46
−46 · x 4 = −46 =⇒ x 4 = 1
2 · x 3 + 7 · x 4 = 1 =⇒ x 3 = −3
11
Sind im Gaußalgorithmus stets alle Pivotelemente ungleich Null, dann erhält man A = LR,
wobei R eine obere Dreiecksmatrix und L eine normierte untere Dreiecksmatrix ist.
Nun interessieren uns zwei Fragen: 1) Was passiert, wenn ein Pivotelement Null ist? 2) Was
passiert, wenn ein Pivotelement sehr klein ist?
3.3 Pivotstrategie
Da sich bei einem Gleichungssystem die Lösung nicht ändert, wenn Gleichungen vertauscht
werden, müssen beim Gauß-Algorithmus Zeilen vertauscht werden. In der Matrix A könnten
wir die erste und die zweite Zeile, aber auch die erste und die dritte Zeile vertauschen.
Besser ist es, die erste und die dritte Zeile zu vertauschen. Als Pivotelement wählt man
das betragsmäßig größte Element der Spalte, weil man damit vermeidet, Eingabe- /Run-
dungsfehler mit großen Faktoren zu verstärken. Selbstverständlich müssen dann auch bei
der rechten Seite b die entsprechenden Zeilen vertauscht werden.
Beispiel
0.00031 1 −3
Zu lösen ist Ax = b mit A = und b =
1 1 −7
1
Mit l21 = ergibt Gauß-Elimination in R(10,4,emin ,emax ):
0.00031
0.00031 1 x1 −3
=
0 −3225 x 2 9670
Die Lösung e
x 1 ≈ −6.452 und e
x 2 ≈ −2.998 ist fatal schlecht.
400000 299783
Exakte Lösung ist: x 1 = − ≈ −4.00124 und x 2 = − ≈ −2.998759
99969 99969
−6.452 + 4.00124
Also für x 1 haben wir einen relativen Fehler von ≈ 61%
−4.00124
Der Grund für das extrem schlechte Ergebnis liegt daran, dass bei der Bestimmung von
1
x 1 = 0.00031 (−3−x 2 ) Auslöschung auftritt, die durch Multiplikation mit einem großen Faktor
noch zusätzlich verstärkt wird.
1 1 −7
Ein Zeilentausch mit dem Ergebnis A = ,b= und
0.00031 1 −3
12
1 1 x1 −7
=
0 1 − 0.00031 x 2 −3 − (−7 × 0.00031)
1 1 x1 −7
=
0 0.9997 x 2 −2.999
Das heißt, ein Zeilentausch ist nicht nur bei akk = 0 sinnvoll.
Eine übliche Pivotstrategie besteht darin, in jedem Gaußschritt als Pivotelement den be-
tragsmäßig größten Wert der Pivotspalte (das ist die Spalte, in der das Pivotelement steht)
zu nutzen, weil dadurch Auslöschungen nicht zusätzlich verstärkt werden können, denn
es wird dann immer mit Werten, die betragsmäßig kleiner als Eins sind, multipliziert. Die
nennt man partielle Pivotisierung oder Spaltenpivotisierung.
Eine andere Pivotstrategie besteht darin, nicht nur in jeder Spalte das betragsmäßig größte
Element zu wählen, sondern in jedem Gaußschritt in der gesamten Matrix das betrags-
mäßig größte Element zu wählen. Es werden damit nicht nur Zeilen, sondern auch Spalten
vertauscht. Für die Lösung des linearen Gleichungssystems Ax = b bedeutet das, dass nicht
nur Zeilen der Matrix A und der rechten Seite b vertauscht werden, sondern auch Spalten
der Matrix A. Außerdem werden die Variablen x i entsprechend des Spaltentauschs umbe-
nannt. Diese Strategie heißt volle Pivotisierung und wird selten benutzt wegen der Kosten
der Suche nach dem Maximalen Wert in großen Matrizen, was manchmal die Verbesserung
überwiegt.
Übung: Es gibt fälle, wo es besser wäre nicht den betragmäßig größten Wert als Pivotele-
ment auszusuchen. Recherchieren Sie solche Fälle und begründen Sie das Ergebnis.
3.4 Permutationsmatrizen
13
und
Weiter gilt:
1 0 0
P2,3 A = b 0 1 =⇒ Vertauschen der 2. und 3. Zeile
a 1 0
1 0 0
AP2,3 = a 0 1 =⇒ Vertauschen der 2. und 3. Spalte
b 1 0
1 0 0
P2,3 AP2,3 = b 1 0 =⇒ Vertauschen der 2. und 3. Zeile und die 2. und 3. Spalte
a 0 1
Gauß-Elimination mit Pivotisierung ist für alle regulären Matrizen möglich und es gilt fol-
gende Verallgemeinerung:
Ein Gauß-Schritt, also der Übergang von einer Matrix A(k) zur Matrix A(k+1) lässt sich auch
1 0 ... 0
−l 1 ... 0
beschrieben durch A(k+1) = L 0 · A(k) wobei L 0 = 21
... 0 ... 0
−l n1 ... 0 1
14
Für die Konditionsberechnung eines Gauß-Schrittes nutzen wir (ziemlich willkürlich, aber
wir wissen größenordnungsmäßig erhalten wir bei allen Normen die gleichen Ergebnisse)
die Maximumnorm (Zeilensummennorm). Es gilt:
K(Ak+1 ) = Ak+1 ∞
· (Ak+1 )−1 ∞
= L 0 · Ak ∞
· (Ak )−1 · (L 0 )−1 ∞
≤ L0 ∞
· Ak ∞
· (Ak )−1 ∞
· (L 0 )−1 ∞
= K(L 0 ) · K(Ak )
wobei K(L 0 ) · K(Ak ) ≤ 2 · 2 · K(Ak ) = 4 · K(Ak ) falls wir mittels Pivotstrategie dafür sorgen,
dass die l ik ≤ 1 sind.
Die Kondition verschlechtert sich also möglicherweise um den Faktor 4 bei jedem Gauß-
schritt. Damit muss man feststellen, dass der Gauß-Algorithmus in diesem Sinne instabil ist
und wir noch Besseres zu lernen haben.
3.6 Zeilenäquilibrierung
Probleme mit der Stabilität des Gaußalgorithmus hat man vor allem dann, wenn Werte
unterschiedlicher Größenordnungen vorkommen. Aus diesem Grund verändert man das
LGS dadurch, dass man eine Koeffizientenmatrix mit der Zeilensumme eins für die Beträge
der Einträge für jede Zeile konstruiert.
Das können wir dadurch erreichen, dass wir das System mit einer geeigneten Diagonalma-
trix D von links multiplizieren. In die Hauptdiagonale setzen wir die Summe der Beträge
für jede Zeile. Die rechte Seite muss natürlich auch entsprechend geändert werden. Die
Lösung des LGS wird dadurch nicht verändert.
Es gilt nun:
1 1
0 1 2 x1 0 −1
3
= 3 1
0 1
5
4 −1 x2 0 5 5
Also die Matrix D hat auf die Hauptdiagonale die Elemenete di wobei:
n −1
X
di = ai,k , i = 1,..,n
k=1
15
Wir vergessen jetzt mal die rechte Seite und schauen uns nur die Koeffizientenmatrix an.
Dann wenden wir die Gauß-Elimination mit Spaltenpivotisierung auf DA an. Die Matrix
L wird nicht als eigene Matrix gespeichert, sondern die l i j werden auf die freiwerdenden
Plätze der Matrix A gesetzt.
1. Schritt:
1 5
6 6 0 − 12 0 1
2 − 21 0 1
2
1 1 1 2
DA = 3
1
3
Ver t auschung 1 1
3
Eliminat ion − 32 1
3
3
−−−−−−−−−−→ 3 3 −−−−−−−−−→ 3
− 21 0 1
2
1
6
5
6 0 − 31 5
6
1
6
2. Schritt:
− 12 0 1
2 − 12 0 1
2
1 1
Ver t auschung − 13 5
6
Eliminat ion − 13 5
6
−−−−−−−−−−→ 6 −−−−−−−−−→ 6
− 23 1
3
2
3 − 23 2
5
3
5
Ergebnis:
1 0 0 − 12 0 1
2
1
L = − 31 1 0 und R = 0 5
6 6
− 32 2
5 1 0 0 3
5
Die LR-Zerlegung ist nur eine geeignete Organisation des Gauß-Verfahrens, bietet aber prak-
tische Vorteile.
16
3.7.1 Lösen eines Gleichungssystem
Ax = b ⇔ PAx = P b ⇔ LRx = P b
L y = P b und Rx = y
Bei der Zerlegung arbeiten wir nur mit A, deshalb verändert sich die rechte Seite b nicht,
im Gegensatz zu dem klassischen Gauß-Verfahren. Deswegen ist die Zerlegung nützlich in
Situationen wo A eine konstante Matrix ist, und b(k) unterschiedliche rechte Seiten sind,
was zum Beispiel bei Zeitdiskretisierung vorkommt.
Gesucht hier wird eine Lösung x (k) des lineare Gleichungssystems Ax (k) = b(k) , k = 1,...,K
Vorgehen:
2 3
Aufwand ist: n + K n2
3
Ax i = e i , i = 1,...,n
Um alle Spalten der A−1 zu finden, müssen wir die folgende n Gleichungssysteme lösen:
Ax i = e i ⇔ LRx i = Pe i , i = 1,...,n
Für die Zerlegung braucht man einmalig ca. 23 n3 , und für n Vorwärts- und Rückwärtseinsätze
ca. n · n2 = n3 Also insgesamt braucht man 35 n3 FLOPs.
17
3.7.4 Berechnung von Determinanten
Aus PA = LR folgt:
det(P) = (−1)#Vertauschungen
folgt:
Y
n
det(A) = (−1) #Vertauschungen
rj j
j=1
Bei einer ungeraden Anzahl von Vertauschungen muss das Produkt der Hauptdiagonalele-
mente der Matrix R mit -1 multipliziert werden.
A = AT (Symmetrie)
und
x T Ax > 0(positiv definitheit)
für alle x ∈ Rn mit x 6= 0 gilt.
Abbildung 2: S.P.D.-Matrix
https://www.geogebra.org/classroom/ffxntuk2
18
Beispiele
A = I (Identität, das ist die Einheitsmatrix) ist symmetrisch positiv-definit. Die Symmetrie
ist aufgrund der Nulleinträge außerhalb der Hauptdiagonalen gegeben und:
x T I x = x T x = (kxk2 )2
Sei B ∈ Rm×n , m ≥ n, und B habe vollen Rang (der Rang von B ist damit n). Dann ist
A = B T B ∈ Rn×n symmetrisch positiv-definit, denn Zunächst gilt:
AT = (B T B) T = B T (B T ) T = B T B = A
x T Ax = x T B T B x = (B x) T (B x) = (kB xk2 )2 ≥ 0
Es gilt:
x T Ax = (kB xk2 )2 = 0
nur falls B x = 0 gilt. Aber da B vollen Rang hat, muss daher x = 0 sein. Das bedeutet
x T Ax > 0 für x 6= 0 ⇒ A ist s.p.d.
4. A hat nur positive Diagonaleinträge und der betragmäßig größte Eintrag liegt auf die
Hauptdiagonale
1 3 −11
Übung: Ist die Matrix A = 3 10 2 s.p.d.?
−11 2 9
Satz 3.1
A = LDL T
wobei L eine normierte untere Dreiecksmatrix und D = diag(d11 , ..., dnn ) eine diago-
nale Matrix mit dii > 0, i = 1,...,n ist.
19
Umgekehrt ist jede Matrix der Form LDL T , wobei D eine Diagonalmatrix ist, deren Haupt-
diagonalelemente alle größer als Null sind, und L eine untere normierte Dreiecksmatrix ist,
ist s.p.d.
Der Kernpunkt hier ist die Tatsache, dass man die Zerlegung mit einer alternativen Methode
bestimmen kann, die die Symmetrie von A direkt ausnutzt und dadurch insgesamt effizien-
ter ist, nämlich nur etwa den halben Aufwand der allgemeinen LR-Zerlegung benötigt.
Da A = AT , ist A bereits durch die n(n + 1)/2 Einträge ai j , i ≥ j vollständig bestimmt. Inso-
fern kann man A = LDL T als Gleichungssystem von n(n + 1)/2 Gleichungen in n(n + 1)/2
Unbekannten auffassen. Wir werden jetzt zeigen, dass man diese Gleichungen so anordnen
kann, dass man die Unbekannten l i j ,i > j, dii Schritt für Schritt durch Einsetzen vorher
berechneter Werte bestimmen kann. Dies ist gerade das sogenannte Cholesky-Verfahren.
Beispiel
2 6 −2 1 0 0 d11 0 0
A= 6 21 0 , L = l21 1 0 , D = 0 d22 0
−2 0 16 l31 l32 1 0 0 d33
Es gilt:
1 0 0 d11 0 0 1 l21 l31
LDL T = l21 1 0 0 d22 0 0 1 l32
l31 l32 1 0 0 d33 0 0 1
d11 0 0 1 l21 l31
= l21 d11 d22 0 0 1 l32
l31 d11 l32 d22 d33 0 0 1
Die elementweise Auswertung der Gleichung LDL T = A, die man aufgrund der Symmetrie
auf den unteren Dreiecksteil beschränken kann, ergibt:
(3,2) − Element: l31 d11 l21 + l32 d22 = a32 = 0 =⇒ l32 = −(−1) × 2 × 3/3 =⇒ l32 = 2
j = 3 :(3,3) − Element: l31
2
d11 + l32
2
d22 + d33 = a33 = 16 =⇒ d33 = 16 − (−1)2 × 2 − 22 × 3
=⇒ d33 = 2
20
1 0 0 2 0 0
=⇒ L = 3 1 0 , D = 0 3 0
−1 2 1 0 0 2
Allgemeiner Fall: Die Gleichung A = LDL T , beschränkt auf den unteren Dreiecksteil, er-
gibt:
X
n X
k−1
aik = li j d j j lk j = l i j d j j l k j + l ik dkk
j=1 j=1
X
k−1
l ik dkk = aik − li j d j j lk j , i ≥ k
j=1
Für k = 1 ist die Summe leer. Da l11 = 1, gilt für k = 1 (erste Spalte):
Wir setzen nun voraus, dass die Spalten 1,..., k − 1 der Matrix L ( d.h. l i j , i ≥ j ≤ k − 1) und
der Matrix D (d.h. dii , i ≤ k − 1) bereits berechnet sind. Die k-te Spalte von L und D kann
nun wie folgt berechnet werden:
i=k:
X
k−1 X
k−1
l kk dkk = akk − l i j d j j l k j ⇒ dkk = akk − li j d j j lk j
j=1 j=1
i>k:
X
k−1
aik − li j d j j lk j
j=1
l ik =
dkk
Bemerkungen
• Die Durchführbarkeit der Zerlegung hängt nur von der Bedingung dii > 0, i = 1,..,n
ab.
21
• LD L T entspricht einer LR-Zerlegung für R = DL T . Bei s.p.d. Matrizen ist eine Pivoti-
sierung weder nötig noch sinnvoll.
• In der früher üblichen Form lautete die Cholesky-Zerlegung A = L1 L1T für eine nicht-
p p
normierte Dreiecksmatrix L1 = LD1/2 mit D1/2 = diag( d11 ,.., dnn )
Vorgehen:
Mittels Cholesky-Zerlegung lassen sich nun lineare Gleichungssysteme Ax = b wie folgt lö-
sen: Es wird zunächst eine Cholesky-Zerlegung für A durchgeführt. A = LDL T . Das lineare
Gleichungssystem lautet damit LDL T x = b. Nun setzen wir y = DL T und lösen L y = b
mittels Vorwärtssubstitution. Da D eine Diagonalmatrix ist, lässt sich D−1 ganz leicht aus-
rechnen. Der Vektor x wird nun mittels Rückwärtssubstitution aus L T x = D−1 y bestimmt.
Aufwand:
Man kann das Cholesky-Verfahren mit ca. 31 n3 Multiplikationen und ebenso vielen Additio-
nen realisieren. Der Aufwand beträgt also die Hälfte des Aufwandes der LR-Zerlegung.
Natürlich funktioniert das nicht nur bei 3 × 3-Matrizen. Für 4 × 4-Matrizen sieht es so aus:
1 0 0 0 d11 0 0 0 1 l21 l31 l41
l21 1 0 0 0 l32 l42
LD L =
T 0 d22 0 0 1
l 0 0 1 l43
31 l32 1 0 0 d33 0 0
l41 l42 l43 1 0 0 0 d44 0 0 0 1
d11 0 0 0 1 l21 l31 l41
d11 l21 d22 0 0 0 1 l32 l42
=
d l
0
d
11 31 22 32 l d33 0 0 1 l43
d11 l41 d22 l42 d33 l43 d44 0 0 0 1
d11 d11 l21 d11 l31 d11 l41
d11 l21 d l 2
+ d d l + d l l d l + d l l
=
11 21 22 22 32 11 21 31 22 42 11 21 41
d l d l + d l l d l 2
+ d l 2
+ d d l + d l l
11 31 22 32 11 21 31 11 31 22 32 33 33 43 11 31 41
d11 l41 d22 l42 + d11 l21 l41 d33 l43 + d11 l31 l41 + d22 l32 l42 d11 l41 + d22 l42 + d33 l43 + d44
2 2 2
Bemerkung: Die Cholesky-Zerlegung dient auch zur Überprüfung, ob eine Matrix s.p.d. ist,
ob sie also symmetrisch ist und alle Eigenwerte positiv sind. Die Symmetrie lässt sich leicht
prüfen, aber die Berechnung von Eigenwerten ist sehr aufwändig.
22
wobei:
1 1 3 6
A = 1 5 5 , b = 12
3 5 12 23
Gauß-Elimination mit und ohne Pivotisierung, damit LR-Zerlegung (und Variante Cholesky-
Zerlegung) sind universale Algorithmen, die ohne genauere Kenntnisse über die spezielle
Struktur eines Problems insbesondere auf voll besetzte Matrizen angewandt werden. Dar-
aus ergeben sich aber auch Grenzen für die sinnvolle Anwendung.
4 Iterative Lösungsverfahren
Die Methoden der LR-Zerlegung und der Cholesky-Zerlegung ermöglichen es, Ax = b Syste-
me zu lösen, wenn keine Informationen darüber vorliegen, was x sein könnte. Wenn jedoch
Informationen über x vorhanden sind, z. B. wenn ein ähnliches System in der Vergangenheit
gelöst wurde, kann es von Vorteil sein, diese zu nutzen.
Auch wenn wir mit großen Matrizen für A begegnet sind, reicht es aus manchmal, eine
Lösung mit gewisser Genauigkeit zu erreichen, nach wenigen Rechenschritten.
Die Jacobi-Methode ist ein iterativer Algorithmus zum Lösen von Systemen, die eine an-
fängliche Schätzung des Wertes von x voraussetzen.
Es ist jedoch wichtig zu beachten, dass die Jacobi-Methode auch ohne vorherige Kenntnis
von x verwendet werden kann, indem ein Zufallsvektor oder ein Nullvektor verwendet
wird. Die Konvergenz zu einer Lösung dauert in diesem Fall länger, kann aber immer noch
23
effizienter sein als die LR-Zerlegung, insbesondere für sehr große Systeme, und sie ist nicht
auf s.p.d. Matrizen beschränkt wie die Cholesky-Zerlegung.
Die einzige Voraussetzung für die Verwendung der Jacobi-Methode ist, dass die Matrix Dia-
gonaleinträge ungleich Null haben muss.
Die Jacobi-Methode beginnt mit der Zerlegung der Matrix A in die Summe zweier Matrizen
D und E, wobei D die diagonalen Einträge von A und Nullen überall sonst enthält, und E
die anderen (nicht diagonalen) Einträge von A und Nullen auf der Diagonalen enthält.
A= D+ E
a11 a12 a13 a14 a11 0 0 0 0 a12 a13 a14
a21 a22 a23 a24 0 a21 0 a23 a24
= 0 a22 0 +
a a32 a33 a34 0 a
31 0 0 a33 a
31 32 0 a 34
Ax = b (1)
(D + E)x = b (2)
Dx + E x = b (3)
−1
x = D (b − E x) (4)
Da D eine diagonale Matrix, ist es einfach D−1 zu berechnen: sie ist auch eine diagonale
Matrix mit den Reziproken jedes diagonalen Einzelwerts von D enthält:
1
0 0 0
a11 1
0 a 0 0
D−1 = 0 0
22
1
a33 0
1
0 0 0 a44
x k+1 = D−1 (b − E x k )
Die Iterationen werden fortgesetzt, bis eine von zwei Haltebedingungen erreicht ist: ent-
weder ist der euklidische Abstand zwischen zwei aufeinanderfolgenden Iterationen von x k
kleiner als ein Zielfehler, in diesem Fall hat der Algorithmus zu einer guten Schätzung von
x konvergiert, oder wurde eine voreingestellte maximale Anzahl von Iterationen erreicht,
in diesem Fall hat die Methode nicht konvergiert.
24
Beispiel: Lösen Sie das folgende System mit der Jacobi-Methode mit einer Genauigkeit von
0.1:
5 2 −1 x1 2
3 7 3 x 2 = −1
1 −4 6 x3 1
Die Nullen in D−1 vereinfachen die Gleichungen, eigentlich werden die drei Werte von x k+1
durch diese einfachen Gleichungen berechnet:
1
x k+1,1 = 2 − (2x k,2 − 1x k,3 )
5
1
x k+1,2 = −1 − (3x k,1 + 3x k,3 )
7
1
x k+1,3 = 1 − (1x k,1 − 4x k,2 )
6
Wir haben die Zielgenauigkeit nicht erreicht, dann iterieren wir weiter und bekommen wir
25
die folgenden Ergebnisse:
0.49
x 2 = −0.39 =⇒ E2 = kx 2 − x 1 k2 = 0.31
0
0.56
x 3 = −0.36 =⇒ E3 = kx 3 − x 2 k2 = 0.19
−0.17
0.51
x 4 = −0.31 =⇒ E4 = x 4 − x 3 2
= 0.07
−0.16
Somit ist die Zielgenauigkeit erreicht und der Algorithmus hat konvergiert.
5 QR-Zerlegung
5.1 Einführung
QR-Zerlegungen sind sehr stabile Verfahren zur Lösung von linearen Gleichungssystemen.
Derartige Verfahren werden außerdem bei Ausgleichsrechnung und Berechnung von Eigen-
werten im Rahmen von Iterationsverfahren benutzt.
QQ T = I
26
• |det(Q)| = 1
• Q 1 ,Q 2 orthogonal =⇒ Q = Q 1Q 2 orthogonal
• Die Multiplikation einer orthogonalen Matrix mit einem Vektor lässt die Länge des
Vektors (euklidische Norm) konstant. Geometrisch stellen orthogonale Matrizen Dre-
hungen und Spieglungen dar.
Der zugehörige Weg besteht darin, die Matrix A sukzessiv auf obere Dreiecksform zu brin-
gen, indem sie Schritt für Schritt mit einer geeigneten Matrix Q i multipliziert wird. Das
Produkt aller Q i ergibt die gewünschte Matrix Q T . Es gibt zwei Wege, ein derartiges Q zu
erzeugen: Givensrotation und Householder-Spieglung.
5.2 Givensrotation
Prinzip: Die Spalten von A werden über ebene Drehungen sukzessiv in Achsenrichtung ge-
bracht.
a
Grundaufgabe: Gegeben sei ∈ R2 . Gesucht sind c, s ∈ R mit:
b
c s a r
= (5)
−s c b 0
und c 2 + s2 = 1.
Man kann c = cos(φ) und s = sin(φ) für ein φ ∈ [0,2π] setzen. Das heißt, Gl. 5 stellt eine
Drehung um einen Winkel φ dar.
a 4
Beispiel: Der Vektor = wird in die x 1 -Achse gedreht.
b 3
27
Bemerkung: für die tatsächliche Rechnung wird der Winkel φpnicht benötigt. Da sich bei
einer Drehung die Länge eines Vektors nicht ändert, gilt: |r| = a2 + b2
1 ... 0 ... 0 ... 0
. . .. .. .. .. ..
.. .. . . . . .
i → 0 . . . c . . . s . . . 0
. . .. .. .. .. ..
Gik = .. .. . . . . . (8)
k → 0 . . . −s . . . c . . . 0
.. .. .. .. .. .. ..
. . . . . . .
0 ... 0 ... 0 ... 1
28
wobei c 2 + s2 = 1
Gik bedeutet also Rotation in der durch die Koordinatenvektoren ei und ek aufgespannten
Ebene.
Insbesondere gilt:
a1,i
.
..
ai−1,i
i→ r
a1,i i+1,i
a
.
Gik .. = ... (9)
an,i ak−1,i
k →
0
ak+1,i
..
.
an,i
Anwendung von Gik auf i-te Spalte von A für:
q aii aki
r = ± aii2 + aki
2
, c= , s=
r r
Die Transformation beeinflusst nur die i-te und k-te Zeile des Outputs. Ein Schritt der
Transformation von A ∈ Rn×n auf obere Dreiecksgestalt besteht darin, den Eintrag von A
in der k-ten Zeile auf 0 zu drehen. Dazu bilde Gik gemäß 8 mit c,s gemäß 6 und berechne
e = Gik A → a
A eki = 0
Da die Givensrotation auf einzelne Spalten definiert ist, spielt es zunächst keine Rolle, ob A
quadratisch ist und es spielt auch keine Rolle, ob A invertierbar ist. Das hat auch der Effekt,
dass diese Operationen leicht zu parallelisieren sind.
Beispiel
3 10
A=
4 5
p 3 4
r = 32 + 42 = 5 =⇒ c = , s =
5 5
c s 3/5 4/5
Q0 = =
−s c −4/5 3/5
0 0
3/5 4/5 3 10 5 10
A =Q A= =
−4/5 3/5 4 5 0 −5
29
Damit ist R = A0 und Q = Q0T
Es gilt A = QR
8 3
Der Aufwand bei der Givensrotation beträgt ≈ n falls die Matrix A etwa genau so viele
3
Spalten wie Zeilen hat und ≈ 4mn , wenn die Matrix m Zeilen und n Spalten hat, wobei
2
m n.
Ax = b mit:
3 4 1 14
A = 4 −3 1 , b = 1
12 13 7 59
3/5 4/5 0
G12 = −4/5 3/5 0
0 0 1
3/5 4/5 0 3 4 1 5 0 7/5
A1 = G12 A = −4/5 3/5 0 4 −3 1 = 0 −5 −1/5
0 0 1 12 13 7 12 13 7
5/13 0 12/13
G13 = 0 1 0
−12/13 0 5/13
13 12 7
A2 = G13 A1 = 0 −5 −1/5
0 5 7/5
1 0 0
p p
G23 = 0 − 2/2 2/2
p p
0 − 2/2 − 2/2
13 12 7
p p
A3 = G23 A2 = 0 5 2 54 2 = R
p
0 0 − 35 2
Q = (G23 G13 G12 ) T
30
Nun kann x ausgerechnet werden QRx = b:
Rückwärtseinsetzen:
2.5456
x3 = − =3
3p
− 2
5
p 4p
5 2x 2 + 2 · 3 = 17.5362 =⇒ x 2 = 2
5
13x 1 + 12x 2 + 7x 3 = 58 =⇒ x 1 = 1
5.3 Householdertransformation
Householdertransformationen
arbeiten mit Spieglungen statt mit Drehungen. Dazu defi-
v1
v2
niert man zu v =
.. ∈ R die Dyade:
n
.
vn
v1 v1 . . . v1 vn
. .. ..
vv T = .. . .
vn v1 . . . vn vn
vv T
Qv = I − 2
vT v
Die Matrix Q v heißt Householdermatrix.
Eigenschaften: Es gelten:
31
Abbildung 4: Householder Matrizen
https://www.geogebra.org/classroom/zgm7ztxq
• Q v v = −v
• Q v = Q Tv ⇒ Q v ist symmetrisch.
x1 + λ
x
... x n = (x + λ)2 + x 2 + ... + x 2 = x T x + 2λx + λ2
2
v v = x1 + λ x2
T
... 1 2 n 1
xn
(x + λe1 ) T x x T x + λx 1 (x + λe1 ) T x
Qv x = x − 2 (x + λe1 ) = x − 2 T x −2 λe1
vT v x x + 2λx 1 + λ2 vT v
x T x + λx 1 vT x
= x −2 T x − 2 λe1
x x + 2λx 1 + λ2 vT v
x T x + λx 1 vT x
= 1−2 T x − 2 λe1
x x + 2λx 1 + λ2 vT v
x T x + λx 1 −x T x + λ2
Der Koeffizient 1 − 2 = muss 0 sein, weil Q v x = ce1 .
x T x + 2λx 1 + λ2 x T x + 2λx 1 + λ2
32
Damit gilt: λ = ± kxk2 Eine sinvolle Wahl für λ wäre:
¨
si g n(x 1 ) kxk2 für x 1 6= 0
λ=
kxk2 für x 1 = 0
λ = si g n(x 1 ) kx 1 k2
v = x + λe1
Q v x = −λe1
1 3
Beispiel: A = 2 −3
2 6
Schritt 1:
33
Schritt 2:
−6
y (2) =
3
v (2) = y (2) + si g n( y (2) ) y (2) 2 e1
p
−6 p 1 −6 − 3 5
= − 36 + 9 =
3 0 3
2
Q02 = Q v (2) = I − (2)T (2) v (2) v (2)T
v pv p
2(6 + 3 5)2 6(6 + 3 5)
1 − (6 + 3p5)2 + 9 (6 +
p
5)2 + 9
= p 3
6(6 + 3 5) 18
p 1− p
(6 + 3 5)2 + 9 (6 + 3 5)2 + 9
p
3 5
Q02 y (2) =
0
Damit ist der zweite Schritt der QR-Zerlegung von A erreicht und wir sind fertig.
1 0 0 1 0 0 −3 3 −3 3
0 e p
Q 2 = 0 und Q A = 0 0 −6 = 0 3 5
Q02 2
Q02
0 0 0 3 0 0
34