Wenn symbolisches Ableiten nicht geht
Symbolisches Ableiten braucht einen Funktionsterm. Numerisches Ableiten braucht nur die Möglichkeit, die Funktion auszuwerten – und ist damit die einzige Option, wenn deine „Funktion“ eine Messwerttabelle, das Ergebnis einer Simulation oder Programmcode ist, den du nicht von Hand ableiten kannst.
Genau so prüft auch die Testsuite dieser Website die symbolische Engine: einen Ausdruck mit den Regeln ableiten, einen Differenzenquotienten der Ausgangsfunktion auswerten und an mehreren Stellen bestätigen, dass beides übereinstimmt.
Die Formeln
Der Vorwärtsdifferenzenquotient ist die Definition, bei der der Grenzübergang zu früh abgebrochen wird:
\[f'(x) \approx \frac{f(x + h) - f(x)}{h}\]
Der zentrale Differenzenquotient nimmt die Stelle in die Mitte und ist bei gleichem \(h\) viel genauer:
\[f'(x) \approx \frac{f(x + h) - f(x - h)}{2h}\]
Der Fehler des Vorwärtsquotienten ist proportional zu \(h\), der des zentralen Quotienten proportional zu \(h^{2}\). Halbierst du \(h\), halbiert sich der erste Fehler, der zweite aber viertelt sich – deshalb ist die zentrale Form überall der Standard, auch im Rechner oben.
Für die zweite Ableitung braucht man drei Stellen:
\[f''(x) \approx \frac{f(x + h) - 2f(x) + f(x - h)}{h^{2}}\]
Die Schrittweite wählen
Naheliegend wäre, \(h\) so lange zu verkleinern, bis sich das Ergebnis nicht mehr ändert. Das funktioniert nicht, weil zwei Fehler in entgegengesetzte Richtungen ziehen:
- Der Abbruchfehler schrumpft mit \(h\) – der Differenzenquotient nähert sich dem echten Grenzwert.
- Der Rundungsfehler wächst, wenn \(h\) schrumpft – du ziehst zwei fast gleiche Zahlen voneinander ab, die führenden Ziffern heben sich auf, und übrig bleibt Rauschen.
Die Summe hat ein Minimum. Bei doppelter Genauigkeit und zentralem Differenzenquotienten liegt es etwa bei \(h \approx 10^{-5}\) bis \(10^{-6}\); dieser Rechner verwendet \(10^{-4}\), was für die üblichen Funktionen bequem im brauchbaren Bereich liegt. Drückst du \(h\) in deinem eigenen Code auf \(10^{-12}\), wird das Ergebnis schlechter, nicht besser.
Wie nah kommt die Schätzung?
Der Rechner zeigt die numerische Schätzung neben dem exakten symbolischen Wert und die Differenz dazwischen. Bei einer gutartigen Funktion ist diese Differenz meist kleiner als \(10^{-8}\) – so klein, dass sie bei jeder sinnvollen Zahl von Nachkommastellen unsichtbar bleibt.
Probier eine heikle Stelle, um das Verfahren ehrlich scheitern zu sehen: abs(x) an der Stelle 0 liefert numerisch etwa 0, den Mittelwert der Steigungen \(-1\) und \(+1\) von beiden Seiten – obwohl dort gar keine Ableitung existiert. Ein Differenzenquotient kann keinen Knick erkennen; er sieht immer nur zwei Punkte.
Häufige Fragen
Was ist numerisches Differenzieren?
Eine Ableitung nur aus Funktionswerten zu schätzen, mit einem Differenzenquotienten wie \(\frac{f(x+h) - f(x-h)}{2h}\), statt aus einem Funktionsterm.
Warum der zentrale Differenzenquotient?
Sein Fehler schrumpft wie \(h^{2}\) statt wie \(h\). Bei gleicher Schrittweite ist er daher viel genauer als der Vorwärtsdifferenzenquotient.
Welche Schrittweite sollte ich wählen?
Beim zentralen Differenzenquotienten in doppelter Genauigkeit etwa \(10^{-5}\). Kleiner ist nicht besser – darunter dominiert der Rundungsfehler durch das Subtrahieren fast gleicher Zahlen.
Ist das numerische Ergebnis so gut wie das exakte?
Nein. Wo es einen Funktionsterm gibt, leite symbolisch ab – das ist exakt. Numerisches Differenzieren ist für den Fall, dass du nur Werte hast.
Erkennt das Verfahren Knicke oder Unstetigkeiten?
Nein. Ein Differenzenquotient sieht zwei Punkte und meldet die Steigung dazwischen. Bei \(|x|\) nahe null liefert er deshalb etwa 0, obwohl die Ableitung dort nicht existiert.