Определяя гессиан как ноль

При использовании 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

Другие вопросы по тегам