Python: scipy.optimize,bisection 可以使用 returns 多个值的函数 f 吗?

Python: Can scipy.optimize,bisection use a function f that returns multiple values?

假设我有一个函数 f,它 returns 多个值。

def f(x):
    return x + 1, 2 * x

Scipy documentation 告诉我 f 必须是 return 一个数字的函数。我认为我给定的函数 f 与 scipy.optimize.bisection 不兼容,但是是否可以仅对 f 的 return 值之一执行二分法?

您可以定义一个调用函数 f 并提取第二个 return 值的函数:

from scipy.optimize import bisect

def f(x):
    return x + 1, 2 * x

bisect(lambda x: f(x)[1], -1, 1)