Universit¨at Heidelberg
Interdisziplin¨ares Zentrum f¨ur Wissenschaftliches Rechnen
Dr. Andreas Potschka
Ubungsblatt 4¨
Einf¨uhrung in die Numerik, Sommersemester 2017
1. Praktische Interpolation (4 Punkte)
F¨ur verschiedene Orte wurde an einem bestimmten Tag die Tagesl¨ange gemessen:
Ort: A B C D E
Tagesl¨ange: 17h 28m 18h 00m 18h 31m 19h 56m 22h 34m Lage: 55,7◦ 57,7◦ 59,3◦ 62,6◦ 65,6◦
Man bestimme die Tagesl¨ange am Ort F bei 61,7o durch Auswertung des zugeh¨origen Interpolationspolynoms mit Hilfe des Neville-Algorithmus. (Es gen¨ugt 4-stellige Dezimal- rechnung.)
2. Schnelle Auswertung komplizierter Funktionen (5 Punkte) Es soll eine 10-stellige Wertetabelle von
f(x) = Z x
0
sin(t)2dt, x∈[0, π],
erstellt werden (in Festkommadarstellung), so dass kubische Lagrange-Interpolation mit den St¨utzstellenxi−1, . . . , xi+2f¨urx∈[xi, xi+1] einen Fehler kleiner als 5·10−9 f¨ur jeden Wert von x im Intervall 1
100, π−1001
ergibt. Reichen dazu die Werte zu 250 ¨aquidistant verteilten St¨utzstellen aus?
Hinweis: Sie m¨ussen die Wertetabelle nicht explizit aufstellen. Der Auswertungsfehler setzt sich zusammen aus dem absoluten Interpolationsfehler und dem absoluten Rundungsfehler in den zur Interpolation verwendeten St¨utzwerten.
3. Approximation durch Interpolation (3 Punkte)
Gegeben sei die Funktion f(x) = eλx, λ ∈ R, auf einem Intervall [a, b] . Man zeige, dass in diesem Fall der Fehler f −pn der Lagrange-Interpolation von f uber beliebig verteilten¨ n+ 1 (paarweise verschiedenen) St¨utzstellen aus [a, b] f¨ur n→ ∞ gleichm¨aßig gegen Null konvergiert:
x∈[a,b]max |f(x)−pn(x)| →0 (n→ ∞).
Was unterscheidet diese Funktion von dem Beispiel f(x) = (1 + 25x2)−1 von Runge, f¨ur welches die Lagrange-Interpolation f¨ur n→ ∞ nicht f¨ur beliebige St¨utzstellen konvergiert?
4. Hermite-Interpolation (4 Punkte)
Wir betrachten die Hermitesche Interpolationsaufgabe, zu (paarweise verschiedenen) St¨utz- stellen xi (i= 0, . . ., m) und zu gegebenen Werten yi(0), y(1)i (i = 0, . . ., m) ein Polynom p∈Pn, n= 2m+ 1 , so zu bestimmen, dass
p(xi) =y(0)i , p0(xi) =yi(1) (i= 0, . . ., m).
Man modifiziere die entsprechende Argumentation f¨ur die Lagrange-Interpolation, um zu zeigen:
a) Die Hermitesche Interpolationsaufgabe besitzt eine eindeutig bestimmte L¨osung.
b) Im Falle der Interpolation einer (n+ 1)-mal stetig differenzierbaren Funktionf mit den Bedingungen p(xi) =f(xi), p0(xi) =f0(xi), i= 0, . . ., m,gilt die Fehlerdarstellung
f(x)−p(x) = f(n+1)(ξx) (n+ 1)!
m
Y
i=0
(x−xi)2 mitx-abh¨angigen Zwischenstellen ξx ∈[a, b] .
PA. Lagrange-Interpolation (3 + 2 + 1 + 4 + (4) = 10 + (4) Punkte) a) Schreiben Sie eine Funktion divdiff add node(X, Y, n, x, y), die durch folgende
Eigenschaften spezifiziert ist:
i. X ist ein eindimensionales NumPy-Array der Gr¨oße mindestens n+ 2. Die ersten n+ 1 Eintr¨age enthalten St¨utzstellen.
ii. Yist ein zweidimensionales NumPy-Array der Gr¨oße mindestens (n+ 2)×(n+ 2).
Das obere Dreieck der Gr¨oße (n+ 1)×(n+ 1) enth¨alt Dividierte Differenzen zu den Knoten inX.
iii. Die Funktion soll die Argumente X und Y so modifizieren, dass sie die Dividierten Differenzen unter Hinzunahme des neuen St¨utzpunkts (x,y) sind.
iv. Die Funktion solln+ 1 zur¨uckgeben.
Hinweis:Offensichtlich sind die ArgumenteXundYdurch die Modifikation “versteckte”
R¨uckgabewerte. Python teilt Datentypen inmutableundimmutableein. NumPy-Arrays sind mutable (k¨onnen aber ¨uber einen Flag umgestellt werden). Der Datentyp int ist immutable, weswegen wir n nicht modifizieren k¨onnen. Der Vorteil dieser Art der Ubergabe von¨ Xund Yist, dass die Funktion f¨ur sie keinen Speicher anlegen, freigeben oder kopiert muss. Der Nachteil ist, dass man vorher wissen muss, wie viele St¨utzpunkte maximal betrachtet werden.
b) Schreiben Sie eine Funktion horner newton(xi, X, Y, n), das auf Basis der unter a) beschriebenen Argumente das Interpolationspolynom vom Grad n numerisch effizient an den im Vektorxi gegebenen Stellen auswertet.
c) Benutzen Sie die Funktionen aus a) und b), um alle Lagrange-Basispolynome vom Grad 4 zu ¨aquidistanten St¨utzstellen auf [−1,1] (Intervallenden sind St¨utzstellen) zu plotten.
d) Berechnen und plotten Sie das Lagrange-Interpolationspolynom der auf [−1,1] definier- ten (nicht Lipschitz-stetigen) Funktion
g(x) = sign(x)p
|x|.
zu ¨aquidistanten St¨utzstellen und den Tschebytschow-Punkten erster Art xi = cos
2i+ 1 2(n+ 1)π
, i= 0, . . . , n,
f¨urn∈ {5,11,21,51}. Vergleichen Sie jeweils das Verhalten der Interpolation mit dem Verhalten, wenn Sie die Interpolationspunkte linear auf das Intervall [0,1] transformie- ren und den Fehler nur auf dem positiven Ast f¨urx∈[0,1] betrachten.
e) 4 Bonuspunkte: Schreiben Sie eine Interpolationsklasse, die den Funktionsumfang von a), b) und die Verwaltung vonX,Yund nkapselt.
Abgabe bis Donnerstag, 18.05.2017, 14:15 Uhr.
Webseite:
http://typo.iwr.uni-heidelberg.de/groups/mobocon/teaching/numerik-0-ss17