DMUG-Archiv 2010

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

Re: NDSolve für Dirichlet-Randbedingung

Hallo Frank,

ich habe folgendes Problem mit Mathematica 7.01.0 nicht lösen können:

NDSolve[{0==D[x[r]x'[r],r], x[0]==100, x[1]==10}, x[r], {r,0,1}]

Diese Aufgabe ist äquivalent zu

In[68]:= Clear[y, x];
NDSolve[{y[x] y'[x] == -4950, y[0] == 100}, y[x], {x, 0, 1}]

Out[69]= {{y[x] -> InterpolatingFunction[{{0., 1.}}, <>][x]}}

falls man die Konstante -4950 kennt. Zu dem Zweck tippt man

In[2]:= DSolve[{D[x[r] x'[r], r] == 0, x[0] == p (* 100 *), x[1] == q (* 10 *)}, x[r], r]

und erhält 2 Lösungen

In[94]:= Clear[bm, bp]
bm[t_, p_, q_] := -Sqrt[-p^2 + q^2] Sqrt[(-p^2 + p^2 t - q^2 t)/(p^2 - q^2)] bp[t_, p_, q_] := Sqrt[-p^2 + q^2] Sqrt[(-p^2 + p^2 t - q^2 t)/(p^2 - q^2)]

anhand derer man als Wert der Konstanten

In[97]:= (bm[t, p, q] D[bm[t, p, q], t]) /. t -> 0
Out[97]= 1/2 (-p^2 + q^2)

In[98]:= (bp[t, p, q] D[bp[t, p, q], t]) /. t -> 0
Out[98]= 1/2 (-p^2 + q^2)

feststellt, mit anderen Worten, wegen p = y[0] = 100 und q = y[1] = 10 folgt
(-100^2 + 10^2)/2 = -9900/2 = -4950.

Gruss
Udo.



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

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