Hintergrundtheorie, die hilfreich ist
Eine kleine Tatsache, anhand derer Sie besser verstehen können, ob eine numerische Ableitung korrekt berechnet wurde oder nicht, ist der Cauchy-Rest der Taylor-Erweiterung. Das ist,
f(x+h)=f(x)+hf′(x)+h22f′′(ξ) für einigeξ∈[x,x+h]
Dies ist hilfreich, da Sie Ihre erste Ableitung wahrscheinlich durch angenähert haben
f′(x)≈f(x+h)−f(x−h)2h
mit einem kleinen (ich benutze normalerweise , aber ich bin mir sicher, dass ich eines Tages auf einen Fall stoßen werde, in dem das nicht angemessen ist).h10−4
Nach einer kleinen Algebra können wir den Cauchy-Rest verwenden, um zu sehen, dass unsere numerische Approximation theoretisch innerhalb von von .hf′′(ξ),ξ∈[x−h,x+h]f′(x)
Tatsächlich können Sie es tatsächlich durch wobei und ... was äquivalent zu , .h(f′′(ξ1)−f′′(ξ2))ξ1∈[x−h,x]ξ2∈[x,x+h]h2f′′′(ξ)ξ∈[x−h,x+h]
Probleme in der Praxis
Okay, wir haben eine schöne Theorie, die den Fehler der numerischen Ableitung begrenzt. Es gibt jedoch zwei Lücken beim direkten Versuch, diese Ergebnisse zu verwenden:
1.) Wir kennen (und wollen wahrscheinlich nicht die Zeit damit verbringen, es zu approximieren)f′′′(x)
2.) als , leidet unter numerischer Instabilitäth→0f(x+h)−f(x−h)2h
Wenn ich also meine analytischen Ableitungen überprüfe (was möglicherweise nicht der beste Weg ist), schreibe ich die numerische Ableitungsfunktion als Funktion von . Wenn ich nicht sagen kann, ob der Unterschied zwischen der numerischen und der analytischen Ableitung auf einen Codierungsfehler oder nur auf eine numerische Approximation zurückzuführen ist, kann ich reduzieren und prüfen, ob sich meine numerische Ableitung meiner analytischen Ableitung nähert, bevor ich unter numerischer Instabilität leide (wenn dies passiert, Ihre numerischen Näherungen werden weniger konsistent, wenn kleiner wird. Beachten Sie, dass der Term quadratisch verschwinden sollte, wenn mein Fehler also ungefähr mit beträgthhhf′′′(ξ)0.01h=10−4 , sollte bei wobei vorausgesetzt, die numerische Instabilität ist noch nicht eingetreten .0.0001h=10−5
Leider gibt es keine feste Richtlinie, um diese Dinge immer zu bestimmen. es hängt sehr davon ab, wie stabil die Funktion ist (und ich meine sowohl in Bezug auf die numerische Stabilität als auch in Bezug auf höhere Ableitungen). Aber in meinen Erfahrungen habe ich noch nie einen Fall gesehen, in dem der Fehler von nicht definitiv auf 0 ging (dh die Verwendung von ergab praktisch die gleiche Antwort wie ) zu dem Zeitpunkt, als die numerische Instabilität von .h2f′′′(ξ)h=10−4h=10−5h→0