python-3.x - 函数返回字典时如何使用scipy的fminbound函数

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

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

optimize.fminbound(f, -1, 2)

这工作正常。现在我修改上面的函数,它现在返回一个 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 进行此设置?

回答1

您需要一个提取 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)

相似文章

随机推荐

最新文章