How to get as output the values of a parameter which change over time, but is not a derivative, in a function with an ODE system

1 visualización (últimos 30 días)
Hello everyone,
I have an ODE system like this, with 2 variables D and S:
function dy = deri(t,y,par) %par are a, b, c, d, hb y=[1 0]
dD= a * (c - D);
h = b * max(0,D-d); %h is calculate based on D at each time point
dS = -(h + hb)* S;
dy = [dS;dD]; % collect derivatives in one vector
My question is how to get as output the values of h over time?
I tried to add it as input like a variable and thus as output dy = [dS;dD;h], but it seems the values return are not correct
Thank you very much in advance for your answers
Sylvain

Respuesta aceptada

Naveen Venkata Krishnan
Naveen Venkata Krishnan el 10 de Oct. de 2019
Hello Sylvain,
Can you try this once, after the execution of ode you will be having D(t) , S(t) over the specified tspan. Try calling another function that takes D(t) and gives out h(t) over the same tspan.
%-ode part-----
h = cal_h(D,b,d);
Function:
function H = cal_h(D,b,d)
H = zeros(size(D,1),1);
H = b * max(0,D-d);
end
Am not really sure whether this is what you might be looking for but i hope this helps you a bit.

Más respuestas (0)

Categorías

Más información sobre Programming en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by