M ATHEMATISCHES I NSTITUT P ROF. D R . ACHIM S CH ÄDLE F ELIX L IEDER D R . G EORG J ANSING 7 8 9 Σ N AME : M AT- NR .: 4. M AI 2017 N AME : M AT- NR .: N AME : Numerik I – 3. Übungsblatt M AT- NR .: G RUPPE : Aufgabe 7: (3+3 Punkte) (a) Bestimmen Sie das Volumen V des Rotationskörpers R, der gegeben ist als R = {(x, y, z)|z ∈ [− h2 , h2 ], k(x, y)k ≤ f (z)} mit einer stetigen Funktion f : [− h2 , h2 ] → R≥0 . (b) Wir wollen nun das Volumen eines Fasses nach der Kepler’schen Fassregel bestimmen: Wir können das Fass von Innen gemäß der Skizze in Abbildung 1 ausmessen. Dabei können wir die Länge l des gestrichelten Messstabes und den Neigungswinkel ϕ messen. Approximieren Sie das Volumen des Fasses mit Hilfe der Simpsonregel, indem Sie die Länge des Stabes und den Winkel an den beiden Extrempunkten und die Länge in der Mitte messen. A ϕ 0 − h2 l h 2 B Abbildung 1: Veranschaulichung der Kepler’schen Messmethode für das Volumen eines Fasses Quelle: http://www.keplerraum.at/fass.html b.w. Aufgabe 8: (2+4 Punkte) Bestimmen Sie die Lobatto-Quadraturformeln mit (a) drei und (b) vier Knoten. Aufgabe 9: Bestimmen Sie die zweistufige Gauß-Quadraturformel der Ordnung 4, um ein Integral auf dem Intervall [−π, π] zu approximieren. Das heißt, bestimmen Sie (bi , ci )2i=1 , sodass für alle Polynome g vom Grad kleiner gleich 3 gilt: Z π g(x) dx = b1 g(c1 ) + b2 g(c2 ). −π Begründen Sie Ihren Ansatz. Programmieraufgabe 3: (a) Implementieren Sie eine adaptive Quadraturformel wie in der Vorlesung zur Approximation von Z b f (x) dx a Verwenden Sie dabei eine 15-stufige Gauß-Quadraturformel und einen 14- und einen sechsstufigen Fehlerschätzer wie in (7.2) III in der Vorlesung (Variante von Hairer im Onlineskript) für die Fehlerschätzung. Die Knoten und Gewichte können Sie auf der Numerik 1 Homepage in der Datei gauss15.m bzw. gauss15.py herunterladen. (b) Testen Sie ihr Programm an dem Beispiel aus dem Hairer Skript auf Seite 17, d.h. f (x) = 2 + sin 3 cos 0.002(x − 40)2 (1) auf dem Intervall [10, 110] mit Toleranzen 10−2 , 10−4 und 10−8 . Zeigen Sie die Zerlegung die Ihr Algorithmus berechnet und vergleichen Sie den geschätzten Fehler mit dem tatsächlichen Fehler. Dabei können Sie den “exakten” Wert des Integrals mittels einer der Matlab Routinen quadl oder integral bzw. der Python Routine scipy.integrate.quad berechnen. Denken Sie daran bei der Berechnung des “exakten” Wertes jeweils eine sehr kleine Fehlertoleranz vorzugeben! Hinweis: Sie haben für diese Programmieraufgabe zwei Wochen Zeit und sie zählt wie zwei Aufgaben für die Zulassung. Abgabe der Übungsaufgaben am Donnerstag, 11. Mai zu Beginn der Vorlesung. Abgabe der Programmierübungen per E-Mail bis Freitag, 19. Mai, 23:59 Uhr an [email protected] mit Betreff PA# Gr#, wobei # für die Nummer der Programmieraufgabe bzw. der Programmierübungsgruppe steht.