Make optimiser more robust to upper and lower bounds
1 回表示 (過去 30 日間)
古いコメントを表示
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 件のコメント
回答 (2 件)
Alan Weiss
2022 年 1 月 27 日
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 件のコメント
参考
カテゴリ
Help Center および File Exchange で Interpolation についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!