Python 在optimize.newt中使用fprime时,fprime应该具有哪些维度?

Python 在optimize.newt中使用fprime时,fprime应该具有哪些维度?,python,optimization,scipy,scipy-optimize,newtons-method,Python,Optimization,Scipy,Scipy Optimize,Newtons Method,我试图用牛顿和它的导数来求函数的根。但我不知道如何定义它的导数,使牛顿不会在zeros.py中的dp=fval[nz_der]/fder[nz_der]处使用索引器。 我的代码如下 def f(x,d): return[d*x[0]**2, d*x[1]**2+x[2]] def fprimeinp(x,d): return[[2*d*x[0],0],[0,2*d*x[1]],[0,1]] d=[float(2)] optimize.newton(f,x0=[

我试图用牛顿和它的导数来求函数的根。但我不知道如何定义它的导数,使牛顿不会在zeros.py中的dp=fval[nz_der]/fder[nz_der]处使用索引器。 我的代码如下

def f(x,d):
         return[d*x[0]**2, d*x[1]**2+x[2]]
def fprimeinp(x,d):
         return[[2*d*x[0],0],[0,2*d*x[1]],[0,1]]
d=[float(2)]
optimize.newton(f,x0=[10,5,2],args=d,maxiter=500,fprime=fprimeinp)
在我看来,因为f是二维的,有三个参数,fprime必须是2*3维的。所以我不明白为什么这是个问题。还是我只是做错了