Работая с 'scipy.optimize.minimize', у меня странное использование процедуры минимизации. Ниже приведен тестовый код, показывающий мои результаты:
import numpy as np
import pandas as pd
from scipy.optimize import minimize
def SES(good, a, h):
print('good is : {}'.format(good))
print('a is : {}'.format(a))
print('h is : {}'.format(h))
return 0
good = [1,2,3,4,5,6]
a = minimize(SES, x0 = good, args=(0.1, 1), method = 'L-BFGS-B', bounds = [[0.1, 0.3]]*len(good))
Я ожидаю, что функция SES будет печатать для «хорошего» параметра значения [1,2,3,4,5,6]. Но я получаю следующий вывод
good is : [0.3 0.3 0.3 0.3 0.3 0.3]
a is : 0.1
h is : 1
Если я удалю параметр границ, я получу вывод, как и ожидал:
a = minimize(SES, x0 = good, args=(0.1, 1), method = 'L-BFGS-B')
good is : [1. 2. 3. 4. 5. 6.]
a is : 0.1
h is : 1
Не могли бы вы объяснить, что я делаю неправильно...