如何从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

最新更新