Übungsblatt 2.

Einführung in die Numerik &
Numerik für Studierende der Naturwissenschaften
Frühjahrsemester 2017
Prof. Dr. H. Harbrecht
Übungsblatt 2.
Abgabe bis: Montag, 13.03.2017, 14 Uhr
Aufgabe 1 (LR-Zerlegung | 4 Punkte).
Bestimmen Sie die LR-Zerlegung der Matrix

2 6
4 4
A=
8 4
4 8

4 4
4 2
.
16 2 
0 13
Berechnen Sie det(A) mit Hilfe Ihrer LR-Zerlegung von A.
Aufgabe 2 (LR-Zerlegung von Tridiagonalmatrizen | 4 Punkte).
Gegeben sei die Tridiagonalmatrix


a1 c1
 b2 a2

c2




.
.
.
..
..
..
A=
 ∈ Rn×n .



bn−1 an−1 cn−1 
bn
an
Berechnen Sie die zugehörige LR-Zerlegung der Form



r1 s1
1


`2 1
r2






.
.
..
..
R=
L=
,






`n−1 1
`n 1

s2
..
.
..
.
rn−1



.

sn−1 
rn
Aufgabe? 3 (Kondition und Fehlerverstärkung | 4 Punkte).
Gegeben seien die Matrizen
101 99
A=
,
99 101
101 99
B=
.
−99 101
(a) Berechnen Sie die Konditionszahlen cond∞ A und cond∞ B.
(b) Lösen Sie die Gleichungssysteme
Ax = b,
A(x + ∆x) = b + ∆b,
b = b + ∆b
b
A(x + ∆x)
für die Vektoren
1
b=
,
1
δ
∆b =
,
δ
b =
∆b
δ
,
−δ
mit einer kleinen Zahl δ > 0. Vergleichen Sie die jeweiligen Fehler mit den allgemeinen Fehlerabschätzungen
k∆xk∞
k∆bk∞
≤ cond∞ (A)
kxk∞
kbk∞
und
b
b
k∆xk
k∆bk
∞
∞
≤ cond∞ (A)
.
kxk∞
kbk∞
Aufgabe? 4 (diagonaldominante Matrizen | 4 Punkte).
Sei A = [ai,j ]ni,j=1 eine strikt diagonaldominante (n × n)-Matrix, d.h. es gelte
n
X
|ai,j | < |ai,i | für i = 1, . . . , n.
j=1
j6=i
Zeigen Sie, dass die LR-Zerlegung durchführbar ist, wobei die bei jedem Teilschritt entstehende Matrix Ai wieder strikt diagonaldominant ist.
Programmieraufgabe 5 (Gauss-Algorithmus | 4 Punkte).
Die LR-Zerlegung kann durch folgenden Algorithmus berechnet werden:
Algorithmus Gauss
Input: A = [ai,j ]ni,j=1 ∈ Rn×n
Output: LR-Zerlegung von A
for j = 1, . . . , n − 1 do
for i = j + 1, . . . , n do
setze ai,j := ai,j /aj,j
for k = j + 1, . . . , n do
setze ai,k := ai,k − ai,j · aj,k
end for
end for
end for
Bei der Implementation in MATLAB ist es möglich die zwei inneren expliziten Schleifen
durch Vektor- und Matrixblockzuweisungen und Rang-1-Matrizen zu ersetzen. Für den
Rest der Aufgabe vereinbaren wir hierzu folgende Notation: Sei A = [ai,j ]ni,j=1 ∈ Rn×n
eine Matrix. Dann definieren wir


ai,j · · · ai,k

..  .
Ai:l,j:k :=  ...
. 
al,j · · · al,k
Der Algorithmus wird dann zu:
Algorithmus Gauss-Rank1
Input: A = [ai,j ]ni,j=1 ∈ Rn×n
Output: LR-Zerlegung von A
for j = 1, . . . , n − 1 do
setze Aj+1:n,j := Aj+1:n,j /aj,j
update Aj+1:n,j+1:n := Aj+1:n,j+1:n − Aj+1:n,j · Aj,j+1:n
end for
(a) Schreiben Sie MATLAB-Funktionen A = gauss(A) bzw. A = gaussRank1(A)
welche diese zwei Algorithmen numerisch implementieren.
(b) Testen Sie nun Ihre Implementierung. Gehen Sie dazu wie folgt vor:
A = toeplitz(3*666:-1:1);
B = A;
tic; B = gauss(B); toc oder tic; B = gaussRank1(B); toc
L = eye(size(B)) + tril(B, -1); U = triu(B);
norm(A - L*U)
Die berechnete Norm soll dabei von der Grössenordnung 10−10 sein.