Why the result of SQP algorithm varies each time when we change the starting point xo?
2 次查看(过去 30 天)
显示 更早的评论
I have this code for running the SQP algorithm which is as follows:
OPTIONS = optimoptions('fmincon','Algorithm','sqp','Display','none');
xo = some point % Starting point
Lb=zeros(1,dim);
Ub=pi*ones(1,dim);
[x,fval,exitflag,output]= fmincon(FUN,xo(nn,:),[],[],[],[],Lb,Ub,[],OPTIONS);
If I run this code for some xo=[0 0 0 0], I get one result. But if I take xo=[pi/4 pi/4 pi/4 pi/4], I get another result. Likewise, if I take xo=[pi/3 pi/3 pi/3 pi/3]; I get another result and so on. Each time the result is different. If this is the case, then which xo should be chosen for best results?
0 个评论
采纳的回答
Matt J
2021-4-24
编辑:Matt J
2021-4-24
We have no reason to think that your function has a unique global minimum, so non-uniqueness could be a reason. It is also possible that the iterations get stuck at a local minimum in one or both cases.
Regardless, it is definitely beneficial to choose x0 as close as you can guess to the desired solution. This will reduce iteration time and also the chance that the iterations get stuck at a false solution.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Direct Search 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!