How to code a pulse function in differential equations

32 ビュー (過去 30 日間)
Rui
Rui 2017 年 1 月 10 日
コメント済み: 태훈 約19時間 前
Hello everyone,
could you help me with my problem described below?
assuming I have a simple model dX/dt = -k*X/V, where X is amount, t is time (between 0 and 24 hours), V is volume, and k is rate.
I would like to add a certain amount of mass (M) into my system every 1 hour, in other words, adding mass on 1, 2, 3...23 hour. It does not need to be exactly on every hour, but could be a small interval (tau) around 1, 2, 3, ... so equation becomes something like
dX/dt = -k*X/V + M/tau, M is zero when t is out of these small intervals.
I just cannot figure out a smart way to code this, and then solve the ODE. Could you give me some idea? Thanks in advance!
Rui
  1 件のコメント
태훈
태훈 約19時間 前
If you can't get explicit solutions, I guess you could try "a series of odes" using a for loop. For example,...
tv=[0:1:100]
y0=1
for k=1:length(t)-1
tspan=[tv(k), tv(k+1)];
[t,y]=ode45(@yourfun, tspan...)
y0=y(length(y))+1 % e.g., adding 1 at every 1 hour
end

サインインしてコメントする。

回答 (0 件)

カテゴリ

Help Center および File ExchangeGeneral Applications についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by