0 Daumen
365 Aufrufe

Aufgabe:

Bestimmen Sie eine Abschätzung für den Verfahrensfehler, wenn man zur numerischen Berechnung der Ableitung deren Definition als Limes des Differenzenquotienten verwendet und infolgedessen den Differenzenquotienten zur Approximation der Ableitung heranzieht.

Frage:

Kann mir jemand einen Tipp geben wie man eine Abschätzung für den Verfahrensfehler bestimmen kann?

Avatar von

Hallo,

es geht wohl um die Differenz

$$\frac{1}{h}(f(x+h)-f(x))-f'(x)$$

Der Bruch wäre die Approximation für f'(x) und die Differenz eben der Fehler. Für die Abschätzung verwendet man den Satz über das Taylor-Polynom.

Man erhält natürlich keine "konkrete" Zahl als Ergebnis, sondern eine qualitative Aussage, etwa

$$|\frac{1}{h}(f(x+h)-f(x))-f'(x)| \leq const \cdot h$$

Gruß Mathhilf

1 Antwort

0 Daumen
 
Beste Antwort

Aloha :)

Du kannst die Funktion \(f(x)\) in eine Taylorreihe entwickeln:$$f(x\pm h)=f(x)\pm f'(x)\cdot h+\frac{1}{2}f''(x)\cdot h^2\pm O(h^3)$$

Das kannst du in den Differenzenquotienten einsetzen:
$$\phantom{=}\frac{f(x+h)-f(x)}{h}=\frac{\left[f(x)+f'(x)\,h+\frac{1}{2}f''(x)\,h^2+O(h^3)\right]-f(x)}{h}$$$$=\frac{f'(x)\,h+\frac{1}{2}f''(x)\,h^2+O(h^3)}{h}=f'(x)+\frac{1}{2}f''(x)\,h+O(h^2)=f'(x)+O(h)$$

Der Verfahrensfehler liegt hier also in der Größenordnung \(O(h)\).

Das ist auch der Grund, warum man die Ableitung numerisch meistens so berechnet:
$$\phantom{=}\frac{f(x+h)-f(x-h)}{h}$$$$=\frac{\left[f(x)+f'(x)\,h+\frac{1}{2}f''(x)\,h^2+O(h^3)\right]-\left[f(x)-f'(x)\,h+\frac{1}{2}f''(x)\,h^2-O(h^3)\right]}{h}$$$$=\frac{2f'(x)\,h+O(h^3)}{2h}=f'(x)+O(h^2)$$

Hier liegt der Verfahrensfehler in der Größenordnung \(O(h^2)\).

Avatar von 148 k 🚀

Vielen Dank für die ausführliche Antwort ;). Doch ich verstehe nicht ganz von wo die Variable \(h\) herkommt. Also wie wird die festgelegt?

Die Variable \(h\) taucht im Nenner des Differenzenquotienten auf. Normalerweise wird der Grenzwert \(h\to0\) gebildet, um die Ableitung zu bestimmen. Im Rechner kannst du aber diesen Grenzwert nicht bilden und auch nicht für \(h=0\) einsetzen, weil du dann durch \(0\) teilen müsstest.

Das Problem ist also, dass du dieses \(h\) bei der numerischen Berechnung irgendwie wählen musst. Wählst du z.B. \(h=0,001\) wird der Fehler der berechneten Ableitung auch in der Größenordnung \(O(h)\) sein, also von der Form \(\text{const}\cdot h\).

Jetzt könntest du sagen, du wählst einfach \(h=0,000000001\). Aber das gibt Probleme in der Fließkomma-Darstellung in der CPU. Der Fließkomma-Standard IEEE754 sieht für Zahlen nahe \(0\) eine Denormalisierung vor, bei der es zu einem erheblichen Genauigkeitsverlust kommt.

Bei der zweiten Methode, die ich genannt habe, wäre der Fehler dagegen nur in der Größenordnung \(O(h^2)\), also von der Form \(\text{const}\cdot h^2\).

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Mathelounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community