Sign in to follow this  

Delay differential equation

This topic is 3303 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi! I need to solve a delay differential equation (a.k.a Differential difference equation) but all I can find is some general information about it. Does anybody know where I can find solved examples of this DDE problems? thanks [smile]

Share this post


Link to post
Share on other sites
What does the DDE look like? Some forms of differential equations are quite easy to solve using non-general techniques, some are unsolvable, and some have no specific solution technique except substitution. An elementary calculus book should be a good starting point, but it won't cover everything.

Share this post


Link to post
Share on other sites
DDEs are very hard to solve in general, much harder than ordinary DEs. It is unlikely that you're going to find a closed-form solution to your particular problem, especially because it involves non-constant terms. You will probably have to settledfor a numerical solution.

Share this post


Link to post
Share on other sites
I don't know a ton about this but I'll try to help.

Say you have a "finite dimensional state" 'x' in R^n, and

(d/dt)x(t) = f(x(t), x(t-T))

Then you can turn this into a differential equation with no delays by adopting a larger, infinite dimensional state space, of the functions mapping the interval [0,T] to R^n (i.e., the "infinite-dimensional state" is the history of the "finite dimensional state" over the last T seconds).

You can, in turn, make this into a PDE, by thinking of the argument to the infinite dimensional state as one "axis," and the "time" (each of which is associated with another infinite dimensional state) as another "axis."

Sometimes it's easiest to think of there being an infinite-dimensional state space; sometimes it's easiest to think of there being a PDE. I concur with jjd that you will probably need to settle for a numerical solution. There are, however, a few exceptions. If you have a linear DDE with rational delays, you can solve the problem by simply adopting a larger finite-dimensional state space (think "delay line") in discrete time.

Share this post


Link to post
Share on other sites
Quote:
Original post by Emergent
I don't know a ton about this but I'll try to help.

Say you have a "finite dimensional state" 'x' in R^n, and

(d/dt)x(t) = f(x(t), x(t-T))

Then you can turn this into a differential equation with no delays by adopting a larger, infinite dimensional state space, of the functions mapping the interval [0,T] to R^n (i.e., the "infinite-dimensional state" is the history of the "finite dimensional state" over the last T seconds).

You can, in turn, make this into a PDE, by thinking of the argument to the infinite dimensional state as one "axis," and the "time" (each of which is associated with another infinite dimensional state) as another "axis."

Sometimes it's easiest to think of there being an infinite-dimensional state space; sometimes it's easiest to think of there being a PDE. I concur with jjd that you will probably need to settle for a numerical solution. There are, however, a few exceptions. If you have a linear DDE with rational delays, you can solve the problem by simply adopting a larger finite-dimensional state space (think "delay line") in discrete time.



The delay is indeed rational. Can you elaborate on that?
where can I find material on that? I couldn't find anything :(

Share this post


Link to post
Share on other sites
Quote:
Original post by Idov
The delay is indeed rational. Can you elaborate on that?
where can I find material on that? I couldn't find anything :(


I realize now that, in my first post, I wasn't thinking about a "normal" DDE when I said that; I was thinking about a particular problem that a friend had been working on. Now that I think about it, it wasn't really a DDE. However, I think that the idea works, with some modifications. [Note: I'll solve a homogeneous DDE here (i.e., without any forcing), but you can include forcing if you like; everything should work pretty much as below.]

So for instance, let's say you want to solve,

\dot{x}(t) = A_1 x(t) + A_2 x(t-\frac{1}{2}) + A_3 x(t - 3)

with x \in {\mathbb R}^n; \text{ ~ } A_1, A_2, A_3 \in {\mathbb R}^{n \times n}, over the time interval [0, T], and that you know x(t) = 0 \forall t < 0, and x(0) = x_0.

Then defining,

z_i(t) = x(t - \frac{1}{2} i) \text{~} \forall i \in \{0, 1, \ldots 2 T\}

we get 2T+1 differential equations, like,

\dot{z}_i(t) = A_1 z_i(t) + A_2 z_{i+1}(t) + A_3 z_{i+6}(t)

with the initial conditions,

\begin{eqnarray} z_0(0) &=& x_0 \\z_1(0) &=& 0 \\ &\vdots& \\ z_{2 T}(0) &=& 0\end{eqnarray}.

Note that the reason for the "2" and the "1/2" in the equations above is that all of our delays are multiples of 1/2. More generally, if all of your delays are multiples of 1/p, then replace "2" by p in the above equations.

Anyway, we can stack all of these equations in a matrix like,

\left[\begin{array}{c} \dot{z}_0 \\ \dot{z}_1 \\ \dot{z}_2 \\ \vdots \\ \vdots \\ \vdots \\ \vdots \\ \vdots \\ \vdots \\ \vdots \\ \vdots \\ \dot{z}_{2 T} \end{array} \right] =\left[ \begin{array}{ccccccccccccc} A_1 & A_2 & 0 & 0 & 0 & 0 & A_3 & 0 & 0 & 0& 0& \ldots & 0 \\ 0 & A_1 & A_2 & 0 & 0 & 0 & 0 & A_3 & 0 & 0 & 0& \ldots & 0 \\ 0 & 0 & A_1 & A_2 & 0 & 0 & 0 & 0 & A_3 & 0 & 0& \ldots & 0 \\ 0 & 0 & 0 & A_1 & A_2 & 0 & 0 & 0 & 0 & A_3 & 0 & \ldots & 0 \\ & & & & \ddots & \ddots & & & & & \ddots & \\ & & & & & \ddots & \ddots & & & & & \ddots & \\ 0 & \ldots & \ldots & \ldots & \ldots & 0 & A_1 & A_2 & 0 & 0 & 0 & 0 & A_3 \\ 0 & \ldots & \ldots & \ldots & \ldots & \ldots & 0 & A_1 & A_2 & 0 & 0 & 0 & 0 \\ & & & & & & & & \ddots & \ddots \\ & & & & & & & & & \ddots & \ddots \\ & & & & & & & & & & \ddots & \ddots \\ 0 & \ldots & \ldots &\ldots &\ldots & \ldots & \ldots & \ldots & \ldots & \ldots & 0 & A_1 & A_2 \\ 0 & \ldots & \ldots & \ldots &\ldots &\ldots &\ldots & \ldots & \ldots & \ldots & \ldots & 0 & A_1\end{array}\right]\left[\begin{array}{c} z_0 \\ z_1 \\ z_2 \\ \vdots \\ \vdots \\ \vdots \\ \vdots \\ \vdots \\ \vdots \\ \vdots \\ \vdots \\ z_{2 T} \end{array} \right].

The reason this works is that we have assumed that all the higher zi are zero before t=0; this lets us "truncate" the lower rows of the matrix. Now, aggregating all of our zi into a big (2Tn)-long vector which we'll simply call z, and letting A be the above matrix,

\dot{z}(t) = A z(t)

subject to the initial condition z(0) = z_0 = [x_0^T, 0, \ldots, 0]^T. This has solution,

z(t) = e^{A t} z_0

where e^{A t} represents the matrix exponential.

Hope that helps.

Share this post


Link to post
Share on other sites
hmm... One more thing.
"The reason this works is that we have assumed that all the higher zi are zero before t=0; this lets us "truncate" the lower rows of the matrix"
What do you refer to in "this works"?
The matrix is not shown well. Is there anything special in there?
thanks [smile]

Share this post


Link to post
Share on other sites
Quote:
Original post by Idov
The matrix is not shown well. Is there anything special in there?
thanks [smile]


All I mean is that, for instance, (d/dt)z2T = A1 z2T + A2 x(t - T - 1/2) + A3 x(t - T - 3), but since we've assumed x(t)=0 for all t<0, and we only want to solve the ODE up to t = T, then the second two terms, A2 x(t - T - 1/2) and A3 x(t - T - 3), are zero for all t in [0, T], so we can drop them, and truthfully write (d/dt)z2T = A1 z2T; this is what the bottom row of the matrix represents. If we hadn't made this assumption about x(t), this would have left terms out, but since they are zero all is well.

Share this post


Link to post
Share on other sites
Quote:
Original post by Emergent
Quote:
Original post by Idov
The matrix is not shown well. Is there anything special in there?
thanks [smile]


All I mean is that, for instance, (d/dt)z2T = A1 z2T + A2 x(t - T - 1/2) + A3 x(t - T - 3), but since we've assumed x(t)=0 for all t<0, and we only want to solve the ODE up to t = T, then the second two terms, A2 x(t - T - 1/2) and A3 x(t - T - 3), are zero for all t in [0, T], so we can drop them, and truthfully write (d/dt)z2T = A1 z2T; this is what the bottom row of the matrix represents. If we hadn't made this assumption about x(t), this would have left terms out, but since they are zero all is well.



Got it. thanks [smile]
(I can't use it because this is not really a DDE because I have U(t+1) instead of U(t-1) and I can't assume they become zeroes at any time, but thanks anyway :))

Share this post


Link to post
Share on other sites

This topic is 3303 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this