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