Die Advektionsgleichung muss diskretisiert werden, um für die Crank-Nicolson-Methode verwendet zu werden. Kann mir jemand zeigen, wie das geht?
pde
advection
crank-nicolson
Pandoragami
quelle
quelle
Antworten:
Beginnend mit der Advektionsgleichung ist konservative Form,
Die Crank-Nicolson-Methode besteht aus einer zeitlich gemittelten zentrierten Differenz.
In Bezug auf die Notation beziehen sich Indizes auf Punkte im Raum und hochgestellte Indizes auf Zeitpunkte.
Die Punkte bei liegen in der Zukunft: Sie sind unbekannt. Wir müssen nun die obige Gleichung neu anordnen, so dass alle bekannten auf der rechten und die unbekannten auf der rechten Seite stehen.n+1
Die Substitution vornehmen,
gibt,
Dies ist die Advektionsgleichung, die nach der Crank-Nicolson-Methode diskretisiert wurde. Sie können es als Matrixgleichung schreiben,
Ein paar warnende Worte. Dies ist die grundlegende Lösung, die Sie wollten, aber Sie müssen eine Art Randbedingung für ein gut gestelltes Problem angeben. Außerdem ist Crank-Nicolson nicht unbedingt die beste Methode für die Advektionsgleichung. Es ist genau zweiter Ordnung und bedingungslos stabil , was fantastisch ist. Es wird jedoch (wie bei allen Schablonen mit zentrierter Differenz) eine Störschwingung erzeugen, wenn Sie sehr scharfe Spitzenlösungen oder Anfangsbedingungen haben.
Ich habe den folgenden Code für Sie in Python geschrieben, damit Sie loslegen können. Der Code löst die Advektionsgleichung für eine anfängliche Gaußsche Kurve, die sich mit konstanter Geschwindigkeit nach rechts bewegt.
quelle