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

SciPy.optimize.minimize带约束优化求解结果异常问题咨询

问题原因分析

你遇到的问题同时存在方法选择错误和约束逻辑矛盾的问题,核心原因是约束本身不存在可行解:

  • BFGS结果超出边界的原因
    BFGS是无约束优化算法,scipy.optimize.minimize的BFGS实现本身不支持边界约束和等式约束,你传入的bounds和constraints参数会被直接忽略,自然会得到超出0.8~1.2范围的结果,属于方法选择不当。如果需要处理约束,应该选择SLSQP、trust-constr这类支持约束的优化算法。
  • SLSQP返回success=false的核心原因
    你的约束条件本身没有可行解。三个变量的下界都是0.8,我们可以直接算出等式左侧的最小可能值:
    7*0.8 + 8*0.8 + 4*0.8 = 19*0.8 = 15.2
    这个值远大于你等式约束要求的5,没有任何一组在0.8~1.2区间内的变量能满足该等式,所以任何带约束的优化算法都不可能找到有效解,自然返回求解失败。
  • 代码的小瑕疵
    你调用minimize时method参数传入了空字符串,如果要指定求解方法,需要传入对应方法的标识字符串,比如method='SLSQP'或method='BFGS',不过这不是你遇到问题的核心原因。

解决建议

先检查你的变量取值范围或者等式约束的数值是否写错,要么调整变量的上下界,要么修正等式约束的取值,确保存在可行解后再运行优化即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 17:09:04