我为 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 的感兴趣的行:
- 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
我不会说得很具体,但我有一张 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 的感兴趣的行:
- 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