Tutorial: Numerisch Differenzieren

Ähnliche Dokumente
Tutorial: Numerisch Differenzieren

Tutorial: Taylorpolynom in MATLAB

Numerische Ableitung

Numerische Analysis - Matlab-Blatt 5

Übungsblatt 2 Musterlösung

A n a l y s i s Differentialrechnung I

MAV-NUM Applied Numerics Frühlingssemester Serie 4. (a) Berechnen Sie per Hand die LR-Zerlegung der Matrix

5. Numerische Differentiation. und Integration

LABORÜBUNG MATLAB/OCTAVE

Numerische Verfahren und Grundlagen der Analysis

5. Numerische Differentiation. und Integration

Numerisches Programmieren, Übungen

NUMERISCHE MATHEMATIK I

Numerische Lineare Algebra - Matlab-Blatt 2

Einführung Differenzialrechnung

Numerisches Programmieren

Differentialrechnung

Differentialrechnung. Kapitel 7. Differenzenquotient. Graphische Interpretation des Differentialquotienten. Differentialquotient

3 Numerisches Rechnen

Steigung und Tangente. Steigung eines Funktionsgraphen in einem Punkt

Numerische Mathematik

Numerische Verfahren Übungen und Lösungen, Blatt 1

Musterlösung zu Blatt 1

Übungen zur Ingenieur-Mathematik II SS 2017 Blatt Aufgabe 13: Betrachten Sie die Funktion. f(x) =

Differentialrechnung. Mathematik W14. Christina Sickinger. Berufsreifeprüfung. v 1 Christina Sickinger Mathematik W14 1 / 79

Thema aus dem Bereich Analysis Differentialrechnung I. Inhaltsverzeichnis

Wir halten in einem s t Diagramm das Anfahren eines Autos fest. Wir nehmen an, dass zwischen Weg und Zeit der einfache Zusammenhang

1. Anfangswertprobleme 1. Ordnung

QUASI-SPLINE-INTERPOLATION BEZÜGLICH GLEICHMÄSSIGER UNTERTEILUNGEN

1. Anfangswertprobleme 1. Ordnung

4.2 Differentialrechnung III

Musterlösung zum Übungsblatt Interpolation nach Newton, Nevill, Lagrange.

Interpolation und Approximation von Funktionen

Mathematischer Vorkurs für Physiker WS 2012/13

Univariate Analysis. Analysis und nichtlineare Modelle Sommersemester

MATLAB Einführung. Numerische Methoden für ITET und MATL Dr. S. May, D. Devaud. ETH Zürich, Seminar for Applied Mathematics

Übungen zu Numerisches Programmieren

Übungen zu Splines Lösungen zu Übung 20

5 Interpolation und Approximation

Übungsaufgabe Numerische Lösung DGL

Unterprogramme: Formalargumente und Übergabeargumente

Aufgabenstellung: Explizite gewöhnliche Differentialgleichung 1. Ordnung mit Anfangsbedingung Gesucht ist eine Funktion y = y(x).

KAPITEL 10. Numerische Integration

1. Rechnerarithmetik und. Rundungsfehler

Grundlagen Kondition Demo. Numerisches Rechnen. (für Informatiker) M. Grepl P. Esser & G. Welper & L. Zhang

Erste Schularbeit Mathematik Klasse 7A G am

Nullstellen von algebraischen Gleichungen

Übungsblatt 1 Musterlösung

Übungsblatt 4 Musterlösung

numerische Berechnungen von Wurzeln

28. Lineare Approximation und Differentiale

Numerische Mathematik

u(x, 0) = g(x) : 0 x 1 u(0, t) = u(1, t) = 0 : 0 t T

Numerik gewöhnlicher Differentialgleichungen. Übung 8 - Lösungsvorschlag

Computer-orientierte Mathematik

Übungsblatt 3 Musterlösung

Die Tangente als Näherung einer Funktion

(x a) 3 + f (a) 4! x 4 4! Wir werden im Folgenden vor allem Maclaurin-Reihen betrachten, dies alles funktioniert aber auch. f (x) = sin x f (0) = 0

Abb. 5.10: Funktion und Tangentialebene im Punkt ( ) ( ) ( ) 3.) Die Zahlenwerte und in Gleichung (Def. 5.11) berechnen sich durch ( ) ( )

KAPITEL 8. Interpolation

Octave/Matlab-Übungen

Differentialquotient. Aufgabe 1. o Gegeben: Das Bild zeigt den Graphen der Funktion f mit f(x) = 0,5x 3 1,5x²

Crashkurs: MATLAB (Teil II)

5 Differenzialrechnung für Funktionen einer Variablen

Klausurlösung Einführung in Numerische Methoden und FEM Universität Siegen, Department Maschinenbau,

Arbeiten mit Funktionen

mathphys-online Aufgaben zur Differentialrechnung - Lösung Tangentenaufgaben Aufgabe 1 Definition des Feldindex in Vektoren und Matrizen: ORIGIN 1

Analysis I Lösung von Serie 9

Numerische Lösung von Differentialgleichungen. φ(x,y,y',y'',y''',..., d n y/dx n ) = 0 (1)

Schriftliche Prüfung zur Computergestützten Mathematik zur Linearen Algebra (PO 2014: Erste Klausur / PO 2008: Klausur)

5.2. Aufgaben zur Differentialrechnung

15.5 Stetige Zufallsvariablen

Nichtlineare Gleichungen in einer und mehreren Unbekannten

3 Optimierung mehrdimensionaler Funktionen f : R n R

Die Programmieraufgaben

2004, x 0 (e 2x + x) x 1, x > 0. Untersuchen Sie die Funktion auf Stetigkeit an der Stelle x 0 = 0!

II. Elliptische Probleme

Angewandte Mathematik am Rechner 1

Kommentierte Musterlösung zur Klausur HM I für Naturwissenschaftler

Numerische Analysis - Matlab-Blatt 1

Optimierung für Nichtmathematiker

Das Newton-Verfahren

D-MATH Numerische Methoden FS 2016 Dr. Vasile Gradinaru Alexander Dabrowski. Serie 9

Logarithmische Skalen

Approximation durch Polynome

Mathematische Modellierung am Rechner I. Frank Fischer Institut für Informatik Sommersemester 2018

Transkript:

MAV-NUM Applied Numerics Frühlingssemester 2018 Dr. Evelyne Knapp ZHAW Winterthur Tutorial: Numerisch Differenzieren Von ihrem GPS-Gerät bekommen Sie alle 12 Minuten Ihre aktuelle Position zugeschickt (in einer Dimension). Daraus können Sie das unten dargestellte Weg-Zeit-Diagramm erstellen. Bei den Punkten hat Ihr GPS-Gerät seine aktuelle Position bekommen. Ihr GPS-Gerät berechnet aber auch Ihre momentane Geschwindigkeit aus dem Diagramm mit Hilfe numerischer Differentiation. Das wollen wir weiter untersuchen. Oder anders formuliert: Wir leiten eine Funktion f, die nur zu gewissen Zeitpunkten x i, also f h (x i ) gegeben ist, numerisch ab. Schritt A: Graphische Anschauung 1. Zeichnen Sie die erste Ableitung des Weg-Zeit-Diagramms in das abgebildete Achsenkreuz ( qualitativ). Wie gehen Sie dabei vor? Um die Ableitung an der Stelle x i zu bestimmen, legen Sie gedanklich eine Tangente durch den Punkt f h (x i ) und bestimmen deren Steigung. 1

Schritt B: Beschreiben des Algorithmus Es sei I = [0, 1] und f C 2 (I) mit f : I R. Unsere diskrete Funktion f h approximiere f und sei folgendermaßen gegeben: wobei I = N 1 i=0 [x i, x i+1 ]. f h (x i ) = f(x i ) f h [xi,x i+1 ] P 1. Bei x i ist dieses f h gar nicht differenzierbar. Da aber f h f und f sehr wohl differenzierbar ist, will man ja f h auch irgendwie ableiten können. Die Ableitung kann angenähert werden durch den Differenzenquotient. f f(x + h) f(x) (x) h f f(x) f(x h) (x) h Oder man wählt das das arithmetische Mittel der beiden: f (x) 1 ( ) f(x + h) f(x) f(x) f(x h) + = 2 h h Vorwärtsdifferenzenquotient Rückwärtsdifferenzenquotient f(x + h) f(x h) 2 h 2. Schreiben Sie die drei Differenzenquotienten für die diskrete Version f h von f um. Wählen sie h i := x i+1 x i. Nehmen Sie für das arithmetische Mittel an, dass das Gitter äquidistant ist, also h = h i. Schritt C: Implementierung in Matlab 3. Erzeugen Sie das Skript MyDiffTutorial.m. 4. Definieren Sie darin ein Interval I von 0 bis 1 und geben Sie mit DIM die Anzahl diskreter Funktionsauswertungen an (z.b. DIM = 11). Berechnen Sie daraus den Abstand h zwischen den Gitterpunkten und daraus das Gitter x. Vervollständigen Sie dazu den untenstehenden Code. I = [0 1]; DIM = 11; h =... x = I(1):...; 2

5. Laden Sie die Funtion GPS.p herunter. Verwenden Sie sie gleich wie eine herkömmliche M-Datei. Sie liefert ihnen für jedes x i den entsprechenden Funktionswert f h (x i ). [fh]=gps(x); 6. Implementieren Sie den Vorwärts-, Rückwärts- und gemittelten Differenzenquotienten in ihrer Datei. Überlegen Sie sich dazu genau, was an den Randpunkten passiert. 7. Plotten Sie die drei Ableitungen. Welcher Differenzenquotient gibt die Steigung am besten wieder? 8. Vergleichen Sie Ihre Ableitungen mit der korrekten Lösung. [fh,dfh]=gps(x); plot(x,dfh); Schritt D: Anwendung: Verbesserte Geschwindigkeitsangabe des GPS Sie möchten Ihre momentane Geschwidigkeit noch genauer wissen und stellen Ihr GPS- Gerät so ein, dass es Ihnen öfters Ihre aktuelle Position sendet. Wir nehmen an, dass dies technisch unbeschränkt möglich ist. Realistisch sind Werte um eine Sekunde. 9. Legen Sie um ihren Code eine for-schleife. In der Schleife verdoppeln Sie dann jeweils den Wert von DIM. Dabei sollen die Intervalle eine vernüftige Länge behalten. Wiederholen Sie das 10 Mal. Verwenden Sie dazu folgende Elemente: for i=1:1:10... DIM=(DIM-1)*2+1; end 10. Plotten Sie die drei Ableitungen für das feinste Gitter. Was hat sich verändert? Schritt E: Verifikation Sie haben festgestellt, dass die Näherung an die Lösung mit einem feineren Gitter immer besser wird. Doch lässt sich das beliebig weit fortführen? Dazu betrachten wir den Fehler der numerischen Lösung. Wir definieren den Fehler folgendermassen: f h f 2 = ( 1 N N f h f 2 ) 1 2 (1) n=1 11. Berechnen Sie den Fehler für jedes h in ihrem Matlab-Code für den gemittelten Differenzenquotienten. Vernachlässigen Sie dabei die Randpunkte. 12. Speichern Sie das jeweilige Gitter in grid(i) und den Fehler in error(i) ab. 3

13. Iterieren Sie nun 20 Mal durch ihre for-schleife. Plotten Sie mit Hilfe von loglog das Gitter gegen den Fehler. Dazu untersuchen wir den Fehler ein bisschen genauer: Der Fehler setzt sich aus zwei Komponenten zusammen: 1. Verfahrensfehler 2. Rundungsfehler Der Verfahrensfehler ist der Fehler zwischen dem exakten Wert der Ableitung und dem exakten Wert des Differenzenqotienten, denn der Differenzenquotient ist das Verfahren zur Berechnung der Ableitung f f(x + h) f(x h) (x) 2 h Zur Berechnung dieses Fehlers stellen wir die Funktionsausdrücke im Differenzenquotienten durch Taylorentwicklungen dar: Taylorentwicklung von f um x 0, ausgewertet bei x lautet T f (x, x 0 ) = f(x), genauer T f (x, x 0 ) = Dann ist für x 0 = x und x = x ± h: f(x + h) = T f (x + h, x) = k=0 k=0 f (k) (x 0 ) (x x 0 ) k. k! f (k) (x) h k = f + hf + 1 k! 2 h2 f + 1 6 h3 f (3) + und f(x h) = T f (x h, x) = Damit gilt weiter k=0 f (k) (x) ( h) k = f hf + 1 k! 2 h2 f 1 6 h3 f (3) + f(x + h) f(x h) = 2hf + 1 3 h3 f (3) + 2 5! h5 f (5) f(x + h) f(x h) = f + 1 2 h 6 h2 f (3) + 1 5! h4 f (5) f f(x + h) f(x h) (x) 2h = 1 6 h2 f (3) + 1 5! h4 f (5) = h 2 1 6 f (3) + 1 5! h2 f (5) }{{} Ch 2 = O(h 2 ) Wir erhalten also insgesamt für den Verfahrensfehler: f (x) f(x + h) f(x h) 2 h = O(h2 ) 0, h 0 4

14. Zeichnet man den Fehler gegen h in einem loglog-plot, so sollte man eine Gerade mit Steigung p = 2 sehen. Testen Sie dies visuell, indem Sie eine Vergleichsgerade der entsprechenden Ordnung in denselben loglog-plot zeichnen. Stimmt die Ordnung, so erhält man zwei parallele Geraden. Zusätzlich zum Verfahrensfehler produzieren wir aber auch Rundungsfehler. Bei der Auswertung von Funktionen auf dem Computer sind wir natürlich nicht infinitesimal genau. Wie ungenau unsere Rechnungen sind hängt speziell vom verwendetetn Prozessor ab. Es sei f ε := f(x) ± ε. Wir betrachten: f ε (x + h) f ε (x h) f(x + h) f(x h) D ε D := 2 h }{{}} 2{{ h } Das rechnen wir Das wollen wir rechnen 1 2 h ( f ε(x + h) f(x + h) + f ε (x h) f(x h) ) ε h Der Fehler, den wir insgesamt machen ist dann f (x) f ε(x + h) f ε (x h) 2 h = f (x) D ε = f (x) D + D D ε f (x) D + D D }{{} ε }{{} Verfahrensfehler Rundungsfehler C h 2 + ε h Je nach Prozessor ist so ein ε von der Größenordnung 10 7 oder 10 16. Wahl einer optimalen Gitterweite h: f (x) f ε(x + h) f ε (x h) 2 h C h2 + ε =: E(h) h Wähle h so, dass E(h) minimal wird: 0 = E (h) = C h ε h 2 h = ( ε 2C ) 1 3 Genau kriegen wir das nicht; wir kennen ja C auch gar nicht, aber es gibt uns eine Idee von einer Größenordnung für h, die nicht unterschritten werden soll. So lange h >> ε 1 3 ist, wird der Rundungsfehler nicht sichtbar werden. 15. Berechnen Sie das optimale h und vergleichen Sie es mit ihrem Plot. 16. Fakultativ: Plotten Sie nun den Fehler gegenüber dem Gitter für den Vorwärtsdifferenzenquotienten. Authors: R. Axthelm, E. Knapp 5

1 2 Für unsere diskrete Funktion f h sieht das dann so aus: Es sei h i := x i+1 x i f h(x i ) f h(x i+1 ) f h (x i ) h i f h(x i ) f h(x i ) f h (x i 1 ) h i 1 Vorwärtsdifferenzenquotient Rückwärtsdifferenzenquotient 3-7 Und das arithmetische Mittel: f h(x i ) 1 ( fh (x i+1 ) f h (x i ) + f ) h(x i ) f h (x i 1 ) f h (x i+1 ) f h (x i 1 ) = 2 h i h i 1 } 2{{ h } für äquidistante Gitter mit h = h i clear all close all I = [0 1]; DIM = 11; h = (I(2)-I(1))/(DIM-1); x = I(1):h:I(2); [fh,dfh] = GPS(x); % Werte von f an x(i), Werte von f an x(i) % Vorwaertsdifferenzenquotient dfhv = (fh(2:dim)-fh(1:dim-1))/h; % Rueckwaertsdifferenzenquotient dfhr(2:dim) = (fh(2:dim)-fh(1:dim-1))/h; 6

% gemittelter Differenzenquotient dfhm(2:dim-1) = (fh(3:dim)-fh(1:dim-2))/2/h; figure plot(x(1:dim-1),dfhv, r--,x(2:dim),dfhr(2:dim), g.-,x(2:dim-1),dfhm (2:DIM-1), b.-. ) hold plot(x,dfh, k- ) legend( Forward, Backward, Central, True ) 6-8 9-10 11-12 clear all close all I = [0 1]; DIM = 11; 7

for i=1:1:20 h = (I(2)-I(1))/(DIM-1); x = I(1):h:I(2); [fh,dfh] = GPS(x); % Vorwaertsdifferenzenquotient dfhv = (fh(2:dim)-fh(1:dim-1))/h; % Rueckwaertsdifferenzenquotient dfhr(2:dim) = (fh(2:dim)-fh(1:dim-1))/h; % gemittelter Differenzenquotient dfhm(2:dim-1) = (fh(3:dim)-fh(1:dim-2))/2/h; error(i) = norm(dfh(2:dim-1)-dfhm(2:dim-1),2)/sqrt(dim-2); %Fehler der Lsg. grid(i) = h; %Gitterweite DIM=(DIM-1)*2+1; %Anzahl Punkte wird vergroessert end figure(1) loglog(grid,error) 13-14 8