如何在下面曲线中以蓝色圈出的某些点找到斜率?以下两种方法是否有效?尽管他们给出了不同的结果。如何自动找到斜率在曲线中急剧变化的点,例如下图中的点 5,6
x=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, ]
y=[512, 256, 128, 64 , 32 , 16 , 8 , 7 , 6 , 5 , 4 , 3 , 2 , 1 ]
- Numpy梯度给出以下结果
np.gradient(y)
[-256. , -192. , -96. , -48. , -24. , -12. , -4.5, -1. ,-1. , -1. , -1. , -1. , -1. , -1. ]
我们可以使用 numpy.gradient 找到曲线的斜率吗?因为找到直线和曲线的斜率有点不同显示在这个链接中
2.使用自定义斜率功能
def slope(x1, y1, x2, y2):
m = (y2-y1)/(x2-x1)
return m
slope_value=[]
for i in range(len(y)):
i += 1
v=slope(y[i], x[i], y[i-1], x[i-1])
print(i,v)
slope_value.append(v)
result: [-0.00390625, -0.0078125, -0.015625, -0.03125, -0.0625, -0.125, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0]