Numerische Methoden

Werbung
Numerische Methoden
ETH Zürich
SS 2006
Inhalt
1 Lineare Algebra
1.1 Vektorräume (VRe) . . . . . . . .
1.2 Matrizen . . . . . . . . . . . . . .
1.3 Matrixoperationen . . . . . . . .
1.4 Spur und Determinante . . . . . .
1.5 Rang und Kern . . . . . . . . . .
1.6 Spezielle Matrizen . . . . . . . . .
1.7 Eigenwerte und Eigenvektoren . .
1.8 Ähnlichkeitstransformationen . .
1.9 Schur und Jordan Normalform . .
1.10 Normen in Cn . . . . . . . . . . .
1.11 Normäquivalenz . . . . . . . . . .
1.12 Matrixnormen . . . . . . . . . . .
1.13 Skalarprodukt und Orthogonalität
1.14 Gram-Schmidt Algorithmus . . .
1.15 Singulärwertzerlegung (SVD) . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
1
2
3
5
5
6
7
7
8
9
11
12
14
15
16
2 Computerarithmetik
19
2.1 Gleitkommazahlen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2 Runden mit Maschinenepsilon . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.3 Gleitkommaoperationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3 Direkte Lösung Linearer Gleichungssysteme: Gaußelimination (GEM)
3.1 Gaußscher Algorithmus . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1.1 Dreiecksmatrizen . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1.2 Gaußscher Algorithmus und LR-Zerlegung . . . . . . . . . . . . . .
3.1.3 LR-Zerlegung für schwach besetzte Matrizen . . . . . . . . . . . . .
3.2 Symmetrisch positiv definite Matrizen . . . . . . . . . . . . . . . . . . . .
3.3 Pivotstrategien & Nachiteration . . . . . . . . . . . . . . . . . . . . . . . .
3.3.2 Spaltenpivotstrategie . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3.3 Existenz von LR-Zerlegungen ohne Spaltenpivotsuche . . . . . . . .
3.3.4 Nachiteration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
A Übungsaufgaben
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
25
25
25
27
34
38
41
41
48
49
50
i
1
Lineare Algebra
Wir rekapitulieren grundlegende Begriffe der linearen Algebra, die später wiederholt gebraucht
werden.
1.1
Vektorräume (VRe)
Definition 1.1.1 Ein Vektorraum (VR) über einem Zahlkörper K(= R, C) ist Menge V 6= ∅
mit Addition “+” (kummutativ + assoziativ) und Skalarmultiplikation “··”, mit
i) ex. 0 ∈ V : ∀v ∈ V : v + 0 = v ,
ii) ∀v ∈ V : 0 · v = 0, 1 · v = v für 0, 1 ∈ K ,
iii) (inverses Element): ∀v ∈ V ex. −v ∈ V : v + (−v) = 0 ,
iv) ∀α ∈ K : ∀v, w ∈ V : α(v + w) = αv + αw ,
∀α, β ∈ K : ∀v ∈ V : (α + β) v = αv + βv ,
v) ∀α, β ∈ K, ∀v ∈ V : (αβ)v = α(βv) .
Beispiel 1.1.2 V = Rn , V = Cn
m
n
o
X
V = Pn := pn (x) =
ak xk ,
k=0
V = C p ([a, b]) .
Definition 1.1.3 ∅ 6= W ⊂ V Teilraum (TR) ⇐⇒ W ist VR über K.
Beispiel 1.1.4 a) Sei [a, b] ⊂ R beschränktes Intervall, und x0 , x1 , . . . , xn “Stützstellen” mit
a = x0 < x1 < · · · < xn = b. Dann gilt:
Vn = f ∈ C 0 ([a, b]) f |[xi−1 ,xi] ist linear ⊂ C 0 ([a, b]) ist TR .
b) Polynome vom Grad n sind ein Teilraum der stetigen Funktionen, d.h. Pn ⊂ C 0 (R).
c) Sei v1 , . . . , vn ⊂ V beliebig. Dann gilt
W := span{v 1 , . . . , vn } “erzeugendes System”
:= {v = α1 v 1 + · · · + αn vn : αi ∈ K} ist TR von V .
1
Direkte Summe von TR: Seien W1 , . . . , Wm ⊂ W
TR =⇒
S := {w : w = v1 + · · · + vm mit vi ∈ Wi : i = 1, . . . , m} ist TR.
S direkte Summe der Wi , S = W1 ⊕ · · · ⊕ Wm , ⇐⇒ ∀s ∈ S ex.! v1 , . . . , vm mit vi ∈ Wi ;
S = v1 + · · · + vm .
Definition 1.1.5 i) {v1 , . . . , vm } ⊂ V linear unabhängig ⇐⇒
α1 v 1 + · · · + αm v m = 0 ⇐⇒ α1 , . . . , αm = 0 .
ii) V = span{u1 , . . . , um } ∧ ui linear unabhängig =⇒ {u1 , . . . , um } Basis von V .
∧ m = dim V .
1.2
Matrizen
Sei m, n ∈ N. mn Zahlen aij ∈ K, i = 1, . . . , m, j = 1, . . . , n bilden eine Matrix mit m Zeilen
und n Spalten, eine m × n Matrix,


a11 . . . a1m
 .
.. 
.
(1.2.1)
A=
. 
.
 .
am1 . . . amm
Falls aij ∈ R schreiben wir A ∈ Rm×n und analog, falls aij ∈ C schreiben wir A ∈ Cm×n . Wir
benutzen die Bezeichnungen:
A = A(m × n):
matrix1.1.eps
83 × 39 mm
\tex{Zeilenvektor}
\tex{Spaltenvektor}
\tex{$a_{11}$}
\tex{$\dots$}
\tex{$a_{1n}$}
\tex{$\vdots$}
\tex{$\vdots$}
\tex{Diagonale}
\tex{$a_{m1}$}
\tex{$\dots$}
\tex{$a_{mn}$}
Definition 1.2.1 Sei A m × n Matrix, und ip , jq Indizes mit
1 ≤ i1 < · · · < ik ≤ m,
1 ≤ j1 < · · · < j` ≤ n .
S = (Spq ) = (aip ,jq ), p = 1, . . . , k, q = 1, . . . , `, heisst Untermatrix von A.
2
Definition 1.2.2 A(m × n) Blockmatrix, falls

an . . .
 .
.
A=
 .
ak1

a1`
.. 
. 
,
. . . ak`
mit Aij Untermatrizen von A .
Beispiel 1.2.3

1 2 3
A11 A12
 4 5 6 
.
=

A21 A22
7 8 9

Notation 1.2.4 (MATLAB-Notation) Bei einem Vektor a ∈ Rn bezeichnet in MatlabNotation a(i) die Komponente ai . Die Notation a(k : l) ist eine Kurzform für den Vektor der
Länge l − k + 1 mit den Komponenten k bis l des Vektors a. Analoge Notationen gelten für
Matrizen: Die Einträge einer Matrix A sind A(n, m), und der Ausdruck A(k : l, r : s) bezeichnet
die Untermatrix von A, aus den Zeilen k bis l und den Spalten r bis s besteht. Für eine Vektor
a ∈ Rn mit n Komponenten gilt length (a) = n.
Untermatrix von A: Symbolisch schreiben wir


 i1


 i2


j1
j2








Analog ist für Vektoren v ∈ Kn : v(i1 : i2 ) Teilvektor von v; symbolisch: 
A(m × n) = (a1 , . . . , an ), wobei ai ∈ Km Spaltenvektoren der Matrix A sind.
1.3
i1
i2


.
Matrixoperationen
Wir rekapitulieren die wichtigsten Matrixoperationen.
Definition 1.3.1 Eine quadratische Matrix A = A(n × n) heisst invertierbar ⇐⇒
∃B = B(n × n), dass AB = BA = I.
Wir schreiben B Inverse von A, B = A−1 (n × n).
Es gilt
A singulär ⇐⇒ A nicht invertierbar.
3
Proposition 1.3.2 Die Inverse A−1 (n × n) von A = (a1 , . . . , an ) existiert ⇐⇒
die Spalten a1 , . . . , an sind linear unabhängig.
Definition 1.3.3 Sei A = A(m × n) = (aij ) ∈ Rm×n .
Dann ist
A> = A> (n × m) = (aji ) ∈ Rn×m Transponierte von A .
Wir geben einige Rechenregeln für die Transponierte einer Matrix A.
Proposition 1.3.4
(A> )> = A, (A + B)> = A> + B > , (AB)> = B > A> , (αA)> = αA>
∀α ∈ K .
A−1 ex. =⇒ (A> )−1 ex. und (A> )−1 = (A−1 )> = A−> .
Für Matrizen mit komplexen Einträgen ist oft die komplex konjugierte transponierte Matrix
von Interesse, die sog. hermitesch Transponierte.
Definition 1.3.5 Seien A = (aij ) ∈ Cm×n . Dann ist B = AH := A > = (aji ) die hermitesch
Transponierte zu A.
Beispiel 1.3.6 A ∈ Cn×m , B ∈ Cm×n . Dann gilt:
(AB)H = B H AH , (αA)H = α AH , α ∈ C .
Definition 1.3.7
A ∈ Rn×n symmetrisch
⇐⇒ A = A> ,
schiefsymmetrisch ⇐⇒ A = −A> ,
orthogonal
⇐⇒ A−1 = A> ⇐⇒ A> A = AA> = I .
Definition 1.3.8
A ∈ Cn×n hermitesch ⇐⇒ A> = A ⇐⇒ AH = A ,
unitär
⇐⇒ AH A = AAH = I .
Definition 1.3.9
A ∈ Cn×n normal ⇐⇒ AAH = AH A .
4
1.4
Spur und Determinante
Sei A = A(n × n) eine quadratische Matrix. Dann heisst
tr(A) :=
n
X
aii die Spur von A.
i=1
Aus der linearen Algebra erinnern wir an die Determinante von A:
X
det(A) =
sgn(π) a1π1 . . . anπn .
π∈P
Sie erfüllt folgende Rechenregeln.
det(A) = det(A> ), det(AB) = det(A) det(B), det(A−1 ) = 1/det(A)
det(A) = det(AH ), det(αA) = αn det(A) ∀α ∈ K .
1.5
Rang und Kern
e × q) von
Definition 1.5.1 A = A(m × n) hat rang q, wenn die grösste Blockuntermatrix A(q
e q) 6= 0 die Grösse q hat. Wir schreiben: q = rank(A).
A mit det A(q,
A = A(m × n) hat maximalen Rang ⇐⇒ rank A = min(m, n).
Eigenschaft 1.5.2
rank A = dim range(A)
m
wo
range(A) := {y ∈ K : y = Ax, x ∈ Kn } .
Eigenschaft 1.5.3
ker A = {x ∈ Kn : Ax = 0 ∈ Km } heisst ‘Kern’ von A, Nullraum von A .
Es gilt:
Eigenschaft 1.5.4
rank(A) = rank(A> ), rank(A) = rank(AH ) ,
rank(A) + dim ker(A) = n .
A nichtsingulär ⇐⇒ det(A) 6= 0 ⇐⇒ ker A = {0} ⇐⇒
rank(A) = n ⇐⇒ A = {a1 , . . . , an } ∧ ai linear unabhängig .
5
1.6
Spezielle Matrizen
A = A(m × n) obere Trapezmatrix
m = n =⇒
⇐⇒ aij = 0 for i > j
untere Trapezmatrix
⇐⇒ aij = 0 for i < j
obere Dreiecksmatrix
⇐⇒ aij = 0 for i > j
untere Dreiecksmatrix ⇐⇒ aij = 0 for i < j .
Beispiel 1.6.1 (Dreiecksmatrizen)




`11
0 ... 0
u11 . . . . . . u1n
.
.. 
..
..
 .. . . .

. .. 
. ?
. 
 .


L=  .
, U = 

.
.
..
..
 ..


0 
?
0
`n 1
...
`nn
unn
beispiel1.eps
105 × 9 mm
\tex{$0$}
\tex{$=$}
\tex{$=$}
\tex{~}
\tex{$0$}
Proposition 1.6.2
Sei L eine untere Dreiecksmatrix. Dann gilt
1) det L = `11 . . . `nn =
n
Q
`ii = `11 . . . `nn , det U = u11 . . . unn
i=1
2) Dreiecksmatrizen schreiben wir symbolisch als
beispiel2.eps
104 × 9 mm
\tex{$0$}
\tex{$0$}
\tex{$0$}
\tex{$=$}
\tex{,}
\tex{$=$}
\tex{$0$}
\tex{$0$}
\tex{$0$}
Definition 1.6.3
1) A ∈ Cm×n (p, q)-Bandmatrix, wenn
aij = 0 für i > j + p, j > i + q .
beispiel3.eps
45 × 26 mm
\tex{$q+1$}
\tex{$0$}
\tex{$p+1$}
\tex{$\star$}
\tex{$0$}
\tex{$q$}
2) p = q = 1:
A-Tridiagonalmatrix.
3) p = m − 1, q = 1:
A untere Hessenberg.
6
1.7
Eigenwerte und Eigenvektoren
Sei A ∈ Cn×n quadratische Matrix. Dann ist:
λ ∈ C Eigenwert von A ⇐⇒ ∃ 0 6= x ∈ Cn : Ax = λx .
σ(A) = {λ ∈ C : λ Eigenwert von A} heisst Spektrum von A.
x Rechtseigenvektor von A ⇐⇒ Ax = λx, y H A = λy H .
y Linkseigenvektor von A λ ∈ σ(A) erfüllt die charakteristische Gleichung
pA (λ) := det(A − λI) = 0 .
Proposition 1.7.1
1) A ∈ Cn×n =⇒ pA (λ) ∈ Pn =⇒ σ(A) = {λ1 , . . . , λn }, und
2) det(A) = pA (0) = λ1 λ2 . . . λn ,
tr(A) =
n
X
λi .
i=1
3) σ(A) = σ(A> ),
σ(AH ) = σ(A), d.h. λ ∈ σ(A) ⇐⇒ λ ∈ σ(AH )
Der Spektralradius von A ∈ Cn×n ist
ρ(A) = max |λi | = max |λ| .
1≤i≤n
λ∈σ(A)
Für den Spektralradius gilt (nachrechnen!)
k
ρ(A) = ρ(AH ), ρ(Ak ) = ρ(A) , k ∈ N .
1.8
Ähnlichkeitstransformationen
Ähnlichkeitstransformationen lassen das Spektrum einer Matrix invariant. In der Numerik
werden Ähnlichkeitstransformationen benutzt, um Eigen- und Singulärwerte und, allgemeiner,
die Schur Normalform sowie die Singulärwertzerlegung der Matrix A stabil zu berechnen.
Definition 1.8.1 Seien A(n × n), C(n × n) Matrizen mit det C 6= 0. Dann heisst die transformierte Matrix
C −1 AC ähnlich zu A .
Proposition 1.8.2 σ(A) = σ(C −1 AC), pA (λ) = pC −1 AC (λ).
Beweis:
λ ∈ σ(C −1 AC) =⇒ det (C −1 AC − λ |{z}
C −1 C) = 0 ,
I
⇐⇒ det (C
−1
(A − λI) C) = 0 ,
⇐⇒ det (A − λI) = 0 .
2
7
1.9
Schur und Jordan Normalform
Wir rekapitulieren den folgenden Satz aus der linearen Algebra: jede Matrix A(n × n) kann
ähnlich auf die sog. Jordan’sche Normalform transformiert werden.
A ∈ Cn×n hat n Eigenwerte λ1 , . . . , λn . Diese sind Nullstellen des charakteristischen Polynoms
p(λ) = det(A − λ 1).
alg. Vielfachheit von λi = Vielfachheit der Nullstelle λi von p(λ):
alg
p(λ) = (λ − λi )mi q(λ), Ordnung q(λ) = n − mialg .
geom. Vielfachheit von λi = migeom := # lineare unabhängige Eigenvektoren zum Eigenwert
λi . Es gilt:
migeom ≤ malg
i .
Defekt:
Jordan Normalform:

λ1
 0

 0
 .
 .
 .

 0

 0




−1
T AT = 













geom
di := malg
≥ 0.
i − mi
∃T ∈ Cn×n nicht singulär,
1 0
λ1 1
0 λ1
0
1
..
.
0
0
0
λ1 1
0 λ1

0
0
0
λ1
0
0
0
0
λ2 1 0
0 λ2 1 0
0 0 λ2 1 0
..
..
.
.
0
0 λ2 1
0
0 0 λ2
0
0
0
0
..
0
wobei:
.














=J















λ1 1 0
 0 λ1 1 0



 0 0 λ1 1 0



• pro Eigenvektor je 1 Jordanblock  ..
 auftritt. Seine Grösse hängt
.
.
.

.


0
0 λ1 1 
0
0 0 λ1
ab von der Länge der Hauptvektorketten.
8
• λi sind in den verschiedenen Jordanblöcken sind nicht notwendig verschieden,
• die Jordan’sche Normalform ist praktisch schlecht zu berechnen, da die Transformationsmatrix T in der Jordan’schen Normalform nicht k ◦ k2 -isometrisch ist: es gibt x ∈ Cn :
kT xk2 kxk2 .
!
In der Numerik verlangt man deshalb weniger als die Jordan’sche Normalform: “nur T =
unitär”.
Dies “bezahlt” damit, dass die transformierte Matrix J weniger Nulleinträge hat. Genauer
gilt:
Theorem 1.9.1 (Schur)
A ∈ Cn×n beliebig, λ1 , . . . , λn ∈ C Eigenwerte. Dann existiert Q ∈ Cn×n unitär so, dass


λ1
∗


..
QH A Q = 
.
.
0
λn
Beweis: Sei u1 Eigenvektor zu λ1 , ku1 k2 = 1. Wähle u2 , . . . , un ∈ Cn so, dass V 1 = (u1 , . . . , un )
unitär. Dann gilt, mit A0 = A,


λ1 ∗ . . . ∗



 0


VH
A
V
=
.

0
1
1
.

 .
.
A


1
0
Wiederhole Schlussweise mit A1 ∈ C(n−1)×(n−1) :

1

 0

V2= .
 .
 .
0
0 ... 0
Ve 2



 e
u2 , . . . , u
en ) ∈ C(n−1)×(n−2) .
 , V 2 = (e


Rekursion mit Ve 3 , . . . , Ve n ergibt die Behauptung.
1.10
Normen in Cn
Sei V VR über dem Koeffizientenkörper K = R, C. Dann ist
k ◦ k : V → R+ Norm ⇐⇒
9
2
∀x ∈ V : kxk ≥ 0j kxk = 0 ⇐⇒ x = 0 .
(N1)
∀x ∈ V, α ∈ K : kαxk = |α| kxk .
(N2)
∀x, y ∈ V : kx + yk ≤ kxk + kyk .
(N3)
Bemerkung 1.10.1 kxk − kyk ≤ kx − yk.
Beweis: (N3) ⇐⇒
kxk − kyk = kx − y + yk − kyk
≤ kx − yk + kyk − kyk = kx − yk ;
x ↔ y =⇒ Behauptung .
2
Beispiele: V ∈ Cn , p ≥ 1, x = (x1 , . . . , xn )> .
n
X
1
p p
kxkp :=
|xi |
, 1 ≤ p < ∞.
i=1
Theorem 1.10.2 k ◦ kp ist Norm auf Cn .
Beweis: (N1), (N2) sind offensichtlich, wir zeigen (N3). Hierzu brauchen wir
Lemma 1.10.3 Seien indices p, q ≥ 1 konjugiert,
1 1
+ = 1, p, q ≥ 1 .
p q
Dann gilt
ap bq
∀a, b > 0 : ab ≤
+ .
p
q
Beweis: x 7−→ log x konkav, d.h.
∀α, β ≥ 0, α + β = 1 : ∀u, v > 0 :
α log u + β log v ≤ log(αu + βv) : α = p1 , β = 1q , u = ap , v = bq .
Dann:
1 q
a + b .
log(ab) = log a + log b = α log(a ) + β log(b ) ≤ log
p
q
p
q
Theorem 1.10.4 (Hölder Ungleichung)
Seien p, q ≥ 1 konjugiert, x, y ∈ Cn . Dann gilt
n
X
x
y
i i ≤ kxkp kykq .
i=1
Beweis: x = 0 ∨ y = 0 trivial. Seien x 6= 0, y 6= 0. Setze
x
b = x / kxkp , yb = y / kykp .
10
1
p
2
Lemma 1.10.3 =⇒
|b
xi |p |b
yi |q
+
, i = 1, . . . , n ,
p
q
n
X
1 1 p
q
|b
xi | |b
yi | ≤ x
bp + b
y q = 1 .
p
p
1
|xi | |yi | ≤
2
Theorem 1.10.5 (Minkowski Ungleichung)
Sei p ≥ 1, x, y ∈ Cn . Dann
kx + ykp ≤ kxkp + kykp .
Beweis:
n
n
X
X
p−1
p
x + y p =
|x
+
y
|
|x
|
+
|y
|
|x
+
y
|
≤
i
i
i
i
i
i
p
i=1
i=1
n
Hölder X
≤
|xi + yi |
i=1
da (p − 1) q = p,
1.11
1
q
p−1 q
1q
kxkp + kykp
p/q
p−1
= x + y p kxkp + kykp = x + y p
kxkp + kykp ,
= (p − 1)/p = 1 − p1 .
2
Normäquivalenz
Es ist aus der Analysis bekannt, dass alle Normen auf endlichdimensionalen Räumen äquivalent
sind.
Definition 1.11.1 k ◦ kp , k ◦ kq auf V äquivalent ⇐⇒ ex. 0 < cpq ≤ Cpq < ∞ mit
cpq kxkq ≤ kxkp ≤ Cpq kxkq
∀x ∈ V .
In der Numerik brauchen wir insbesondere für Cn die Werte der Äquivalenzkonstanten.
Beispiel: V = Cn .
cpq q
1
2
∞
p
1
2
∞
1
1
1
− 21
1
n
−1
− 21
n
n
1
1
11
Cpq = (cqp )−1 .
1.12
Matrixnormen
Definition 1.12.1 (Matrixnorm)
k ◦ k: Cm×n → R:
kAk ≥ 0 ∧ kAk = 0 ⇐⇒ A = 0 ,
kαAk = |α| kAk
∀A ∈ Cm×n ,
∀α ∈ C,
kA + Bk ≤ kAk + kBk
(N1)
∀A, B ∈ Cm×n .
(N2)
(N3)
Definition 1.12.2 Matrixnorm k ◦ kM konsistent oder verträglich mit Vektornorm k ◦ kV ⇐⇒
kAxkM ≤ kAkM kxkV
∀x ∈ Rn .
Definition 1.12.3 k ◦ kM submultiplikativ ⇐⇒
∀A ∈ Cn×m , B ∈ Cm×q : kA BkM ≤ kAkM kBkM .
Beispiel: Die Frobeniusnorm in Cn×m ist
kAkF =
n
X
|aij |2
i,j=1
12
1
= tr (AAH ) 2 .
k ◦ kF ist konsistent mit k ◦ k2 :
n
X
kAxk22 = xH AH , Ax =
≤
n
X
i=1
n
X
|aij |
j=1
2
i=1
n
X
n
X
2
aij xj j=1
|xj |
2
j=1
= kAk2F kxk22 .
Sei k ◦ k∗ auf Cm , k ◦ k∗∗ auf Cn . Für A ∈ Cm×n ist
kAk∗∗∗ := sup
x6=0
kA xk∗
kA xk∗
= max
x6=0
kxk∗∗
kxk∗∗
Operatornorm auf Cm×n , induziert durch k ◦ k∗ , k ◦ k∗∗ .
k ◦ k∗∗∗ ist kompatibel, d.h.
kA xk∗ ≤ kAk∗∗∗ kxk∗∗ ,
12
Beispiel:
kAkp := max
x6=0
kA Bkp = max
x6=0
Bx6=0
≤ max
x6=0
Bx6=0
kA xkp
.
kxkp
kABxkp kBxkp
kBxkp
kxkp
kABxkp
kBxkp
max
kBxkp x6=0 kxkp
≤ kAkp kBkp .
Proposition 1.12.4 k ◦ kF ist submultiplikativ.
Beweis: Sei


bT1
 . 
A = (a1 , . . . , an ) ∈ Cm×n , B =  ..  ∈ Cn×k .
bTn
Dann
A B = a1 bT1 + · · · + an bTn .
Dreiecksungleichung:
kA BkF ≤ ka1 bT1 kF + · · · + an bTn kF
= ka1 k2 kb1 k2 + · · · + kan k2 kbn k2
n
n
X
2 12 X
2 21
ai bi ≤
2
2
i=1
i=1
= kAkF kBkF .
2
Weitere wichtige Normen sind:
kAk1 = max
j=1,...,n
kAk∞ = max
i=1,...,n
m
X
|aij | Spaltensummenorm
i=1
n
X
|aij | Zeilensummennorm
j=1
kAk1 = kAT k∞ , A = AH =⇒ kAk1 = kAk∞ .
Die Norm k ◦ k2 einer Matrix A ∈ Cm×n steht in engem Zusammenhang mit ρ(A), σ1 (A).
13
Theorem 1.12.5 Sei σ1 (A) maximaler Singularwert von A. Dann ist
p
p
kAk2 = ρ(AH A) = ρ(AAH ) = σ1 (A) .
Bemerkung 1.12.6 A = AT =⇒ kAk2 = ρ(A),
1.13
AH A = I =⇒ kAk2 = 1.
Skalarprodukt und Orthogonalität
Definition 1.13.1 Sei V ein Vektorraum über K. Eine Bilinearform (·, ·) : V × V → K heisst
Skalarprodukt, falls gilt:
∀x, y, z ∈ V,
∀γ, λ ∈ K : (γx + λy, z) = γ(x, z) + λ(y, z) ,
(S1)
(y, x) = (x, y)
(S2)
(x, x) > 0 für alle x 6= 0 .
(S3)
H
n
Beispiel: V = C : (x, y) = y x =
Es gilt Q, A ∈ Cn×n ⇐⇒
n
X
xi y i .
i=1
∀x, y ∈ Cn :
(Ax, y) = (x, AH y)
(Qx, Qy) = (x, QH Qy) .
Unitäre Matrizen lassen die Euklidische Norm eines Vektors x invariant.
Proposition 1.13.2 Q ∈ Cn×n unitär, d.h. QH Q = I. Dann gilt:
kQxk2 = kxk2
∀x ∈ Cn .
Beweis: kQxk22 = (x, QH Qx) = (x, x) = kxk22 .
Definition 1.13.3 x, y ∈ Rn orthogonal ⇐⇒ x> y = 0 und wir schreiben symbolisch:
x ⊥ y.
14
2
1.14
Gram-Schmidt Algorithmus
Seien r ≥ 1 Vektoren
x1 , . . . , xr ∈ Cm
gegeben. Der Gram-Schmidt Algorithmus erzeugt aus (*) eine neue Familie von r Vektoren
q 1 , . . . , q r ∈ Cm
derart, dass gilt
span{x1 , . . . , xr } = span{q r , . . . , q r }
(1.14.1)
und die q i sind paarweise orthogonal:
q i ⊥ q j für 1 ≤ i, j ≤ r, i 6= j .
(1.14.2)
Der Gram-Schmidt Algorithmus ist definiert wie folgt:
Algorithmus 1.14.1 (Gram-Schmidt)
input x1 , . . . , xr ∈ Cn .
q 1 := x1 ,
for k = 1, . . . , r − 1 do:
qk+1
k
X
(qi , xk+1 )
q .
:= xk+1 −
(q i , q i ) i
i=1
Eigenschaften der qk verifiziert man direkt. Etwa (1.14.2) durch Induktion: sei (1.14.2) schon
für 1 ≤ i, j ≤ k bewiesen. Dann folgt für ` ≤ k aus Algorithmus 1.14.1, dass gilt
k
X
(qi , xk+1 )
(q` , qk+1 ) = (q` , xk+1 ) −
(q` , qi )
(qi , qi ) | {z }
i=1
δ`i
= (q` , xk+1 ) −
(q` , xk+1 )
(q` , q` ) = 0 ,
(q` , q` )
woraus (1.14.2) folgt.
In Algorithmus 1.14.1 waren r, m beliebig. Für r > m ergeben (1.14.1) und (1.14.2), dass
einige der q i verschwiinden müssen. Genauer gilt:
Proposition 1.14.2 Falls die xi vollen Rang r haben, gilt (1.14.1) mit q 1 , . . . , qr 6= 0. Falls
jedoch
s = dim(span{x1 , . . . , xr }) < r
ist, so sind r − s > 0 Vektoren der q 1 , . . . , q r gleich 0.
Als eine Anwendung des Gram-Schmidt Algorithmus erhalten wir das Basisergänzungslemma:
15
Lemma 1.14.3 Sei r < n. Falls V 1 = [v 1 , . . . , vr ] ∈ Cn×r orthonormale Spalten hat, d.h.
n×(n−r)
vH
derart, dass die Matrix
i v j = δij , dann existiert V 2 ∈ C
V = V1V2
unitär ist, d.h. V H V = 1, und (rangeV 1 )⊥ = rangeV 2 .
Beweis des Basisergänzungslemmas 1.14.3 Es besagt: falls die Matrix V 1 = [v 1 , . . . , vt ] ∈ Cn×t ,
t < n, orthonormale Spalten hat mit v H
i v j = δij , dann existieren v t+1 , . . . , v n derart, dass die
Matrix
V = [V 1 V 2 ], wo V 2 := [vt+1 , . . . , vn ]
unitär ist, d.h. V H V = 1, und (range V 1 )⊥ = range V 2 .
Für den Beweis wenden wir den Gram-Schmidt Algorithmus 1.14.1 an auf die r Vektoren
{x1 , . . . , xr } = {v 1 , . . . , vt , e1 , . . . , en } ,
wobei r = n + t ist. Gram-Schmidt reproduziert dann die v 1 , . . . , v t (beweisen!) und ergibt
weitere n Vektoren q 1 , . . . , qn mit
{q i , q j } = δij , (v i , qj ) = 0, 1 ≤ i ≤ t, 1 ≤ j ≤ n .
Da dim(span{x1 , . . . , xr }) = n > t ist, sind n − t Vektoren der q i 6= 0 und t der q i verschwinden.
Eine Anwendung der Normen und der Orthogonalität ist der Beweis der sogenannten Singulärwertzerlegung.
1.15
Singulärwertzerlegung (SVD)
Die SVD einer Matrix A ergibt: “totale Information” über Matrix A, und ist, anders als die
Jordan Normalform, stabil berechenbar.
Theorem 1.15.1 Sei A ∈ Cm×n , r = rang(A). Dann existieren σ1 ≥ σ2 ≥ · · · ≥ σr > 0,
U ∈ Cn×n , V ∈ Cm×m , unitär mit
A = V Σ UH
(1.15.1)
wo


σ1
..


.
0




σr


Σ=
 ∈ Rm×n .
.


.
.
0



0
0
16
Beweis von Theorem 1.15.1. Sei x ∈ Cn , y ∈ Cm Vektoren mit kxk2 = kyk2 = 1, und σ ∈ R
mit
A x = σ y, wobei σ = kAk2 .
Nach Lemma 1.14.3 existiert U 2 ∈ Cn×(n−1) , V 2 ∈ Cm×(m−1) derart, dass die Matrizen
U = x U 2 ∈ Cn×n , V = y V 2 ∈ Cm×m
unitär sind. Weiterhin gilt

H 
V HA U = y V 2 A x U2 = 
yH A x yH A U 2
H
VH
2 A x V 2 A U2
Da
gilt auch
A1
!2 σ2 + wH w
σ =
w 2 Bw
2
A1 = sup
2
06=x∈Cn




 =: 
σ
0
wH
B


 =: A1 .
2
= (σ 2 + w H w)2 + kB wk22 ≥ (σ 2 + w H w)2 ,
2
2
σ 2
A1
A1 x
w
(σ 2 + wH w)2
2
2
≥
≥
= σ 2 + wH w .
2
2
2 + wH w
σ
σ
kx 2
w 2
(1.15.2)
Da auch σ 2 = kAk22 = kV H A U k22 = kA1 k22 , folgt aus (1.15.2), dass gilt
Also ist
2 2
A1 ≥ A1 + wH w woraus folgt 0 ≤ w H w ≤ 0, d.h. w = 0 .
2
2


A1 = 
σ
0
0T
B


H
 = V 0 A0 U 0 .
Rekursion dieser Schlussweise auf B =⇒ Behauptung.
Korollar 1.15.2 Die Singulärwerte σ1 , . . . , σr sind eindeutig.
Korollar 1.15.3 Falls σ1 > σ2 > · · · > σr , u1 , . . . , ur , sind ei Singulärvektoren v 1 , . . . , v r
eindeutig bis auf einen Faktor λ mit |λ| = 1.
Bild und Kern einer Matrix A ∈ Cm×n können durch die singulären Vektoren charakterisiert
werden:
17
Korollar 1.15.4 Sei A ∈ Cm∈n , r ≤ min{m, n} der Rang von A. Dann gilt:
(
σi vi 1 ≤ i ≤ r ,
A ui =
0
r + 1 ≤ i ≤ n.
AH v i =
(
1 ≤ i ≤ r,
σi ui
r + 1 ≤ i ≤ m.
0
Korollar 1.15.5
A=
r
X
σi v i uH
i .
i=1
Korollar 1.15.6 Sei A ∈ C
m×n
,A=V
H
Σ U . Dann
= span{ur+1 , . . . , un } ,
ker A
range A = span{v 1 , . . . , vr } ,
ker AH
= span{v r+1 , . . . , v m } ,
H
range A = span{u1 , . . . , ur } .
Korollar 1.15.7 σi (A) =
Beweis:
p
λi (AH A), i = 1, . . . , p
A = V Σ U H =⇒ AH = U ΣH V H =⇒
H
AH A = U ΣH |V {z
V} Σ U H
I
2
λi (AH A) = ΣH Σ = σi (A) .
=⇒
2
Also gilt für A hermitesch: AH = A =⇒
p
AH A = A2 ∧ σi = λ2i = |λi |, i = 1, . . . , n .
σ1 ≥ σ2 ≥ · · · ≥ σr > σr+1 = · · · = σp = 0
=⇒
r = rank(A), ker(A) = span{v r+1 , . . . , vn } ,
range(A) = span{u1 , . . . , ur } .
Definition 1.15.8 Sei A = V Σ U H ∈ Cm×m . Dann ist Σ = V H AU = diag(σ1 , . . . , σr , 0, . . . , 0).
Die Matrix
A+ := U Σ+ V H ∈ Cn×m
mit
Σ+ = diag
heisst Penrose Pseudoinverse von A.
1
1
, . . . , , 0, . . . , 0
σ1
σr
18
2
Computerarithmetik
2.1
Gleitkommazahlen
Mathematische Modelle beschreiben Phänomene quantitativ mittels unendlicher Systeme von
Zahlen. Beispiele sind die rationalen Zahlen Q (abzählbar unendlich) sowie die reellen Zahlen
R (überabzählbar unendlich).
Auf einem Computer stehen bei alphanumerischen Rechnungen immer nur endlich viele,
sogenannte Gleitkommazahlen zur Verfügung, die wir generisch mit F (für “floating point
numbers”) bezeichnen, und die je nach Hersteller und Compiler variieren. Es gilt immer
F ⊂ Q ⊂ R, |F| < ∞ .
(2.1.1)
Definition 2.1.1 Gleitkommazahlen sind die Teilmenge F von R von Zahlen der Form
x = (−1)s · (0 · a1 a2 , . . . , at ) · β e = (−1)s · m · β e−t ,
(2.1.2)
wobei
• β ∈ N, β ≥ 2 die Basis der Gleitkommazahl x ∈ F ist,
• t ∈ N die Anzahl der erlaubten signifikanten Stellen ai von x ∈ F ist, mit
0 ≤ ai ≤ β − 1 ,
(2.1.3)
• m = a1 a2 a3 , . . . , at eine ganze Zahl, die sogenannte Mantisse, ist, mit
0 ≤ m ≤ βt − 1 ,
(2.1.4)
• e eine ganze Zahl, der Exponent von x ∈ F in (2.1.2) ist; er variiert in einem endlichen
Intervall, d.h.
L≤e≤U
(2.1.5)
mit L < 0, U > 0 ganz, und
• s das Vorzeichen von x ∈ F ist.
Falls N Speicherpositionen für x ∈ F zur Verfügung stehen, gilt die Aufteilung
s
→ eine Position
m
→ t Positionen
e
→ N − t − 1 Positionen.
Bemerkung 2.1.2 x ∈ F in (2.1.2) ist auch gegeben durch
a
a2
at 1
+ 2 +···+ t .
x = (−1)s β e
β
β
β
19
(2.1.6)
Bemerkung 2.1.3 Darstellung (2.1.2) ist nicht eindeutig - um Eindeutigkeit zu erhalten,
nehmen wir immer an:
a1 6= 0 .
(2.1.7)
a1 heisst führende Stelle. Dann gilt
0 < β t−1 ≤ m ≤ β t − 1 .
(2.1.8)
Insbesondere ist also dann x = 0 nicht in F. Deshalb treffen wir
Konvention 2.1.4 Die Menge aller x ∈ F wie in (2.1.2) ist
t
o
n
X
s e
ai β −i ,
F(β, t, L, U) = {0} ∪ x ∈ R : x = (−1) β
(2.1.9)
i=1
die Menge der Gleitkommazahlen mit t signifikanten Stellen, Basis β ≥ 2, Ziffern 0 ≤ ai ≤ β−1
und Exponentenbereich (L, U) mit L ≤ e ≤ U, mit (2.1.7).
Bemerkung 2.1.5 Es gilt
x ∈ F(β, t, L, U) =⇒ −x ∈ F(β, t, L, U) ,
(2.1.10)
xmin := β L−1 ≤ |x| ≤ β U (1 − β −1 ) =: xmax ,
(2.1.11)
|F(β, t, L, U)| = 2(β − 1) β t−1 (U − L + 1) + 1 .
(2.1.12)
Bemerkung 2.1.6 (Nicht normalisierte Gleitkommazahlen)
Aus (2.1.11) folgt für x ∈ R mit 0 < |x| < xmin , dass x ∈
/ F. Dies kann behoben werden
durch Aufgeben von a1 6= 0 nur für diese x. Damit erhält man x der Form (2.1.6) mit
1 ≤ m ≤ β t−1 − 1, x ∈ (−β L−1 , β L−1). Damit ist immer noch die Darstellung (2.1.9) eindeutig
und die Menge aller solcher x der Form (2.1.9) heisst FD ⊃ F. Es gilt
(2.1.13)
min |x| 6= 0 : x ∈ FD (β, t, L, U) = β L−t .
Auf den meisten Rechnern hat man einfach und doppelt genaue Zahlen. Für binäre
Gleitkommazahlen (β = 2) ist
N = 32 für einfach genaue Zahlen wie folgt verteilt:
1
s
8 bits
e
23 bits
m
11 bits
e
52 bits
m
N = 64 für doppelt genaue Zahlen:
1
s
20
Bemerkung 2.1.7 (IEEE/IEC Standard)
Die Gleitkommadarstellung wurde 1985 durch das “Institute of Electronics and Electrical
Engineers” (IEEE) entwickelt und 1989 durch die “International Electronical Commission (IEC)
als Standard IEC 559 angenommen. Es gilt:
β
t
L
U
IEEE single
2
24
−125
128
IEEE double
2
53 −1021 1024
und, für die Ausnahmewerte 0, ± ∞:
Wert Exponent Mantisse
2.2
±0
L−1
0
±∞
U +1
0
NaN
U +1
6= 0
Runden mit Maschinenepsilon
Zwei Zahlen x, y ∈ F, x 6= y, können nicht beliebig nahe zueinander liegen. Es gilt für
0 6= x ∈ F : β −1 εM |x| ≤ min |x − y| : y ∈ F\{0} ≤ εM |x| ,
(2.2.1)
mit dem “Maschinenepsilon” εM .
Definition 2.2.1 (Maschinenepsilon εM )
Die kleinste Zahl 0 < εM ∈ F mit 1 + εM > 1 heisst Maschinenepsilon; es gilt
εM = β 1−t .
(2.2.2)
Es erfüllt εM = min |1 − y| : y ∈ F\{1} . Folgender MATLAB code findet εM + 2.2204 · 10−16 :
e=1; while(1+e>1) e=e/2; end; 2*e
Fig. 1: MATLAB code zur Bestimmung von εM in MATLAB
Beachte, dass Operationen zwischen x, y ∈ F nicht Ergebnisse in F liefern müssen; es gilt
x, y ∈ F impliziert nicht x ◦ y ∈ F .
Hier steht ◦ für eine generische Operation, 0 ∈ {+, −, ∗, /}, ◦ : R × R → R.
Abhilfe schafft hier die Rundung von x ◦ y.
21
Definition 2.2.2 (Rundung)
Sei F(β, t, L, U) Gleitkommazahlen. Die Rundung f ` ist eine Abbildung. f `: R → F
definiert für x ∈ R in der normalisierten Positionsdarstellung
s
0 6= x = (−1) β
e
∞
X
aj β −j ∈ R
j=1
mit Exponent L ≤ e ≤ U durch
f (x) := (−1)s (0, a1 a2 , . . . , e
at ) β e ,
wobei
e
at :=
Proposition 2.2.3
(
at
(2.2.3)
für at+1 < β/2 ,
a1 + 1 für at+1 ≥ β/2 .
x ∈ F =⇒ f `(x) = x,
x, y ∈ R ∧ x ≤ y =⇒ f `(x) ≤ f `(y).
Bemerkung 2.2.4 (Abschneiden)
Alternativ zur Rundung kann man auch Abschneiden. Dann ist f ` wie in (2.2.3), mit
e
at = at .
Bemerkung 2.2.5 (Überlauf/Unterlauf)
(2.2.3) gilt nur für x ∈ R mit Exponent e ∈ [L, U]. Für x ∈ (−∞, −xmax ) ∪ (xmax , ∞) ist
f `(x) in (2.2.3) nicht definiert.
Sei x, y ∈ F und z = x ◦ y ∈ R. Falls
|z| = |x ◦ y| > xmax (F) := max{|x| : x ∈ F}
sprechen wir von Überlauf, für
|z| = |x ◦ y| < xmin (F) := min{|x| : 0 6= x ∈ F}
von Unterlauf.
Theorem 2.2.6 Sei F = F(β, t, L, U) ⊂ R und z ∈ R gegeben im Bereich von F, d.h. mit
xmin (F) ≤ |z| ≤ xmax (F) .
(2.2.4)
Dann gibt es δi ∈ R mit
f `(z) = z(1 + δ1 ),
|δi | < u :=
f `(z) = z/(1 + δ2 ) .
1 1−t
β , i = 1, 2,
2
(2.2.5)
(2.2.6)
22
Beweis: (2.2.5): ohne Beschränkung der Allgemeinheit sei z > 0. Dann ist
z = mβ e−t , β t−1 ≤ m < β 1 − 1 .
Also ist
F 3 z− := bmc β e−t ≤ z ≤ dme β e−t =: z+ ∈ F ,
d.h. z liegt zwischen den Gleitkommazahlen z− , z+ ∈ F. Also ist f `(z) ∈ {z− , z+ } und
|f `(z) − z| ≤
Daher folgt
|z+ − z− |
β e−t
≤
.
2
2
1
mβ e−t
1
|f `(z) − z|
2
≤
= β 1−t =: u .
|z|
m β e−t
2
Hier gilt Gleichheit nur dann, wenn m = β t−1 . Dann aber ist z = f `(z) ∈ F, deshalb gilt
|δ| < u. (2.2.6) beweist man analog.
2
Bemerkung 2.2.7 Die Zahl
u=
1 1−t 1
β
= εM
2
2
(2.2.7)
heisst Rundungseinheit (Unit Roundoff) von F(β, t, L, U).
Beispiele für die Werte der Maschinenarithmetik sowie von u enthält die folgende Tabelle:
Machine and arithmetic
Cray-1 single
Cray-1 double
DEC VAX G format, double
DEC VAX D format, double
HP 28 and 48G calculators
IBM 3090 single
IBM 3090 double
IBM 3090 extended
IEEE single
IEEE double
IEEE extended (typical)
β
t
2
2
2
2
10
16
16
16
2
2
2
48
96
53
56
12
6
14
28
24
53
64
L
-8192
-8192
-1023
-127
-499
-64
-64
-64
-125
-1021
-16381
U
8191
8191
1023
127
499
63
63
63
128
1024
16384
Tab. 2.1: Floating point arithmetic parameters
23
u
4 × 10−15
1 × 10−29
1 × 10−16
1 × 10−17
5 × 10−12
5 × 10−7
1 × 10−16
2 × 10−33
6 × 10−8
1 × 10−16
5 × 10−20
2.3
Gleitkommaoperationen
Wir sehen, dass ◦ ∈ {+, −, ∗, /} aus F hinausführt: F ◦ F ∈
/ F im Allgemeinen.
Definition 2.3.1 (Maschinenoperationen)
Für x, y ∈ F mit x ◦ y im Bereich von F heisst
Maschinenoperation zu ◦.
x ◦ y := f ` f `(x) ◦ f `(y) ∈ F
(2.3.8)
Für die Analyse von Algorithmen benutzen wir wegen (2.2.5), (2.2.6) das sogenannte Standardmodell des Rundungfehlers: für jede Maschinenoperation gilt
x ◦ y = (x ◦ y)(1 + δ), |δ| ≤ u, ◦ = +, −, ∗, / .
(2.3.9)
Bemerkung 2.3.2 (Petaflop)
Die aktuellen Grossrechner führen bis zu 1015 Operationen ◦ / Sekunde aus. In MATLAB
double precision ist u = 12 εM = 21 2−53 ≈ 10−16 , so dass Akkumulation von δ’s in (2.3.9) schnell
die Grösse 1 ergibt, falls (im schlechtesten Fall) bei jeder Operation ◦ der maximale Fehler
δ = u realisiert wird.
24
3
Direkte Lösung Linearer Gleichungssysteme: Gaußelimination (GEM)
Wir schreiben lineare Gleichungssysteme in der Form
Ax = b;
(3.0.1)
hier ist A ∈ Rn×n eine reguläre Matrix, b ∈ Rn ist gegeben, und x ∈ Rn ist die gesuchte Lösung.
Die Matrix A und die Vektoren x, b haben die Komponenten






a11 a12 · · · · · · a1n
x1
b1
 a21 a22 · · · · · · a2n 
 x2 
 b2 
 .

 . 
 . 
.
.
..





..
.. 
.
A =  ..
x =  ..  ,
b =  ..  .
,
 .





..
.. 
..
 ..
 ... 
 ... 
.
.
.
an1 an2 · · · · · · ann
xn
bn
3.1
3.1.1
Gaußscher Algorithmus
Dreiecksmatrizen
Wir betrachten zuerst einmal zwei Spezialfälle von Matrizen A. Wir sagen, daß A eine linke
Dreiecksmatrix (oft auch: untere Dreiecksmatrix) ist, falls
aij = 0
für alle i, j mit i < j.
Analog sprechen wir von A als einer rechten Dreiecksmatrix (oft auch: obere Dreiecksmatrix),
falls
aij = 0
für alle i, j mit i > j.
Linke Dreiecksmatrizen werden meist mit L bezeichnet und rechte Dreiecksmatrizen mit R.
Die Namensgebung ist aus der Struktur der Matrix leicht verständlich:




a11 a12 · · · · · · a1n
a11 0 · · · · · ·
0
 0 a22 · · · · · · a2n 

 a21 a22 0
···


.. 
.. 
..
..
..




.
.
.
. .
0
. ,
R= 0
L =  a31 a32


 .
.. 
.. . .
..
..
..
..
 ...
 ..
.
.
.
.
. 
.
.
0 
0
0 · · · 0 ann
an1 an2 · · · ann−1 ann
(Im englischsprachigen Raum werden Matrizen dieses Typs typischerweise mit L und U für
lower und upper bezeichnet.) Hat die Matrix A in (3.0.1) linke oder rechte Dreiecksgestalt,
dann ist das Lösen des Gleichungssystems besonders einfach. Bei Lösen von
Lx = b
spricht man von Vorwärtssubstitution und beim Lösen von
Rx = b
25
spricht man von Rückwärtssubstitution. Die Namensgebung erfolgt aus der Tatsache, daß man
beim Lösen von Lx = b die Unbekannten xi sukzessive “vorwärts” bestimmt d.h. zuerst x1 =
b1 /a11 , mit dessen Hilfe man x2 bestimmt, dann x3 u.s.w. Bei Lösen von Rx = b werden die
Unbekannten xi sukzessive “rückwärts” bestimmt, d.h. zuerst xn = bn /ann , dann damit xn−1 ,
dann xn−2 u.s.w. Dieses Vorwärts- und Rückwärtseinsetzen formalisieren wir in den folgenden
zwei Algorithmen
Algorithmus 3.1.1 (Vorwärtssubstitution) Sei A eine Linksdreiecksmatrix mit aii 6= 0 für
i = 1, . . . , n. Dann kann die Lösung x von Ax = b wie folgt berechnet werden:
for i from 1 to n do {
!
i−1
X
1
bi −
aik xk
xi :=
(Konvention: leere Summe = 0)
aii
k=1
}
Algorithmus 3.1.2 (Rückwärtssubstitution) Sei A eine Rechtsdreiecksmatrix mit aii 6= 0
für i = 1, . . . , n. Dann kann die Lösung x von Ax = b wie folgt berechnet werden:
for i from n to 1 by −1 do {
!
n
X
1
xi :=
aik xk
(Konvention: leere Summe = 0)
bi −
aii
k=i+1
}
Man überzeugt sich leicht davon, daß in beiden Algorithmen für jedes i auf der rechten Seite
der Zuweisung Objekte stehen, die bereits in einem vorangehenden Schritt bestimmt wurden.
Definition 3.1.3 Die Menge der n × n-Linksdreiecksmatrizen wird mit Ln bezeichnet. Ferner
definieren wir L1n := {L ∈ Ln | Lii = 1, i = 1, . . . , n}.
Die Linksdreiecksmatrizen und Rechtsdreiecksmatrizen bilden je einen Ring:
Theorem 3.1.4 Es gilt für beliebige L, L0 ∈ Ln :
1. L + L0 ∈ Ln ;
2. L · L0 ∈ Ln ;
Q
3. det L = ni=1 Lii ;
4. Ist L ∈ Ln regulär, dann ist L−1 ∈ Ln ;
5. falls L ∈ L1n , L0 ∈ L1n , dann ist L · L0 ∈ L1n .
Analoge Aussagen gelten für Rechtsdreiecksmatrizen.
Beweis: Übung (vgl. Aufgabe 1). Die Aussagen für Rechtsdreiecksmatrizen folgen aus denen
für Linksdreiecksmatrizen durch Transposition.
2
26
Theorem 3.1.5 Seien Lk ∈ Rn×n , k = 1, . . . , n − 1 Linksdreiecksmatrizen von der Form


1
..


.




1


Lk = 
.
lk+1 k 1




..

...

.
ln k
1
Dann ist

L−1
k




=



1
..
.
1
−lk+1 k 1
..
..
.
.
−ln k
1





.



Ferner hat das Produkt L1 L2 · · · Ln−1 die Darstellung

1

..
 l21
.

..

.
1
 l
L1 L2 · · · Ln−1 =  31
 ...
lk+1 k 1

 ..
..
..
..
 .
.
.
.
ln1 ln2 · · · ln k · · · lnn−1 1






.




Beweis: Übung (vgl. Aufgabe 2). Satz 3.1.4 zeigt bereits, daß die Matrizen Lk invertierbar
sind und daß das Produkt eine Linksdreiecksmatrix sein muß, dessen Diagonaleinträge 1 sind.
2
3.1.2
Gaußscher Algorithmus und LR-Zerlegung
Im vorhergehenden Abschnitt haben wir gesehen, daß gestaffelte Gleichungssysteme (d.h. solche,
bei denen die Matrix A linke oder rechte Dreiecksgestalt hat) besonders einfach aufzulösen sind.
Der Gaußsche Algorithmus führt nun den allgemeinen Fall auf diese beiden Fälle zurück, indem
er eine Matrix A in ein Produkt aus einer Linksdreiecksmatrix und einer Rechtsdreiecksmatrix
zerlegt:
A = LR.
(3.1.2)
Ist eine solche Zerlegung bekannt, dann kann das Gleichungssystem (3.0.1) mithilfe einer
Vorwärts- und einer Rückwärtssubstitution gelöst werden. Führt man nämlich den Hilfsvektor
y = Rx ein, so ergibt sich b = Ax = LRx = L(Rx) = Ly; dies führt auf folgende Vorgehensweise:
1. löse das Gleichungssystem Ly = b für y mithilfe von Algorithmus 3.1.1;
27
2. löse das Gleichungssystem Rx = y für x mithilfe von Algorithmus 3.1.2.
Definition 3.1.6 Sei A ∈ Rn×n . Dann besitzt A eine LR-Zerlegung, falls es eine Rechtsdreiecksmatrix R und eine Linksdreiecksmatrix L ∈ L1N gibt, so daß A = LR.
Hat eine reguläre Matrix A eine LR-Zerlegung, so ist diese eindeutig:
Theorem 3.1.7 Sei A ∈ Rn×n regulär und habe eine LR-Zerlegung LR = A. Dann ist Rii 6= 0
für i = 1, . . . , n, und die Zerlegung ist eindeutig.
Q
Beweis: Wegen 0 6= det A = det L · det R = ni=1 Rii folgt die erste Behauptung. Seien
LR = A = L0 R0 zwei LR-Zerlegungen von A. Dann sind nach obiger Überlegung R und R0
invertierbar (ihre Determinanten verschwinden nicht). Somit gilt
L0 R0 = LR
L−1 L0 = R(R0 )−1 .
=⇒
Nach Satz 3.1.4 ist L−1 L0 ∈ L1n ; ebenfalls nach Satz 3.1.4 ist R(R0 )−1 eine Rechtsdreiecksmatrix.
Die einzige Matrix, die zugleich Linksdreiecksmatrix und Rechtsdreiecksmatrix ist und ein
Element von L1n ist, ist die Identität. Also ist R = R0 und L = L0 .
Die Voraussetzung der Regularität von A ist wesentlich für die Eindeutigkeitsaussage, wie
das Beispiel
1 0
0 1
0 1
1 0
0 1
·
=
=
·
0 1
0 0
0 0
−1 1
0 1
zeigt.
2
finis
Die LR-Zerlegung einer Matrix A ∈ Rn×n geschieht in n − 1 Schritten. Zur Motivation des
Algorithmus schreiben wir das Gleichungssystem (3.0.1) aus:
a11 x1 + a12 x2 + · · · + a1n xn = b1
a21 x1 + a22 x2 + · · · + a2n xn = b2
..
..
..
..
..
..
..
.. ..
.
.
.
.
.
.
.
. .
.. ..
..
..
..
..
..
..
..
. .
.
.
.
.
.
.
.
an1 x1 + an2 x2 + · · · + ann xn = bn
Es wird nun von der zweiten, dritten, etc. Zeile ein geeignetes Vielfaches der ersten Zeile
subtrahiert, um die Variable x1 in Zeilen 2 bis n zu eliminieren. Wir definieren also (für
a11 6= 0)
ai1
,
i = 2, . . . , n
li1 :=
a11
und ziehen von der i-ten Zeile das li1 -fache der ersten Zeile ab. Wir erhalten damit ein Gleichungssystem von der folgenden Form:
a11 x1 + a12 x2 + · · · + a1n xn = b1
(1)
(1)
(1)
a22 x2 + · · · + a2n xn = b2
..
..
..
..
..
..
..
.
.
.
.
.
.
.
..
..
..
..
..
..
..
.
.
.
.
.
.
.
(1)
(1)
(1)
an2 x2 + · · · + ann xn = bn
28
1.DS
(1)
wobei die neuen Koeffizienten aij gegeben sind durch
(1)
aij
= aij − a1j li1 ,
(1)
bi
= bi − b1 li1 ,
i, j = 2, . . . , n,
i = 2, . . . , n.
(1)
Offenbar kann man (falls a22 6= 0) nun ähnlich weitermachen, um in den Zeilen 3 bis n die
Variable x2 zu eliminieren. Dies geschieht, indem man
(1)
li2 :=
ai2
(1)
a22
,
i = 3, . . . , n
setzt und dann von der i-ten Zeile (i ≥ 3) das li2 -fache der 2-ten Zeile abzieht. Auf diese Weise
erhält man dann ein System der Form
a11 x1 + a12 x2 + a13 x3 + · · ·
(1)
(1)
a22 x2 + a23 x3 + · · ·
(2)
a33 x3 + · · ·
..
..
..
.
.
.
(2)
an3 x3 + · · ·
+ a1n xn
(1)
+ a2n xn
(2)
+ a3n xn
..
..
.
.
(2)
+ ann xn
= b1
(1)
= b2
(2)
= b3
..
..
.
.
(2)
= bn
Nach (n − 1)-Schritten erhält man dann eine schließlich ein System von Gleichungen, das
Rechtsdreiecksgestalt hat:
a11 x1 + a12 x2 + a13 x3
(1)
(1)
a22 x2 + a23 x3
(2)
a33 x3
+ ···
+ ···
+ ···
.. ..
.
.
..
.
+
+
+
..
.
..
.
a1n xn
(1)
a2n xn
(2)
a3n xn
..
.
..
.
(n−1)
ann xn
(k−1)
=
b1
(1)
= b2
(2)
= b3
..
..
.
.
..
..
.
.
(n−1)
= bn
Die Zahlen akk , k = 1, . . . , n − 1, die während der Eliminationschritte auftreten, heißen
(k−1)
Pivots1 . Offensichtlich müssen wir verlangen, daß die Pivots nicht verschwinden, d.h. akk 6= 0
für k = 1, . . . , n − 1. Die berechneten Koeffizienten lij und das Endschema ergeben dann die
gesuchte LR-Zerlegung: Wir setzen




1
a11 a12 · · ·
(1)
(1)




..
 l21
 0 a22 a21 · · ·


.

 .


(2)
(2)
..


.


0 a33 a34
.
1
 l31
 .


L :=  .

 , R :=  ..
..
..
 ..



.
.
lk+1,k 1

 .


.
 ..
 .


.. ..
..
..
..
.
.
.
 .



.
.
.
(n−1)
0 · · · · · · · · · 0 ann
ln1 ln2 · · · ln k · · · ln,n−1 1
1
Bonaparte Pivot, 1.4.1769–1.4.1821, mit dem Spitznamen “der gute Teiler”
29
und behaupten, daß A = LR gilt. Um dies einzusehen, schreiben wir die entstandenen Gleichungssysteme in Matrixschreibweise. Im k-ten Eliminiationschritt hat das Gleichungssystem
die Form
A(k) x = b(k)
wobei A(k) , b(k) folgende Form haben:

A(k)




=




···
···
..
.
a11 a12 a13
(1)
(1)
a22 a23
..
.
···
···
..
.
(k)
···
···
..
.
a1n
(1)
a2n
..
.
(k)
(k)
A(0) := A,
b(0) := b.
ak+1 k+1 ak+1 k+2 · · · ak+1 n
..
...
...
...
.
(k)
(k)
(k)
an k+1
an k+2 · · · ann






,




b(k)
b1
(1)
b2
..
.




 (k)
=
 bk+1
 b(k)
 k+2
 .
 ..
(k)
bn






.





(3.1.3)
Wir setzen aus Notationsgründen
Für die Ausführung des k-ten Schrittes werden die Faktoren
(k−1)
lik :=
aik
(k−1)
akk
,
i = k + 1, . . . , n,
benötigt. Die Verbindung unseres Vorgehens mit der gesuchten LR-Zerlegung von A ist nun,
daß A(k) aus A(k−1) durch Multiplikation mit eine speziellen Linksdreiecksmatrix ergibt: Setzt
man


1
..


.




1


(3.1.4)
Lk := 
,
−l
1


k+1,k


..
..


.
.
−ln k
1
so kann man nachrechnen (Übung!), daß gilt:
A(k) = Lk A(k−1)
und
b(k) = Lk b(k−1) ,
k = 1, . . . , n − 1.
(3.1.5)
Man erhält also
A(n−1) = Ln−1 Ln−2 · · · L1 A(0) = Ln−1 Ln−2 · · · L1 A.
Da alle auftretenden Linksdreiecksmatrizen Lk regulär sind (vgl. Sätze 3.1.4, 3.1.5), können wir
dies umschreiben als
LR = A,
wobei
−1
−1
L := L−1
1 L2 · · · Ln−1 ,
30
R = A(n−1) .
Hier ist R eine Rechtsdreiecksmatrix nach Konstruktion (vgl.
dreiecksmatrix nach Satz 3.1.4. Aus Satz 3.1.5 erhalten wir

1
..

.


1

L−1
k = 
lk+1,k 1


..
...

.
ln k
1
und damit—wiederum aus Satz 3.1.5—für die Einträge in L

1

..
 l21
.

..

.
1
 l31
−1
−1
L = L−1
1 L2 · · · Ln−1 =  .
 ..
lk+1,k

 ..
..
 .
.
ln1 ln2 · · · ln k
(3.1.3)), und L ist eine Links








(3.1.6)
ganz explizit:

1
..
.
..
.
· · · ln,n−1 1










(3.1.7)
Wir haben also eine explizite Konstruktion einer LR-Zerlegung von A gefunden: Die Einträge
der Linksdreiecksmatrix L sind die Faktoren lik , die im Laufe des Algorithmus bestimmt werden
und die Rechtsdreiecksmatrix R ist gerade das Endschema des Gaußschen Algorithm, die Matrix
A(n−1) . Wir können unser Vorgehen in dem folgenden abstrakten Algorithmus, der Gaußschen
Elimination ohne Pivotsuche festhalten:
Algorithmus 3.1.8 (Rohfassung der LR-Zerlegung ohne Pivotsuche)
A(0) := A
for k from 1 to n − 1 do {
1. bestimme Matrix Lk (vgl. (3.1.4)) durch Berechnung der Faktoren
(k−1)
lik =
Aik
(k−1)
Akk
,
i = k + 1, . . . , n
2. setze A(k) := Lk A(k−1)
}
LR-Zerlegung von A ist A = LR mit R = A(n−1) und L gegeben durch (3.1.7).
Für eine Computerimplementierung von Algorithmus 3.1.8 müssen die Matrixmultiplikationen
noch explizit ausgeschrieben werden. In tatsächlichen Implementierungen wird man direkt
“auf” der Matrix A operieren, d.h. sie während des Algorithmus verändern. Dies geschieht aus
Speicherplatzgründen, weil man nicht Speicher für die n Matrizen A(0) , A(1) , . . . bereitstellen
kann/will. In dieser Form erhält man dann
31
Algorithmus 3.1.9 (LR-Zerlegung ohne Pivotsuche)
input: Matrix A
output: Linksdreiecksmatrix L und Rechtsdreiecksmatrix R mit LR = A
L := Idn = Identitätsmatrix der Größe n × n
for k from 1 to n − 1 do {
for i from k + 1 to n do {
Aik
Lik :=
% k-te Spalte von L
Akk
for j from k to n do { % k-te Zeile von R und updaten der Zeilen k + 1, . . . , n von A
Aij := Aij − Lik Akj
}
}
}
setze R := Rechtsdreiecksanteil von A
return (L,R)
In der formulierten Form geht die Matrix A in Algorithmus 3.1.9 verloren, da sie mit der
Rechtsdreiecksmatrix R überschrieben wird. In der rechentechnischen Praxis wird zudem weiter
Speicher gespart: Nach Beendigung von Algorithmus 3.1.9 enthält die Matrix im oberen Teil
die gesuchte Rechtsdreiecksmatrix R. Der untere Teil enthält noch den unteren Teil der Originalmatrix A (man überzeuge sich davon, daß Algorithmus 3.1.9 den unteren Teil von A nicht
verändert). Der untere Teil der Matrix A hat genausoviele Einträge wie zum Abspeichern der
Linksdreiecksmatrix L genötigt werden (die Diagonaleinträge von L sind alle 1 und müssen
daher nicht gesondert abgespeichert werden). In den meisten Implementierungen von LRZerlegungen wird deshalb einfach nur die Matrix A ∈ Rn×n übergeben, und zurückgegeben
wird wieder eine Matrix à ∈ Rn×n , in der die wesentliche Information über die Faktoren L und
R gespeichert ist:
(
Rij falls j ≥ i
Ãij =
(3.1.8)
Lij falls j < i
Eine Implementierung dieses Algorithmus ist dann wie folgt:
Algorithmus 3.1.10 (LR-Zerlegung ohne Pivotsuche: klassische Implementierung)
input: Matrix A
output: überschreibt die Matrix A mit ihrer LR-Zerlegung (vgl. (3.1.8))
for k from 1 to n − 1 do {
for i from k + 1 to n do {
Aik
Aik :=
% k-te Spalte von L
Akk
for j from k+1 to n do { %k-te Zeile von R und updaten der Zeilen k + 1 . . . , n von A
Aij := Aij − Aik Akj
}
}
}
return (A)
Das Lösen eines linearen Gleichungssystems (3.0.1) wird deshalb wie folgt durchgeführt:
32
1
n(n − 1)(n + 1)
3
1
n(n − 1)
Vorwärtssubst. (Algorithmus 3.1.1 unter Ausnutzung von Lii = 1)
2
1
Rückwärtssubst. (Algorithmus 3.1.2)
n(n + 1)
2
1 3
1
1
Gesamtkosten
n + n2 − n ≈ n3
3
3
3
Tabelle 3.1: Kosten für das Lösen eines linearen Gleichungssystems mit Algorithmus 3.1.11.
LR-Zerlegung (Algorithmus 3.1.11)
Algorithmus 3.1.11 (Gauß-Algorithmus ohne Pivotsuche)
1. Bestimme LR-Zerlegung von A mithilfe von Algorithmus 3.1.10.
2. Löse Ly = b mithilfe der Vorwärtssubstitution Algorithmus 3.1.1. Dabei beachtet man,
daß die Diagonalelemente von L gilt: Lii = 1.
3. Löse Rx = y mithilfe der Rückwärtssubstitution Algorithmus 3.1.2.
In Tabelle 3.1 sind die Kosten beim Lösen eines linearen Gleichungssystems mithilfe von Algorithmus 3.1.11 zusammengestellt. Wir haben nur die Multiplikationen/Divisionen gezählt und
die Additionen vernachlässigt. Wie man sieht, sind die Kosten (für große n) dominiert durch die
LR-Zerlegung. Bereits für n = 100 machen die Vorwärts- und Rückwärtssubstitionen zusammen nur 3% der Gesamtkosten aus. Ein positiver Nebeneffekt ist, daß, falls eine LR-Zerlegung
erst einmal aufgestellt ist, das lineare Gleichungssystem (3.0.1) für viele verschiedene rechte
Seiten b billig gelöst werden kann.
Bemerkung 3.1.12 In der LR-Zerlegung in Algorithmus 3.1.10 haben wir nicht den Fall abge(k−1)
fangen, daß ein sog. Pivot Akk = 0 sein könnte. Algorithmus 3.1.10 versagt deshalb bereits
bei dem trivialen Beipiel
0 1
.
A=
1 0
Der Behandlung solcher Fälle werden wir uns im Abschnitt 3.3 zuwenden.
Abschließend stellen wir einen zu Algorithmus 3.1.10 äquivalenten Algorithmus zur Bestimmung der LR-Zerlegung vor.
Algorithmus 3.1.13 (Doolittle Variante der LR-Zerlegung)
for k from 1 to n do {
Lkk = 1
for j from k to
% Berechne k-te Zeile von R
P n do {
L
R
%Konvention: leere Summe = 0
Rkj := Akj − k−1
kl lj
l=1
}
for i from k + 1 to n do { ! % Berechne k-te Spalte von L
k−1
X
1
Lik :=
Lil Rlk
Aik −
%Konvention: leere Summe = 0
Rkk
l=1
33
}
}
Man beachte, daß der Algorithmus wohldefiniert ist, da die Rechtsdreiecksmatrix R zeilenweise
und die Linksdreiecksmatrix L spaltenweise aufgebaut wird. Für jedes k werden von L nur
die Spalten 1 bis k − 1 und von R nur die Zeilen 1 bis k − 1 benötigt, die bereits berechnet
wurden. Algorithmus 3.1.13 stellt die Matrizen L und R in genau derselben Reihenfolge auf wie
Algorithmus 3.1.10. Von Interesse ist jedoch, daß er aus folgenden Überlegungen hergeleitet
werden kann: Für jedes i, j gilt für die LR-Zerlegung von A:
Aij =
n
X
Lil Rlj .
l=1
Aus der Tatsache, daß L Linksdreiecksmatrix, R Rechtsdreiecksmatrix und Lii = 1, folgt damit
Aij =
i−1
X
Lil Rlj + Rij ,
l=1
j−1
Aij =
X
Lil Rlj + Rjj Lij .
l=1
Auflösen dieser beiden Gleichungen nach Rij und Lij ergibt dann die Ausdrücke in Algorithmus 3.1.13.
3.1.3
LR-Zerlegung für schwach besetzte Matrizen
Die LR-Zerlegung in Algorithmus 3.1.10 geht von einer vollbesetzten Matrix A aus. In der
Praxis (z.B. in der Strukturmechanik und bei der Diskretiersierung von partiellen Differentialgleichungen) sind die auftretenden Matrizen oft schwach besetzt (engl. sparse), d.h. viele
Einträge von A sind gleich Null. Dies kann in zweierlei Hinsicht ausgenutzt werden:
1. Speicherersparnis: Man speichert nicht die gesamte Matrix A ab, sondern nur die wesentliche
Information, d.h. welche Einträge von Null verschieden sind und was ihre Werte sind.
2. Die Matrizen L, R der LR-Zerlegung von A sind ebenfalls schwach besetzt. Auch hier
kann Speicher und Rechenzeit eingespart werden, indem nur die nicht-trivialen Einträge
von L und R berechnet werden.
Im folgenden stellen wir zwei Typen von schwach besetzten Matrizen vor: Bandmatrizen und
Skyline-Matrizen. Selbstverständlich decken diese beiden Typen nicht alle in der Praxis auftretenden Fälle von schwach besetzten Matrizen ab.
Bandmatrizen
Definition 3.1.14 Eine Matrix A ∈ Rn×n heißt eine Bandmatrix mit Bandbreite p + q + 1,
falls es p, q ∈ N0 mit
aij = 0 für j > i + p oder i > j + q.
Die Zahl p heißt die oberere Bandbreite und q die untere Bandbreite.
34
Bandmatrizen haben also nichtverschwindende Einträge höchstens auf den p Nebendiagonalen
über der Hauptdiagonalen und auf den q Nebendiagonalen unter der Hauptdiagonalen:


a11
a12 · · · a1,p+1
0
···
···
0
 a21
a22 · · ·
···
a2,p+2 0
···
0 
 .

.
.
.
 .

..
..
..
0 
 .


..
..
 aq+1,1 aq+1,2
.
.
0 


(3.1.9)


.
.
 0
.
an−p,n 
aq+2,2


..
 ..

..
..
.
.
.
0
 .

 .

..
..
..
..
 ..

.
.
.
.
0
0
···
0
an,n−q · · · an,n−1 ann
− q(q+1)
reelle Zahlen
Um diese Matrix darzustellen, brauchen wir nur (p + q + 1)n − p(p+1)
2
2
abzuspeichern. Auch die LR-Zerlegung einer Bandmatrix erbt die spezielle Struktur:
Theorem 3.1.15 Sei A ∈ Rn×n eine Bandmatrix mit oberer Bandbreite p und unterer Bandbreite q und LR-Zerlegung LR = A. Dann haben L, R Bandstruktur, und es gilt:
Lij = 0
Rij = 0
falls j > i oder j < i − q
falls j < i oder j > i + p.
Beweis: Die Ausssage des Satzes folgt durch sorgfältige Untersuchung von Algorithmus 3.1.13.
Man sieht recht einfach, daß die Aussage richtig ist für die erste Zeile von R und die erste
Spalte von L. Dann schließt man induktiv für die weiteren Zeilen/Spalten mithilfe von Algorithmus 3.1.13.
2
finis
Satz 3.1.15 sagt aus, daß die Matrizen L, R der LR-Zerlegung der Bandmatrix A aus (3.1.9)
folgende Struktur haben:


1
0
··· ··· ··· ··· ··· 0
 l21
1
0 ··· ··· ··· ··· 0 
 .

..
..
..
 .

.
.
0 
.
 .


..
..
 lq+1,1 lq+1,2

.
.
0


L = 
.. 
..
..
 0
.
.
. 
lq+2,2


.. 

..
..
..
.
.
.
0
. 
 0


..
..
 0
.
. 0 
0
0
0
· · · 0 ln,n−q · · · ln,n−1 1
35
2.DS
LR-Zerlegung (Algorithmus 3.1.16) ≈ nqp
Vorwärtssubst. (Alg. 3.1.1; Ausnutzen der Bandstruktur von L)
≈ nq
Rückwärtssubst. (Alg. 3.1.2; Ausnutzen der Bandstruktur von R)
≈ np
Gesamtkosten Multiplikationen/Divisionen
≈ n(pq + p + q)
Tabelle 3.2: Kosten beim Lösen von Gleichungssystemen mit Bandmatrizen








R = 






r11 r12 · · · r1,p+1
0
··· ···
0
0 r22 · · · · · · r2,p+2 0 · · ·
0
..
..
..
.
.
0
.
0
..
.. . .
..
..
.
.
.
.
0
.
..
..
..
..
.
.
.
rn−p,n
.
..
..
..
..
..
.
.
.
.
.
..
..
..
..
..
..
.
.
.
.
.
.
0
0 ··· ···
··· 0
rnn















Die Tatsache, daß die Matrizen L und R auch wieder schwach besetzt sind, wird bei Algorithmen
zur Bestimmung von LR-Zerlegungen von Bandmatrizen ausgenutzt. Es brauchen insbesondere
nur die nicht-trivialen Einträge von L, R berechnet zu werden. Dies führt auf die folgende
Variante von Algorithmus 3.1.10, bei dem die beiden inneren Schleifen verkürzt werden können.
Algorithmus 3.1.16 (LR-Zerlegung für Bandmatrizen)
input: Matrix A mit oberer Bandbreite p und unterer Bandbreite q
output: überschreibt die Matrix A mit ihrer LR-Zerlegung
for k from 1 to n − 1 do {
for i from k + 1 to min {n, k + q} do {
Aik
Aik :=
Akk
for j from k + 1 to min {n, k + p} do {
Aij := Aij − Aik Akj
}
}
}
return (A)
Die Bandstruktur von L und R wird ebenfalls bei der Vorwärts- und Rückwärtssubstitution ausgenutzt (Übung: Man formuliere die entsprechenden Varianten von Algorithmen 3.1.1, 3.1.2).
Die Kosten der Algorithmen sind in Tabelle 3.2 zusammengestellt. Es werden nur Multiplikationen und Divisionen gezählt und vereinfachend n max {p, q} angenommen.
Skyline-Matrizen
Ein wichtiger weiterer Spezialfall der schwach besetzten Matrizen sind die sog. Skyline-Matrizen
(engl.: skyline matrices). Dies sind Matrizen, wie auf der linken Seite in Fig. 3.1 illustriert.
36
Figur 3.1: Striche deuten von Null verschiedene Einträge an. Links: Skyline-Matrix, bei der
die Besetzungsstruktur bei LR-Zerlegung erhalten bleibt. Rechts: Keine Skyline-Matrix und
die LR-Zerlegung erhält nicht die Besetzungsstruktur.




1
1
1
1



1
2
2 
1








1
3
3
1




>




A= 1 2 3 5
18 
L=R = 1 2 3 1




1
5 
1








1 6
1
1 2 3 18 5 6 92
1 2 3 4 5 6 1
Figur 3.2: A ∈ R7×7 und ihre LR-Zerlegung.
Eine Matrix A ∈ Rn×n heißt eine Skyline-Matrix, falls es für i = 1, . . . , n Zahlen pi , qi ∈ N0
gibt, so daß
Aij = 0 falls j < i − pi oder i < j − qj .
(3.1.10)
Es gilt dann
Theorem 3.1.17 Sei A ∈ Rn×n eine Skyline-Matrix, d.h. es gebe pi , qi mit (3.1.10). Möge A
die LR-Zerlegung A = LR haben. Dann gilt für die Einträge von L und R:
Lij = 0
für j < i − pi ,
Rij = 0
für i < j − qj .
Beweis: Wie in Satz 3.1.15 kann die Aussage mithilfe von Algorithmus 3.1.13 eingesehen
werden (Übung).
2
Satz 3.1.17 besagt, daß die Faktoren L und R der LR-Zerlegung einer Skyline-Matrix A dieselbe
Besetzungsstruktur haben wie A. Figur 3.2 zeigt dies für ein einfaches Beispiel. Das Erhalten
der Besetzungsstruktur kann natürlich algorithmisch ausgenutzt werden, sowohl was Speicher
angeht als auch bzgl. Rechenzeit, indem nur die nicht-trivialen Einträge von L und R ausgerechnet und abgespeichert werden. Dies führt auf Varianten von Algorithmus 3.1.13, die
analog zum Fall der Bandmatrizen sind. Man beachte, daß man die Matrizen in Fig. 3.1 nicht
als Bandmatrix behandeln will, da die Bandbreiten p, q je gleich n wären. Das rechte Beispiel
in Fig. 3.1 ist keine Skyline-Matrix im Sinne obiger Definition, und die Besetzungsstruktur
geht bei der LR-Zerlegung verloren: L ist i.a. eine volle Linksdreiecksmatrix und R eine volle
Rechtsdreiecksmatrix (Man spricht bei Zerstörung der Besetzungsstruktur von fill-in).
37
3.2
Symmetrisch positiv definite Matrizen
In vielen Anwendungen treten symmetrische, positiv definite Matrizen auf, die oft zudem
schwach besetzt sind. Der Grund hierfür ist, daß diese Matrizen meist von physikalischen
Modellen stammen, bei denen der Ausdruck x> Ax eine Energie darstellt.
Definition 3.2.1 Sei A ∈ Rn×n . Die transponierte Matrix A> ist gegeben durch
(A> )ij := Aji
∀i, j ∈ {1, . . . , n}.
Eine Matrix A ∈ Rn×n heißt
1. symmetrisch, falls A = A> ;
2. positiv definit, falls x> Ax > 0
∀0 6= x ∈ Rn ;
3. positiv semi-definit, falls x> Ax ≥ 0
∀0 6= x ∈ Rn .
Eine symmetrische, positiv definite Matrix A ∈ Rn×n heißt kurz SPD.
Theorem 3.2.2 Sei A ∈ Rn×n SPD. Dann gilt:
1. A ist regulär (invertierbar);
2. Aii > 0 für alle i ∈ {1, . . . , n};
3. |Aij | < 12 (Aii + Ajj ) für i 6= j und damit maxij |Aij | = maxi Aii .
Beweis: Übung.
2
Theorem 3.2.3 Sei A ∈ Rn×n SPD. Dann existiert ein L ∈ L1n und eine Diagonalmatrix D
mit Dii > 0, i = 1, . . . , n, so daß A = LDL> . Die Matrizen L und D sind eindeutig. Zudem ist
L, R := DL> die LR-Zerlegung von A, die mithilfe von Algorithmus 3.1.10 bestimmt werden
kann.
Beweis: Wir partitionieren die Matrix A wie folgt:

A11

A(0) = A = 
 z
z>
B


,

wobei z > = (A12 , . . . , A1n ). Im ersten Schritt der Gaußelimination erhält man




A11
z>
1
 0

 −l21 1





A(1) = L1 A(0) =  ..
,
L
=
,


.
1
.
0
.
.
 .

 .

.
B
−ln1
1
0
38
(3.2.11)
wobei li1 = Ai1 /A11 . Man beachte, daß nach Satz 3.2.2 A11 > 0. Eine Rechnung zeigt nun, daß


A11 0 · · · 0

 0


(1) >
L1 AL>
.
..
1 = A L1 = 
0

 .
B
0
Hier ist insbesondere die Matrix B 0 unverändert aus (3.2.11) übernommen. Man rechnet nun
nach (oder verwendet den Trägheitssatz von Sylvester2 ), daß B 0 wieder SPD ist, denn die
0
Matrix L1 AL>
1 ist wieder SPD. Mithin kann man dieselbe Argumentation für B wiederholen.
Induktiv schließt man dann, daß


A11


d22


> >
>
Ln−1 · · · L1 AL1 L2 · · · Ln−1 = 
 =: D.
.
.


.
dnn
Nach Konstruktion sind die Matrizen Lk , k = 1, . . . , n − 1 gerade die Linksdreiecksmatrizen,
die in Algorithmus 3.1.11 berechnet werden. Das hier vorgestellte Induktionsargument zeigt,
daß der Algorithmus nicht abbricht, weil in jedem Eliminationsschritt das Pivotelement nicht
verschwindet (die Diagonalelemente einer SPD-Matrix sind nach Satz 3.2.2 strikt positiv!). Die
Eindeutigkeit von L (die dann die Eindeutigkeit von D nach sich zieht) folgt aus Satz 3.1.7,
weil A = LDL> = L(DL> ) eine LR-Zerlegung von A ist.
2
Satz 3.2.3 ist die Basis für die Cholesky3 -Zerlegung einer SPD-Matrix A.
Korollar 3.2.4 Sei A ∈ Rn×n SPD. Dann existiert eine eindeutige Linksdreiecksmatrix L ∈ Ln
>
mit Lii > 0, i = 1, . . . , n, so daß A = L · L . Die Matrix L heißt der Cholesky-Faktor von A.
>
Umgekehrt gilt: Sei L ∈ Ln regulär. Dann ist A := L · L SPD.
Beweis: Nach Satz 3.2.3 existiert ein L ∈ L1n und eine Diagonalmatrix D mit Dii > 0, so daß
A = LDL> . Wir setzen nun
1/2
L := LD 1/2 ,
D 1/2 ij := δij Dii .
>
Dann gilt offensichtlich L · L = A. Eindeutigkeit des Cholesky-Faktors: Sei L eine Links>
dreiecksmatrix mit Lii > 0, i = 1, . . . , n und L · L = A. Definiere die Diagonalmatrix D durch
Dij = δij Lii . Dann ist D invertierbar und
L := LD −1
ist ein Element von L1n . Wir haben also
>
A = L · L = LDD > L> = L(DD > )L> .
2
3
Sylvester, James Joseph 1814–1897
Cholesky, André-Louis, 1875-1918
39
Dies ist eine Zerlegung wie in Satz 3.2.3. Aus der Eindeutigkeitsaussage von Satz 3.2.3 folgt
damit, daß L und DD > eindeutig bestimmt sind. Weil die Diagonalmatrix D positive Diagonaleinträge hat, ist damit auch D eindeutig bestimmt.
>
Der Beweis der Aussage, daß für eine reguläre Linksdreiecksmatrix L die Matrix L · L SPD
ist: Übung.
2
Für SPD-Matrizen benutzt man anstelle der LR-Zerlegung in der Praxis die Cholesky-Zerlegung.
Algorithmisch bestimmt man sie mithilfe einer Variante von Algorithmus 3.1.13:
Algorithmus 3.2.5 (Cholesky-Zerlegung)
input: SPD-Matrix A ∈ Rn×n
output: Cholesky-Faktor L von A
for k from 1 to n do {
!1/2
k−1
X
2
Lkk := Akk −
Lkj
%Konvention: leere Summe = 0
j=1
}
for i from k + 1 to n do { !
k−1
X
1
Lik :=
Lij Lkj
Aik −
Lkk
j=1
% Berechne k-te Spalte von L
%Konvention: leere Summe = 0
}
Daß der Algorithmus das Gewünschte leistet, sieht man in ähnlicher Weise wie bei Algorith>
mus 3.1.13, indem man den Anzatz A = LL macht und dann Bestimmungsgleichungen für
die Einträge von L herleitet:
n
X
Aik =
Lij Lkj .
j=1
Wegen der Symmetrie von A reicht es, k ≤ i zu betrachten. Nutzt man die Tatsache aus, daß
L eine untere Dreiecksmatrix ist, dann folgt:
für k = i:
Akk =
i−1
X
2
2
Lkj + Lkk ,
j=1
für k < i:
Aik =
k−1
X
Lij Lkj + Lik Lkk .
j=1
Auflösen nach Lij und Lii ergibt dann die Ausdrücke, die in Algorithmus 3.2.5 auftreten.
Betrachten wir die Kosten der Cholesky-Zerlegung. Aus Algorithmus 3.2.5 geht hervor, daß
die Cholesky-Zerlegung einer SPD-Matrix A mit
1
∼ n3
6
Multiplikationen/Divisionen und
n Quadratwurzeln
berechnet wird. Vernachlässigt man die Kosten für das Wurzelziehen, dann ist die CholeskyZerlegung ungefähr halb so teuer wie die LR-Zerlegung. Die Reduktion um den Faktor 2 liegt
40
daran, daß wegen der Symmetrie der Matrix und der Zerlegung nur ein Faktor der Zerlegung
berechnet werden muß.
Da viele in der Praxis auftretenden SPD-Matrizen Bandstruktur haben, formulieren wir
noch die Variante der Cholesky-Zerlegung, die die Bandstruktur ausnutzt.
Algorithmus 3.2.6 (Cholesky-Zerlegung für SPD Bandmatrizen)
input: SPD-Matrix A ∈ Rn×n ; oberere Bandbreite p = untere Bandbreite q
output: Cholesky-Faktor L von A
for k from 1 to n do {

k−1
X

Lkk := Akk −
j=max {1,k−p}
}
2
1/2
Lkj 
for i from k+ 1 to min {n, k + p} do{
k−1
X
1 
Lik :=
Lij Lkj 
Aik −
Lkk
j=max {1,k−p}
}
Bemerkung 3.2.7 Algorithmus 3.2.5 zur Bestimmung der Cholesky-Zerlegung kann auch dazu
benutzt werden, zu prüfen, ob eine gegebene symmetrische Matrix positiv definit ist. Man
führt Algorithmus 3.2.5 durch; bricht er ab, weil eine Division durch Null auftritt oder weil
eine Wurzel aus einer negativen Zahl gezogen werden soll, dann war die Matrix nicht SPD.
Andernfalls ist sie SPD (vgl. die zweite Aussage aus Korollar 3.2.4).
3.3
3.3.2
Pivotstrategien & Nachiteration
Spaltenpivotstrategie
(k−1)
Bei unserer Herleitung der LR-Zerlegung nahmen wir stets an, daß die Pivots Akk
muß nicht immer der Fall sein, wie die Matrix
0 1
A=
1 0
6= 0. Dies
zeigt. Die Matrix A ist jedoch regulär, und man kann Gleichungssysteme von der Form Ax = b
lösen, indem man zuerst die Zeilen 1 und 2 vertauscht. Die nach Vertauschung dieser Zeilen
erhaltene Matrix Aper hat dann ein von Null verschiedenes Pivot (Aper )11 ; in diesem Fall hat
Aper sogar bereits Rechtsdreiecksgestalt.
Man erwartet, daß auch bei kleinen Pivots numerische Schwierigkeiten auftauchen. Folgendes Beispiel erfüllt diese Erwartung:
Beispiel 3.3.11 Wir bestimmen in 4-stelliger Gleitkommaarithmetik F (d.h. β = 10, t = 4)
die Lösung x des folgenden linearen Gleichungssystems:
3.1 · 10−4 1
−3
A=
,
b=
.
1
1
−7
41
Es ist dann l21 = 1/(3.1 · 10−4 ) ≈ 3.226 · 103 und die LR-Zerlegung von A ist
1
0
3.1 · 10−4
1
3.1 · 10−4
1
L=
,
R=
≈
.
3.226 · 103 1
0
1 − l21
0
−3.225 · 103
Die Lösung von Ly = b führt dann auf
−1
y=L b=
−3
9.671 · 103
und damit ist die Lösung x von Rx = y
1
−3.226
−4 (−3 − (−2.999))
−1
3.1·10
.
=
x=R y=
−2.999
−2.999
Das “exakte” Ergebnis ist x = (−4.001246 . . . , −2.99875 . . .)> . Hier sind beim Rückwärtseinsetzen
in der x1 -Komponente durch Auslöschung alle Ziffern verloren gegangen. Der Grund ist die
schlechte Pivotwahl. Wir starteten mit einem sehr kleinen Pivot und erhielten dadurch sehr
große (und auch sehr kleine) Einträge in der LR-Zerlegung. Dies führt dann zu Auslöschung
bei der Vorwärts- und Rückwärtssubstitution.
Beispiel 3.3.11 zeigt, daß kleine Pivots zu numerischen Instabilitäten bei Vorwärts- und Rückwärtssubstitution führen können. Daß kleine Pivots gemieden werden sollen, legt folgende Betrachtung nahe: Wir nehmen an, daß die rechte Seite b und die gesuchte Lösung Einträge haben,
die von vergleichbarer Größenordnung sind (wie in Beispiel 3.3.11). Wird bei der Vorwärtsoder Rückwärtssubstitution mit großen Zahlen multipliziert, so entstehen Zwischenergebnisse,
die groß sind (wie in Beispiel 3.3.11). Da das Endergebnis wieder moderat ist, erwartet man,
daß dies durch Subtraktion vergleichbarer Zahlen erreicht wird—bei diesen Subtraktionen tritt
dann die Gefahr der Auslöschung auf. Dies ist im obigen Beispiel 3.3.11 eingetreten.
Um das Problem des kleinen Pivots in den Griff zu bekommen, wird deshalb nicht eine
LR-Zerlegung der Matrix A gesucht, sondern die LR-Zerlegung einer Matrix Aper , die durch
geeignetes Vertauschen von Zeilen von A entstanden ist. Man beachte, daß für das Lösen von
Gleichungssystemen das Vertauschen von Zeilen keine Rolle spielt (wenn man beim Vektor auf
der rechten Seite die entsprechende Vertauschung ebenfalls durchführt). Daß Zeilenvertauschen
numerisch vorteilhaft sein kann, zeigt folgende Fortsetzung von Beispiel 3.3.11:
Beispiel 3.3.12 Wir lösen das lineare Gleichungssystem aus Beispiel 3.3.11, indem wir die
beiden Zeilen von Ax = b vertauschen, d.h. wir betrachten
−7
1
1
.
,
bper =
Aper =
−3
3.1 · 10−4 1
Nun ist l21 = 3.1 · 10−4 und
1
0
,
Lper =
3.1 · 10−4 1
Rper =
1
1
0 1 − l21
≈
Für die Lösungen y, x von Ly = b, Rx = y erhalten wir damit
−4.001
−7
.
,
x=
y=
−2.999
−2.998
42
1
1
0 0.9997
.
Wir erhalten also das korrekte Ergebnis bis auf Rundungsgenauigkeit. Da die Permutationsmatrix
0 1
P =
1 0
bei Multiplikation von links an die Matrix A die Zeilen 1 und 2 vertauscht, haben wir also
folgende Zerlegung erhalten:
Lper Rper = Aper = P A.
In Beispiel 3.3.12 konnte das lineare Gleichungssystem numerisch stabil gelöst werden, indem
die beiden Zeilen des Gleichungssystems vertauscht wurden. Für eine allgemeine Matrix A
ist die richtige Zeilenanordnung natürlich nicht im Voraus bekannt. Sie muß also während
des Algorithmus mitbestimmt werden. Man geht deshalb algorithmisch wie folgt vor (siehe
(k−1)
Algorithmus 3.3.15 unten): In jedem Eliminationsschritt wird nicht einfach Akk
als Pivot
(k−1)
benutzt, sondern es wird in der Spalte k das betragsgrößte Element Aik
mit Zeilenindex i ≥ k
gesucht; anschließend werden die Zeilen k und i vertauscht und dann der Eliminationsschritt
durchgeführt.
Das Vertauschen von Zeilen in einer Matrix beschreibt man formal am besten im Permutationsmatrizen:
Definition 3.3.13 (Permutationsmatrizen) Sei π : {1, . . . , n} → {1, . . . , n} eine Permutation der Zahlen 1, . . . , n (d.h. π ist eine bijektive Abbildung) und bezeiche e1 , . . . , en die n
Einheitsvektoren: (ei )j = δij . Dann heißt
Pπ := eπ(1) , eπ(2) , . . . , eπ(n)
die zu π gehörige Permutationsmatrix.
Lemma 3.3.14 (Eigenschaften von Permutationsmatrizen) Sei π : {1, . . . , n} → {1, . . . , n}
eine Permutation und Pπ die zugehörige Permutationsmatrix. Dann gilt:
(i) Pπ ei = eπ(i) für i ∈ {1, . . . , n}.
(ii) Pπ−1 = Pπ> .
(iii) Die Matrix Pπ A entsteht aus A durch Zeilenpermutation, d.h. die i-te Zeile von A ist die
π(i)-te Zeile von Pπ A, i = 1, . . . , n.
Beweis: Übung.
2
Der Algorithmus zur LR-Zerlegung mit Pivotsuche ist damit wie folgt:
Algorithmus 3.3.15 (LR-Zerlegung mit Spaltenpivotsuche)
A(0) := A
for k from 1 to n − 1 do {
(k−1)
1. suche i ∈ {k, . . . , n} mit |Aik
(k−1)
| ≥ |Ai0 k
43
| für alle i0 ∈ {k, . . . , n}
2. setze π
k : {1, . . . , n} → {1, . . . , n} die Permutation, die i und k vertauscht:

falls j = k,
i
πk (j) = k
falls j = i,


j
sonst
3. A(k−1) := Pπk A(k−1)
% vertausche Zeilen k und i in A(k−1)
4. bestimme Matrix Lk (vgl. (3.1.4)) durch Berechnung der Faktoren
(k−1)
lik =
Aik
(k−1)
Akk
,
i = k + 1, . . . , n
5. setze A(k) := Lk A(k−1)
}
setze π := πn−1 ◦ πn−2 ◦ · · · ◦ π1
setze P := Pπ
setze R := A(n−1) ,
L gegeben durch (3.1.7)
return(P,L,R)
% LR-Zerlegung von P A ist P A = LR.
Bemerkung 3.3.16 Der Algorithmus wird in der Praxis etwas anders realisiert: wie beim Fall
ohne Pivotsuche, Algorithmus 3.1.8, operiert man direkt auf der Matrix A und erhält am Schluß
das Endschema R anstelle von A. Außerdem wird wie in Algorithmus 3.1.10 der Linksdreiecksfaktor L ebenfalls im unteren Teil von A abgespeichert. Die Permutationsmatrix P wird nicht
explizit aufgestellt, sondern es wird nur ein Vektor mit natürlichen Zahlen zurückgegeben, der
angibt, wie die Zeilen von A permutiert werden.
Wir führen das Vorgehen an einem einfachen Beispiel vor.
Beispiel 3.3.17

1 2
A =  2 −7
1 24
Bei der Pivotsuche in der 1. Spalte, stoßen wir auf die 2.

2
A(0) =  1
1

2
2 
0
Zeile. Man vertauscht also die 1. und 2. Zeile:

−7 2
2 2 
24 0
und führt dann den Eliminationsschritt durch. Es ist l21 = 0.5, l31 = 0.5 und damit


2 −7
2
1 .
A(1) =  0 5.5
0 27.5 −1
(1)
(1)
(1)
Bei der Pivotsuche in der 2. Spalte müssen wir nun nur die Elemente A22 und A32 vergleichen. Da A32
(1)
betragsmäßig größer ist als A22 , vertauschen wir die 2. und die 3. Zeile:


2 −7
2
A(1) =  0 27.5 −1  .
0 5.5
1
44
5.5
Beim nächsten Eliminationsschritt entsteht l32 = 27.5
= 0.2. Wir erhalten



1
2 −7
2
L =  0.5
R = A(2) =  0 27.5 −1  ,
0.5
0
0
1.2
als Endschema und als Matrix L

0 0
1 0 .
0.2 1
Es bleibt, die Permutationsmatrix P zu bestimmen. In Algorithmus 3.3.15 wurde die Permutationen π1 , π2
aufgestellt mit
π1 (1) = 2,
π1 (2) = 1,
π1 (3) = 3
π2 (1) = 1,
π2 (2) = 3,
π2 (3) = 2.
Damit ergibt sich für π = π2 ◦ π1 :
π(1) = 3,
π(2) = 1,
π(3) = 2
und somit für die Permutationsmatrix Pπ

0 1
P = Pπ =  0 0
1 0

0
1 .
0
Man hätte die Permutation π auch weniger formal durch Verfolgen der Zeilenvertauschungen erhalten können:
die ursprünglich 1. Zeile ist zur 3. Zeile geworden (im ersten Schritt wurden Zeilen 1 und 2 vertauscht, in zweiten
Schritt Zeilen 2 und 3), die ursprüngliche 2. Zeile ist zur 1. Zeile geworden, und die ursprünglich 3. Zeile ist am
Schluß die 2. Zeile. Die Permutation π ist damit π(1) = 3, π(2) = 1, π(3) = 2. Man überzeugt sich davon, daß
in der Tat LR = P A.
Das Lösen von Gleichungssystemen erfolgt dann so:
Algorithmus 3.3.18
input: reguläre Matrix A ∈ Rn×n , b ∈ Rn ,
output: Lösung x von Ax = b
1. Bestimme P , L, R mithilfe von Algorithmus 3.3.15 so, daß P A = LR.
2. Setze b0 := P b und löse Ly = b0 mithilfe von Algorithmus 3.1.1.
3. Löse Rx = y mihilfe von Algorithmus 3.1.2.
Bemerkung 3.3.19 Im 2. Schritt von Algorithmus 3.3.18 wird die Multiplikation P b nicht als
Matrix-Vektor Multiplikation ausgeführt, sondern es werden natürlich nur die entsprechenden
Zeilen in b vertauscht.
Daß Algorithmus 3.3.15 tatsächlich die LR-Zerlegung einer Zeilenpermutation von A liefert,
garantiert der folgende Satz.
Theorem 3.3.20 Zu jeder regulären Matrix A ∈ Rn×n existiert eine Permutationsmatrix Pπ ,
so daß eine Dreieckszerlegung
LR = Pπ A
möglich ist. Hier ist L ∈ L1n und R ist eine Rechtsdreiecksmatrix. Zudem gilt
|Lij | ≤ 1
∀i, j ∈ {1, . . . , n}.
45
Beweis: Die LR-Zerlegung und die Permutationsmatrix, deren Existenz im Satz behauptet
wird, konstruieren wir mithilfe von Algorithmus 3.3.15. Im ersten Schritt von Algorithmus 3.3.15
wird (falls nötig) eine Zeilenvertauschung von zwei Zeilen durchgeführt, so daß die neue Matrix
A(0) := Pπ1 A,
(0)
so daß A11 das betragsmäßig größte Element der ersten Spalte von A(0) ist. Die Permutationsmatrix Pπ1 vermittelt dabei die Vertauschung der beiden Zeilen (Pπ1 = Id falls keine
(0)
Vertauschung nötig ist). Zudem ist A11 6= 0, denn sonst wäre die erste Spalte identisch Null
(0)
im Widerspruch zur Annahme, daß A regulär ist. Weil A11 das betragsgrößte Element in der
(0)
(1)
ersten Spalte von A(0) ist, gilt für die Einträge li1 = Ai1 /A11 , daß |li1 | ≤ 1. Wir erhalten also
nach dem ersten Eliminationsschritt mit L1 gegeben durch (3.1.4):

 (1)
A11 ∗ · · · ∗

 0


A(1) = L1 A(0) = L1 Pπ1 A =  .
.
(1)

 ..
B
0
(1)
Aus der Regularität von L1 , Pπ1 und A folgt also 0 6= det A(1) = A11 det B (1) . Mithin ist die
Untermatrix B (1) regulär. Wir können also mit Algorithmus 3.3.15 fortfahren und erhalten
schließlich
R = A(n−1) = Ln−1 Pπn−1 Ln−2 Pπn−2 · · · L1 Pπ1 A,
(3.3.12)
wobei die Matrizen Lk alle Einträge haben, die betragsmäßig durch 1 beschränkt sind. Um die
Frobeniusmatrizen Lk von den Permutationsmatrizen Pπk zu separieren, schieben wir in der
Darstellung von R aus (3.3.12) zwischen die Faktoren Lk und Pπk die Identität Pk−1 Pk , wobei
die Permutationsmatrix Pk gegeben ist durch: Pk := Pπn−1 Pπn−2 · · · Pπk+1 (Pn−1 = Idn ). Wir
erhalten damit
−1
−1
−1
−1
R = Ln−1 Pn−1
Pn−1 Pπn−1 Ln−2 Pn−2
Pn−2 Pπn−2 Ln−3 Pn−3
Pn−3 Pπn−3 Ln−4 Pn−4
Pn−4 · · · L1 P1−1 P1 Pπ1 A.
Weil Pk Pπk = Pk−1, ergibt sich mit der Abkürzung
L̂k := Pk Lk Pk−1
(3.3.13)
für R:
R = L̂n−1 L̂n−2 · · · L̂1 P0 A.
Da P0 als Verkettung von Permutationsmatrizen eine Permutationsmatrix ist, bleibt zu zeigen,
daß das Produkt der Matrizen L̂k tatsächlich eine Linksdreiecksmatrix ist. Sei π : {1, . . . , n} →
{1, . . . , n} eine beliebige Permutation, die nur die Zahlen ≥ k + 1 permutiert (d.h. π(j) = j
für j ≤ k). Dann überzeugt man sich davon, daß für eine Frobeniusmatrix Lk von der Form
(3.1.4) gilt:


1
..


.




1


L̂k = Pπ Lk Pπ−1 = Pπ Lk Pπ> = 
(3.3.14)
.
−lπk (k+1),k 1




..
..


.
.
−lπk (n),k
1
46
Die oben eingeführten Permutationen Pk sind genau von der Art, daß bei den zugehörige
Permutationen der Zahlen 1 bis n nur die Zahlen ≥ k + 1 permutiert werden. Also haben die
Matrizen L̂k aus (3.3.13) die Darstellung (3.3.14). Aus Satz 3.1.5 folgt damit, daß
−1
−1
L := L̂−1
1 L̂2 · · · L̂n−1
tatsächlich ein Element von L1n ist. Zusätzlich liefert Satz 3.1.5 die

1
 lπ (2),1
1
 1
 lπ (3),1 lπ (3),2 1
L= 1
2

..
..
..

.
.
.
lπ1 (n),1 lπ2 (n),2 · · · lπn−1 (n),n−1 1
explizite Darstellung







Die Permutationsmatrix P0 gehört nach Definition zu einer Permutation der Zahlen 1 bis n,
die gerade die Vertauschung der Zeilenindizes während Algorithmus 3.3.15 angibt.
2
Bemerkung 3.3.21 Satz 3.3.20 zusammen mit Algorithmus 3.3.15 kann (zumindest bei der
Handrechnung) dazu benutzt werden, festzustellen, ob eine gegebene Matrix A regulär ist, da
Satz 3.3.20 zeigt, daß Algorithmus 3.3.15 nur abbricht, wenn die gegebene Matrix nicht regulär
ist.
Bemerkung 3.3.22 (Rechtfertigung der Spaltenpivotsuche) Beispiel 3.3.12 zeigte, daß
Spaltenpivotsuche die numerische Stabilität von Algorithmen erhöhen kann. Wie unsere Plausibilitätsbetrachtungen im Anschluß an Beispiel 3.3.11 gezeigt haben, ist die Spaltenpivotsuche
eine sinnvolle Strategie unter einer Annahme an die Skalierung des Problems; wir nahmen
nämlich an, daß die Einträge der Lösung und der rechte Seite des linearen Gleichungssystems
von vergleichbarer Größe sind. Diese Art der Skalierung kann man erreichen, indem man nicht
das lineare Gleichungssystem Ax = b, sondern das System
(D1 AD2 )x0 = b0 := D2 b,
x = D2 x0
betrachtet, wobei D1 , D2 geeignete Diagonalmatrizen sind. Algorithmisch ist es jedoch sehr
schwer, D1 , D2 zu finden; Programme zum Lösen linearer Gleichungssysteme überlassen deshalb
die Skalierung meist dem Benutzer und verwenden höchstens die Spaltenpivotsuche.
Bemerkung 3.3.23 (Vollpivotsuche) Die Spaltenpivotsuche bei der LR-Zerlegung verursacht zusätzliche Kosten O(n2 ), die im Verhältnis zu den Gesamtkosten O(n3 ) relativ klein
sind. (Übung: Geben Sie genau an, wieviele Vergleiche bei der Spaltenpivotsuche gemacht
werden müssen.)
Alternativ zur Spaltenpivotsuche kann auch eine Vollpivotsuche durchgeführt werden. Dabei
wird in jedem Schritt des Gaußalgorithmus das betragsmäßig größte Element der Restmatrix
gesucht und durch Zeilen- und Spaltenvertauschungen zum Pivot gemacht. Man erhält auf
diese Weise eine Zerlegung
Pπ APπ0 = LR
47
der Matrix A, wobei die Permutationen π, π 0 die Zeilen- und Spaltenvertauschungen repräsentieren.
Die Einträge der berechneten Faktoren L̃, R̃ sind betragsmäßig kleiner als bei Spaltenpivotsuche, so daß man erwartet, daß Gaußelimination mit Vollpivotsuche numerisch stabiler ist.
Sie wird jedoch aus Kostengründen nur sehr selten eingesetzt, denn der zusätzliche Aufwand
ist nun O(n3).
3.3.3
Existenz von LR-Zerlegungen ohne Spaltenpivotsuche
Pivotstrategien sind oft nötig, um numerische Stabilität beim Lösen von Gleichungssystemen
zu gewährleisten. Nachteile sind:
1. Mehraufwand: Für die Pivotsuche werden zusätzliche O(n2 ) Operationen benötigt.
2. Verlust der Besetzungsstruktur: Bei Matrizen mit bestimmten Besetzungsstrukturen (z.B.
Skyline-Matrizen) kann die Besetzungsstruktur durch die Zeilenvertauschungen verloren
gehen. Damit erhöhen sich die Kosten für die Berechnung und die Speicherung der Faktoren L und R.
Es ist deshalb von Interesse, Klassen von Matrizen auszumachen, bei denen die LR-Zerlegung
auch ohne Pivotsuche durchgeführt werden kann.
Der folgende Satz charakterisiert die Menge der Matrizen, die eine LR-Zerlegung besitzen:
Theorem 3.3.24 Sei A ∈ Rn×n regulär. Dann besitzt A eine LR-Zerlegung genau dann wenn
alle Hauptminoren Ak , k = 1, . . . , n regulär sind. Hierbei ist Ak ∈ Rk×k gegeben durch (Ak )ij =
Aij , i, j = 1, . . . , k.
Beweis: Übung.
2
In der Praxis ist die Regularität der Hauptminoren nur schwer überprüfbar. Für die folgenden
beiden Klassen von Matrizen ist jedoch die die Existenz einer LR-Zerlegung gesichert:
1. Symmetrisch positiv definite Matrizen: Satz 3.2.3 garantiert, daß die Cholesky-Faktorisierung
ohne Pivotsuche durchgeführt werden kann.
2. Diagonal dominanten Matrizen: der folgende Satz 3.3.25 zeigt, daß diagonal dominante
Matrizen eine LR-Zerlegung besitzen.
Wir rekapitulieren: Eine Matrix A ∈ Rn×n heißt Zeilen diagonaldominant, falls
X
|Aii | >
|Aij |
∀i ∈ {1, . . . , n}.
j6=i
Theorem 3.3.25 Es gilt: eine diagonal dominante Matrix hat eine LR-Zerlegung, die mithilfe
der Gauss Elimination ohne Pivotsuche, d.h. Algorithmus 3.1.9, bestimmt werden kann.
Beweis: Übung (vgl. Aufgabe 13).
2
48
3.3.4
Nachiteration
Bei schlecht konditionierten Problemen kann es passieren, daß die Lösung, die man mit Algorithmus 3.3.18 erhält, stark fehlerbehaftet ist. Durch Rundungsfehler hat man z.B. nicht die
eR.
e Anstatt nun die approxiexakte LR-Zerlegung von P A sondern nur eine Approximation L
mative LR-Zerlegung zu verwerfen und mit erhöhter Rechengenauigkeit die gesamte Rechnung
erneut durchzuführen, wendet man Nachiteration (engl.: iterative refinement/improvement)
an.
eR
e
Es soll Ax = b berechnet werden, und es existiere eine (approximative) LR-Zerlegung L
eRx
e = b mithilfe der Algorithmen 3.1.1, 3.1.2
von A. Es wird zunächst eine Lösung x von L
e und R)
e kann
bestimmt. Durch Rundungsungenauigkeiten (auch schon beim Aufstellen von L
es sein, daß die berechnete Lösung x zu ungenau ist. Um eine Verbesserung der Lösung zu
erhalten, wird nun eine Korrektur ∆x der berechneten Lösung x gesucht, d.h. wir verlangen,
daß x + ∆x die Gleichung A(x + ∆x) = b erfüllt. Somit erhalten für die gesuchte Korrektur
∆x die sog. Residualgleichung
A∆x = r := b − Ax.
(3.3.15)
Man beachte, daß das Residuum r 6= 0, weil x nicht die exakte Lösung unseres ursprünglichen
Problems ist. Da für A bereits eine (approximative) LR-Zerlegung vorliegt, erfolgt das Lösen
der Residualgleichung (3.3.15) wieder einfach nur durch eine Vorwärts- und eine Rückwärtssubstitution. Der folgende Algorithmus formalisiert dieses Vorgehen.
Algorithmus 3.3.26 (Nachiteration)
input : (approximative) LR-Zerlegung einer Matrix A, rechte Seite b
output: Lösung x von Ax = b
1. Bestimme Lösung x von LRx = b mithilfe von Algorithmen 3.1.1, 3.1.2
2. Bestimme das Residuum r = b − Ax mit erhöhter Rechengenauigkeit
3. Falls das Residuum r zu groß ist (in einer geeigneten Norm), finde Korrektur
∆x als Lösung von LR∆x = r mithilfe von Algorithmen 3.1.1, 3.1.2.
4. setze x := x + ∆x und gehe zu 2.
Wesentlich in der Praxis ist dabei, daß das Residuum im 2. Schritt mit erhöhter Genauigkeit
ausgewertet wird; wurde die LR-Zerlegung z.B. nur in einfacher Genauigkeit bestimmt, so wird
das Residuum in doppelter Genauigkeit ausgewertet. Da wir bereits gesehen hatten, daß die
Vorwärts- und Rückwärtssubstitution relativ billig im Vergleich zur LR-Zerlegung sind, ist die
Nachiteration vom Standpunkt des Aufwandes eine attraktive Möglichkeit, die Genauigkeit
einer rundungsfehlerbehafteten Lösung zu verbessern.
49
Herunterladen