Fachbereich Mathematik der Universität Hamburg SoSe 2014 Prof. Dr. Armin Iske Dr. Hanna Peywand Kiani Analysis II für Studierende der Ingenieurwissenschaften Blatt 3, Hausaufgaben Aufgabe 1: a) Es sei Ihnen die folgende Wertetabelle vorgelegt: x 0.0 0.1 0.2 0.3 0.4 0.5 sin(x) 0.000000 0.099833 0.198669 0.295520 0.389418 0.479426 Berechnen Sie unter Verwendung eines Interpolationspolynoms möglichst niedrigen Grades eine Näherung für den Wert von sin(0.25) mit einem gesicherten absoluten Fehler von höchstens 10 4. Dabei gehen Sie bitte davon aus, dass Ihr Taschenrechner zwar die elementaren Operationen +,,,/ durchführen kann, aber die sin, cos, etc. Tasten ausgefallen sind. Gehen Sie bei der Fehlerabschätzung davon aus, dass die Tabellenwerte exakt sind. b) Es sollen nun Werte der Sinusfunktion zu äquidistanten Stützstellen x k := k h, k = 0,,1/h, so tabelliert werden, dass aus der neuen Tabelle für alle x [0,1] durch lineare Interpolation Näherungen für sin(x) bestimmt werden können, deren Fehler nicht größer als 10 4 ausfällt. (i) Bestimmen Sie eine Schrittweite h, so dass der Interpolationsfehler kleiner als 0.5 10 4 wird. (ii) Auf wieviele Stellen genau müssen die Sinuswerte in der Tabelle angegeben werden, damit der durch die endliche Stellenzahl verursachte Fehler ebenfalls nicht größer als 0.5 10 4 wird? Hinweis: Für den letzten Teil der Aufgabe ist die Verwendung der Lagrangeschen Darstellung des Interpolationspolynoms ratsam. Korrekturhinweise zu Aufgabe 1: a) [4 Punkte] Wir versuchen unser Glück mit der linearen Interpolation. Eine apriori Fehlerabschätzung ergibt: sin(0.25) p 1 (0.25) f (τ) (0.25 0.2)(0.25 0.3) sin(0.3) 0.00125 0.3 0.00125 = 0.000375
Analysis II, A. Iske/P. Kiani, SoSe 2014, Blatt 3H 2 Das reicht leider nicht. Zur Approximation mit einem quadratischen Polynom nimmt man die Daten zu 0.1, 0.2, 0.3 oder die Daten zu 0.2, 0.3, 0.4. Die Fehlerabschätzung liefert nun z.b. : sin(0.25) p 2 (0.25) f (τ) 3! (0.25 0.1)(0.25 0.2)(0.25 0.3) cos(τ) 0.000375 6 0.0000625 Das reicht!! 0.1 0.099833 0.2 0.198669 0.98836 0.3 0.295520 0.96851 0.09925 Mit dem zugehörigen quadratischen Interpolationspolynom p 2 ergibt sich: sin(0.25) p 2 (x) = 0.099833+0.98836(0.25 0.1) 0.09925(0.25 0.1)(0.25 0.2) = 0.2473426.. b) (i) [3 Punkte] Der Fehler der linearen Interpolation von sin(x) läßt sich für x = x i + θh [x i,x i+1 ] wie folgt abschätzen: R 1 (x) = = f (τ) sin(τ) (x x i )(x x i+1 ) (θh)(h θh) < h2 2 θ(1 θ) h2 8 Die letzte Abschätzung folgt daraus, dass die Funktion ω(θ) := θ(1 θ) auf dem Intervall (0, 1) ihr Maximum für θ = 0.5 annimmt, denn: ω (θ) = 1 2θ = 0 θ = 0.5. Es genügt also 1 8 h2 1 2 10 4 oder h 2 10 2 zu fordern. (ii) [3 Punkte] Wir nennen die benutzten Tabellenwerte Tsin(x i ) und die Abweichungen von den exakten Daten δ i := sin(x i ) Tsin(x i ). Dann ergibt sich in Folge der Rundungsfehler ein zusätzlicher Fehler x x i (sin(x i+1 ) Tsin(x i+1 ))+ x x i+1 (sin(x i ) Tsin(x i )) x i+1 x i x i x i+1 = x x i δ i+1 + x x [ i+1 δ i x i+1 x i x i x i+1 x xi + x x ] i+1 max δ i x i+1 x i x i x i+1 i =max δ i i Es genügt also max i δ i 1 2 10 4 zu fordern, also reichen vier Stellen hinter dem Komma.
Analysis II, A. Iske/P. Kiani, SoSe 2014, Blatt 3H 3 Aufgabe 2: Gegeben seien die Daten x k = 10+k, k = 0, 1, 2,...,19, 20 y k = log(1+x 2 k ) k = 0, 1, 2,...,19, 20. Bestimmen und plotten Sie einerseits das zugehörige Interpolationspolynom und andererseits einen zugehörigen kubischen Spline und vergleichen Sie diese graphisch mit der exakten Funktion für x [ 10, 10]. Hinweis: Beispiele für Matlab Programme finden Sie in den Vorlesungs- und Anleitungsunterlagen. Lösungshinweise zur Aufgabe 2: Erste Version: %Interpolationsaufgabe Blatt 3, File interp10.m axis ([-10.1, 10.1, -0.1, 10]); %Festlegung der Achsen. %Kann auch hinterher geschehen hold on % Wähle ab jetzt das gleiche "Zeichenpapier". % Befehl wird aufgelöst durch "hold off" % oder einfach "hold". ("hold" schaltet zwischen % "hold on" und "hold off" hin und her) x=-10:1:10; %Stützpunkte y=log(1+x.^2); %Funktionswerte plot(x,y, o ) %Plot der Daten c=polyfit(x,y,20); % gibt die Koeffizienten des Interpolationspolynoms % wieder und zwar von x^n,...,x^1, x^0 %Interpolation xaus=-10:0.2:10; yex=log(1+xaus.^2); yaus=polyval(c,xaus); plot(xaus,yex) plot(xaus,yaus, b-- ) %Stützstelle für Polynomauswertung %exakte Funktionswerte %Auswerten des Interp.polys % Plot exakte Daten % Plot Interpolationsdaten % Spline s=spline(x,y,xaus) plot(xaus,s, r: ) % plot Splinedaten Zweite Version % Interpolation der Funktion fu höchstens n-ten Grades, Äquidistante % Knoten zwischen a und b function interpilp (fu,n, a,b, ymin, ymax) format long e
Analysis II, A. Iske/P. Kiani, SoSe 2014, Blatt 3H 4 axis ([a, b, ymin, ymax]); % Festlegung der Achsen. Kann % auch hinterher geschehen hold on % x=linspace (a,b, n+1); % Festlegung von n+1 äquidistanten % Interpolationsknoten zwischen a und b y= feval (fu,x); % Berechnet y=fu (x) in den Interpolationsknoten c= polyfit (x,y,n); %Koeffizienten des Interpolationspolynoms % Auswertung des Polynoms in den Plot-Stützstellen z1=x (1)-(b-a)/100; % Plotbereichsanfang z2=x (n+1)+(b-a)/100; % Plotbereichsende z=linspace (z1,z2,100); % legt 101 äquidistante Stützstellen zum Plotten fest p=polyval (c,z); % Auswertung des Polynoms in den Plot-Stützstellen plot (z,p, b-. ); % Plot des Interpolationspolynoms yy = spline (x,y,z); % kubischer Spline zu den Daten x,y plot (x,y, o,z,yy, k- ) % ausgewertet in den Punkten z und geplotet plot ([a b], [0 0]); % x-achse plot ([0 0], [ymin ymax]); % y-achse hold on z1= feval (fu,z); % exakte Daten plot (z,z1, r: ) % Plott der exakten Daten %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function erg = fu6 (x); erg = log (1+x.^2); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Aufruf in Matlab: >> interpilp( fu6,20,-10,10,-0.2,8)
Analysis II, A. Iske/P. Kiani, SoSe 2014, Blatt 3H 5 8 7 6 5 f(x)=ln(1+x 2 ) Interpolation: n=20, gestrichelt Kubischer Spline: durchgezogen, rot exakt: durchgezogen blau, bzw. Kreise 4 3 2 1 0 10 5 0 5 10