DGL mit interpolierten Funktio < Mathematica < Mathe-Software < Mathe < Vorhilfe
|
Hallo Leute,
nachdem ich mich jetzt einen halben Tag mit Mathematica rumgeplagt habe, möchte ich euch gerne nach eurer Meinung zu meinem Problem fragen.
Kurz zum Hintegrund: Ich schreibe gerade eine Studienarbeit in der ich einen Partikel untersuche, der sich durch einen Verdichtungsstoß bewegt und dann seine Temperatur an die Umgebung anpasst. Konkret bin ich am Verlauf der Temperatur über die Zeit interessiert.
Zum Problem: Im Prinzip versuche ich eine DGL der Form T'(t) = Nu(t)*T(t) zu lösen. Dabei basiert die Funktion Nu(t) auf zwei interpolierten Funktionen, die ihrerseits aus Messwerten bestehen. Die Funktion ist für sätmtliche relevante t definiert und wertemäßig zwischen 2 und 100.
Nun spuckt Mathematica beim Ausführen folgende Fehlermeldung aus:
NDSolve::ndnum: Encountered non-numerical value for a derivative at t == 0.'. >>
Zum Debuggen habe ich einmal eine Dummy-Funktion Nu2 gebastelt, die ähnliche Werte ausspuckt, allerdings weder interpoliert, noch auf Messwerten basiert. Damit lässt sich die Berechnung einwandfrei durchführen.
Das gesamte Notebook findet ihr im Anhang.
Der interessante Part befindet sich in den letzten zwei Zellen.
Vielen Dank für eure Hilfe,
Daniel
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.
Dateianhänge: Anhang Nr. 1 (Typ: nb) [nicht öffentlich]
|
|
|
|
Hi Daniel,
so etwas passiert gelegentlich mit numerischen Funktionen, die mit symbolischen Parametern (hier: t innerhalb von NDSolve) aufgerufen werden. Die Standardvorgehensweise besteht darin die Ausfürung von nusselt zu verhindern, falls nicht alles, was übergeben wird, numerische Werte hat:
nusselt[time_?NumericQ, re_?NumericQ] := zu Beginn der Def. der Funktion nusselt schafft Abhilfe. So zeigt z.B. nach NDSolve
Plot[\[CapitalDelta]T[t]/.First[odesolution]//Evaluate,{t,0,2*^-5}] einen Funktionsgraphen, der dem der Fkt. particlevolicity sehr ähnlich ist.
Gruß,
Peter
|
|
|
|