simulannealbnd for curve fitting
4 views (last 30 days)
Show older comments
Hi everyone,
I am trying to use simulated annealing for a 10 parameter optimization problem I am trying to solve. I am trying to fit a 10 parameter function to multiple data points spread over time. I have tried using non-linear squares fitting (with multistart) but kept being stuck at local minima. Simulated annealing can be a good alternative.
The problem is the objective function simulannealbnd requires seems to be different that what lsqcurvefit requires. simulannealbnd needs the objective function to give a scalar ouput, which I am not sure what it means for my function over time.
I hope I was clear,
Thanks
Hasan
0 Comments
Answers (1)
Alan Weiss
on 27 May 2014
Take a look at this example. It shows doing the same optimization using lsqcurvefit and fminunc. Both simulannealbnd and fminunc use the same scalar objective function.
But if you will allow me to make a suggestion, you will probably be happier running MultiStart and lsqcurvefit for longer rather than using simulannealbnd. This is because the efficiency of simulannealbnd is very low. If you want, you can try running patternsearch from a large number of random start points. That might not be better than MultiStart and lsqcurvefit, but it would almost certainly beat simulannealbnd.
Alan Weiss
MATLAB mathematical toolbox documentation
0 Comments
See Also
Categories
Find more on Simulated Annealing 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!