Lösung der Helmholtz-Gleichung

 
  • Die Helmholtz-Gleichung ist ein klassisches Beispiel einer elliptischen partiellen DGL in zwei Raumdimensionen. Die Gleichung lautet
    (d/dx)**2 u +(d/dy)**2 u + λ*u = f
    Wir betrachten hier die einfachsten Randbedingungen, nämlich (x,y) in [a,b]x[c,d] und λ <= 0.
  • Elliptische DGLen beschreiben von der Zeit unabhängige Vorgänge. Hier handelt es sich um die Verformung einer Membran unter einer äusseren Last f und dem Eigengewicht.
  • Auf dem Rand des Rechtecks [a,b]x[c,d] müssen sogenannte Randwerte angegeben werden, um ein korrekt gestelltes Problem zu definieren. Diese Randwerte können sich auf die Funktionswerte von u beziehen (Dirichlet-Randdaten) oder auf die Normalableitung von u (von Neumann-Randdaten). (oder auf eine Linearkombination von beiden. Dieser Fall ist jedoch hier nicht implementiert.)
  • Gelöst wird das elliptische Randwertproblem mit einem Differenzenverfahren unter Verwendung des klassischen 5-Punkte-Differenzen-Sterns.
  • Dazu wird das Gebiet [a,b]x[c,d] mit einem äquidistanten Rechteck-Gitter überzogen und die Lösung u wird nur in den Gitterpunkten approximiert.
  • Die Konvergenz des Verfahrens ist bei hinreichender Differenzierbarkeit der wahren Lösung u quadratisch im Gitterabstand h.
 

Die Eingaben

 
  • Neben zwei voreingestellten Problemstellungen gibt es die Möglichkeit, eine eigene Problemstellung zu definieren. Bei den voreingestellten Fällen ist die wahre Lösung bekannt.
  • Bei der ersten Voreinstellung ist die Lösung u in C4 und damit die Konvergenzrate O(h2).
  • Bei der zweiten Variante ist u in C3 im Inneren des Rechtecks und sogar nur C2 auf den Rand.
  • Im Falle einer eigenen Problemstellung sind folgende Eingaben notwendig:
    1. Die Funktion f(x,y). Die Eingabe dieser Funktion folgt den Konventionen der Programmiersprache FORTRAN.
    2. Die Art der Randwerte auf den Rändern des Rechtecks. Bei Dirichlet-Randdaten werden die Funktionswerte der Lösung u vorgegeben und bei von Neumann-Randdaten die Werte der Normalableitung von u auf den Randstücken. Die Eingabe kann für jede Kante des Rechteckes individuell eingestellt werden.
    3. Die Funktionen, die diese Randdaten definieren.
    4. Der Parameter λ. Wichtig λ <= 0 !.
    5. Das Rechteck [a,b]x[c,d].
    6. Da als Ausgabe ein png-Bild aus 3D-Plots erzeugt wird, kann man den Betrachtungswinkel der Projektion bei der Erzeugung der Plots angeben.
  • Für alle drei Fälle wird die Eingabe der Teilintervalle benötigt, in die [a,b](m) bzw. [c,d](n) zerlegt werden sollen. Der Gitterabstand ist damit hx = (b-a)/m und hy = (c-d)/n . Wichtig : 3 <= m,n <= 100 !
 

Die Ausgaben

 
  • Ausgegeben wird die exakte Lösung (in den voreingestellten Fällen).
  • Der maximale absolute Fehler, falls die Lösung bekannt ist.
  • Ein 3D-Plot der berechneten Gitterfunktion.
 

Fragen ?!

 
  • Wie hängt der Fehler vom Gitterabstand ab ?
  • Was passiert bei reduzierten Differenzierbarkeitsvoraussetzungen ?
  • Wie muss man die Randvorgaben wählen, damit man eine C4-Lösung erhält?
 

Das Eingabeformular

 

Zurück: Partielle DGLs

 
Back to the top!

22.08.2016