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

使用SLSQP的optimize.minimize未收敛,结果小于ftol求原因

优化器不收敛问题排查
result = optim.minimize(fun, x0, method='SLSQP', options={'eps': 0.0001, 'ftol': 1000}, bounds=[(0, 0.01)], args=(file,))

def fun(opt_vars, file):
    # 已知值
    v = np.zeros(5)
    v[0] = 454.546412
    v[1] = 3242.201274
    v[2] = 1000023
    v[3] = 5.2 
    v[4] = 1.1
    output = myfunction(opt_vars, file)
    return abs((v[0]-output[0])/v[0] + (v[1]-output[1])/v[1] +  (v[2]-output[2])/v[2] + (v[3]-output[3])/v[3] + (v[4]-output[4])/v[4])

fun是一个归一化代价函数,当前输出值约为1.28e-4。尝试将ftol从1000调整到1e-4的不同取值,优化器始终无法收敛。根据SLSQP方法的文档,无法设置xtol,因此排除该参数影响。目前无法确定是minimize函数本身的问题还是使用方式有误——毕竟1.28e-4远小于ftol=1000的阈值,理论上应该立即收敛。

已执行的调试操作:

  • 查阅官方文档
  • 尝试设置xtol(发现SLSQP不支持)
  • 测试不同ftol取值
  • 咨询AI工具求助
  • 在GitHub发帖,被指引至相关平台

内容的提问来源于stack exchange,提问作者long-environment123

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 16:38:18