Make optimiser more robust to upper and lower bounds
조회 수: 3 (최근 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!