Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用Python求不同变量值下多元函数的根_Python_Scipy_Mathematical Optimization - Fatal编程技术网

用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值数组。