自定义options的参数试下,options可在设计计算时控制精度要求、输出形式、算法选择、迭代次数、梯度等
出错原因可能是
搜索范围小于计算时控制精度要求
违反约束的结束标准是1e-006 ,而lb ub 限定的范围可能小于该值,导致优化终止。
代码:
options = optimset('TolX',1e-007); %根据实际设定计算时控制精度要求
options = optimset(options,'TolCon',1e-008 ); %根据实际设定违反约束的结束标准
[x,fval,attainfactor,exitflag]=fgoalattain(@myfun,...
x0,goal,weight,[],[],[],[],lb,ub,[],options)