Multistart maxtime never exceeded

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.

 Akzeptierte Antwort

Alan Weiss
Alan Weiss am 6 Mär. 2013

0 Stimmen

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

Weitere Antworten (1)

Marcelo Silva
Marcelo Silva am 7 Mär. 2013

0 Stimmen

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 Kommentar

Alan Weiss
Alan Weiss am 7 Mär. 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

Melden Sie sich an, um zu kommentieren.

Community Treasure Hunt

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

Start Hunting!

Translated by