Multistart maxtime never exceeded

4 views (last 30 days)
I have been trying to do a nonlinear parameter estimation using lsqnonlin. To get my cost function, I generate measurements, solve an ODE to get my model output and then compute the residuals.
I am using a parallelised MultiStart with 100 different initial points and a matlabpool of size 10. As sometimes my parameters are far from the optimum, ode45 and/or lsqnonlin may take too much time to converge and I decided to set a MaxTime for MultiStart.
The problem is that even when I set a MaxTime of 200s, there are times when it really stops but other times it just hangs indefinitely, even after a walltime of 200s has already gone.
Do you have any idea what could be the problem here? I am running this on a cluster.

Accepted Answer

Alan Weiss
Alan Weiss on 6 Mar 2013
I don't know what is going on. But it sounds to me as if your numerical ODE solution might be getting stuck for some values of the parameters, because MultiStart is pretty good about respecting time limits. So I guess that the objective function evaluation is flaky for some parameter values.
Also, have you seen the suggestions in the documentation of optimizing ODEs? There might be something there of interest to you.
Good luck,
Alan Weiss
MATLAB mathematical toolbox documentation

More Answers (1)

Marcelo Silva
Marcelo Silva on 7 Mar 2013
Thank you Alan. I am now computing the Jacobian together with the objective function using ode45 and it seems to be working until now.
Kind regards
  1 Comment
Alan Weiss
Alan Weiss on 7 Mar 2013
Excellent! Thanks for letting us know. I'm glad things are working for you.
If you think my answer helped, please accept it.
Alan Weiss
MATLAB mathematical toolbox documentation

Sign in to comment.

Categories

Find more on Financial Toolbox in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!