python - 如何从 scipy 中提取两个输出最小化
问题描述
我想要一个基于长度、宽度和高度(在一定范围内)最小化体积的函数。但是除了体积,我还要计算half_volume = volume /2。
我的最小化算法成功地确定了正确的高度、宽度和长度(显然是较低的波段值)。但是如何提取 half_volume 值?
def calcVolume(x):
length = x[0]
width = x[1]
height = x[2]
volume = length * width * height
half_volume = volume / 2
return volume
sol = minimize(calcVolume, initial_guess, method = 'SLSQP', bounds = x_bounds,options = {'ftol': 1e-8, 'maxiter': 2000, 'disp': True})
因为我正在运行最小化,所以我不能返回一个以上的输出(在这种情况下是音量)。如果我打印 solution.x,它会给我正确的高度、重量和长度以及最小化的体积。如何访问 half_volume?
解决方案
您无法访问 half_volume,因为该函数没有返回它。
唯一的方法是通过在函数之外使用 half_volume 计算,如......
def calcVolume(x):
length = x[0]
width = x[1]
height = x[2]
volume = length * width * height
return volume
half_volume = calcVolume(x) / 2
推荐阅读
- docker - ldd: exited with unknown exit code when use qemu in docker
- c# - NLog 不登录 ASP.NET Core 控制器
- javascript - 看不到从 Chrome 扩展到 Laravel Logger 的结果
- android - 支持多种语言:以编程方式更改语言有时有效,有时无效
- python - 我如何结合 Scrapy 和 Selenium 向下滚动此网页并刮掉所有文本?
- javascript - 如果 min 属性超过今年,为什么它会停止影响 html5 日期选择器?
- javascript - Yup.string.when 总是会给出未定义的结果。如何将字符串值传递给 .when 方法
- node.js - 在 npm 安装中出现错误
- html - 如何使用 ajax for asp.net mvc 从表行中删除帖子?
- google-sheets - 如何让 Google 电子表格自动将一列分成另一列?