Reverse problem of finding time-varying parameters of an ODE with the help of solution data.
Mostrar comentarios más antiguos
Any way in which I can find the time-varying parameters of an ODE ; The solution to which is know in the form of time-series data.
Background:
Example: SIR model ode: as following.
% The SIR model differential equations.
def deriv(y, t, beta, gamma):
S, I, R = y
dSdt = -beta * S * I
dIdt = beta * S * I - gamma * I
dRdt = gamma * I
return dSdt, dIdt, dRdt
Then, I use odeint(deriv, y0, t, args=( beta, gamma)) (In python) to solve for S, I and R using minimisation of these parameters.
Question
But I want to ask, is there any way in which a reverse problem can be constructed such that; I have the data for S, I and R as time-sereis. and then we can calculate 'beta' and 'gamma' paramter from there?
Note beta and gamma should be time dependent.They can be assumed as sum of natural cubic splines; Where N_k(t), k=1 to K, are K natural cubic spline basis functions evaluated at K-2 equally spaced knots in addition to the boundary knots .

Can this problem be solved on matlab?
Thanks.
7 comentarios
Torsten
el 23 de Nov. de 2022
Aren't S, I and R time-dependent enough to keep the parameters beta and gamma fix ?
Anshuman
el 23 de Nov. de 2022
Anshuman
el 23 de Nov. de 2022
Torsten
el 23 de Nov. de 2022
Fine. And why do you want to change a winning python ?
Anshuman
el 23 de Nov. de 2022
Respuestas (1)
Torsten
el 23 de Nov. de 2022
1 voto
Use "lsqcurvefit" to fit the parameters together with an integrator (e.g. ODE45).
For an example, see Star Strider's code under
Here, four parameters from a Monod Kinetic are fitted against measurement data.
3 comentarios
Anshuman
el 23 de Nov. de 2022
For your first shot, you wanted to estimate the constants a1, b1, a2 and b2, and these are not time-dependent. So the above code can be applied.
For fully time-dependent estimates, look this video to understand how to proceed:
Anshuman
el 23 de Nov. de 2022
Categorías
Más información sobre Matrix Computations en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!