Problem adding delay to dde23 model

1 view (last 30 days)
I have tried to add a parameter to dde23 example, but i keep getting error. What is wrong in my approach?
lags = [1 0.2];
a=5;
tspan = [0 5];
sol = dde23(@ddefun, lags, @history, tspan);
plot(sol.x,sol.y(1,:),'-o')
xlabel('Time t');
ylabel('Solution y');
function dydt = ddefun(t,y,a,Z) % equation being solved
ylag1 = Z(:,1);
ylag2 = Z(:,2);
dydt = [a*ylag1(1);
ylag1(1)+ylag2(2);
y(2)];
end
%-------------------------------------------
function s = history(t) % history function for t <= 0
s = 10*ones(3,1);
end
%-------------------------------------------
Copyright 2018 The MathWorks, Inc.
  4 Comments
Torsten
Torsten on 10 Mar 2022
What error message do you get ?
Marom Yossef
Marom Yossef on 10 Mar 2022
Unrecognized function or variable 'a'. Even when I add this parameter as an argument.
Thank you for trying to help

Sign in to comment.

Accepted Answer

Torsten
Torsten on 10 Mar 2022
Edited: Torsten on 10 Mar 2022
lags = [1 0.2];
a = 5;
tspan = [0 5];
sol = dde23(@(t,y,Z)ddefun(t,y,Z,a), lags, @history, tspan);
plot(sol.x,sol.y(1,:),'-o')
xlabel('Time t');
ylabel('Solution y');
%-------------------------------------------
function dydt = ddefun(t,y,Z,a) % equation being solved
ylag1 = Z(:,1);
ylag2 = Z(:,2);
dydt = [a*ylag1(1);
ylag1(1)+ylag2(2);
y(2)];
end
%-------------------------------------------
function s = history(t) % history function for t <= 0
s = 10*ones(3,1);
end
%-------------------------------------------

More Answers (0)

Products


Release

R2021a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!