How to solve an ODE system with time-dependent variables in MATLAB?
6 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
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 Commenti
Risposte (2)
Star Strider
il 28 Mag 2020
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 Commenti
Star Strider
il 28 Mag 2020
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
il 28 Mag 2020
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 Commenti
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!