Numerical differentiation in time in function used by ODE
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
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 Kommentare
Torsten
am 13 Okt. 2023
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 ?
Antworten (1)
Torsten
am 13 Okt. 2023
Bearbeitet: Torsten
am 13 Okt. 2023
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 Kommentare
Siehe auch
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
