JuliaDynamics / DynamicalSystems.jl

Award winning software library for nonlinear dynamics and nonlinear timeseries analysis
https://juliadynamics.github.io/DynamicalSystemsDocs.jl/dynamicalsystems/dev/
Other
828 stars 90 forks source link

Delayed Differential Equations #190

Closed ISCOTTYI closed 2 years ago

ISCOTTYI commented 2 years ago

In my work I investigate delayed dynamical systems (i.e. where the right hand side of the system equations exhibit constant time delays, that is DDEs; Prototypical example would be the Mackey-Glass System). So far I worked with Python, but want to instead use Julia. JuliaDynamics seems to be the right place to start.

I have carefully studied both documentation and code base, but could not find a way to create a DynamicalSystem with time delays. To my understanding DynamicalSystems.jl relies on DifferentialEquations.jl to integrate the EOMs, which offers DDE solvers. The extension to delayed systems therefore seems straight forward, possibly only requiring to allow the creation of a DynamicalSystem, where f is used to create a DDEProblem (as far as I understood it, the integrator handling is consistent with ODEProblems).

Datseris commented 2 years ago

Closing in favor of https://github.com/JuliaDynamics/DynamicalSystems.jl/issues/176 and the discussion we already had in https://github.com/JuliaDynamics/ChaosTools.jl/issues/255 about the Mackey-Glass system.

Short answer: at the moment there isn't a way to do DelayDiffEqs in DynamicalSystems.jl using the actual DifferentialEquations.jl infastructure, only if you hard code it yourself and make it a discrete map. In a future redesign, "Dynamical System" will be any arbitrary integrator that progresses the state forwards in time, and hence you could plug in whatever you want, even SDEs.