Определяя гессиан как ноль
При использовании scipy.optimize.minimize с методом trust-constr я получил следующее предупреждение:
scipy\optimize\_hessian_update_strategy.py:187: UserWarning: delta_grad == 0.0. Check if the approximated function is linear. If the function is linear better results can be obtained by defining the Hessian as zero instead of using quasi-Newton approximations. 'approximations.', UserWarning)
У меня есть линейная функция, поэтому я хочу попытаться установить гессиан как ноль. Но как это работает? Я попробовал самый простой способ с "hess = None" в качестве параметра. Хорошо, неудачная попытка.
Эта строка вызывает решатель:
solution = scopt.minimize(minimizeFunction,initialGuess ,method='trust-constr', constraints=cons,options={'disp':True,'verbose':3},bounds=bnds)
0 ответов
Когда вы определяете ограничение, вы хотите установить
hess = lambda x, v: numpy.zeros((n, n))
Вот n
это размерность массива. Обратите внимание, что вы также можете использовать объект LinearConstraint