我为 np.gradient 参数选择哪个 dx?

Which dx do I choose for np.gradient argument?

我不会说得很具体,但我有一张 E 对 T 的图表(T 是独立量) 我想要 E 关于 T 的导数。我不确定我应该选择什么 dx 间距?

详情:

T = 10**(np.arange(-1,1.5,0.05)) (即间距不等) E是T的函数。

问题:

我使用哪种间距?

我的想法:

我想我采用了 T 的间距,即 np.gradient(Energy, dx = T) ??

对于 non-uniform 间距,传入一个位置值数组(不是差异),gradient 将使用它来计算每个点的 dx。也就是说,传入绝对位置数组,而不是差异数组。所以在你的情况下,只需传入 T.

这是一个示例,作为测试,其中蓝色是曲线,红色是计算出的梯度。

import numpy as np
import matplotlib.pyplot as plt

T = 10**(np.arange(-1,1.5,0.05))

E = T**2
gradients = np.gradient(E, T)

plt.plot(T, E, '-o') # plot the curve
for i, g in enumerate(gradients): # plot the gradients at each point
    plt.plot([T[i], T[i]+1], [E[i], E[i]+g], 'r')

这是来自 docs 的感兴趣的行:

  1. N arrays to specify the coordinates of the values along each dimension of F. The length of the array must match the size of the corresponding dimension