Standardformeln für endliche Differenzen können verwendet werden, um eine Ableitung unter der Annahme numerisch zu berechnen, dass Sie Funktionswerte an gleichmäßig beabstandeten Punkten haben, so dass h ≡ x k + 1 - x k eine Konstante ist. Was ist, wenn ich ungleichmäßig verteilte Punkte habe, sodass h jetzt von einem Paar benachbarter Punkte zum nächsten variiert? Offensichtlich kann ich noch eine erste Ableitung als f ′ ( x ) ≈ 1 berechnen, aber gibt es numerische Differenzierungsformeln bei höheren Ordnungen und Genauigkeiten, die sich an Variationen in der Gittergröße anpassen können?
finite-difference
discretization
David Z
quelle
quelle
Antworten:
JMs Kommentar ist richtig: Sie können ein interpolierendes Polynom finden und es differenzieren. Es gibt andere Möglichkeiten, solche Formeln abzuleiten. In der Regel führen sie alle dazu, dass ein Van-der-Monde-System für die Koeffizienten gelöst wird. Dieser Ansatz ist problematisch, wenn die Finite-Differenz-Schablone eine große Anzahl von Punkten enthält, da die Vandermonde-Matrizen schlecht konditioniert werden. Ein numerisch stabilerer Ansatz wurde von Fornberg entwickelt und wird in einem zweiten Aufsatz von Fornberg klarer und allgemeiner erläutert .
Hier ist ein einfaches MATLAB-Skript , das die Fornberg-Methode zur Berechnung der Koeffizienten einer endlichen Differenznäherung für eine beliebige Ordnungsableitung mit einer beliebigen Menge von Punkten implementiert. Eine nette Erklärung finden Sie in Kapitel 1 von LeVeques Text über Methoden mit endlichen Differenzen .
Ein bisschen mehr zu FD-Formeln: Angenommen, Sie haben ein 1D-Raster. Wenn Sie den gesamten Satz von Gitterpunkten verwenden, um einen Satz von FD-Formeln zu bestimmen, entspricht die resultierende Methode dem Auffinden eines Interpolationspolynoms durch das gesamte Gitter und dem Differenzieren dieses Polynoms. Dieser Ansatz wird als spektrale Kollokation bezeichnet. Alternativ können Sie für jeden Gitterpunkt eine FD-Formel mit nur wenigen benachbarten Punkten bestimmen. Dies wird bei traditionellen Finite-Differenzen-Methoden durchgeführt.
Wie in den Kommentaren unten erwähnt, kann die Verwendung endlicher Differenzen sehr hoher Ordnung zu Schwingungen führen (das Runge-Phänomen), wenn die Punkte nicht sorgfältig ausgewählt werden.
quelle
http://mathformeremortals.wordpress.com/2013/01/12/a-numerical-second-derivative-from-three-points/
Dies beantwortet Ihre Frage und zeigt die gesuchte Formel für die zweite Ableitung an. Derivate höherer Ordnung folgen demselben Muster.
quelle
Die obigen Antworten sind großartig, um Ihnen einen Code zur Verfügung zu stellen, aber theoretisch nicht so gut. Wenn Sie sich eingehender mit interpolierenden Polynomen befassen möchten, sehen Sie sich diese theoretische Behandlung anhand einiger konkreter Beispiele an:
Die Autoren verwenden die Lagrange-Interpolation (siehe Wikipedia- Artikel), um interpolierende 3-Punkt-, 4-Punkt- und 5-Punkt-Polynome sowie deren erste, zweite und dritte Ableitung zu berechnen. Sie haben auch Ausdrücke für den Kürzungsfehler, was wichtig ist, wenn ein endliches Differenzschema verwendet wird. Sie haben auch die generische Formel zum Berechnen von Interpolationspolynomen unter Verwendung von N Punkten.
Lagrange-Interpolationspolynome sind nützlich, da sie und ihre Ableitungen in dem Bereich, den Sie interpolieren, sehr genau sein können und keinen gleichmäßigen Gitterabstand annehmen. Aufgrund der Natur von Lagrange-Interpolationspolynomen können Sie niemals mehr Ordnungen von Ableitungen haben, als Sie Gitterpunkte haben.
Ich denke, dies beantwortet Ihre Frage gut, da das von mir zitierte Papier Formeln für beliebig hochrangige Finite-Differenzen-Schemata enthält, die von Natur aus für ungerade Gitter gelten und nur durch die Anzahl der Gitterpunkte begrenzt sind, die Sie in Ihre Schablone einfügen. Das Papier enthält auch eine allgemeine Formel für den Kürzungsfehler, anhand derer Sie das Lagrange-Interpolationspolynomschema mit anderen von Ihnen in Betracht gezogenen Schemata vergleichen können. Die Arbeit des Autors sollte die gleichen Ergebnisse liefern wie Fornbergs Methode. Ihr Beitrag besteht eigentlich nur darin, einige Beispiele zusammenzufassen und eine Schätzung des Fehlers zu geben, die Sie vielleicht nützlich finden.
Ich fand sowohl das Papier , das ich zitierte und Fornberg Arbeit für meine eigene Forschung nützlich zu sein.
quelle
Ich habe diese Arbeit über Finite-Differenzen-Formeln mit ungleichen Teilintervallen gefunden . Ich werde dies anstelle der Interpolation verwenden. Sobald ich alle Formeln eingegeben habe, werde ich sie hier veröffentlichen.
quelle
Die einfachste Methode ist die Verwendung endlicher Differenzenapproximationen.
Eine einfache Zweipunktschätzung besteht darin, die Steigung einer nahe gelegenen Sekantenlinie durch die Punkte (x, f (x)) und (x + h, f (x + h)) zu berechnen. [1] Wenn Sie eine kleine Zahl h wählen, stellt h eine kleine Änderung in x dar und kann entweder positiv oder negativ sein. Die Steigung dieser Linie beträgt
Dieser Ausdruck ist Newtons Differenzquotient.
Die Steigung dieser Sekantenlinie unterscheidet sich von der Steigung der Tangentenlinie um einen Betrag, der ungefähr proportional zu h ist. Wenn sich h Null nähert, nähert sich die Steigung der Sekantenlinie der Steigung der Tangentenlinie. Daher ist die wahre Ableitung von f bei x die Grenze des Wertes des Differenzquotienten, wenn die Sekantenlinien immer näher an eine Tangentenlinie heranrücken
quelle