Accelerating the pace of engineering and science

# Documentation

## DDE with Constant Delays

This example shows how to use dde23 to solve a system of DDEs with constant delays.

Click ddex1.mddex1.m or type edit ddex1.m in a command window to view the code for this example in an editor.

The differential equations are:

$\begin{array}{l}{y}_{1}{}^{\prime }\left(t\right)={y}_{1}\left(t-1\right)\hfill \\ {y}_{2}{}^{\prime }\left(t\right)={y}_{1}\left(t-1\right)+{y}_{2}\left(t-0.2\right)\hfill \\ {y}_{3}{}^{\prime }\left(t\right)={y}_{2}\left(t\right).\hfill \end{array}$

The history of this problem is constant:

$\begin{array}{c}{y}_{1}\left(t\right)=1\\ {y}_{2}\left(t\right)=1\\ {y}_{3}\left(t\right)=1\end{array}$

for t ≤ 0.

1. Create a new program file in the editor. This file will contain a main function and two local functions.

2. Define the first-order DDE as a local function.

```function dydt = ddex1de(t,y,Z)
ylag1 = Z(:,1);
ylag2 = Z(:,2);
dydt = [ylag1(1); ylag1(1)+ylag2(2); y(2)];
end```
3. Define the solution history as a local function.

```function S = ddex1hist(t)
S = ones(3,1);
end```
4. Define the delays, τ1,…,τk in the main function.

`lags = [1,0.2];`
5. Solve the DDE by calling dde23 in the main function. Pass the DDE function, the delays, the solution history, and interval of integration, [0,5], as inputs.

`sol = dde23(@ddex1de,lags,@ddex1hist,[0,5]);`

The dde23 function produces a continuous solution over the whole interval of integration [t0,tf].

6. Plot the solution returned by dde23. Add this code to your main function.

```plot(sol.x,sol.y);
title('An example of Wille and Baker');
xlabel('time t');
ylabel('solution y');
legend('y_1','y_2','y_3','Location','NorthWest');
```
7. Evaluate the solution at 10 equally spaced points over the interval of integration. Then plot the results on the same axes as sol.y. Add this code to the main function.

```tint = linspace(0,5,10);
Sint = deval(sol,tint)
hold on
plot(tint,Sint,'o');```
8. Run your program to generate and plot the results.