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