打印选择的 scipy.optimize.minimize 方法

the*_*her 3 python scipy scipy-optimize scipy-optimize-minimize

这是一个简短的问题,但谷歌每次都会指向我找不到答案的文档。

我正在使用 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,但我想看看程序正在选择什么。我怎样才能得到这些信息?

Sup*_*ito 5

根据scipy-optimize-minimize-docs:如果未指定方法,则默认选择将是 BFGS、L-BFGS-B、SLSQP 之一,具体取决于问题是否有约束或界限。要获取有关方法部署顺序的更多详细信息,您应该查看scipy-optimize-minimize-source-code-line-480。从源代码来看,顺序如下:

if method is None:
    # Select automatically
    if constraints:
        method = 'SLSQP'
    elif bounds is not None:
        method = 'L-BFGS-B'
    else:
        method = 'BFGS'
Run Code Online (Sandbox Code Playgroud)