我试图用scipy衍生模块找到函数的导数。不幸的是,我无法在没有TypeError的情况下将我的参数解析为函数:
def f(x, *arg):
beta = arg
y = -x + beta * np.tanh(x)
return y
param = (0,)
der_x0 = derivative(f, x0 = 0.0, dx = 1e-6, args = param)
输出:
TypeError: 'numpy.float64' object cannot be interpreted as an integer
答案 0 :(得分:1)
beta
属于元组类型(例如,在print(beta)
之后添加beta = arg
,您应该会看到(0,)
之类的内容,而不是0
。
尝试:
beta = arg[0]
相反,即
def f(x, *arg):
beta = arg[0]
y = -x + beta * np.tanh(x)
return y
您应该为-1.0
获得der_x0
的值。