MATLAB Answers

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 ビュー (過去 30 日間)
Sylvain Bart
Sylvain Bart 2019 年 9 月 20 日
コメント済み: Sylvain Bart 2019 年 10 月 10 日
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

  0 件のコメント



Naveen Venkata Krishnan
Naveen Venkata Krishnan 2019 年 10 月 10 日
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 H = cal_h(D,b,d)
H = zeros(size(D,1),1);
H = b * max(0,D-d);
Am not really sure whether this is what you might be looking for but i hope this helps you a bit.

その他の回答 (0 件)

Community Treasure Hunt

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

Start Hunting!

Translated by