- Crank-Nicolson-Methode
-
Das Crank-Nicolson-Verfahren ist in der numerischen Mathematik eine Finite-Differenzen-Methode zur Lösung der Wärmeleitungsgleichung und ähnlicher partieller Differentialgleichungen.[1] Es ist ein implizites Verfahren 2. Ordnung und numerisch stabil. Das Verfahren wurde Mitte des 20. Jahrhunderts von John Crank und Phyllis Nicolson entwickelt.[2]
Für die Wärmeleitungsgleichung und viele andere Gleichungen kann gezeigt werden, dass das Crank-Nicolson-Verfahren ohne Bedingungen numerisch stabil ist. Trotzdem können die approximierten Lösungen störende Schwingungen enthalten, wenn der Quotient aus Zeitdifferenz und Abstandsquadrat groß ist (typischerweise größer als 1 / 2). In diesem Fall wird häufig das weniger genaue Euler-Rückwärtsverfahren genutzt, welches numerisch stabil und unempfindlich gegenüber Störungen ist.
Inhaltsverzeichnis
Das Verfahren
Das Crank-Nicolson-Verfahren basiert auf der Finite-Differenzen-Methode im Raum und der Trapezregel in der Zeit. Dies ist gleichbedeutend mit dem Mittelwert des Euler-Vorwärtsverfahren und des Euler-Rückwärtsverfahren.
Ist im eindimensionalen Fall die partielle Differentialgleichung
und sei , dann ist das Crank-Nicolson-Verfahren der Mittelwert des Euler-Vorwärtsverfahren beim Wert n und des Euler-Rückwärtsverfahren bei n + 1:
Die Funktion F muss mit der Finite-Differenzen-Methode räumlich diskretisiert werden.
Es ist zu beachten, dass es sich um eine implizite Methode handelt. Um den zeitlich "nächsten" Wert von u zu erhalten, muss ein algebraisches Gleichungssystem gelöst werden. Ist die partielle Differentialgleichung nicht linear, wird die Diskretisierung ebenfalls nicht linear sein, so dass ein nicht lineares algebraisches Gleichungssystem gelöst werden muss, obwohl Linearisierungen möglich sind. Bei vielen Problemen, insbesondere bei linearer Diffusion, ist das algebraische Problem tridiagonal, das am besten mit dem schnellen Thomas-Algorithmus gelöst wird, um eine aufwändige Inversion der Matrix zu vermeiden.
Beispiel: Eindimensionale Diffusion
Das Crank-Nicolson-Verfahren wird häufig zur Lösung von Diffusionsproblemen verwendet. Als Beispiel für lineare Diffusion sei
die Crank–Nicolson-Diskretisierung ist dann:
oder, sei :
dies ist ein tridiagonales Problem, so dass mit dem Thomas-Algorithmus gelöst werden sollte, um eine aufwändige Matrix-Inversion zu vermeiden.
Eine quasilineare Gleichung, wie (dies ist ein vereinfachtes Beispiel und nicht allgemein gültig)
würde zu einem nicht linearen System von algebraischen Gleichungen führen, die nicht so einfach zu lösen sind wie oben. Es ist jedoch in manchen Fällen möglich, das Problem zu linearisieren, indem man den alten Wert von a nutzt. Dieser ist statt . In anderen Fällen kann es möglich sein, mit Hilfe einer expliziten Methode und Beibehaltung der Stabilität zu schätzen.
Beispiel: Eindimensionale Diffusion mit Advektion für stationäre Strömungen
Diese Lösung wird gewöhnlich für Zwecke genutzt, wenn eine Kontamination in Fließgewässern mit stationärer Strömung vorliegt, aber nur Informationen in einer Dimension gegeben sind. Oft kann das Problem zu einem eindimensionalen Problem vereinfacht werden und dennoch nützliche Informationen ergeben.
Im Folgenden wird ein aufgelöster Fremdkörper in Wasser modelliert. Dieses Problem ist aus drei Teilen zusammengesetzt: die bekannte Diffusionsgleichung (gewählt als Konstante Dx), eine advektive Komponente (das System entwickelt sich in Folge eines Vektorfeldes im Raum), welche als Konstante Ux gewählt wird, und eine laterale Überlagerung zwischen longitudinalen Kanälen (k)
wobei C die Konzentration des Fremdkörpers im Wasser ist und die Indizes N und M dem vorherigen und dem nächsten Kanal entsprechen.
Das Crank-Nicolson-Verfahren (wobei i für den Ort und j für die Zeit steht) transformiert jede Komponente der partiellen Differentialgleichung folgendermaßen:
Nun werden folgende Konstanten definiert, um die Rechnung zu vereinfachen:
Nun werden 1. bis 6., α, β und λ in (*) eingesetzt. Im Anschluss werden die "in der Zukunft liegenden" Terme (j + 1) auf die linke Seite und die "aktuellen" (j) auf die rechte Seite gebracht. Es ergibt sich:
Um den ersten Kanal zu modellieren, wird festgestellt, dass es nur im Kontakt mit dem folgenden Kanal (M) sein kann, so dass sich der Ausdruck vereinfacht zu:
Auf die gleiche Art und Weise wird der letzte Kanal modelliert. Es wird festgestellt, dass er nur im Kontakt mit dem vorherigen Kanal (N) sein kann, so dass sich der Ausdruck vereinfacht zu:
Um dieses lineare Gleichungssystem zu lösen, müssen Grenzbedingungen am Anfang der Kanäle gegeben sein:
- : Anfangswert für den aktuellen Kanal
- : Anfangswert für den Kanal des nächsten Zeitintervalls
- : Anfangswert für den vorherigen Kanal des aktuellen Zeitintervalls
- : Anfangswert für den nachfolgenden Kanal des aktuellen Zeitintervalls
Für die letzte Zelle der Kanäle (z) wird die günstigste Bedingung adiabatisch, also
Diese Bedingung ist erfüllt, wenn (und nur dann (abgesehen vom Wert 0)):
Es soll nun das Problem (in Matrizenform) für den Fall mit drei Kanälen und fünf Knoten (inklusive der Anfangswertbedingungen) gelöst werden. Als lineares Problem ausgedrückt:
wobei
Es wird festgestellt, dass AA und BB Felder mit vier verschiedenen Feldkomponenten sein sollten. (Zur Erinnerung: es wurden für dieses Beispiel nur drei Kanäle berücksichtigt, aber es deckt dennoch den Hauptteil des oben Genannten ab)
wobei die oben erwähnten Elemente den nächsten Feldern und einer zusätzlichen 4x4-Nullmatrix entsprechen. Es ist zu beachten, dass AA und BB jeweils die Größe 12x12 haben:
Der d-Vektor wird benutzt, um die Grenzbedingungen einzuhalten. In diesem Beispiel ist er ein 12x1-Vektor:
Um die Konzentration zu jedem Zeitpunkt zu finden, muss die folgende Gleichung iterativ gelöst werden:
Beispiel: Zweidimensionale Diffusion
Werden zwei Dimensionen betrachtet, ist die Herleitung analog und die Ergebnisse liefern eher ein System von band-diagonalen anstelle von tridiagonalen Gleichungen. Die zweidimensionale Wärmeleitungsgleichung
kann gelöst werden mit der Crank-Nicolson-Diskretisierung
angenommen, dass ein rechtwinkliges Koordinatennetz genutzt wird, so dass Δx = Δy. Diese Gleichung kann ein wenig mit Umformungen des Terms und Benutzen der CFL-Zahl vereinfacht werden.
Für die Stabilität des numerische Schemas von Crank-Nicolson ist eine niedrige CFL-Zahl nicht nötig, jedoch braucht man sie für die numerische Genauigkeit. Das Schema kann nun dargestellt werden als:
Anwendung in der Finanzmathematik
Weil auch eine Anzahl anderer Phänomene mit Hilfe der Wärmeleitungsgleichung (in der Finanzmathematik häufig Diffusionsgleichung genannt) modelliert werden können, wird das Crank-Nicolson-Verfahren auch in diesen Bereichen genutzt.[3] Insbesondere die Differentialgleichungen des Black-Scholes-Modells können in die Diffusionsgleichung umgewandelt und mit dem Crank-Nicolson-Verfahren gelöst werden. Die Wichtigkeit dessen kommt von der Ausbreitung des Optionspreismodells, das nicht mit einer in sich geschlossenen analytischen Lösung dargestellt werden kann, es können sich immer noch numerische Lösungen bieten. Allerdings ist das Crank-Nicolson-Verfahren bei ungleichmäßigen finanziellen Bedingungen (die bei den meisten Finanzinstrumenten vorliegen) nicht befriedigend, da numerische Schwingungen nicht gedämpft werden. Daher sind spezielle Dämpfungsinitialisierungen notwendig.
Einzelnachweise
- ↑ Tuncer Cebeci: Convective Heat Transfer. Springer 2002, ISBN 0966846141
- ↑ J. Crank, P. Nicolson: A practical method for numerical evaluation of solutions of partial differential equations of the heat-conduction type. Springer 1947
- ↑ The Mathematics of Financial Derivatives: A Student Introduction. Cambridge Univ. Press 1995, ISBN 0521497892
Weblinks
- : Anfangswert für den aktuellen Kanal
Wikimedia Foundation.