0
$\begingroup$

I'm having a problem with a parameter estimation in a non-linear model. I think the culprit is that ode45 (an ode solver in matlab) is not properly solving my ode. It's the in red highlighted part, which very quickly drops and by this seems to ruin the fit.

Also interesting, this happens in all my data (10 patients) so it doesn't seem to be data dependant. I think this is stopping the optimum-fit algorithms from doing their job.

Anyone familiar with this behaviour?

EDIT: I'm working with 94 data points, and it drops between the first and the second point.

EDIT 2: It's solving the following, if this helps anyone:

$\frac{d}{dt} y_{1}(t) = -p_{1}\cdot y_{1}(t)\; + \;p_{1}\cdot p_{2}\cdot Input(t)$ $\frac{d}{dt} y_2(t) = -\left(p_3+y_{1}(t)\right) \cdot y_2(t)\; +\; p_4 \;+\; R_A(t)$

with $R(t)$ a well behaved function of time.

Plot of fit (dots data, line model prediction

  • 0
    Have a look at http://www.hysafe.org/science/KareemChin/FlowTurbulenceAndCombustion_v91_p281to317.pdf Perhaps you should use a stiff integration method instead of Runge-Kutta.2013-10-28

1 Answers 1

1

I consider it unlikely that ode45 would give you a wrong result for a fairly simple ODE such as the one you wrote down. A quick test would be to replace ode45 by another solver, for instance ode15s (you can probably just change the function name).

Thus, my guess would be that the solution of the ODE actually does drop down that fast. The plot does not look right near t = 0, but that may be an artifact of how you plot it.

Is the plot the end result of the parameter fitting? If yes, then one potential issue is that the initial estimate you gave to the optimization routine is not very good. Another possibility is that this is in fact the best fit; do you have reason to believe otherwise?

  • 0
    Have you looked at `Eureqa Formulize` at http://www.nutonian.com. It can help you with complex data fits.2012-04-24