DMUG-Archiv 2005

Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

Re: PDE's und Randbedingungen

Hallo Hans,

Ihr PDE-System

NDSolve[{D[g[x, t], t] == D[(d1 + d2 g[x, t]) D[g[x, t], x], x],
   D[h[x, t], t] == D[(d1 + d2 h[x, t]) D[h[x, t], x], x],
   g[x, 0] == c0,
   h[x, 0] == 0,
   Derivative[1, 0][g][0, t] == 0,
   Derivative[1, 0][h][0, t] == 0,
(d1 + d2 g[1, t]) Derivative[1, 0][g][1, t] == -(d1 + d2 h[1, t])Derivative[1, 0][h][1, t],
    h[1, t] == g[1, t](1 - Exp[-30 t])},
   {g, h},
   {x, 0, 1}, {t, 0, t1}
]

kommt durch die Randbedingung
(d1 + d2 g[1, t]) Derivative[1, 0][g][1, t] == -(d1 + d2 h[1, t])Derivative[1, 0][h][1, t]

in einen schlechten Zustand oder gewissenmassen in Unordnung: Sei
G[x, t] := (d1 + d2 g[x, t]) Derivative[1, 0][g][x, t] und
H[x, t] := (d1 + d2 h[x, t]) Derivative[1, 0][h][x, t]

dann lautet die Rdbdg G[1, t] == -H[1, t]. Die Gleichungen sind in denselben Bezeichnungen D[g[x, t], t] == D[G[x, t], x] und D[h[x, t], t] == D[H[x, t], x], somit bei x = 1
D[h[1, t], t] ==  D[H[1, t], x] == D[-G[1, t], x] ==  -D[g[1, t], t]

oder mit anderen Worten, die Randbedingung kann auch folgendermassen geschrieben werden
Derivative[0, 1][h][1, t] == -Derivative[0, 1][g][1, t]

und konkurrenziert vom Grad der Zeitableitung her die Gleichungen - das hat Mma bei Ihrer Eingabeform übersehen.

Wenn man es trotzdem eintippt
NDSolve[{D[g[x, t], t] == D[(d1 + d2 g[x, t]) D[g[x, t], x], x],
   D[h[x, t], t] == D[(d1 + d2 h[x, t]) D[h[x, t], x], x],
   g[x, 0] == c0,
   h[x, 0] == 0,
   Derivative[1, 0][g][0, t] == 0,
   Derivative[1, 0][h][0, t] == 0,
   (*
(d1 + d2 g[1, t]) Derivative[1, 0][g][1, t] == -(d1 + d2 h[1, t]) Derivative[1, 0][h][1, t],
     *)
   Derivative[0, 1][h][1, t] == -Derivative[0, 1][g][1, t]
    h[1, t] == g[1, t] (1 - Exp[-30 t])},
 {g, h},
 {x, 0, 1}, {t, 0, t1}]

gibt Mma 5.1 Bescheid mittels:

NDSolve::bdord: Boundary condition -(1 - E^(-30 t)) g[1, t] + h^(0, 1)[1, t] should have derivatives of order lower than the differential order of the partial differential equation.

Richtig. Also dies wird nichts Sinnvolles mehr erbringen, solche Randbedingungen sollten auch vom Modell her nicht stimmen.

Gruss
Udo.

Hans.Dolhaine@XXXXXXX.com wrote:

Liebe Liste,

ich will numerisch ein System von partiellen Differentialgleichungen
integrieren. Dabei soll einer der Koeffizienten eine Funktion der Lösung
sein - es ist also etwas komplizierter. Insbesondere hängt damit auch eine
der Randbedingungen (die an der Stelle x = 1 ) von der Lösung ab. NDSolve
funktioniert klaglos, wenn der Koeffizient konstant ist. Baue ich die
Abhängigkeit von der Lösung ein gibt's eine Fehlermeldung "Division durch
null". Ich kenne mich zu wenig in Mathematica und der Theorie der
partiellen Differentialgleichungen aus, um den Grund für diesen Fehler zu
erkennen. Versteht das jemand? Und wie kann ich mein System trotzdem lösen?

Hans Dolhaine

(See attached file: dmug.nb)
_________________________________

VTR-TS
Phone:      +49-211-797-4809
Fax:        +49-211-798-1853
Mobile:     0171 97 17 049
E-Mail:     Hans.Dolhaine@XXXXXXX.com




Antworten:
Verweise:
Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

DMUG DMUG-Archiv, http://www.mathematica.ch/archiv.html