FERIENKURS ZUM PROP¨ADEUTIKUM NUMERIK

Werbung
FERIENKURS ZUM PROPÄDEUTIKUM NUMERIK LÖSUNGEN
MATTHIAS VESTNER
1. Grundlagen
Aufgabe 1.1.
(1) Bezeichne z0 bzw. z1 die kleinste Maschinenzahl einfacher
Genauigkeit, die noch größer ist als 0 bzw. 1. Gebe für die folgenden Mengen
jeweils z0 , z1 sowie das größte und das kleinste Element (6= ±∞)an:
(a) M10,4,−3,3
(b) M2,24,−126,127
(2) Was passiert, wenn wir auch unnormalisierte Zahlen zulassen?
(3) Gesucht sind jeweils zwei Zahlen x 6= 0, y aus obigen Mengen, so dass
xy =0
Lösung:
Für allgemeines Mb,t,emin ,emax gilt:
t−1
• z0 = b bt · bemin = bemin −1 bzw. im unnormalisierten Fall: z0 = b1t ·
bemin = bemin −t
• z1 = 1 + b−(t−1)
t
· bemax
• max(Mb,t,emin ,emax \∞) = b b−1
t
bt −1
• min(Mb,t,emin ,emax \ − ∞) = − bt · bemax
(2) siehe oben
(3) Es muss gelten: fl( xy ) = 0, also xy < z20 . Wähle also zum Beispiel x = z0 , y =
3
(1)
Aufgabe 1.2. Berechne jeweils die absolute und die relative Kondition folgender
Probleme
(1) f (x) = x − y für festes y ∈ R
(2) f (q) = x1 , dabei bezeichne x1 die größere Nullstelle des Polanoms x2 −2x+q
(3) f (p) = x1 , dabei bezeichne x1 die größere Nullstelle des Polanoms x2 −px+1
Für welche Werte von p und q ist sind diese Probleme schlecht konditioniert?
(4) ”Bestimme die Nullstelle einer stetig differenzierbaren Funktion f”. Stimmt
das Ergebnis mit der Intuition überein?
Lösung:
x
. Für x ≈ y ist dieses Problem also
(1) κabs (x) = |f 0 (x)| = 1, κrel = x−y
schlecht konditioniert
√ (Auslöschung, siehe Skript).
(2) Es gilt: f (q) = 1 + 1 − q und damit für die Kondition: κabs (q) = |f 0 (q)| =
√1
bzw. für q = 1 − δq:
2 1−q
√
1/2 δq
1 − δq
√
√ ) → ∞
κrel (q) =
= √
(1 + δq)/(1 − δq)
2 δq(1 + δq |{z}
δq→0
1
2
MATTHIAS VESTNER
Für q ≈ 1 ist das Problem
q also schlecht konditioniert.
2
p
(3) Es gilt: f (p) = 2 + p4 − 1 und damit für die Kondition: κabs (p) =
. Somit ist das Problem für p = ±2 schlecht kondi|f 0 (p)| = 12 + √ p2
4p −16
tioniert. In diesen Fällen handelt es sich bei dem Polynom wie schon in der
vorherigen Teilaufgabe um ein Binom, die Nullstelle tritt also doppelt auf.
(4) Intuitiv ist klar: je steiler f die x-Achse schneidet, desto besser ist das Problem konditioniert.
Tatsächlich gilt:
1 κabs = (f −1 )0 (0) = 0
f (x) Aufgabe 1.3. Zur Lösung des Problems y = f (a, b, c) = a + b + c stehen die
folgenden Algorthmen zur Verfügung:
• f˜1 (a, b, c) = (a ⊕ b) ⊕ c
• f˜2 (a, b, c) = a ⊕ (b ⊕ c)
Welche Auswirkungen haben Rundungsfehler auf das Ergebnis? Welchen der Algorithmen sollte man im Fall
(1.1)
t =
8
(1.2)
a
0.23371258 · 10−4
(1.3)
b =
(1.4)
c = −0.33677811 · 102
=
0.33678429 · 102
nutzen. Überprüfe deine Vermutung!
Lösung:
Wir erhalten bei Gleitpunktrechnung statt y einen Näherungswert ỹ = fl((a⊕b)⊕c),
für den gilt:
z =a⊕b
= fl(a + b)
ỹ = z ⊕ c
= (z + c)(1 + ε2 )
= (a + b + c)(1 +
a+b
( a+b+c
ε1 (1
Für den relativen Fehler εy :=
ỹ−y
y
= (a + b)(1 + ε1 )
= ((a + b)(1 + ε1 ) + c)(1 + ε2 )
+ ε2 ) + ε2 )
gilt daher:
a+b
ε1 (1 + ε2 ) + ε2
a+b+c
oder bei Vernachlässigung von Termen höherer Ordnung:
a+b
εy =
ε1 + ε2 + O(ε2 )
a+b+c
a+b
Die Verstärkungsfaktoren a+b+c
bzw. 1 geben an, wie stark sich die Rundungsfehler
a+b
ε1 , ε2 im relativen Fehler εy des REsultats auswirken. Der kritische Faktor ist a+b+c
:
Je nachdem ob |a + b| oder |b + c| kleiner ist, ist es günstiger (numerisch stabiler)
die Summe a + b + c nach der Formel (a + b) + c bzw. a + (b + c) zu bilden.
Es gilt:
a+b
1 5
≈
10
a+b+c
2
b+c
≈ 0, 97
a+b+c
εy =
FERIENKURS ZUM PROPÄDEUTIKUM NUMERIK - LÖSUNGEN
3
Man sollte also den zweiten Algorithmus verwenden.
Die Überprüfung ergibt:
= 0, 6413712258 · 10−3
a+b+c
2
2
(a ⊕ b) ⊕ c
= 0, 33678452 · 10 0, 33677811 · 10
a ⊕ (b ⊕ c)
= 0, 23371258 · 10−4 ⊕ 0, 61800000 · 10−3 = 0, 64137126 · 10−3
= 0, 64100000 · 10−3
Aufgabe 1.4. Zeige, dass eine rückwärtsstabile Implementierung der Subtraktion ist.
Lösung:
Schreibe f (x, y) = x − y bzw. f˜(x, y) = x y. Es gilt:
f˜(x, y)
= fl(x) − fl(y)
= x(1 + ε1 )(1 + ε3 ) − y(1 + ε2 )(1 + ε3 )
= (x(1 + ε1 ) − y(1 + ε2 )(1 + ε3 )
= x(1 + ε4 ) − y(1 + ε5 )
für ε4,5 ≤ 2ε + O(ε2 )Mit
x(1 +ε4 ) bzw. ỹ = y(1 + ε5 ) erhalten wir also
x̃ = ε4 x̃
x
= O(ε).
=
−
f˜(x, y) = f (x̃, ỹ) und ỹ
y ε5 2. Lineare Gleichungssysteme
Aufgabe 2.1. Sei A eine 3 × 3-Matrix. Schreibe folgende Operationen als MatrixMatrix-Produkte:
•
•
•
•
verdopple Spalte 1
halbiere Zeile 3
addiere Zeile 2 auf Zeile 3
vertausche die Spalten 1 und 2
Lösung:
•
•
•
•

2
A · 0
0

1 0
0 1
0 0
1 0
0 1
0 1
0
A · 1
0

0 0
1 0
0 1

0
0 · A
1
2
0
0 · A
1 
1 0
0 0
0 1
Aufgabe 2.2. Bescheibe mit Worten, wie die Multiplikation von B mit A die
Matrix A verändert.






1 −1 0
1 0 0
0 0
B = 0 1 0 (von links) B = 0 1 1 6(vonrechts) B = 1 0 (von rechts)
0 −1 1
0 0 0
0 1
4
MATTHIAS VESTNER
Lösung:
Spaltenoperationen entsprechen Multiplikationen von rechts, Zeilenoperationen Multiplikationen von links.
• Subtrahiere Zeile 2 von allen anderen Zeilen
• Überschreibe Spalte 3 mit Spalte 2
• Lösche Spalte 1.
Aufgabe 2.3. Zeige, dass die nichtsingulären bzw. unipotenten unteren Dreiecksmatrizen jeweils eine Untergruppe der invertierbaren m × m-Matrizen bilden! (Induktion)
Lösung:
Wir zeigen per Induktion über die Dimension m, dass die nicht-singulären bzw.
unipotenten unteren Dreiecksmatrizen unter Multiplikation und Invertierung abgeschlossen sind.
• Induktionsanfang (m = 1): Die nichtsingulären bzw. unipotenten 1 × 1
unteren Dreiecksmatrizen bilden die multiplikativen Gruppen R\0 bzw. 1.
• Induktionsschritt
(m −1 → m):
K̃ 0
L̃ 0
nichtsinguläre (unipotente)
und K =
Es seien L =
vT κ
uT λ
untere Dreiecksmatrizen der Dimension m.
– L nichtsinguläre (unipotente) untere Dreiecksmatrix ⇔ sämtliche Diagonalelemente 6= 0 (= 1) ⇔ L̃ nichtsinguläre (unipotente) Dreiecksmatrix der Dimension m − 1 und λ 6= 0 (λ = 1)
– Die Induktionsvoraussetzung liefert: L̃ · K̃ ist eine nichtsinguläre (unipotente) untere Dreiecksmatrix, also auch
L̃ · K̃
0
L·K =
uT K̃ + λv T λ · κ
– Die Induktionsvoraussetzung liefert: L̃−1 ist eine nichtsinguläre (unipotente) untere Dreiecksmatrix. Setzt man den Ansatz
−1
L̃
0
L−1 =
wT λ−1
T
−1
in die Beziehung L · L−1 = I ein, so wird diese durch wT = − u λL̃
gelöst. Also ist auch L−1 eine nichtsinguläre bzw. unipotente untere
Dreiecksmatrix.


2 1 1
Aufgabe 2.4. Bringe die Matrix A = 4 3 3 durch geeignete Multiplikation
8 7 9
mit unteren Dreiecksmatrizen auf obere Dreiecksgestalt!
Lösung:

1
0
0
0
1
−3
 
0
1
0 · −2
1
−4
 
0 0
2
1 0 · 4
0 1
8
1
3
7
 
1
2
3 = 0
9
0
1
1
0

1
1
2
FERIENKURS ZUM PROPÄDEUTIKUM NUMERIK - LÖSUNGEN
5
Aufgabe 2.5. Zeige: Besitzt eine Matrix A ∈ Rm×m eine Zerlegung A = L · R, so
sind L und R eindeutig.
Hinweis: Auch die oberen Dreieckmatrizen bilden eine Gruppe.
Lösung:
Seien A = L1 R1 = L2 R2 zwei solche LR-Zerlegungen. Multiplikation von links
−1
−1
−1
mit L−1
2 und von rechts mit R1 liefert die Identität L2 L1 = R2 R1 einer unippotenten unteren Dreiecksmatrix mit einer oberen Dreiecksmatrix. Da die Einheitematrix die einzige Matrix mimt dieser Eigenschaft ist, gilt L1 = L2 und R1 = R2 .
0 1
Aufgabe 2.6. Zeige, dass die Matrix
keine LR-Zerlegung besitzt!
1 1
Lösung:
0 1
1 0
r1 r2
r1
Der Ansatz
=
·
=
1 1
l 1
0 r3
r1 l
r1 = 0 und somit einen Widerspruch, da 1 6= 0 = r1 l.
r2
r2 l + r3
liefert zunächst
Aufgabe 2.7. SPD-Matrizen lassen sich folgendermaßen zerlegen: A = LLT (CholeskyZerlegung). Entwickle einen Algorithmus zur Bestimmung von L.
Hinweis: Werte die Gleichung elementweise aus.
Lösung:
Elementweises Auswerten von A = LLT liefert:
2
2
2
+ lkk
+ · · · + lk,k−1
• Auf der Diagonale: akk = lk1
• Unter der Diagonale: aik = li1 lk1 + · · · + li,k−1 lk,k−1 + lik lkk
Aus dieser Beobachtung resultiert der folgende Algorithmus:
for k=1:n
L(k,k)=sqrt(A(k,k)-L(k,1:k-1)*L(k,1:k-1)’;
for i=(k+1):n
L(i,k)=A(i,k)-L(i,1:k-1)*L(k,1:k-1)’;
end
end
3. Lineare Ausgleichsprobleme
4. Nichtlineare Gleichungssysteme
5. Polynominterpolation
6. Schnelle Fourier-Transformation
Zugehörige Unterlagen
Herunterladen