MATLAB Answers

How to speed up the 'dde23' solver?

9 views (last 30 days)
Shan Yin
Shan Yin on 9 Apr 2019
Commented: Shan Yin on 11 Apr 2019
Dear all,
I try to use the solver 'dde23' to simulate the time-dealy differential equation with single constant delay. But the running time of the solver is too long. Is there any way to speed up the solver without reducing the calculation accuracy?
The main part of my code is attached as follows:
clear all
clc
kc=0.884;
lags=[1.2265834];
tspan=[0,2000];
options=ddeset('RelTol',1e-8,'AbsTol',1e-8,'MaxStep',0.05);
sol=dde23(@(t,y,Z)ddefun(t,y,Z,kc),lags,@(t)history(t),tspan,options);

  6 Comments

Show 3 older comments
Steven Lord
Steven Lord on 10 Apr 2019
Then define the variables once only and store them persistently:
Or compute some of those parameter values outside the DDE function and pass them in as additional parameters.
Jan
Jan on 10 Apr 2019
@Shan Yin: Steven's suggestion is smarter than storing the parameters persistently inside the function. It is the nature of parameters to be defined separately. But bother methods should be a benefit for the run time also.
Shan Yin
Shan Yin on 11 Apr 2019
@Jan @ Steven Lord. Thanks for your nice suggestions!

Sign in to comment.

Answers (0)

Sign in to answer this question.

Tags

Products


Release

R2017b

Translated by