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.

 채택된 답변

Alan Weiss
Alan Weiss 2013년 3월 6일

0 개 추천

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

추가 답변 (1개)

Marcelo Silva
Marcelo Silva 2013년 3월 7일

0 개 추천

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

Alan Weiss
Alan Weiss 2013년 3월 7일
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

댓글을 달려면 로그인하십시오.

카테고리

Community Treasure Hunt

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

Start Hunting!

Translated by