How to solve an ODE system with time-dependent variables in MATLAB?
6 ビュー (過去 30 日間)
古いコメントを表示
I'm trying to solve an ODE system with time-dependent variables in MATLAB.
function dPdt = ode_Core1(~,P,landa,P_L,P_R)
dPdt = zeros(5,1);
dPdt(1) = 4*lambda*(-3*P(1) + P(2) + 2*P_L)/3;
dPdt(2) = lambda*(P(1) - 2*P(2) + P(3));
dPdt(3) = lambda*(P(2) - 2*P(3) + P(4));
dPdt(4) = lambda*(P(3) - 2*P(4) + P(5));
dPdt(5) = 4*lambda*(P(4) - 3*P(5) + 2*P_R)/3;
Where "lambda" is a time-dependent variable and should be calculated having P values at previous times. I have worked with "ode45" but I'm not quite sure this case can be solved using ode45. Can anyone help me with this?
2 件のコメント
回答 (2 件)
Star Strider
2020 年 5 月 28 日
One method of doing that is in ODE with Time-Dependent Terms using linear interpolation. However to do that you would have to pass the time variable to ‘ode_Core1’. In the code you posted, you are not.
3 件のコメント
Star Strider
2020 年 5 月 28 日
Does alpha or lambda or whatever have any sort of specific expression?
Is it a vector or a function?
What specifically do you want from it?
Steven Lord
2020 年 5 月 28 日
From your description, it sounds like you don't have an ordinary differential equation (ODE) but you have a delay differential equation (DDE). Take a look at the dde23 function.
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Ordinary Differential Equations についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!