问题描述
假设我有一个函数 f,它返回多个值。
def f(x):
return x + 1,2 * x
Scipy documentation 告诉我 f 必须是一个返回数字的函数。我认为我给定的函数 f 与 scipy.optimize.bisection 不兼容,但是是否可以仅对 f 的返回值之一执行二分法?
解决方法
您可以定义一个函数来调用您的函数 f
并提取第二个返回值:
from scipy.optimize import bisect
def f(x):
return x + 1,2 * x
bisect(lambda x: f(x)[1],-1,1)