You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Matlab fmincon约束满足但目标函数值上升的优化问题求助

关于fmincon优化中目标函数不降反升的问题求助

我在用Matlab的fmincon做优化时碰到了个棘手的问题:所有迭代点的约束都满足要求,但目标函数值反而一直在上升,完全没朝着最小化的方向走。

我的优化问题详情

  • 目标函数:光滑连续,需最小化,初始值为1,已归一化
  • 设计变量:共2个,初始值均为1,变量边界为[0.5 1.5],已归一化
  • 约束函数:6个光滑连续的非线性约束,要求约束值小于0,初始约束值范围在-1至0之间,已归一化

因为约束函数计算需要调用商用有限元(FE)程序,单次计算耗时4-5分钟,所以我采用**有限前向差分(finite forward difference)**来计算梯度。

fmincon配置选项

options = optimoptions('fmincon','Algorithm','interior-point','OutputFcn',@outfun,... 
    'Display','iter-detailed','Maxiter',maxIter,... 
    'TolX',1e-6,'TolCon',1e-3,'TolFun',1e-6,'DiffMinChange',1e-3);

迭代序列示例

First-order Norm of
 Iter F-count f(x) Feasibility optimality step
 0 3 1.000000e+00 0.000e+00 1.443e-01
 1 7 1.014622e+00 0.000e+00 9.874e-02 5.697e-02
 2 10 1.023593e+00 0.000e+00 1.378e-01 6.169e-02
 3 14 1.047664e+00 0.000e+00 4.083e-01 1.260e-01
 4 18 1.116892e+00 0.000e+00 1.967e-01 2.358e-01
 5 21 1.131103e+00 0.000e+00 2.020e-01 5.315e-02
 6 28 1.130283e+00 0.000e+00 1.757e-01 1.141e-02
 7 36 1.127147e+00 0.000e+00 2.650e-01 1.812e-02
 8 45 1.114609e+00 0.000e+00 1.074e-01 4.428e-02
 9 49 1.106101e+00 0.000e+00 6.890e-01 4.329e-02

我将迭代序列绘制成了图表,能直观看到目标函数先持续上升,到第5次迭代后略有下降,但整体仍远高于初始值。

已尝试的解决方法

我试过切换到sqp算法进行优化,但结果和 interior-point 算法完全一致,目标函数依旧不降反升。

恳请各位大佬帮忙解释这个现象,同时提供能让算法朝着降低目标函数值方向推进的建议,非常感谢!

内容的提问来源于stack exchange,提问作者Mads B

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 04:21:00