如果我有一个numpy数组,并且我想返回包含x的一阶导数的1D numpy数组,那么我是否使用np.gradient(x)?我想我做错了什么
这是我的代码,但它告诉我我的答案是不正确的。
def dfunc(x):
'''
Parameters
x: 1D numpy array
Returns
df: 1D numpy array containing first derivatives wrt x
'''
# WRITE YOUR CODE HERE
df = np.gradient(x)
return df
numpy梯度函数计算梯度的二阶中心有限差分近似。
你可以在维基百科qazxsw poi上阅读更多有关该方法的内容。
让我们看看如何通过一个简单的例子得到正确的梯度
finite difference page
诅咒f的渐变应该是2但是
f = np.linspace(0,100,1000) * 2
将返回数组已满,值为0.2002002,因为元素之间的np.gradient默认间距为1.0,所以为了得到正确的答案,我们应该指定f数组中元素之间的间距。
np.gradient(f)
将按预期返回数组填充2.0