用Python求不同变量值下多元函数的根
我有一个由两个变量组成的函数,需要为另一个变量的大量不同值找到这个函数的根。这样做的最佳方式是什么 我可以用循环来做,但我认为有更好的方法用Python求不同变量值下多元函数的根,python,scipy,mathematical-optimization,Python,Scipy,Mathematical Optimization,我有一个由两个变量组成的函数,需要为另一个变量的大量不同值找到这个函数的根。这样做的最佳方式是什么 我可以用循环来做,但我认为有更好的方法 import scipy as sp def g(y,x): return x**2+y for i in range(1000): sp.optimize.fsolve(g,0,i) 正如@Zhenya所评论的,您可以使您的函数向量基于。实际上已经是了,你可以打电话给我 xs = arange(1000) sp.optimize.fso
import scipy as sp
def g(y,x):
return x**2+y
for i in range(1000):
sp.optimize.fsolve(g,0,i)
正如@Zhenya所评论的,您可以使您的函数向量基于。实际上已经是了,你可以打电话给我
xs = arange(1000)
sp.optimize.fsolve(g,zeros_like(xs), xs)
然而,通过这种方式,你可以让fsolve认为它有一个1000维的耦合问题,而不是1000个非耦合问题
因此,循环可能是最好的选择
我建议您使用上一次迭代的结果作为下一次迭代的新初始猜测,例如
y_root = .0
for i in range(1000):
y_root = sp.optimize.fsolve(g,y_root,i)
“对于其他变量的大量值”是什么意思?如果在你的例子中,你的意思是x是一个向量变量?在这个例子中,我想找到y的值,函数为x={0,1,2,…,999}返回一个零,那么一般来说,你的函数看起来像什么?或者它是否适用于任何函数g(y,x)?我想学习一种方法来处理任何“是一个方程”的函数。作为一种技巧,您可以使用
root
:使您的函数接受一个N值数组并返回一个N值数组。