3

在使用 scipy.optimize.minimize 和 trust-constr 方法时,我得到了这个 UserWarning:

 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)
4

1 回答 1

2

定义约束时,要设置

    hess = lambda x: numpy.zeros((n, n))

n是数组的维度。请注意,您还可以使用 LinearConstraint 对象

于 2019-08-01T18:37:27.347 回答