Message Boards Message Boards

0
|
5234 Views
|
3 Replies
|
1 Total Likes
View groups...
Share
Share this post:

Fitting Data to the Sum of some Solutions of an ODE System

Posted 10 years ago

Hello all,

I have a system consisting of 4 ODEs, which I call sys (incl. initial conditions). The parameters are called par1, par2, par3. My data consists of a time series of measurements (from time 0 to 100), which represents the sum of the last two solutions (sol3, sol4) of the ODE system. For fitting the model to this kind of data, I did the following:

(* Numerical solution *)
model[par1_, par2_, par3_] := model [par1, par2, par3] = Module[{nsol, sol1, sol2, sol3, sol4, t},
nsol = NDSolveValue[{sys}, {sol1, sol2, sol3, sol4},{t,0,100}, MaxSteps->10000];
Return[nsol];
]

(* Relevant solution part *)
modeldata[par1_?NumericQ, par2_?NumericQ, par3_?NumericQ] := Total[Through[Part[model[par1, par2, par3], 3:4][t]]];

(* Fitting *)
nlm=NonlinearModelFit[data, modeldata[par1, par2, par3], {par1, par2, par3}, t, Method->"NMinimize"];

Problem: Mathematica complains about the Interpolating Function: Input value lies outside the range of data in the interpolating function. Extrapolation will be used.

I really do not see where the problem lies. Indeed, the data range should be covered by the InterpolatingFunction since the integration covers the relevant range.

Thanks for any advice.

POSTED BY: marc123
3 Replies

It's hard to debug this without the code, but first, as a general suggestion, try rewriting it using ParametricNDSolve.

http://reference.wolfram.com/language/ref/ParametricNDSolve.html

There are some examples at the bottom of that page on optimizing parameter values. They might be helpful if you haven't already seen them.

So, modeldata[...] appears to be an Interpolating function and it is complaining that it is being given a t value out of its range. What are the t values in data? That is, what are the values of data[[All,1]]? What happens when you run modeldata[...] on every one of them with some reasonable value for the parameters? I get the feeling that one of them is outside the range of modeldata[...]. I don't know if the range of modeldata[...] depends on it's parameters or not.

POSTED BY: Sean Clarke
Posted 10 years ago
POSTED BY: marc123
POSTED BY: Sean Clarke
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard

Group Abstract Group Abstract