如何找到某些点的曲线斜率

时间:2020-07-06 17:53:27

标签: python numpy cluster-analysis k-means gradient-descent

如何找到曲线下方蓝色圆圈中某些点的斜率?以下2种方法是否有效?尽管他们给出了不同的结果。 如何自动找到曲线中斜率急剧变化的点,例如下图中的点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  ]
  1. 数字渐变给出以下结果

np.gradient(y)

[-256. , -192. ,  -96. ,  -48. ,  -24. ,  -12. ,   -4.5,   -1. ,-1. ,   -1. ,   -1. ,   -1. ,   -1. ,   -1. ]

我们可以使用numpy.gradient查找曲线的斜率吗?因为找到直线和曲线的斜率有些不同Shown in this link

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]

enter image description here

0 个答案:

没有答案
相关问题