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
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Sylvain Bart
am 20 Sep. 2019
Kommentiert: Sylvain Bart
am 10 Okt. 2019
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
0 Kommentare
Akzeptierte Antwort
Naveen Venkata Krishnan
am 10 Okt. 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.
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Ordinary Differential Equations finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!