微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Matlab FMINCON解决方案终止于上限

如何解决Matlab FMINCON解决方案终止于上限

我正在运行一个使用FMINCON SQP的优化算法来优化8个变量的问题。以下是参数:

g = [g1 g2 g3 g4 g5 g6 g7 g8] %my variables
lb = [0 0 0 0 0 0 0 0];
ub = [1 1 1 1 1 1 1 1];

Objective函数的最小化定义为:

sse = sum((test results - calculated)).^2; 

受线性约束:

A = [1,1,1];
b = 1;
ceq = [];

优化过程的目的是拟合如图所示的曲线。

curve fitting


蓝线代表测试结果,品红色为从优化变量获得的曲线。

问题:尽管我能够根据需要拟合曲线,但优化变量最终以上限为值。我为fmincon实现了以下代码

options = optimset('display','iter','Algorithm','sqp','TolX',1e-10,'TolFun',1e-20,'MaxIter',10000000000,'MaxFunEvals',10000000000);

[y,fval,exitflag,output] = fmincon('objective',ginit,A,b,[],lb,ub,options);

任何人都可以向我建议一种可靠的方法来克服这个优化解决方案在上限处终止的问题吗?您能否也让我知道这个问题的背后原因是什么?

解决方法

除了来自max的非常准确的评论之外,您是否肯定是这个意思:

sse = sum((测试结果-计算得出)。^ 2);

代替此:

sse = sum((测试结果-计算得出))。^ 2;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。