Изменено после вашего последнего обновления:
Вы передаете последовательность длины 2 для границ, но переменные, для которых вы оптимизируете, имеют длину 30. Параметр границ имеет кортеж длины 2 для каждогопеременная;использование None
в кортеже означает отсутствие ограничения для этого конца (-inf
или inf
).
В вашем случае у вас есть (0,0)
для первой переменной и None
(что означает отсутствие границ) для второй.Тем не менее, вы передаете 30 переменных для оптимизации.
Вам либо нужно изменить границы на:
bnds = [(0, 0)] + [(None, None)]*29
для случая, когда T = 30
.
Для автоматизацииразмер переменной bounds, используйте:
bnds = [(0, 0)] + [(None, None)]*(T-1)