Numerical differentiation in time in function used by ODE

조회 수: 4 (최근 30일)
Mithrandir
Mithrandir 2023년 10월 13일
댓글: Mithrandir 2023년 10월 13일
Hi all, I'm working on a code that uses an ODE integration instead of a Runge - Kutta method (4th order).
By now I'm trying to see if it's possibile to numerically differentiate in time a variable calculated inside a function that is then given as an input to ODE. Essentially my function will compute values at single instants as time proceeds and for this reason I can't define an array on which I can compute a numerical differentiation with diff function.
I'm attaching an image of the full equation:
The variable I want to differentiate numerically is .
Thanks in advance.
  댓글 수: 6
Torsten
Torsten 2023년 10월 13일
Do you want to differentiate rho_l or rho_l_dot with respect to time ? You wrote you want to differentiate rho_l_dot again to get rho_l_doubledot. But maybe that was wrong ?
Mithrandir
Mithrandir 2023년 10월 13일
@Torsten Only rho_l since no second derivative will be needed. Sorry for stating it wrong.

댓글을 달려면 로그인하십시오.

답변 (1개)

Torsten
Torsten 2023년 10월 13일
편집: Torsten 2023년 10월 13일
ode15s can solve systems of differential equations of the form M*y' = f(t,y) where M is the so called mass matrix. If a row j of this matrix is zero, the corresponding equation reads 0 = f_j(t,y) , thus is an algebraic equation.
In your case, define a new algebraic solution variable v as v = rho_l and add the algebraic equation v - rho_l = 0 to your system of differential-algebraic equations to be solved. If you now have to use dv/dt (= drho_l/dt) somewhere in your code, you can include it in your computations by setting a coefficient different from 0 in the mass matrix M of the system in the column that corresponds to v .
  댓글 수: 3
Torsten
Torsten 2023년 10월 13일
편집: Torsten 2023년 10월 13일
I adjusted the answer for that you want rho_l_dot, not rho_l_doubledot.
And you should start with a simple test example to see how it works to implicitly get the time derivative of an algebraic variable in the way I described.
Mithrandir
Mithrandir 2023년 10월 13일
@Torsten Thanks Torsten, much appreciated.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Numeric Solvers에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by