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

Python scipy minimize_scalar求解体积高度结果不符及变量调用问题

Scipy求解体积公式参数返回异常问题解决

问题核心原因

你的代码存在两处逻辑错误,导致结果不符合预期:

  • 目标函数逻辑错误:minimize_scalar的作用是求传入函数返回值的最小值,你代码中(length * width * x) - target这行的计算结果没有被返回,函数直接返回了自变量x本身,优化器自然会寻找x的最小允许值,也就是你设置的区间下边界1附近,所以返回结果接近1。
  • 结果取值错误:x是目标函数内部的形参,仅在函数内部作用域生效,你直接执行print(x)会触发未定义变量报错,优化结果存储在minimize_scalar返回的结果对象的x属性中。

修正后的代码

from scipy.optimize import minimize_scalar

def objective_function(x):
    target = 1300
    length = 10
    width = 10
    # 返回计算体积和目标体积的差的平方,最小化这个值来让体积尽可能等于目标值
    return (length * width * x - target) ** 2

res = minimize_scalar(objective_function, method='bounded', bounds=(1, 100))
# 从返回结果中取优化后的x值
print(res.x)

运行后输出结果约为13,符合预期。

外部使用求解结果的方法

求解得到的x值可以在函数外部使用,直接读取res.x即可,这是全局作用域下的变量,你可以直接赋值给其他变量使用,比如height = res.x后续调用height即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 23:09:02