DMUG-Archiv 1999

Frühere

 

Chronologischer Index

 

Spätere

Vorherige

 

Thematischer Index

 

Nächste

Re: Fallunterscheidung in NDSolve

Hallo,

also erstmal solltest Du die sehr "ubersichtlichen
Variablen Namen richtig schreiben also statt

> Alpha=2*(1-Exp[-Enn/(RkJopule*x)])


Alpha = 2*(1 - Exp[-Enn/(RkJoule*x)]);

So dann hat If[] das Attribut HoldRest, die Zweige
von If[] in Deiner Differential Gleichung werden also
nicht ausgewertet, wodurch die vielen Variablen erhalten 
bleiben und nicht durch die numerischen Werte ersetzt werden.
Letzteres f"uhrt dazu, dass NDSolve[] bei der Berechung der rechten
Seite
keine numerischen Werte erh"alt und sich folglich weigert einen
symbolischen
Ausdruck zu integrieren.

Mit
eqn = -0.5*B*y'[x] == 
    If[y[x] <= 1.0, 
      Evaluate[Ades*NA*Xi*Exp[-(Edes - 2.0*z*y[x]*Ennn)/(RkJoule*x)]], 
      Evaluate[y[x]^2*Ades*NA*Exp[-(110.71 - 12.552*y[x])/(RkJoule*x)]]]

NDSolve[{deqn, y[300] == 1.0}, y, {x, 250, 600}]

gelingt die L"osung aber problemlos.

Gruss
  Jens



cz wrote:
> 
> Liebe mathematica-Nutzer,
> 
> mathematica die folgende Fallunterscheidung in NDSolve bisher nicht
> lösen.  Die der Fallunterscheidung zugrunde liegenden Einzelgleichungen
> kann NDSolve lösen. Den Übergang zwischen den beiden Funktionen in der
> Fallunterscheidung schafft der Solver anscheinend nicht (auch bei
> kleinen Schrittweiten). Woran liegt es und gibt es eine
> Alternativlösung, die funktioniert?
> 
> Vielen Dank
> 
> C. Z.
> 
> Mathematica Input:
> 
> z=6
> m=2*z-2
> Ades=2
> B=5
> NA=1.57*10^15
> RkJoule=0.00831441
> Edes=123.428
> Enn=1.67
> Ennn=0.71128
> Alpha=2*(1-Exp[-Enn/(RkJopule*x)])
> Thh=y[x]-(1-(1-2*Alpha*y[x]*(1-y[x]))^0.5)/Alpha
> Ths=2*(1-(1-2*Alpha*y[x]*(1-y[x]))^0.5)/Alpha
> Tss=1-y[x]-(1-(1-2*Alpha*y[x]*(1-y[x]))^0.5/Alpha
> Xi=Thh*((Thh*Exp[Enn/(RkJoule*x)]+0.5*Ths)/y[x])^m
> 
> NDSolve[{-0.5*B*y'[x]==If[y[x]<=1.0,Ades*NA*Xi*Exp[-(Edes-2.0*z*y[x]*Ennn)/(RkJoule*x)],
> 
> y[x]^2*Ades*NA*Exp[-(110.71-12.552*y[x])/(RkJoule*x)]],y[300]==1.0},y,{x,250,600}]


Verweise:
Fallunterscheidung in NDSolve
cz, 21.07.1999

Frühere

 

Chronologischer Index

 

Spätere

Vorherige

 

Thematischer Index

 

Nächste

DMUG-Archiv, http://www.mathematica.ch/dmug-liste.html; Letzte Änderung: 08.09.2003 20:45