©2005-2018 Ulm University, Othmar Marti, pict
[Vorherige Seite] [vorheriges Seitenende] [Seitenende] [Ebene nach oben] [PDF-Datei][Epub-Datei][Andere Skripte]

I.1  Ableitungen

__________________________________________________________________________

pict

Von Hand gezeichnete Kurve einer unbekannten Funktion.

_____________________________________________________________________

Die Funktion in Abbildung I.1 wurde mit Engauge Digitizer [Mit04] digitalisiert und in Excel geladen.

___________________________________________________________________________

Originale
x f(x)
0.058 2.5676
0.2456 2.8111
0.4332 3.0546
0.5693 3.348
... ...
7.6052 6.3168
7.8576 6.4726
8.1489 6.5783
... ...
17.2552 6.0696
17.5477 6.0867
Konvertierte Daten (Auszug)

_____________________________________________________________________

_____________________________________________________________________

pict

Darstellung der digitalisierten Funktion.

_____________________________________________________________________

Um die Ableitung zu berechnen verwenden wir die Definition

df-(x-)=   lim  f(x-+-Δx-)-−-f(x-)
  dx     Δx→0        Δx
(I.1)

Zur nummerischen Berechnung der Ableitung lassen wir den Grenzwert weg und erhalten die Näherungslösung

df(x)-   f(x-+-Δx-) −-f(x)-
 dx   ≈         Δx
(I.2)

Umgesetzt in eine Handlungsanleitung bedeutet dies:

  1. Berechne Differenz zweier aufeinander folgender x-Werte in Tabelle I.1. Das ist das Δx für diese beiden x-Werte.
  2. Berechne die Differenz der selben zwei aufeinanderfolgenden x-Werte in Tabelle I.1. Das ist das Δx für diese beiden x-Werte.
  3. Teile die Differenz durch das dazugehörige Δx
  4. Dies ist der Schätzwert der Ableitung für den Mittelwert der beiden x-Werte.

In einer Tabelle sieht dies so aus:

___________________________________________________________________________

Originale Ableitung
x f(x) xmitte d f(x)/d x
0.058 2.5676 0.1518 1.297974
0.2456 2.8111 0.3394 1.297974
0.4332 3.0546 0.50125 2.155768
0.5693 3.348 0.64375 1.886501
..
. ..
. ..
. ..
.
7.6052 6.3168 7.7314 0.617274
7.8576 6.4726 8.00325 0.362856
8.1489 6.5783 8.301 0.306706
.
.. .
.. .
.. .
..
17.2552 6.0696 17.40145 0.058462
17.5477 6.0867
Berechnung der Ableitung der Daten aus Abbildung I.1(Auszug)

_____________________________________________________________________

In der ersten Zelle mit Zahlen in der Spalte „xmitte“ in Tabelle I.1 steht „= (A3 + A4)2“, in der ersten Zelle mit Zahlen in der Spalte mit „d f(x)/d x“ steht „= (B4 B3)(A4 A3)“. Damit ist der Schätzwert der Ableitungsfunktion berechnet (Siehe Abbildung I.1).

__________________________________________________________________________

pict

Darstellung der berechneten Ableitung der Funktion aus Abbildung I.1.

_____________________________________________________________________

Analog kann die zweite Ableitung berechnet werden, nach der gleichen Methode wie oben aus der ersten Ableitung.

___________________________________________________________________________

Originale Ableitung 2. Ableitung
x f(x) xmitte d f(x)/d x xmitte d2 f(x)/d x2
0.058 2.5676 0.1518 1.297974 0.2456 2.37E-15
0.2456 2.8111 0.3394 1.297974 0.420325 5.299928
0.4332 3.0546 0.50125 2.155768 0.5725 -1.88959
0.5693 3.348 0.64375 1.886501 0.721525 -2.49267
... ... ... ... ...  ...
7.6052 6.3168 7.7314 0.617274 7.867325 -0.93588
7.8576 6.4726 8.00325 0.362856 8.152125 -0.18858
8.1489 6.5783 8.301 0.306706 8.453175 -0.27507
... ... ... ... ...  ...
17.2552 6.0696 17.40145 0.058462
17.5477 6.0867
Berechnung der zweiten Ableitung der Daten aus AbbildungI.1 (Auszug)

_____________________________________________________________________

Die zweite Ableitung, wie in Tabelle I.1 berechnet, ist in Abbildung I.1 gezeigt.

__________________________________________________________________________

pict

Darstellung der berechneten zweiten Ableitung der Funktion aus Abbildung I.1.

_____________________________________________________________________

Wenn eine analytisch gegebene Funktion differenziert werden soll, kann Δx frei gewählt werden. Wenn Δx zu klein ist, werden Rundungsfehler das Resultat verschlechtern. Es gibt ein optimales Δx.

I.1.1  Mathematica-Beispiel

Bevor wir in Mathematica starten definieren wir die Parameter für die Plots

oldplotoptions = Options[Plot];  
oldlistplotoptions = Options[ListPlot];  
SetAttributes[setOpts, HoldAllComplete];  
 
Quiet[setOpts[s_Symbol, pat_: _, spec__?OptionQ] :=  
  s /: (h : pat)[pre__, s, post___] :=  
   FilterRules[{spec}, Options[h]] /. {opts___} :> h[pre, opts, post],  
  Optional::"opdef"]; setOpts[myopts, Plot, AspectRatio -> 0.7,  
 Frame -> True,  
 GridLines -> Automatic, GridLinesStyle -> Directive[Thick, Dashed],  
 LabelStyle -> Directive[FontSize -> 18, , Bold],  
 FrameTicksStyle -> Directive[FontSize -> 16, Thick],  
 FrameStyle -> Thick, ImageSize -> UpTo[700],  
 FrameLabel -> {"x", "f(x)"}, AxesStyle -> Directive[Thick, Black],  
 PlotStyle -> Green, PlotRange -> All];  
setOpts[mylistopts, ListPlot, AspectRatio -> 0.7, Frame -> True,  
  GridLines -> Automatic, GridLinesStyle -> Directive[Thick, Dashed],  
  LabelStyle -> Directive[FontSize -> 18, , Bold],  
  FrameTicksStyle -> Directive[FontSize -> 16, Thick],  
  FrameStyle -> Thick, ImageSize -> UpTo[700],  
  FrameLabel -> {"x", "f(x)"}, AxesStyle -> Directive[Thick, Black],  
  PlotStyle -> Red, PlotRange -> All];  
setOpts[mylistlogopts, ListLogPlot, AspectRatio -> 0.7, Frame -> True,  
  GridLines -> Automatic, GridLinesStyle -> Directive[Thick, Dashed],  
  LabelStyle -> Directive[FontSize -> 18, , Bold],  
  FrameTicksStyle -> Directive[FontSize -> 16, Thick],  
  FrameStyle -> Thick, ImageSize -> UpTo[700],  
  FrameLabel -> {"x", "f(x)"}, AxesStyle -> Directive[Thick, Black],  
  PlotStyle -> Red, PlotRange -> All];

Wir verwenden die Funktion

pict

Dies entspricht dem Mathematica-Code

f[x_] = Cos[\[Pi]*20.0/(1 + x^2)]  
f[x_] = Cos[ 8*x]*x^2  
df[x_] = D[f[x], x]  
if[x_] = Integrate[f[x], x]

Die eigentliche Ableitung wird durch

x0 = -\[Pi]/2;  
x1 = \[Pi]/2;  
NN = 50;  
dx = (x1 - x0)/NN;  
pp = Plot[f[x], {x, x0, x1}, myopts,  
   PlotLegends -> Placed[{"f(x)"}, {Right, Right}]];  
ftab = Table[f[x0 + j*dx], {j, 0, NN}];  
xtab =  Table[x0 + j*dx, {j, 0, NN}];  
lp = ListPlot[Transpose[{xtab, ftab}], mylistopts,  
   PlotLegends -> Placed[{"nummerisch"}, {Right, Right}]];  
Show[{pp, lp}]  
dnftab = Table[df[x0 + (j - 1/2)*dx], {j, 1, NN}];  
dftab = (ftab[[2 ;; NN + 1]] - ftab[[1 ;; NN]])/dx;  
xdftab = xtab[[1 ;; NN]] + dx/2;  
dlp = ListPlot[Transpose[{xdftab, dftab}],  
   FrameLabel -> {"x", "df(x)/dx"}, mylistopts,  
   PlotLegends -> Placed[{"nummerisch"}, {Right, Right}]];  
dpp = Plot[df[x], {x, x0, x1}, FrameLabel -> {"x", "df(x)/dx"},  
   myopts, PlotLegends -> Placed[{"df(x)/dx"}, {Right, Right}]];  
Show[dpp, dlp]  
edlp = ListPlot[Transpose[{xdftab, dftab - dnftab}],  
  AspectRatio -> 0.1, FrameLabel -> {"x", "\[CapitalDelta]df(x)/dx"},  
  mylistopts]

berechnet. x0 und x1 sind die Grenzen, NN die Anzahl. Zuerst werden die Tabellen der x-Werte, xtab, und der Funktionenwerte ftab berechnet. Beide haben die Grösse NN + 1. Die Ableitung kann nur an NN-Stellen berechnet werden. Am effizientesten funktioniert dies über die Differenz der ftab ohne das letzte Element und der ftab ohne das erste Element (dftab = (ftab[[2 ;; NN + 1]] - ftab[[1 ;; NN]])/dx;). dnftab enthält die von Mathematica berechnete Ableitung. Schliesslich wird noch die Differenz der geschätzen Ableitung mit der richtigen Ableitung berechnet.

Die Plots sind

__________________________________________________________________________

pict

Funktion mit Stützwerten (rot).

_____________________________________________________________________

_____________________________________________________________________

pict

Ableitung analytisch und nummerisch (rot).

_____________________________________________________________________

In Abbildung I.1.1 werden unten die Residuen (Schätzwert - Messwert) angegeben, da die Fehlerbalken zu klein sind.



[Vorherige Seite] [vorheriges Seitenende] [Seitenanfang] [Ebene nach oben]
©2005-2018 Ulm University, Othmar Marti, pict  Lizenzinformationen