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 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Sylvain Bart
il 20 Set 2019
Commentato: Sylvain Bart
il 10 Ott 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 Commenti
Risposta accettata
Naveen Venkata Krishnan
il 10 Ott 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.
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Ordinary Differential Equations in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!