Sie sind auf Seite 1von 34

Lineare Gleichungssysteme (LGS)

Prof. Dr. Ammar Memari

Wintersemester 2023/2024

Inhaltsverzeichnis

1 Begriffe und einführende Beispiele 2

2 Lösung eines LGS 3

2.1 Beispiele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2.2 Lösbarkeit eines LGS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

3 Direkte Lösungsverfahren 5

3.1 Der Gauß Algorithmus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

3.2 LR-Zerlegung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

3.3 Pivotstrategie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

3.4 Permutationsmatrizen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

3.5 Kondition eines Gauß-Schrittes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

3.6 Zeilenäquilibrierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

3.7 Anwendungen der LR-Zerlegung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

3.8 Die Cholesky-Zerlegung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

3.9 Grenzen der LR-Zerlegung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

4 Iterative Lösungsverfahren 23

4.1 Jacobi Methode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

1
5 QR-Zerlegung 26

5.1 Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

5.2 Givensrotation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

5.3 Householdertransformation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

1 Begriffe und einführende Beispiele

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

a11 x 1 + a12 x 2 + ... + a1n x n = b1


a21 x 1 + a22 x 2 + ... + a2n x n = b2
...
am1 x 1 + am2 x 2 + ... + amn x n = bm

wobei ai j , i = 1,..,m; j = 1,..,n und bi sind reelle Zahlen

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).

Das LGS lässt sich übersichtlich als Ax = b schreiben. Dabei ist:


 
a11 a12 ... a1n
A= ...  die Koeffizientenmatrix,
am1 am2 ... amn
 
b1
b 
b =  2  die rechte Seite der Gleichungen und
...
bm

2
 
x1
x 
x =  2  der Lösungsvektor.
...
xm

Gilt b1 = b2 = ... = bm = 0, so heißt das LGS homogen, anderenfalls inhomogen.

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.

Veranschaulichung durch 2 Geraden im zweidimensionalen Raum, also 2 Gleichungen und


2 Unbekannten. Die Lösungsmenge ist der Schnittpunkt, falls das LGS eindeutig lösbar ist,
falls es nicht eindeutig lösbar ist, fallen die Geraden zusammen (liegen aufeinander), falls
es gar nicht lösbar ist, sind die Geraden mit einem Abstand > 0 parallel.

Abbildung 1: LGS als 2 Geraden


https://www.geogebra.org/classroom/zr5fkmrj

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.

2 Lösung eines LGS

Mithilfe des Gauß-Verfahrens lässt sich aus einem LGS ein gestaffeltes System herstellen.

Das Gleichungssystem wird umgeformt. Erlaubte äquivalente Umformungen sind

• Vertauschen von Gleichungen

• Multiplikation einer Gleichung mit einer reellen Zahl

• Addition des Vielfachen einer Zeile zu einer anderen Zeile

• Umnummerierung von Variablen (Vertauschen von Spalten)

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

So eins hat unendlich viele:

−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

2.2 Lösbarkeit eines LGS

Ein (m,n)-System Ax = b ist genau dann lösbar, wenn der Rang der Koeffizientenmatrix
mit dem Rang der erweiterten Koeffizientenmatrix übereinstimmt:

Rg(A) = Rg(A|b) = r wobei r ≤ m und r ≤ n

Fallunterscheidung:

• r = n ⇒ genau eine Lösung

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:

• Falls Rg(A) = Rg(A|b) ⇒ unendlich viele Lösungen

• Falls Rg(A) < Rg(A|b) ⇒ keine Lösung

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.

Wir lernen dafür drei Möglichkeiten kennen:

1. LR-Zerlegung, so dass PA = LR gilt, wobei L eine untere Dreiecksmatrix ist und R


eine obere Dreiecksmatrix sowie P eine Permutationsmatrix.

2. Cholesky-Zerlegung, so dass A = LDL T gilt, wobei L eine untere Dreiecksmatrix und


D eine Diagonalmatrix ist.

3. QR-Zerlegung, so dass A = QR wobei Q eine orthogonale Matrix ist.

Damit das möglich ist, müssen für die Matrix A unterschiedliche Voraussetzungen erfüllt
sein.

3.1 Der Gauß Algorithmus

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)

Durch Rückwärtssubstitution kann man x beginnend mit x n leicht bestimmen.

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.

Gauß Algorithmus in Pseudocode:

Schleife i = 1,.., n − 1 # Setze in i-ter Spalte unter Hauptdiagonalen Nullen

Schleife k = i + 1,..., n
aki
Setze l ki =
aii

Schleife j = i + 1,..., n

ak j = ak j − l ki · ai j # ändere k-te Zeile

Setze bk = bk − l ki · bi # ändere rechte Seite

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

Löse das Gleichungssystem Ax = b, wobei


   
2 −1 −3 3 1
4 0 −3 1  −8 
A=  und b = 
6 1 −1 6 −16
−2 −5 4 1 −12
mithilfe der Gauß-Elimination

Wir benutzen die folgende erweiterte Notation:


 
2 −1 −3 3 1
4 0 −3 1 −8 
(A|b) = 
6 1 −1 6 −16
−2 −5 4 1 −12

Gauß-Elimination:

1. Schritt: subtrahiere (l i1 × Zeile 1) von Zeile i

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

2. Schritt: subtrahiere (l i2 × Zeile 2) von Zeile i

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

3.1.2 Kosten / Anzahl von FLOPs beim Gaußalgorithmus

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.

Da n − 1 Gaußschritte durchgeführt werden müssen, sind das zusammen:

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.

Kosten der Rückwärtssubstitution:


X
n−1
n(n − 1)
2 · 1 + 2 · 2 + 2 · 3 + ... + 2 · (n − 1) = 2 · k =2· = n(n − 1)
k=1
2

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

Eine prinzipielle Lösungsmöglichkeit eines LGS Ax = b (für A nicht singulär, quadratisch)


ist durch die Cramersche Regel gegeben:
d et(A j )
xj =
det(A)
wobei A j aus A entsteht, indem die j-te Spalte ( j = 1,..,n) durch b ersetzt wird.

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)!

Das oben genannte System mit 5 × 109 FLOP/Sekunde braucht damit:

n 10 12 14 16 18 20
Rechenzeit ca. 8ms 1.25s 4.35 Min. 20 Std. 9.4 Monate 324 Jahre

Im Vergleich schneidet der Gauß Algorithmus viel besser ab.

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:

Für die Matrix:


 
2 −1 −3 3
 
4 0 −3 1
A=
6

 1 −1 6

−2 −5 4 1

gilt: A = LR, wobei:


   
1 0 0 0 2 −1 −3 3
   
2 1 0 0 0 2 3 −5 
L=
3
 R= 
 2 1 0

0
 0 2 7 
−1 −3 5 1 0 0 0 −46

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

und aus der 2. Zeile:

2 y1 + 1 · y2 = −8 =⇒ y2 = −10

Für die 3. und 4. Zeile wird es genauso gemacht. Wir erhalten:


   
y1 1
 y2  −10
y  =  1 
3
y4 −46

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

Durch rückwärts Einsetzen erhalten wir:

−46 · x 4 = −46 =⇒ x 4 = 1

und aus der 3. Zeile:

2 · x 3 + 7 · x 4 = 1 =⇒ x 3 = −3

Analog berechnen wir x 2 und x 1 und dann erhalten wir:


 
  9
x1 −
 2
 x2  2 
x  =  
3  −3 
x4 1

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

Der Gauß-Algorithmus funktioniert bei allen eindeutig lösbaren linearen Gleichungssyste-


men, falls im Laufe
der Rechnung
 kein Element akk also kein Pivot-Element Null wird. Zum
0 4 6
Beispiel wenn A = 1 3 2 ist, also a11 = 0 kann der Gauß-Algorithmus in der bespro-

2 3 8
chenen Form nicht verwendet werden.

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 liefert akzeptable Ergebnisse mit x 1 = −4.001 und 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

Einen Zeilentausch erledigen sogenannte Permutationsmatrizen. Permutationsmatrizen sind


Matrizen, die aus der Einheitsmatrix durch Vertauschen von Zeilen (und damit auch Spal-
ten) hervorgehen. Eine elementare Permutationsmatrix Pi, j entsteht aus der Einheitsmatrix
durch Vertauschen der i-ten und j-ten Zeile.

Für n = 4, i = 2, j = 4 erhält man:


 
1 0 0 0
0 0 0 1
P2,4 = 
0 0 1 0
0 1 0 0

Es gelten die folgende Resultate:


¨
1 für i = j
det Pi, j =
−1 für i 6= j

13
und

Pi,−1j = Pi,Tj = Pi, j

Weiter gilt:

• PA vertauscht in der Matrix A Zeilen

• AP vertauscht in der Matrix A Spalten

• PAP vertauscht in der Matrix A zwei Elemente

Beispiel Berechnen Sie die folgende Matix-Produkte für:


   
1 0 0 1 0 0
A =  a 1 0 und P2,3 = 0 0 1
b 0 1 0 1 0

 
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:

Zu jeder nichtsingulären Matrix A gibt es eine Permutationsmatrix P, eine (dazu) eindeutige


untere Dreiecksmatrix L, deren Elemente betragsmäßig durch Eins beschränkt sind und eine
obere Dreiecksmatrix R, so dass PA = LR gilt. Die Matrizen P,L und R ergeben sich aus dem
Gaußalgorithmus mit Spaltenpivotisierung.

3.5 Kondition eines Gauß-Schrittes

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.

Beispiel Gegeben ist das lineare Gleichungssystem Ax = b als:


 ‹ ‹  ‹
1 2 x1 −1
=
4 −1 x2 5

Es gilt nun:
1  ‹ ‹ 1  ‹
0 1 2 x1 0 −1
3
= 3 1
0 1
5
4 −1 x2 0 5 5

Das neue zeilenäquilibrierte System lautet:


1 2   ‹  1‹
x1 −3
3
4
3
=
5 − 15 x2 1

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.

Beispiel Gegeben ist das Koeffizientenmatrix A als:


     
1 1 5
1 5 0 6 0 0 6 6 0
     1
A =  2 2 2 =⇒ D = 0 16 0 =⇒ DA =  1
3
1
3 3
1
−2 0 2 0 0 4 − 12 0 1
2

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

Man rechnet einfach nach, dass LR = P DA gilt wobei:


    
0 0 1 1 0 0 0 0 1
    
P =  1 0 0 =  0 0 1  0 1 0
0 1 0 0 1 0 1 0 0

Die Matrix P ist das Produkt von P2,3 und P1,3

3.7 Anwendungen der LR-Zerlegung

Die LR-Zerlegung ist nur eine geeignete Organisation des Gauß-Verfahrens, bietet aber prak-
tische Vorteile.

16
3.7.1 Lösen eines Gleichungssystem

Die Lösung von Ax = b ergibt sich über Lösung zweier Dreieckssysteme:

Ax = b ⇔ PAx = P b ⇔ LRx = P b
L y = P b und Rx = y

Zuerst bestimmt man also y durch Vorwärtseinsetzen aus L y = P b, um danach x aus


Rx = y durch Rückwärtseinsetzen zu berechnen.

3.7.2 Mehrere rechte Seiten

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:

- Bestimme einmalig die LR-Zerlegung von A: PA = LR

- Vorwärts-/Rückwärtseinsetzen für jede rechte Seite:

Ax (k) = b(k) ⇔ PAx (k) = P b(k) ⇔ LRx (k) = P b(k)


L y (k) = P b(k) und Rx (k) = y (k)

2 3
Aufwand ist: n + K n2
3

3.7.3 Berechnung der Inversen

Sei x i ∈ Rn die i-te Spalte der Inverse von A:


€ Š
A−1 = x 1 x 2 ... x n

Aus AA−1 = I folgt:

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) · det(A) = det(L) · det(R)


Yn
=1· rj j
j=1

Wir wissen dass:

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.

3.8 Die Cholesky-Zerlegung

Viele Anwendungen haben Matrizen mit zusätzlichen Struktureigenschaften. So führt die


Diskretisierung von verschiedenen Randwertaufgaben für partielle Differentialgleichungen
auf symmetrisch positiv-definite Matrizen, was bei der Lösung von Elastizitätsproble-
men, Diffusionsproblemen, bei linearer Ausgleichsrechnung u.a. Aufgabenstellungen be-
nutzt wird.

Definition 3.1: Symmetrisch positiv-definit Matrix

ine Matrix A ∈ Rn×n heißt symmetrisch positiv-definit (s.p.d.), falls:

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

Sei x ∈ Rn mit x 6= 0 dann gilt:

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.

Eigenschaften A ∈ Rn×n sei s.p.d., dann gelten folgende Aussagen:

1. A ist invertierbar und A−1 ist s.p.d.

2. A hat nur strikt positive reelle Eigenwerte (hinreichende Bedingung)

3. A hat eine positive Determinante

4. A hat nur positive Diagonaleinträge und der betragmäßig größte Eintrag liegt auf die
Hauptdiagonale

5. Bei der Gauß-Elimination ohne Pivotisierung sind alle Pivotelemente positiv

 
1 3 −11
 
Übung: Ist die Matrix A =  3 10 2  s.p.d.?
−11 2 9

Satz 3.1

Jede symmetrisch positiv-definite Matrix A ∈ Rn×n besitzt eine eindeutige Zerlegung

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:

j = 1 :(1,1) − Element: d11 = a11 = 2 =⇒ d11 = 2

(2,1) − Element: l21 d11 = a21 = 6 =⇒ l21 = 3

(3,1) − Element: l31 d11 = a31 = −2 =⇒ l31 = −1

j = 2 :(2,2) − Element: l21


2
d11 + d22 = a22 = 21 =⇒ d22 = 21 − 32 × 2 =⇒ d22 = 3

(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

Hier wurde l k j = 0 für j > k und l kk = 1 benutzt. Damit gilt:

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):

l11 d11 = a11


ai1
Damit erhalten wir d11 = a11 und l i1 = ,i > 1
d11

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.

• Bei der tatsächlichen Implementierung werden die Speicherplätze von A überschrie-


ben, um am Speicherplatz zu sparen: l i j kommt auf den Speicherplatz von ai j (i > j)
und dii kommt auf den Speicherplatz von aii .

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.

• Die Lösung des Problems Ax = b reduziert sich wieder auf L y = b, DL T x = y, d.h.


L T x = D−1 y.

• 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.

Übung: Lösen Sie mittels Cholesky-Zerlegung folgendes lineares Gleichungssystem Ax = b

22
wobei:
   
1 1 3 6
   
A = 1 5 5  , b = 12
3 5 12 23

3.9 Grenzen der LR-Zerlegung

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.

Bei Stabwerken oder in elektrischen Netzwerken sind auftretende Matrizen typischerweise


dünn besetzt, d.h. die überwiegende Anzahl der Einträge ist gleich Null. Insbesondere gilt
das für sogenannte Bandmatrizen. Bei derartigen Problemen nutzt man angepasste Verfah-
ren.

Bei Höchstleistungsrechnern liegt die Schwelle für Gauß-Elimination n ≈ 100000. Vertret-


bare kurze Rechenzeiten auf Workstations gestatten eine Größenordnung von n ≈ 5000.
Ab n = 500 wird der Einsatz von Varianten sinnvoll, die die spezielle Struktur des Problems
(Bandstruktur, Blockmethoden,..) ausnutzen. Für n > 1000 ist die Verwendung iterativer
Verfahren sinnvoll.

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.

4.1 Jacobi Methode

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 

a41 a42 a43 a44 0 0 0 a44 a41 a42 a43 0

Das erlaubt uns, das System so umzuformen:

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

Die Jacobi-Methode implementiert einen iterativen Algorithmus unter Verwendung von


Gl. 4, um die Schätzung von x bei jeder Iteration k wie folgt zu verfeinern:

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

Lösung: Wir fangen an mit der “Zerlegung” der Matrix A in D und E:


       
1
5 2 −1 5 0 0 0 2 −1 5 0 0
      −1  
3 7 =
3  0 7 0 3 0 + 3 =⇒ D = 1
0 7 0
1
1 −4 6 0 0 6 1 −4 0 0 0 6

Danach bauen wir die iterative Gleichung:


        
1
x k+1,1 5 0 0 2 0 2 −1 x k,1
         
 x k+1,2  = 0 7 0 −1 − 3
1
0 3   x k,2 
1
x k+1,3 0 0 6 1 1 −4 0 x k,3

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

Wenn wir mit dem Nullvektor


 für x 0 anfangen, bekommen wir nach der ersten Iteration die
0.4
 
Lösung: x 1 = −0.14. Euklidischer Abstand zu x 0 ist:
0.17
Æ
E1 = kx 1 − x 0 k2 = (0.4 − 0)2 + (−0.14 − 0)2 + (0.17 − 0)2 ≈ 0.46

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.

A = QR wobei Q orthogonal ist.

Definition 5.1: Orthogonale Matrix

Eine Matrix Q ∈ Rn×n heißt orthogonal, wenn:

QQ T = I

Damit ist Q leicht invertierbar da Q−1 = Q T

Zum Beispiel sind Einheitsmatrizen und Permutationsmatrizen orthogonale Matrizen.

Abbildung 3: Orthogonale Matrizen


https://www.geogebra.org/classroom/ydpjndnt

Eigenschaften orthogonaler Matrizen:

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.

• Für A ∈ Rn×n und Q ∈ Rn×n orthogonal gilt:


kAk2 = kQAk2 = kAQk2
K2 (A) = K2 (QA) = K2 (AQ)
Æ Æ
• kQk2 = λma x (QQ T ) = λma x (I) = 1

• K2 (Q) = kQk2 · ||Q−1 ||2 = kQk2 · ||Q T ||2 = 1 · 1 = 1

Lösung eines Gleichungssystem Ax = b ⇔ QRx = b ⇔ Rx = Q T b Das Problem reduziert


sich auf Rückwärtseinsetzen.

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

Eine mögliche Wahl für c und s wäre:


a b
c=p und s = p (6)
a2 + b2 a2 + b2
Damit gilt:
 
a b ‚ Œ ‚ Œ
p p
 a2 + b2 a2+ b2  a r
 b a  = (7)
−p p b 0
a2 + b2 a2 + b2

Um Rundungsfehler zu vermeiden, berechnet man c und s wie folgt:

• Falls b = 0 dann c = 1, s = 0 (Drehungsmatrix ist I und a = r, also der Vektor liegt


schon auf der Achse)
a 1
• sonst falls |b| ≥ |a|, dann u = ,s = p , c = su
b 1 + u2
b 1
• sonst u = ,c = p , s = cu
a 1 + u2

Offensichtlich vermeidet man dadurch die Multiplikation mit großen Faktoren.

Givensrotationen erhält man durch Einbettung obiger ebener Drehungen in (n×n)-Einheitsmatrizen

 
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 ∈ On (R) orthogonale n-reihige Matrix mit reellen Koeffizienten.

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.

Beispiel: Lösung eines LGS mittels Givensrotation

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:

Rx = Q T b = G23 G13 G12 b


    
0.2308 0.307 0.9321 14 58
    
Rx = 0.1741 −0.9464 0.2720   1  =  17.5362 
0.9573 0.0979 −0.2720 59 −2.5456

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

Bemerkung: Dyaden sind stets Rang 1 Matrizen.

Definition 5.2: Householderspiegelung

Für v 6= 0 ist die Householderspiegelung so definiert:

vv T
Qv = I − 2
vT v
Die Matrix Q v heißt Householdermatrix.

Geometrische Interpretation: Sei H = y ∈ Rn | y T v = 0 die Hyperebene aller Vektoren in Rn


die zu v orthogonal sind. Dann bewirkt Q v eine Spiegelung an H v , d.h. für jedes y ∈ Rn ist
Q v y die Spiegelung von y an H v .

Eigenschaften: Es gelten:

31
Abbildung 4: Householder Matrizen
https://www.geogebra.org/classroom/zgm7ztxq

• Q v y = y ⇔ y T v = 0 für alle y 6= 0 ( y ist orthogonal zu v)

• Q v v = −v

• Q v = Q Tv ⇒ Q v ist symmetrisch.

• Q v Q v = I, Übung: beweisen Sie.

• Aus den letzten zwei Eigenschaften entsteht: Q v Q Tv = Q v Q v = I ⇒ Q v ist orthogonal.

Grundaufgabe: Zu jedem x ∈ Rn finde v ∈ Rn , sodass x an H v gespiegelt gerade in Richtung


e1 zeigt, also dass Q v x = ± kxk2 e1 . Da Q v orthogonal ist, gilt kQ v xk2 = kxk2 (verändert die
Länge des Vektors nicht).
 ‹
vvT vv T
Qv x = I − 2 T x = x − 2 T x = ce1
v v v v

Damit folgt, dass


 veineLinearkombination
 aus x und e1 sein muss. Durch Einsetzen von
x1 λ
   
 x2  0 
v = x + λe1 =    
 ...  + ... in die obige Darstellung erhält man:
   
xn 0

 
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

Damit wird Auslöschung vermieden.


 
x1 + λ
 
 x2 
Somit ist v =  
 ...  und insgesamt mit si gn(0) = +1
 
xn

λ = si g n(x 1 ) kx 1 k2
v = x + λe1
Q v x = −λe1

Abbildung 5: Householder Matrizen Anwendung


https://www.geogebra.org/classroom/uhwesdcm

 
1 3
 
Beispiel: A = 2 −3
2 6

Schritt 1:

v (1) = a1 + si g n(a11 ) ka1 k2 e1


     
1 1 4
  p    
= 2 + 1 + 4 + 4 0 = 2
2 0 2
 
−1 −2 −2
2 1 
Q 1 = Q v (1) = I − v (1) v (1)T = −2 2 −1
v (1)T v (1) 3
−2 −1 2
   
1 3−3 −3
    e
Q 1 A = Q 1 2 −3 =  0 −6 = A
2 6 0 3

Damit ist der erste Schritt der QR-Zerlegung von A erreicht.

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

Insgesamt erhalten wir: Q 2Q 1 A = R und A = (Q 2Q 1 ) T R also die gewünschte QR-Zerlegung


von A.
Da Householder Matrizen symmetrisch sind, gilt auch A = Q 1Q 2 R

34

Das könnte Ihnen auch gefallen