Betrachten wir eine glatte Ausgangsbedingung und die Wärmegleichung in einer Dimension:
Ich weiß, dass ich mein Problem mit Randbedingungen bei und ausstatten muss, damit es gut gestellt ist . Ich weiß, dass Dirichlet oder Neumann gut funktionieren.
Wenn ich im ersten Fall innere Punkte habe, ist fürk=1,⋯,N, dann habe ichNUnbekannte:uk=u(xk)fürk=1,⋯,N, weil an den Grenzen vorgeschrieben ist.
Im zweiten Fall habe ich wirklich Unbekannte u 0 , ⋯ , u N + 1 , und ich weiß, wie man den (homogenen) Neumann BC verwendet, um den Laplace an der Grenze zu diskretisieren, zum Beispiel mit dem Zusatz von zwei fiktiven Punkten x - 1 und x N + 2 und die Gleichungen:
Meine Frage betrifft das periodische BC. Ich habe das Gefühl, dass ich eine Gleichung verwenden könnte, nämlich aber vielleicht zwei, und dann würde ich ∂ x u ( 0 ) = ∂ x u (
aber ich bin mir nicht sicher. Ich weiß auch nicht, wie viele Unbekannte ich haben sollte. Ist es ?
Antworten:
Der beste Weg, dies zu tun, ist (wie Sie sagten), einfach die Definition der periodischen Randbedingungen zu verwenden und Ihre Gleichungen von Anfang an korrekt unter Verwendung der Tatsache aufzustellen, dass . Tatsächlich identifizieren periodische Randbedingungen noch stärker x = 0 mit x = 1 . Aus diesem Grund sollten Sie nur einen dieser Punkte in Ihrer Lösungsdomäne haben. Ein offenes Intervall ist bei periodischen Randbedingungen nicht sinnvoll, da es keine Grenze gibt .u(0)=u(1) x=0 x=1
Diese Tatsache bedeutet, dass Sie keinen Punkt bei da er mit x = 0 identisch ist . Diskretisierung mit N + 1 Punkten, verwenden Sie dann die Tatsache , dass der Punkt links von definitions x 0 heißt x N und der Punkt rechts von x N istx=1 x=0 N+1 x0 xN xN x0 .
Ihre PDE kann dann im Raum als ∂ diskretisiert werden
Dies kann in Matrixform als wobei A=[ - 2 1 0 ⋯ 0 1 1 - 2 1
Natürlich muss diese Matrix nicht erstellt oder gespeichert werden. Die endlichen Differenzen sollten im laufenden Betrieb berechnet werden, wobei darauf zu achten ist, dass der erste und der letzte Punkt nach Bedarf behandelt werden.
Als einfaches Beispiel löst das folgende MATLAB-Skript mit periodischen Randbedingungen auf der Domäne x ∈ [ - 1 , 1 ) . Die hergestellte Lösung U Ref ( t , x ) = exp ( - t ) cos ( 5 π x ) = ( 25 π 2 -
quelle
Nach dieser sollten Sie periodische Randbedingungen wie zu verhängen:
Eine Möglichkeit, die Wärmegleichung implizit mit dem Rückwärts-Euler zu diskretisieren, ist
Lösen des Gleichungssystems
Wo
Sie können Ihre periodischen Randbedingungen einbeziehen, indem Sie zwei weitere Gleichungen und zwei zusätzliche (Geister-) Zellen hinzufügenu0 und uN+ 1 so dass:
According to Section 2.11 LeVeque this gives you a 2nd order accuracy forux
Finally your system of equations will look like:
Which gives you N+2 equations and N+2 unknowns.
You can also get rid of the first to equations and the ghost cells and arrive at a system of N equations and N unknowns.
quelle