Python中的二维二分法?

Two-dimensional bisection method in Python?

我正在寻找 Python 中 optimize.bisect 函数的扩展,一些代码允许我求解两个自洽方程组,即 y= f(x,y)x= g(x,y)。我一直在寻找一种二维二分法,但如果它工作正常,我不介意使用其他可能性。

据我了解你的问题,你想找到以下函数的根

def fun(x):
    return [f(x[0], x[1]) - x[1],
            g(x[0], x[1]) - x[0]]

其中 x[0] 对应于您定义中的 xx[1] 对应于 y。 您可以使用例如解决此问题scipy.optimize.root

from scipy import optimize
solution = optimize.root(fun, [0, 0])

这里[0, 0]是对根的初步猜测。然而,正确算法的选择在很大程度上取决于您的问题。