Tutorial: Numerisch Differenzieren

Ähnliche Dokumente
Tutorial: Numerisch Differenzieren

Tutorial: Taylorpolynom in MATLAB

Übungsblatt 2 Musterlösung

Numerische Ableitung

A n a l y s i s Differentialrechnung I

Numerische Analysis - Matlab-Blatt 5

5. Numerische Differentiation. und Integration

LABORÜBUNG MATLAB/OCTAVE

Numerische Verfahren Übungen und Lösungen, Blatt 1

Numerisches Programmieren, Übungen

5. Numerische Differentiation. und Integration

Numerische Verfahren und Grundlagen der Analysis

NUMERISCHE MATHEMATIK I

Übungsaufgabe Numerische Lösung DGL

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

Thema aus dem Bereich Analysis Differentialrechnung I. Inhaltsverzeichnis

Übungen zu Splines Lösungen zu Übung 20

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

Nullstellen von algebraischen Gleichungen

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

Einführung Differenzialrechnung

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

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

1. Anfangswertprobleme 1. Ordnung

Unterprogramme: Formalargumente und Übergabeargumente

Steigung und Tangente. Steigung eines Funktionsgraphen in einem Punkt

3 Numerisches Rechnen

28. Lineare Approximation und Differentiale

Erste Schularbeit Mathematik Klasse 7A G am

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

Differentialrechnung

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

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

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

Numerisches Programmieren

Numerische Mathematik I: Grundlagen

Musterlösung zu Blatt 1

1. Rechnerarithmetik und. Rundungsfehler

Arbeiten mit Funktionen

Numerische Lineare Algebra - Matlab-Blatt 2

Numerische Mathematik

Numerische Verfahren

Mathematischer Vorkurs für Physiker WS 2012/13

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

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

Interpolation und Approximation von Funktionen

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

5 Interpolation und Approximation

Übungsblatt 3 Musterlösung

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

Die Tangente als Näherung einer Funktion

Änderungsmaße. möglich. Die nachstehende Abbildung zeigt den Graphen der Funktion f mit der Gleichung f(x) = 0,1x ².

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

Mathematik: Mag. Schmid Wolfgang Arbeitsblatt 1 6. Semester ARBEITSBLATT 1 DIFFERENTIALRECHNUNG

5 Numerische Mathematik

NICHTRESTRINGIERTE OPTIMIERUNG

Crashkurs: MATLAB (Teil II)

KAPITEL 10. Numerische Integration

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

Numerische Lösung von Differentialgleichungen

Numerische Analysis - Matlab-Blatt 1

Abiturprüfung Mathematik 2005 (Baden-Württemberg) Berufliche Gymnasien ohne TG Analysis Gruppe I, Aufgabe A

Algorithmen zur Nullstellenbestimmung Ac 2018

KAPITEL 8. Interpolation

W (t) = W (t) mit. ) [7] dt 3.2 Zeigen Sie, dass die Zeitdifferenz zwischen zwei unmittelbar aufeinander folgenden Maxima der Auslenkung konstant t

Finite Differenzen Methode (FDM)

(d) das zu Grunde liegende Problem gut konditioniert ist.

Numerische Mathematik

Zentrale Klausur am Ende der Einführungsphase Mathematik

Approximation durch Polynome

5 Differenzialrechnung für Funktionen einer Variablen

D-MATH Numerische Methoden FS 2017 Dr. Vasile Gradinaru Luc Grosheintz. Serie 10

Übungsblatt 1 Musterlösung

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

Übung zur Numerik linearer und nichtlinearer Parameterschätzprobleme A. Franke-Börner, M. Helm

Linearisierung einer Funktion Tangente, Normale

Wir betrachten das Anfangsrandwertproblem auf dem Halbraum R + :

Mathematische Werkzeuge für Computergrafik 2016/17. Gleitkommzahlen

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

Univariate Analysis. Analysis und nichtlineare Modelle Sommersemester

(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

4.2 Differentialrechnung III

numerische Berechnungen von Wurzeln

Diskussion einzelner Funktionen

Lineare Gleichungssysteme

II. Elliptische Probleme

Numerische Methoden 7. Übungsblatt

Übungen zu Numerisches Programmieren

Woche 08/12 15/12 4. Gershgorin-Kreise, Stabilität und Kondition 1 / 8

Numerische Integration

Übungsblatt 4 Musterlösung

Ingenieurinformatik II Numerik für Ingenieure Teil 2

Transkript:

(basierend auf dem Skript Numerik für Ingenieure von R. Axthelm) Aufgabenstellung: Von ihrem GPS-Gerät bekommen sie alle 12 Sekunden ihre aktuelle Position zugeschickt. Daraus können sie das unten dargestellte Weg-Zeit-Diagramm erstellen. Bei den Punkten hat ihr GPS-Gerät seine aktuelle Positiion 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. bla 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.

bla Schritt B: Beschreiben des Algorithmus Es sei I = [0, 1] und f C 2 (I) mit f : I IR. Unsere diskrete Funtkion 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 ] IP 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 (x) f (x) f(x + h) f(x) h f(x) f(x h) h Vorwärtsdifferenzenquotient Rückwärtsdifferenzenquotient Oder man wählt das das arithmetische Mittel der beiden: f (x) 1 ( f(x + h) f(x) + 2 h ) f(x) f(x h) = h 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. bla Schritt C: Implementierung in Matlab 2 3. Erzeugen Sie das Skript MyDiff.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):...; 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); bla 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? bla Schritt E: Verifikation 3

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. 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 (x) f(x + h) f(x h) 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,x0 (x) = f(x), genauer T f,x0 (x) = k=0 f (k) (x 0 ) (x x 0 ) k. k! Dann ist für x 0 = x und x = x ± h: f(x + h) = T f,x (x + h) = und f(x h) = T f,x (x h) = k=0 k=0 f (k) (x) h k = f + h f + 1 k! 2 h2 f + 1 6 h3 f (3) + f (k) (x) ( h) k = f h f + 1 k! 2 h2 f 1 6 h3 f (3) + Damit gilt weiter 4

f(x + h) f(x h) = 2 h f + 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) 2 h = 1 6 h2 f (3) + 1 5! h4 f (5) = h 2 1 6 f (3) + 1 5! h2 f (5) }{{} C h 2 = O(h 2 ) 0, h 0 Wir erhalten also insgesamt für dne Verfahrensfehler: f (x) f(x + h) f(x h) 2 h = O(h2 ) 14. Zeichnet man den Fehler gegen h in einem loglog-plot, so sollte man eine Gerade mit Steigung p sehen. Testen sie dies visuell, indem man 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 5

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. 15. Bestimmen sie ɛ für ihren Computer. Ermitteln sie dazu das ɛ, das folgende Gleichung erfüllt: 1 + ɛ > 1. Vergleichen sie ihre berechnete Lösung mit eps von Matlab. 16. Schauen sie sich den loglog-plot nochmals an. Wo ist der Fehler am kleinsten? Wie lässt sich das optimale h finden, dass uns den kleinsten Fehler liefert? Wahl einer optimalen Gitterweite h: f (x) f ɛ(x + h) f ɛ (x h) 2 h C h2 + ɛ h =: E(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. 17. Berechnen sie das optimale h und vergleichen sie es mit ihrem Plot. 18. * Plotten sie nun den Fehler gegenüber dem Gitter für den Vorwärtsdifferenzenquotienten. 6

Lösungen: Finite Differenzen 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 Und das arithmetische Mittel: f h(x i ) 1 2 ( 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 ) = h i h i 1 } 2{{ h } für äquidistante Gitter mit h = h i 3-7 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)(x); % Werte von f' an x(i) 7

Lösungen: Finite Differenzen % Vorwaertsdifferenzenquotient dfhv = (fh(2:dim)-fh(1:dim-1))/h; % Naeherungen an f'(x(i))=dfh(i) % Rueckwaertsdifferenzenquotient dfhr(2:dim) = (fh(2:dim)-fh(1:dim-1))/h; % Naeherungen an f'(x(i))=dfh(i) % 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 8 clear all close all

Lösungen: Finite Differenzen I = [0 1]; DIM = 11; for i=1:1:20 h = (I(2)-I(1))/(DIM-1); x = I(1):h:I(2); [fh,dfh] = GPS(x); % Werte von f an x(i)(x); % Werte von f' an x(i) % Vorwaertsdifferenzenquotient dfhv = (fh(2:dim)-fh(1:dim-1))/h; % Naeherungen an f'(x(i))=dfh(i) % Rueckwaertsdifferenzenquotient dfhr(2:dim) = (fh(2:dim)-fh(1:dim-1))/h; % Naeherungen an f'(x(i))=dfh(i) % 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 15-17 epsilon=1 sum=2; 9

Lösungen: Finite Differenzen while sum>1 epsilon=epsilon/2; sum=1+epsilon; end epsilon >> (eps)ˆ(1/3) ans = 6.0555e-06 10