Support for Delay DifferentialEquations
What is a Delay Differential Equation (DDE)?
A DDE is a differential equation in which the derivative of the function in one instant of time depends on the value of the function in previous instants. But read this for more information and to learn which DDEs can be solved by EJS.
What are the differences between a DDE and an Ordinary Differential Equation (ODE)? Besides its definition, there are important differences in the way you specify initial conditions. Read here to learn how a DDE compares to an ODE.
How to use of the ODE editor for a DDE
- Step 1: Declare your variables as usual.
- Step 2: Enter the equations. You can use the past values of the state as needed as if the past state were a function of the independent variable.
- Step 3: Add DDE specific information:
- the delays: a comma-separated list of double constants or variables. (If variables, the value of these variables cannot change while you are stepping the model. You must reset the solvers if the delays change value.)
- the pre-initial conditions code: Java code that returns an array of doubles with an entry for each of the state variables of the DDE. EJS can help you by guessing how this code must be written.
- the possible discontinuities of the pre-initial conditions: a comma-separated list of double constants or variables, indicating where the pre-initial conditions are not smooth-enough. This data can be empty if the pre-initial conditions are smooth.
And that’s it! See a complete example.
More sophisticated examples of DDEs implemented in EJS
Use of the solver memory also for an ODE
For situations where you want to be able to use the past values of the states also for an ODE, EJS now implements a new operation advanced parameter called Memory length. Enter the length of the interval back in time that you want EJS to remember, and it will automatically define the corresponding function for each state variable in the ODE. See an example^{?}.