如果你绘制下面的数字,你会得到一个“波动性微笑”: 数字遵循一个线性斜率(左斜率),然后更改为 跟随另一个线性斜率(右斜率)。
我有几组这样的数据,想知道斜率在哪里 变化。注意:
斜率变化通常发生在点之间
我不知道左边有多少分,有多少分 正确的坡度。
对于斜坡或斜坡的符号/幅度,没有任何保证 斜坡之间的关系。每个斜率可能是负的或 积极的,要么可能比另一个要大。
如果斜坡相同,程序应将此报告为a 特殊情况。
0.1613 0.1596 0.1579 0.1561 0.1544 0.1528 0.1511 0.1495 0.1478 0.1462 0.1446 0.1431 0.1415 0.1416 0.1418 0.1419 0.1421 0.1422 0.1424 0.1425 0.1426 0.1428 0.1429 0.1431
答案 0 :(得分:5)
Slope(X) = f(x) - f(x-1)
Slope2(x) = Slope(x) - Slope(x-1)
你需要第二个。它显示了斜坡本身的变化速度。 (物理方面的加速度)
我在excel中绘制了两个图并检查了我的内容:
你看到斜坡2的高峰?这是指标,很容易找到。
答案 1 :(得分:4)
创建一个新的数字列表,它是该列表中连续对的差异。这些差异是从一个点到另一个点的“斜率”。对于恒定斜率,这些数字都是相同的。这将问题从检测斜率变化变为检测水平变化。
答案 2 :(得分:1)
衍生品再次袭来。如果您或其他任何人没有意识到这一点。
关于微积分的基本文本应该可以帮助您分析函数。
导数产生函数切线的斜率。
积分产生一条线下的区域。
如前一个答案所暗示的,如果f(x)是“位置”,f [f'(x)]的导数是速度,那[f''(x)]的导数就是加速度
您也可以从表示f''(x)的数据向后工作,并计算相对于时间的速度和位置。
答案 3 :(得分:0)
您应该定义相同的斜率意味着什么,因为数据是/被舍入/截断。差异程度太大了吗?
如果只有一个实际的斜率变化,则可能在点之间发生,那么有三种情况:
斜率连续两次显着变化。例如,如果数据是6,5,4,3,3,4,5,6,7,则斜率变为-1,-1,-1,0,1,1,1,1。这意味着实际斜率变化是在中间斜率的点之间,在示例中为零,或者在3之间。要获得斜率真正改变的位置,您需要得到最后两个点(示例中为4)定义的直线与下两个点(示例中为3,4)定义的直线相交的点。 )。该示例给出了解决方案[4.5,2.5]。
斜率仅显着改变一次。例如,如果数据是7,6,5,4,3,4,5,6,7,则斜率变为-1,-1,-1,-1,1,1,1,1。这意味着实际的斜率变化是在两个斜率的点coomon中(示例中为3)。
坡度没有明显变化。这是你提到的特例。
答案 4 :(得分:0)
问题分为两部分:
第二个问题很简单,并且有一个标准的解决方案:使用线性最小二乘法拟合一条线。
如何解决第一个问题取决于您的应用程序的细节。这是一个非常简单的算法,如果数据点的数量n不是太大就能很好地工作:只需要在第一个i点和最后一个ni点上进行线性最小二乘,对于i从2到n-2,保留残差平方和最少的那个。
如果n非常大,并且上述方法效率低下,则必须按照其他已发布的答案的建议来查看离散的二阶导数。请注意,与最小二乘法拟合不同,衍生物的近似值对即使很小的噪声也非常敏感。
一旦你有两条拟合线,就可以使用一些启发式(即,斜率相差小于一些公差)来确定你是否有单行特殊情况。