как извлечь два вывода из Scipy Minimize

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

Поскольку я запускаю минимизацию, я не могу вернуть более одного вывода (в данном случае это объем). Если я напечатаю решение.x, это даст мне правильный рост, вес и длину, а также минимизированный объем. Как мне получить доступ к half_volume?


person Changoleon    schedule 10.11.2019    source источник


Ответы (1)


Вы не можете получить доступ к 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
person Yusuf Baktir    schedule 10.11.2019