In an ODE dynamic system, is there a convient way or algorithms for estimating the parameters which make the ODE solution satisfing some constraint?

42 Views Asked by At

I have construct a ODE dynamic system like this

$$molA(t)==sa$$

$$molB'(t)=sb-db\;molB(t)+\frac{kab\;molA(t)\;molB(t)}{molB(t)+Jab}-\frac{kgb\;molG(t)\;molB(t)}{molB(t)+Jgb} $$

$ molC'(t)=sc-dc\ molC(t)+\frac{kbc\ molB(t)\ molC(t)}{molC(t)+Jbc}\\ $

$ molD'(t)=sd-dd\ molD(t)+\frac{kcd\ molC(t)\ molD(t)}{molD(t)+Jcd}\\ $

$ molE'(t)=se-de\ molE(t)+\frac{kde\ molD(t)\ molE(t)}{molE(t)+Jde}\\ $

$ molF'(t)=sf-df\ molF(t)+\frac{kef\ molE(t) molF(t)}{molF(t)+Jef}\\ $

$ molG'(t)=sg-dg\ molG(t)-\frac{kdg\ molD(t)\ molG(t)}{molG(t)+Jdg}\\ $

$ molB(0)=0,\\ molC(0)=0,\\ molD(0)=0,\\ molE(0)=0,\\ molF(0)=0,\\ molG(0)=0,\\ $

I can get the numerical solution after fixing the parameters using the Mathematica software. Suppose that $ molB1=molB(t=28,sa=0,kab,kbc,kcd,kef,kdg,sd,...),\\ molB2=molB(t=28,sa=1,kab,kbc,kcd,kef,kdg,sd,...),\\ $

$ molD1=molD(t=28,sa=0,kab,kbc,kcd,kef,kdg,sd,...),\\ molD2=molD(t=28,sa=1,kab,kbc,kcd,kef,kdg,sd,...),\\ $

$ molG1=molG(t=28,sa=0,kab,kbc,kcd,kef,kdg,sd,...),\\ molG2=molG(t=28,sa=1,kab,kbc,kcd,kef,kdg,sd,...),\\ $

where $molB(t=28,sa=0,kab,kbc,kcd,kef,kdg,...)$ is the solution at time 28 with parameter $sa=0$, and the other parameters remains undetermined.

now I want to get a series parameters $(kab,kbc,kcd,kef,kdg,...)$ which which satisfy the following constrain when $t=28$ , $sa=0$ in $molB1,molD1,molG1$ and $t=28$ , $sa=1$ in $molB2,molD2,molG2$: $ \frac{molB1}{molB2}=0.38,\frac{molD1}{molD2}=0.44,\frac{molG1}{molG2}=18.9 $

and this means the $ t$ and $sa$ are fixed, I can only change the rest parameters $(kab,kbc,kcd,kef,kdg,...)$ to satisfy the constrains.

I have tried a Grid Search Method, but it failed due to the number of parameters. is there a convenient way or numeric algorithms for getting or estimating the appropriate parameters ? Or is it possible to transform this problem to a optimization problem, and solve it use the some optimization method just like gradient descent algorithms? I am not sure if I have describe the problem clearly. I am not a native English speaker...

1

There are 1 best solutions below

1
On

This is not a final answer but it is too long for a comment.

This problem is (at least to me by personal experience) a least square fit of the data which means an optimization problem.

For a given set of assumed values of the parameters, you can solve numerically the set of differential equations (I used Runge-Kutta method with adaptative stepsize control) and get the values of the concentrations of the different species at each time. So, the sum of squares of the errors which is the objective function.

I hope this can be of some help to you. If you want to continue discussing, just post.

Now, the problem is (as usual) the starting values. There is a lot of information you can extract from the slopes at the origin as well from the equilibrium if you approach it.

Using such information you can already get consistent estimates for many of the parameters. If you do not get estimates for all of them, then fix the ones you get and perform a grid search for the other parameters.