当我使用以下代码直接计算和绘制Sin(x)^4的导数时,我得到了正确的结果。
import numpy as np
import matplotlib.pyplot as plt
a = np.power( np.sin( np.deg2rad(range(0,180)) ),4 )
c = 4 * np.sin( np.deg2rad(range(0,180) ))**3 * np.cos(np.deg2rad(range(0,180)))
plt.plot(a)
plt.plot(c)
plt.show()
但是,当我试图用numpy Gradient函数做同样的事情时,它会给我一个不同的结果,即梯度就像直线一样。例如,使用以下代码:
import matplotlib.pyplot as plt
a = np.power( np.sin( np.deg2rad(range(0,180)) ),4 )
plt.plot(a)
plt.plot(np.gradient(a))
plt.show()
我仍然无法理解差异的原因。有谁能告诉我为什么它们不同吗?实际上,在模拟工作中,我在一个数组中有一组值,我需要计算它们在phi=范围(0180)上的导数。
您没有正确指定样本之间的间距(默认为1),因此您得到的答案比例不正确。
尝试:
a = np.power(np.sin(np.deg2rad(range(0,180))),4 )
plt.plot(a)
plt.plot(np.gradient(a, np.deg2rad(1)))
现在CCD_ 1和CCD_。