Problem adding delay to dde23 model

1 visualizzazione (ultimi 30 giorni)
Marom Yossef
Marom Yossef il 10 Mar 2022
Commentato: Marom Yossef il 11 Mar 2022
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 Commenti
Torsten
Torsten il 10 Mar 2022
What error message do you get ?
Marom Yossef
Marom Yossef il 10 Mar 2022
Unrecognized function or variable 'a'. Even when I add this parameter as an argument.
Thank you for trying to help

Accedi per commentare.

Risposta accettata

Torsten
Torsten il 10 Mar 2022
Modificato: Torsten il 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
%-------------------------------------------

Più risposte (0)

Categorie

Scopri di più su Numerical Integration and Differential Equations in Help Center e File Exchange

Prodotti


Release

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by