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.