如何在函数 returns 字典时使用 scipy 的 fminbound 函数

How to use scipy's fminbound function when function returns a dictionary

我有一个简单的函数,我想为其计算最小值

from scipy import optimize
def f(x):
    return x**2

optimize.fminbound(f, -1, 2)

这很好用。现在我修改上面的函数,现在 returns a dictionary

def f1(x):
    y = x ** 2
    return_list = {}
    return_list['x'] = x
    return_list['y'] = y
    return return_list

虽然它返回多个对象 x and y,但我只想在 y 上应用 fminbound,另一个对象 x 仅供参考以供其他用途这个功能。

如何使用 fminbound 进行此设置?

您需要一个简单的包装函数来提取 y:

def f1(x):
    y = x ** 2
    return_list = {}
    return_list['x'] = x
    return_list['y'] = y
    return return_list

optimize.fminbound(lambda x: f1(x)['y'], -1, 2)