Numerical Recipes Forum  

Go Back   Numerical Recipes Forum > Obsolete Editions Forum > Methods: Chapters 16 and 17

Thread Tools Display Modes
Prev Previous Post   Next Post Next
Old 05-12-2006, 02:48 PM
pilzgericht pilzgericht is offline
Registered User
Join Date: May 2006
Posts: 1
delay differential equation - step size problem

Hello everybody,

I do have a problem with the following one-dimensional delay differential equation (dde):

(1) x'(t) = f(t,x(t-1)) := M * [ -x(t) - 2.35 * sin(x(t-1)) ] , t>0

with the initial condition

(I) x(t) = 2, -1 <= t <= 0.

If M is big, e.g. M = 100, this problem becomes stiff, as you can see in the plot of the attached *.jpg picture.

For this plot I solved (1) with a collocation method of order 4 with constant step size h = 0.001. As you can imagine, this is highly inefficient and I wish to apply a good step size control.

First, I like to explain briefly the mentioned collocation method:

Assume, that we have found an approximative solution s(t) for (1) with the initial condition (I) up to a number t(n)>0. Also, we have chosen a new step size h(n). Let

The collocation method of stage 3 (with Lobatto-points) consists in finding (the uniquely existing) polynomial
p(t) of degree less or equal 3 that satisfies:

(A) p(t(n)) = s(t(n)) [initial condition]
(B) p'(t(n)) = f(t(n),s(t(n)-1))
(C) p'(t(n)+0.5*h(n)) = f(t(n)+0.5*h(n),s(t(n)+0.5*h(n)-1))
(D) p'(t(n+1)) = f(t(n+1),s(t(n+1)-1))

(A)-(D) determines p(t) uniquely and you can find the coefficients of p(t) by simply doing a matrix multiplication.

This method is equivalent to the implicit Runge-Kutta (IRK) method with the coefficients

A = [ 0, 0, 0; 5/24, 1/3, -1/24; 1/6, 2/3, 1/6]
c = [ 0 ; 1/2 ; 1]
b = [1/6 , 2/3 , 1/6].

The big advantage of this collocation method is that you don't have to solve any implicit equations.

Finally, my problem:

I don't know how to find cheaply a method of order 3 (that works with stiff problems!!) to make some error estimation to choose the step size. As I used the collocation method, I do not know the values k(i), i=1,2,3 , of the mentioned IRK method.
So, we cannot just change the vector b to get a formula of order 3.

If anyone could give me any idea for an error estimation, I would be very, very grateful.

I thank you for your time!

^^ Your pilzgericht
Attached Images
File Type: jpg dde.jpg (90.9 KB, 1471 views)
Reply With Quote

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off

Forum Jump

All times are GMT -5. The time now is 08:01 AM.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.