当函数有附加参数时如何使用 scipy.optimize.bisect()?

How to use scipy.optimize.bisect() when function has additional parameters?

根据 documentation,只要我使用 args=() 将所述参数传递给 bisect(),我应该能够平分具有多个参数的函数。但是,我就是无法让它工作,而且我也没有设法找到在这种情况下使用此功能的示例。

我的函数的形状为 $f(a,x)$,其中用户输入 $a$,程序使用 scipy.optimize.bisect() 在变量 x 中找到一个根。

我尝试将其传递为:

scipy.optimize.bisect(f,-a,a,args=(a,))

但这并不完全奏效。

args 参数被添加 根查找操作的参数之后,而不是之前。如果你想对最后一个参数而不是第一个参数执行求根,你需要编写一个包装函数,使你的函数签名适应 bisect 所期望的。

def g(x, a):
    return f(a, x)

do_whatever_with(scipy.optimize.bisect(g, -a, a, args=(a,))