MATLAB: Multistart maxtime never exceeded

lsqnonlinmaxtimemultistart

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.

Best Answer

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