Problem adding delay to dde23 model

4 visualizaciones (últimos 30 días)
Marom Yossef
Marom Yossef el 10 de Mzo. de 2022
Comentada: Marom Yossef el 11 de Mzo. de 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 comentarios
Torsten
Torsten el 10 de Mzo. de 2022
What error message do you get ?
Marom Yossef
Marom Yossef el 10 de Mzo. de 2022
Unrecognized function or variable 'a'. Even when I add this parameter as an argument.
Thank you for trying to help

Iniciar sesión para comentar.

Respuesta aceptada

Torsten
Torsten el 10 de Mzo. de 2022
Editada: Torsten el 10 de Mzo. de 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
%-------------------------------------------

Más respuestas (0)

Categorías

Más información sobre Numerical Integration and Differential Equations en Help Center y File Exchange.

Productos


Versión

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by