Obtaining close results with and without using MultiStart and GlobalSearch for fitting data to a non-linear model
2 次查看(过去 30 天)
显示 更早的评论
I am trying to fit an experimental data to a nonlinear model. I tried curvefitting tool and used "trust-region" algorithm but by changing the startingpoints the result was not changing and I was getting fitting parameter values inconsistence with the physics of the problem. Then, I tried "Levenberg-Marquardt" algorithm and I see the obtained fitting parametes change even with small changes in the startingpoints. So, I thought it might be helpful to see how things change by using multistart and globalsearch which use different startpoints. Also, I thought because I do have access to more algorithms in the optimization toolbox that might be helpful.
Now, I have written my codes in optimization toolbox and I have used "lsqcurvefit", "lsqnonlin" and also "fmincon" with multistart and also "fmincon" with globalsearch. I have tried almost all the algorithms of each solver for both local solver and also in the multistart and globalsearch. What I see is by using the same startingpoints I see close or same results for both local solver and multistart (globalsearch). And the estimated error doesn't change that much by using multistart (globalsearch). I am wondering does this mean that for my function the local and global minima are the same? If yes, so why I see my result is changing by changing startpoints when using "levenberg-Marquardt" algorithm in curvefitting tool (Also by using some other algorithms like "sqp" in optimization tool) or is there a problem that I don't figure it out?
Also, I see the result of the multistart changes with changing the startpoints which is not expected because multistart searches for global optima and so the result should not be dependent on the startingpoint similar to local solvers. I am wondering why is that?
I have attached the code for my "lsqcurvefit" together with "multistart" trial and two series of my data for reference.
Thank you in advance!
0 个评论
回答(1 个)
Matt J
2022-4-24
编辑:Matt J
2022-4-24
I am wondering does this mean that for my function the local and global minima are the same?
It might, but there's never any guarantee of that. Both the local and global solvers can fail. You haven't mentioned what exitflags are reported, but even the exitflag is the solver's best guess at whether a solution was found.
If yes, so why I see my result is changing by changing startpoints when using "levenberg-Marquardt" algorithm in curvefitting tool
There may be multiple solutions. Or, you might be getting stuck in a startpoint-dependent local minimum.
Also, I see the result of the multistart changes with changing the startpoints which is not expected because multistart searches for global optima and so the result should not be dependent on the startingpoint similar to local solvers.
Again, there's no guarantee of that when you have multiple global minima. Consider the function f(x)=1. Here, any startpoint is a global minium, so changing the startpoint(s) will give you different solutions every time.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Global or Multiple Starting Point Search 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!