Zum Inhalt springen
L

Wikipedia · einfach zusammengefasst · Stand

Numerische Differentiation

In der Numerischen Mathematik bezeichnet man mit numerischer Differentiation die näherungsweise Berechnung der Ableitung aus gegebenen Funktionswerten, …

Inhalt5 Abschnitte
  1. 1. Grundidee und Einsatz
  2. 2. Differenzenquotienten und Schrittweite
  3. 3. Komplexe Schrittweite
  4. 4. Begründung und verrauschte Messdaten
  5. 5. Umgang mit verrauschten Daten

Grundidee und Einsatz

Numerische Differentiation bezeichnet in der Numerischen Mathematik die näherungsweise Berechnung einer Ableitung aus bekannten Funktionswerten, meist mit einem Differenzenquotienten. Sie wird gebraucht, wenn die Ableitungsfunktion nicht gegeben ist oder wenn die Funktion nur indirekt, etwa durch Messwerte, vorliegt. Beim automatischen Differenzieren wird dagegen der Code, der eine Funktion definiert, um eine Ableitungsfunktion erweitert.

Statt direkt zu differenzieren, können auch differenzierbare Funktionsapproximationen verwendet werden, zum Beispiel kubische Smoothing Splines. Wenn Ableitungen nur an einzelnen Stellen benötigt werden, gibt es dafür spezielle Formeln.

Differenzenquotienten und Schrittweite

Beim Vorwärtsdifferenzenquotienten wird die Ableitung an der Stelle x durch einen Funktionswert bei x und einen bei x+h angenähert:

f'(x) = (f(x+h) - f(x)) / h + O(h).

Der Term O(h) bedeutet: Der Fehler wächst linear mit der Schrittweite h. Bei beliebig genauer Rechnung würde eine kleinere Schrittweite zunächst eine bessere Näherung liefern. Bei Gleitkommazahlen kann jedoch Auslöschung auftreten: Bei der Subtraktion sehr ähnlicher Funktionswerte gehen wegen begrenzter Maschinengenauigkeit relevante Stellen verloren. Deshalb darf h keine von der Maschinengenauigkeit abhängige untere Schranke unterschreiten.

Der zentrale Differenzenquotient nutzt Werte auf beiden Seiten von x und ist genauer:

f'(x) = (f(x+h) - f(x-h)) / (2h) + O(h²).

Hier ist der Fehler von der Ordnung h². Die optimale Schrittweite h liegt beim zentralen Differenzenquotienten in der Größenordnung der dritten Wurzel der Maschinengenauigkeit.

Mit Taylorreihen höherer Ordnung lassen sich für |h| < 1 Formeln mit noch kleinerem Fehlerterm herleiten, zum Beispiel:

f'(x) = (1/(12h))(-f(x+2h) + 8f(x+h) - 8f(x-h) + f(x-2h)) + O(h⁴).

Komplexe Schrittweite

Bei klassischen Differenzenquotienten ist die Wahl von h problematisch: Ein zu großes h führt zu Rundungsfehlern, ein zu kleines h zu Auslöschung. Die Subtraktionsauslöschung lässt sich durch eine komplexwertige Näherung vermeiden:

f'(x) = Im(f(x + i h)) / h + O(h²).

Dabei ist i die imaginäre Einheit und Im der Imaginärteil einer komplexen Zahl. Die Formel verwendet also den Imaginärteil des Funktionswerts an der komplexen Stelle x+i h und hat einen Fehler der Ordnung h².

Begründung und verrauschte Messdaten

Die Begründung beruht auf der Taylorreihe um den Entwicklungspunkt x:

f(x+h) = f(x) + h f'(x) + h² f''(x)/2 + h³ f'''(x)/6 + …

Wird nach dem linearen Glied abgebrochen und nach f'(x) umgestellt, entsteht der Vorwärtsdifferenzenquotient. Ersetzt man die reelle Schrittweite h durch i h, ergibt sich:

f(x+i h) = f(x) + i h f'(x) - h² f''(x)/2 - i h³ f'''(x)/6 + …

Der Imaginärteil lautet dann:

Im(f(x+i h)) = h f'(x) - h³ f'''(x)/6 + …

Der Abbruch nach dem linearen Glied liefert die komplexwertige Näherung mit Fehler O(h²).

Umgang mit verrauschten Daten

In praktischen Anwendungen sind Funktionswerte häufig verrauscht. Werden auf solche Daten einfache finite Differenzenmethoden angewendet, kann die numerische Ableitung starke Ausreißer erhalten.

Spezielle Verfahren sollen die Ableitung dennoch zuverlässig bestimmen. Die Datenreihe kann zunächst geglättet werden. Alternativ kann man durch Ausgleichungsrechnung eine approximierende Funktion bestimmen und diese anschließend numerisch differenzieren. Bei der Kantendetektion werden beispielsweise Sobel-Operatoren eingesetzt, die zugleich glätten. Eine weitere Möglichkeit sind geglättete Splines, auch Ausgleichssplines genannt.

Weiterlesen