从 scipy 优化中提取输出

Extract output from scipy optimise

使用 Powell 算法最小化 Python 中的两个参数函数后,我得到以下输出:

fun: -3.5839582049322310
maxcv: 0.0
message: 'Optimization terminated successfully.'
nfev: 98
status: 1
success: True
   x: array([ 1.9116445888705806,  3.7094985019795996])

我希望提取 x 中的两个优化参数,然后将其传递到脚本的另一部分。有没有一种方法可以自动提取这些数字,而无需在脚本中手动输入它们?我查看了 scipy 文档,但没有找到有关如何访问输出的任何信息。

看到你用来计算结果的代码会很有帮助,现在我只能猜测你做了什么。

我假设您的代码如下所示:

res = scipy.optimize.minimize(fun, f0, method='Powell')

这个function returns an optimizeResult对象。要获得优化的实际结果,您需要调用

print(res.x)

res.x 的类型是 numpy.ndarray。如果你只想在计算成功时继续,那么你可以做类似

的事情
if res.success:
    print('success, the results are')
    print(res.x)