|
>Liebe Kollegen, > >ich komme auf zwei Wegen zu unterschiedlichen Ergebnissen, >wobei Out[2] richtig ist. Hat jemand eine Idee, weshalb >keine Lösung gefunden wird wenn ich die Anfangsbedingung >gleich eingebe ? Dieser Fehler tritt nur in den Fällen auf >wo wie hier die Anfangsbedingung schon der stationäre Zustand >des Systems ist. > >Mit freundlichen Grüßen > >Horst Finsterbusch > >(* 1.Weg *) >In[1]:= DSolve[{x'[t]==x[t]*(1-x[t]),x[a]==b},x[t],t] >Out[1]= {{x[t] -> b*E^t / (E^a - b*E^a + b*E^t)}} >In[2]:= % /. {a->0,b->1} >Out[2]= {{x[t]->1}} > >(* 2.Weg *) >In[3]:= DSolve[{x'[t]==x[t]*(1-x[t]),x[0]==1},x[t],t] >Out[3]= {} > Hallo, ich denke mir, dass der Grund darin liegt: Mathematica rechnet zuerst die DGL ohne Nebenbedingungen. Man erhält dann: x(t) = e^t/(e^t-e^C). wenn man nun hier das Problem e^0/(e^0-e^C) == 1 löst, erhält man schnell, dass C=-infty sein muss. Sie können diese DGL nicht für alle Anfangswerte lösen. Anfangswerte im Intervall x(0)=(0,1) können nicht angenommen werden. Dies steckt in der Gleichung: e^0/(e^0-e^C). Wenn Sie diese mal nach dem Parameter C plotten, sehen Sie das sehr schnell. In Ihrem Fall gehen Sie gerade vom Grenzwert aus und dies bereitet natürlich Probleme. Mit freundlichen Grüssen S. Stingelin. |