DMUG-Archiv 2010

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

Re: NDSolve für Dirichlet-Randbedingung

Hallo Frank,

On Sat, 06 Feb 2010 15:34:38 +0100, Frank Breitling <fbreitling@<snip>> wrote:

Leider ist mein eigentliches Problem etwas komplizierter:

D[r^2k0 T[r]^(5/2)T'[r], r] == 3/2kB T'[r]-(kB T[r])/n[r]n'[r]

Hier suche ich eine Lösung für T[r] wobei kB, k0, T[r1] und T[r2]
Konstanten sind und n[r] als "InterpolatingFunction" (streng monoton
fallend gegen 0 für r gegen unendlich) gegeben ist.

Gut, beim etwas komplizierteren Problem lässt sich auch etwas rechnen, wenn man

(i)     die Konstanten exakt nimmt (hier alle auf 1, da nicht angeben)
(ii)    Cauchy-Bedingungen verwendet
(iii)   die WorkingPrecision hochfährt

diese drei Tipps wurden bei ähnlicher Gelegenheit von Daniel Lichtblau gegeben. Weiterhin

(iv) muss man aus der Null herausgehen, Bedingungen bei r = 0 liefern nur Fehler, den Grund dafür habe ich bis anhin nicht ermittelt. Ihr n'[r]/n[r] wurde mangels Angabe durch Exp[-r] ersetzt, also

In[2]:= s = With[{k0 = 1, kB = 1},
  NDSolve[{k0 r T[r]^(3/2) Derivative[1][T][
        r] (2 T[r] + 5/2 Derivative[1][T][r])
      + k0 r^2  T[r]^(5/2) Derivative[2][T][r] == -kB Exp[-r] T[r] +
      3/2 kB Derivative[1][T][r],
    T[2] == 10, Derivative[1][T][2] == 0}, T, {r, 2, 3},
   WorkingPrecision -> 62]
  ]

Out[2]= {{T -> InterpolatingFunction[{{2.`62, 3.`62}}, <>]}}

und

In[3]:= Plot[Evaluate[T[r] /. s], {r, 2, 3}, PlotRange -> All]

gibt das Bildchen im Anhang. Durch Experimentieren können Sie die Cauchy-Bedingungen mglw. derart einstellen, dass der richtige Randwert am Intervallende erreicht wird.

Gruss
Udo.

Attachment: breitling.jpeg
Description: JPEG image

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

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