Bifurcation Problem
Constant delays (DDE)
Consider the system of delay differential equations with constant delays (DDEs)
\[\frac{\mathrm{d}}{\mathrm{d} t} x(t)=\mathbf F\left(x(t), x\left(t-\tau_1\right), \ldots, x\left(t-\tau_m\right); p\right)\]
where the delays $\tau_i>0$ are constant and $p$ is a set of parameters. In order to specify this, we need to provide the vector field and the delays. The delays are provided using a delay function which must return an AbstractVecor
function mydelays(pars)
[1, pars.tau1]
end
where pars
are some user defined variables. The vector field is then specified as follows
function myF(x, xd, pars)
[
x[1] + xd[2][1]^2,
x[2] + xd[3][2]^2,
]
end
where xd
is a vector holding [x(t-d[1]), x(t-d[2])]
where d = mydelays(pars)
. Some simple examples can be found in the tutorials.
The structure ConstantDDEBifProblem
encapsulates the bifurcation problem.
State-dependent delays (SD-DDE)
Consider the system of delay differential equations with state-dependent delays.
\[\frac{\mathrm{d}}{\mathrm{d} t} x(t)=\mathbf F\left(x(t), x\left(t-\tau_1(x(t))\right), \ldots, x\left(t-\tau_m(x(t))\right); p\right)\]
where the delays $\tau_i>0$ are functions of $x(t)$ and $p$ is a set of parameters. The only difference with the previous case is the specification of the delay function which now depends on x
function mydelays(x, pars)
[
1 + x[1]^2,
2 + x[2]^2
]
end
The structure SDDDEBifProblem
encapsulates the bifurcation problem.
A more elaborate problem would be to allow $\tau_i$ to depend on the history of $x(\theta+t)$ for $\theta\in[-\tau_{max},0]$ and not just on the current value of $x(t)$. This is not implemented yet.