在使用 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)
Run Code Online (Sandbox Code Playgroud)
我有一个线性函数,所以我想尝试将粗麻布设置为零。但这是如何运作的呢?我尝试了最简单的方法,以“hess = None”作为参数。好吧,一次糟糕的尝试。
这是调用求解器的行:
solution = scopt.minimize(minimizeFunction,initialGuess ,method='trust-constr', constraints=cons,options={'disp':True,'verbose':3},bounds=bnds)
Run Code Online (Sandbox Code Playgroud) 这是一个简短的问题,但谷歌每次都会指向我找不到答案的文档。
我正在使用 scipy.optimize.minimize。它运作得很好,一切都很好。我可以定义一个要使用的方法,但即使我不指定该方法它也可以工作。
有没有办法获得输出,使用哪种方法?我知道结果类,但那里没有提到方法。
这是一个例子:
solution = opt.minimize(functitionTOminimize,initialGuess, \
constraints=cons,options={'disp':True,'verbose':2})
print(solution)
Run Code Online (Sandbox Code Playgroud)
我可以将 value 方法设置为类似slsqp或 的值cobyla,但我想看看程序正在选择什么。我怎样才能得到这些信息?