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]
对应于您定义中的 x
,x[1]
对应于 y
。
您可以使用例如解决此问题scipy.optimize.root
from scipy import optimize
solution = optimize.root(fun, [0, 0])
这里[0, 0]
是对根的初步猜测。然而,正确算法的选择在很大程度上取决于您的问题。
我正在寻找 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]
对应于您定义中的 x
,x[1]
对应于 y
。
您可以使用例如解决此问题scipy.optimize.root
from scipy import optimize
solution = optimize.root(fun, [0, 0])
这里[0, 0]
是对根的初步猜测。然而,正确算法的选择在很大程度上取决于您的问题。