Bei der Modellierung eines mikrobiologischen Prozesses bringt die numerische
Lösung der Differentialgleichungen recht unterschiedliche Werte, abhängig von
dem Wert von DT (integration stepsize).
Verwende ich absurd niedrige Werte für DT, sieht das Ergebnis halbwegs
plausibel aus, leider kann ich das dann allerdings nur für einen kurzen
Zeitraum simulieren. Für die Simulation längerer Zeiträume, bei denen ich
größere Werte von DT nehmen muss (wg. Rechenkapazität), nehmen meine
Zustandsvariable wahnwitzige Werte an…
Wie kann das sein, und wie komme ich diesem Problem bei?
Integrationsmethode ist Runge-Kutta 4. Ordnung.
Größenorndung für die beschriebenen Werte:
der Simulationszeitraum sollte etwa 2000 h betragen (d.h. Stoptime = 2000),
bei Integrationsschritten von DT = 0.2 produziert das Ding keine sinnvollen
Lösungen (es sei denn, 1+1 ergäbe etwa 20)
Bei hundert- bis tausendfach kleineren Integrationsschritten ist das ganze
schon wesentlich plausibler, allerdings bräuchte ich dann für die gesamte
Simulation wohl deutlich mehr Rechenleistung, als zur Verfügung steht… Was
tun?
Wäre schön, wenn jemand eine Idee hat, wo hier der Hund begraben liegt…
…das ist wohl eher ein mathematisches Problem, oder ?
Bei der Modellierung eines mikrobiologischen Prozesses bringt
die numerische
Lösung der Differentialgleichungen recht unterschiedliche
Werte, abhängig von
dem Wert von DT (integration stepsize).
Welche DGL und welcher Typ ? Vielleicht wurde eine Bedingung für die numerische Auswertung verletzt ?
Verwende ich absurd niedrige Werte für DT, sieht das Ergebnis
halbwegs
plausibel aus, leider kann ich das dann allerdings nur für
einen kurzen
Zeitraum simulieren. Für die Simulation längerer Zeiträume,
bei denen ich
größere Werte von DT nehmen muss (wg. Rechenkapazität), nehmen
meine
Zustandsvariable wahnwitzige Werte an…
Wie kann das sein, und wie komme ich diesem Problem bei?
der Simulationszeitraum sollte etwa 2000 h betragen (d.h.
Stoptime = 2000),
bei Integrationsschritten von DT = 0.2 produziert das Ding
keine sinnvollen
Lösungen (es sei denn, 1+1 ergäbe etwa 20)
Bei hundert- bis tausendfach kleineren Integrationsschritten
ist das ganze
schon wesentlich plausibler, allerdings bräuchte ich dann für
die gesamte
Simulation wohl deutlich mehr Rechenleistung, als zur
Verfügung steht… Was
tun?
Wäre schön, wenn jemand eine Idee hat, wo hier der Hund
begraben liegt…
Ohne das Modell genauer zu kennen ist das nur ein Stochern im Nebel
du musst als erstes eine Fehlerabschätzung machen. Der Fehler ist irgendwas mit exp{Schrittweite/Genauigkeit).
Wahrscheinlich kannst Du kein EInzelschrittverfahren anwenden. Versuch mal ein Mehrschrittverfahren. (Stichwort: Mondflug. Da war auch die enorm große Entfernung das Problem. Lösung war ein Mehrschrittverfahren mit vielen kleinen Lösungen und der Randbedingung, dass es aneinanderpassen muss)
Gleichungen der Art
d/dt(Stoff X) = (Produktionsrate von X) - (Abbaurate von X)
Vielleicht wurde eine Bedingung
für die numerische Auswertung verletzt ?
Bitte wie? Was meinst du damit konkret?
Integrationsmethode ist Runge-Kutta 4. Ordnung.
Keine andere Methode zulässig ?
Es stehen noch Runge-Kutta 2. Ordnung, Euler, Rosenbrock zur Auswahl.
RK4 war defaultmäßig gesetzt… wäre eine andere Methode geeigneter?
Ohne das Modell genauer zu kennen ist das nur ein Stochern im
Nebel
Schon klar… Es geht darum, dass ein paar Viecher (Bakterien) Stoffe
produzieren und sie auch wieder abbauen (s.o.). Mathematisch eigentlich recht
simpel (zumindest versteh’ ichs noch). Bislang habe ich daran gearbeitet, dass
das Modell in sich stimmt (hat lang genug gedauert) - dass die
Integrationsmethode auf das Ergebnis Einfluss hat, ist eine recht neue
Erkenntnis für mich.