как извлечь два выхода из Scipy свести к минимуму - PullRequest
0 голосов
/ 10 ноября 2019

Я хочу, чтобы функция, основанная на длине, ширине и высоте (в определенных пределах), минимизировала громкость. Но в дополнение к объему я также хочу вычислить 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?

1 Ответ

0 голосов
/ 10 ноября 2019

Вы не можете получить доступ к 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...