Effacer les filtres
Effacer les filtres

How to solve delay differential equations with computed history (not constant)

3 vues (au cours des 30 derniers jours)
pedro
pedro le 19 Juin 2023
Commenté : pedro le 19 Juin 2023
Greetings!
I'm trying to solve some delay differential equations. The classic example, the Lotka-Volterra predation model illustrates the problem. This is solved in many places around the web*, always using a constant history (as far as I can tell). Usually, the ode system is solved for comparison, then the delayed system, using a constant history, like the last computed point of the ode system. I'd like to use that computed (approximated by, say, ode45, not analytical) solution of the non-delayed system as history, but can't figure out how. Help would be much appreciated.
* e.g., https://www.mathworks.com/matlabcentral/fileexchange/3899-tutorial-on-solving-ddes-with-dde23

Réponse acceptée

Torsten
Torsten le 19 Juin 2023
Déplacé(e) : Torsten le 19 Juin 2023
Save the results of the non-delayed ode in arrays T and Y, create an interpolation function
fun_history = @(t) interp1(T,Y,t)
pass this function to the history function of the delay ode solver (e.g. dde23) and evaluate it at the given time instants passed to the history function.
  1 commentaire
pedro
pedro le 19 Juin 2023
Torsten,
Thank you very much for your assistance. I had to massage your history function a bit, but in the end it worked. Thanks again, for giving me a push in the right direction!

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by