我不确定在使用numpy.gradient时如何指定非均匀间距。
这里是y = x ** 2的示例代码。
import numpy as np
import matplotlib.pyplot as plt
x = [0.0, 2.0, 4.0, 8.0, 16.0]
y = [0.0, 4.0, 16.0, 64.0, 256.0]
dydx = [0.0, 4.0, 8.0, 16.0, 32.0] # analytical solution
spacing = [0.0, 2.0, 2.0, 4.0, 8.0] #added a zero at the start to get length matching up with y
m = np.gradient(y, spacing)
plt.plot(x, y, 'bo',
x, dydx, 'r-', #analytical solution
x, m, 'ro') #calculated solution
plt.show()
间距数组的长度始终比我想要计算梯度的数组少一个。添加一个零以使长度匹配(如上面的示例代码中所示)会得到不正确的答案,其中一点的梯度为无穷大。
我无法理解/遵循numpy.gradient文档中非均匀间距的说明(https://docs.scipy.org/doc/numpy/reference/generated/numpy.gradient.html)
我应该如何指定点之间的间距?还有其他方法吗?
Numpy版本为1.9.2