DMUG-Archiv 2005

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

Re[2]: PDE's und Randbedingungen

Hallo Hans,

2. Ihre Ausführungen mit G[x,t] und H[x,t] sind beeindruckend.
Das nicht, sie sind falsch, wenn die Gleichungen auf dem Rand nicht gelten. Dass die Gleichungen auf dem Rand nicht gelten, ist wiederum naheliegend, weil die Berechnung einer zweiten Ortsableitung auf dem Rand genaugenommen eine weitere Stuetzstelle ausserhalb des Definitionsbereiches oder die Kennntnis der ersten Ableitung auf dem Rand erfordert. Die Berechnung der ersten Ableitung erfordert wiederum die Kenntnis des Funktionswertes auf dem Rand. Diese Daten oder allg. Ableitungen niederer Ordnung sind durch die Gleichungen nicht gegeben, deshalb schliesst man das System mit Randbedingungen ab.

Wegen g[1,t]==h[1,t] für alle Zeiten t sind auch die Ableitungen gleich:

Nicht fuer alle Zeiten: h[1, t] == g[1, t] (1 - Exp[-30 t]) soll gelten; das spielt fuer das Argument aber keine Rolle.

3. Ich weiß immer noch nicht, wie es zu diser Divison durch null kommt und
was man dagegen machen kann. Interessant: wenn man im Vorfaktor zu g das d2
auf null setzt läuft die Routine durch, allerdings mit einer anderen
Fehlermeldung.

Vielleicht rechnet Mma

Derivative[1, 0][g][1, t] = (-(d1 + d2 h[1, t]) Derivative[1, 0][h][1, t])/(d1 + d2 h[1, t]/(1 - Exp[-30 t]))

damit waere die Sache bei t = 0 gelaufen, es kommt ein 0./0. und eine unbestimmte Ableitung für g[1, t]. Ich habe es aber nicht gepackt, das zu verifizieren.

Die Exponential in h[1, t] == g[1, t] (1 - Exp[-30 t]) dient vermutlich dazu, h[1, t->0] mit h[x -> 1, 0] konsistent zu machen. Dies kann man auch anders abbilden, mit h[1, t] == g[1, t] - c0 Exp[-30 t] oder gesamthaft

NDSolve[{
 D[g[x, t], t] == D[(1/2 + 4/5 g[x, t]) D[g[x, t], x], x],
 D[h[x, t], t] == D[(1/2 + 4/5 h[x, t]) D[h[x, t], x], x],
 g[x,0] == 1,
 h[x,0] == 0,
 Derivative[1, 0][g][0,t] == 0,
 Derivative[1, 0][h][0,t] == 0,
(1/2 + 4/5 g[1,t]) Derivative[1, 0][g][1,t] == -(1/2 + 4/5 h[1,t]) Derivative[1, 0][h][1,t],
 h[1,t] == g[1,t] - Exp[-30 t]
}, {g,h},
{x, 0, 1}, {t, 0, 1}, MaxStepSize -> 1/737, StartingStepSize -> 1/1000]

verschwinden die Meldungen Power::infy, \infty::indet und NDSolve::ndnum. Trotzdem kommt man nicht weit, denn bei den Defaulteinstellungen entwickelt sich sofort ein Zeitschrittproblem NDSolve::ndsz gefolgt von einem Abbruch NDSolve::eerr. Die Fehlermeldung empfiehlt, MaxStepSize etc. zu verkleinern, mit dem Resultat, dass das NDSolve::ndsz bei kleineren t-Werten erscheint. Es bleibt nichts anderes, als diesen Operator und/oder die Dokumentation von NDSolve zu studieren.

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

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