Вектор с некоторыми фиксированными значениями как переменная функции минимизации - PullRequest
0 голосов
/ 29 ноября 2018

Есть ли способ свести к минимуму функцию с Scipy, чья переменная представляет собой список с некоторыми конкретными значениями, которые могут быть 0?Я пытался использовать ограничения для решения этой проблемы, но похоже, что минимизатор также выполняет итерацию по этим 0 элементам, что приводит к увеличению вычислительных затрат.

1 Ответ

0 голосов
/ 03 декабря 2018

Вы всегда можете обернуть свою функцию.Очень нелегкий, простой пример:

from scipy.optimize import minimize

def f(x):
    a, b, c, d = x
    return a**2 + b**2 + c**2 + d**2

def f_with_zeros(z):
    a, d = z
    b = c = 0
    return f([a, b, c, d])

res = minimize(f_with_zeros, [0, 0])
...