在使用fmincon进行优化计算的时候,当目标函数取到最小值时,对应的点有多个,如何得到这其中的最小值呢?
问题类似于:
目标函数,命名为SIN.m:- function y=SIN(x)
- y=sin(x);
- end
复制代码
然后运行以下代码:- x0=[1];
- lb=0;
- ub=6*pi;
- options=optimset('Algorithm','active-set');
- [x,fval] = fmincon(@SIN,x0,[],[],[],[],lb,ub,[],options)
复制代码
得到的结果是10.9999,即3.5×pi。但是显而易见的是,目标函数在1.5×pi处同样也可以取得最小值。问题就是如何是fmincon返回的x值是所有满足条件中的最小值呢?实际问题比这个要复杂,只是用这个例子来说明问题。谢谢各位了。 |