Make optimiser more robust to upper and lower bounds
2 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
I am using a nonlinear least squares optimiser lsqnonlin() to fit a Voigt function to my data.
I am finding however that the optimiser is VERY sensitive to the lower and upper bounds I provide to the optimiser, with incremental changes in these bounds resulting in large changes in the quality of the fit. I often have to manually change these bounds in order to achieve a quality fit which is quite labour intensive however when I do find the optimum upper and lower bounds, the quality of the fit is very good.
As I don't want to write an optimiser for my optimiser, is there a way to make the optimiser more robust to changes in the bounds or does the fault lie in the function which I am trying to fit?
For reference, I am using a slightly modified version of this package: https://au.mathworks.com/matlabcentral/fileexchange/57603-voigt-line-shape-fit?s_tid=srchtitle
0 Commenti
Risposte (2)
Alan Weiss
il 27 Gen 2022
Another thing to try, if you have Global Optimization Toolbox, is MultiStart along with lsqnonlin. For an example, see MultiStart Using lsqcurvefit or lsqnonlin.
Alan Weiss
MATLAB mathematical toolbox documentation
0 Commenti
Vedere anche
Categorie
Scopri di più su Interpolation in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!