Documentation |
On this page… |
---|
Time-Dependent and State-Dependent DDEs |
A system of differential equations (DDEs) with constant delays has the following form:
$${y}^{\prime}(t)=f(t,y(t),y(t-{\tau}_{1}),\dots ,y(t-{\tau}_{k})).$$ | (10-1) |
Here, t is the independent variable, y is a column vector of dependent variables, and y ′ represents the first derivative of y with respect to t. The delays, τ_{1},…,τ_{k}, are positive constants.
The dde23 function solves DDEs of the form given by Equation 10-1 with history y(t) = S(t) for t <t_{0}.
The solutions of DDEs are generally continuous, but they have discontinuities in their derivatives. The dde23 function tracks discontinuities in low-order derivatives. It integrates the differential equations with the same explicit Runge-Kutta (2,3) pair and interpolant used by ode23. The Runge-Kutta formulas are implicit for step sizes bigger than the delays. When y(t) is smooth enough to justify steps this big, the implicit formulas are evaluated by a predictor-corrector iteration.
Equation 10-1 is a special case of
$${y}^{\prime}(t)=f(t,y(t),y(d{y}_{1}),\mathrm{...},y(d{y}_{p}))$$ | (10-2) |
that involves delays, dy_{1},..., dy_{k}, which can depend on both time, t, and state, y. The delays, dy_{j}(t, y), must satisfy dy_{j}(t, y) ≤ t on the interval [t_{0}, t_{f}] with t_{0} < t_{f}.
The ddesd function finds the solution, y(t), for DDEs of the form given by Equation 10-2 with history y(t) = S(t) for t < t_{0}. The ddesd function integrates with the classic four-stage, fourth-order explicit Runge-Kutta method, and it controls the size of the residual of a natural interpolant. It uses iteration to take steps that are longer than the delays.
Delay differential equations of neutral type involve delays in y ′ as well as y:
$${y}^{\prime}(t)=f(t,y(t),y(d{y}_{1}),\mathrm{...},y(d{y}_{p}),{y}^{\prime}(dy{p}_{1}),\mathrm{...},{y}^{\prime}(dy{p}_{q})).$$ | (10-3) |
The delays in the solution must satisfy dy_{i}(t,y) ≤ t. The delays in the first derivative must satisfy dyp_{j}(t,y) < t so that y ′ does not appear on both sides of the equation.
The ddensd function solves DDEs of neutral type by approximating them with DDEs of the form given by Equation 10-2. For more information, see Shampine [1].
Use the deval function and the output from any of the DDE solvers to evaluate the solution at specific points in the interval of integration. For example, y = deval(sol, 0.5*(sol.x(1) + sol.x(end))) evaluates the solution at the midpoint of the interval of integration.
When you solve a DDE, you approximate the solution on an interval [t_{0},t_{f}] with t_{0} < t_{f}. The DDEs show how y ′(t) depends on values of the solution (and possibly its derivative) at times prior to t. For example, Equation 10-1 shows that y ′(t_{0}) depends on y(t_{0} – τ_{1}),…,y(t_{0} – τ_{k}) for positive constants τ_{j}. Because of this, a solution on [t_{0}, t_{k}] depends on values it has at t ≤ t_{0}. You must define these values with a history function, y(t) = S(t) for t <t_{0}.
Generally, the first derivative of the solution has a jump at the initial point. This is because the first derivative of the history function, S(t), generally does not satisfy the DDE at this point. A discontinuity in any derivative of y(t) propagates into the future at spacings of τ_{1},…, τ_{k} when the delays are constant, as in Equation 10-1. If the delays are not constant, the propagation of discontinuities is more complicated. For neutral DDEs of the form given by Equation 10-1 or Equation 10-2, the discontinuity appears in the next higher order derivative each time it is propagated. In this sense, the solution gets smoother as the integration proceeds. Solutions of neutral DDEs of the form given by Equation 10-3 are qualitatively different. The discontinuity in the solution does not propagate to a derivative of higher order. In particular, the typical jump in y ′(t) at t_{0} propagates as jumps in y ′(t) throughout [t_{0}, t_{f}].