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!