我需要求解f(x,y)=0
形式的代数方程,并且我知道y
的值为y0
。一种可行的方法是定义一个仅是x
y0=0.1
def g(x):
return f(x,y=y0)
,然后使用g
找到新功能fsolve
的解决方案:
from scipy import optimize
solution = optimize.fsolve(g,x0=0.1)
是否有更优雅的方法来做到这一点?我想指定不需要定义新函数就知道y
的值。
答案 0 :(得分:1)
将y0
或任何其他额外的输入作为args
传递给函数。
以下是最小的示例。
def f(x,y):
return 2*x*x - y
scipy.optimize.fsolve(func, x0=3, args=(5)) # y0=5
array([1.58113883])