Math 确定直线坡度更改的位置(算法)
如果你把下面的数字画出来,你会得到一个“波动微笑”:这个 数字跟随一个线性坡度(左坡度),然后更改为 遵循另一个线性坡度(右坡度) 我有几组这样的数据,想知道坡度在哪里 变化。注:Math 确定直线坡度更改的位置(算法),math,Math,如果你把下面的数字画出来,你会得到一个“波动微笑”:这个 数字跟随一个线性坡度(左坡度),然后更改为 遵循另一个线性坡度(右坡度) 我有几组这样的数据,想知道坡度在哪里 变化。注: 坡度变化通常发生在点之间 我不知道有多少点具有左斜率,有多少点具有左斜率 正确的坡度 对于坡度或坡度的符号/大小没有任何保证 斜坡之间的关系。每个坡度可能为负或负 肯定的,两个都可能比另一个大 如果坡度相同,程序应将其报告为 特例 0.1613 0.1596 0.1579 0.1561 0.1544 0.1528
- 坡度变化通常发生在点之间
- 我不知道有多少点具有左斜率,有多少点具有左斜率 正确的坡度
- 对于坡度或坡度的符号/大小没有任何保证 斜坡之间的关系。每个坡度可能为负或负 肯定的,两个都可能比另一个大
- 如果坡度相同,程序应将其报告为 特例
创建一个新的数字列表,它是该列表中连续对的差值。这些差异是从一点到下一点的“斜率”。对于恒定坡度,这些数字都是相同的。这将问题从检测坡度变化更改为检测标高变化
Slope(X) = f(x) - f(x-1)
Slope2(x) = Slope(x) - Slope(x-1)
你需要第二个。它显示坡度本身的变化速度。(物理学方面的加速)
我在excel中绘制了这两个图,并检查了我的数据:
你看到斜坡的顶峰了吗?这是一个指标,很容易找到。当数据被舍入/截断时,您应该定义相同斜率的含义。差异程度是否太大 如果只有一个实际坡度变化,则点之间可能发生这种变化,则有三种情况:
衍生品再次出现。以防你或其他人没有意识到这一点 微积分的基础文本应该可以帮助你分析你的函数 导数产生函数切线的斜率 积分产生线下的面积 正如前面的答案所暗示的,如果f(x)是“位置”,那么f[f'(x)]的导数就是速度,而[f'(x)]的导数就是加速度
您还可以从表示f''(x)的数据向后计算速度和相对于时间的位置。问题有两个部分:
一旦有了两条拟合线,就可以使用一些启发式方法(即斜率差小于某个公差)来确定是否有单线特例。您真的想要交换两个点吗?类似于:斜率(x)=f(x)-f(x-1)和计算斜率2的相同调整?你可以从图表中了解到这一点;当蓝色坡度图上升时,红色坡度2下降。@Dan您是100%正确的,但对于坡度2,我们得到的是相同的图形,因此这不是非常严重的错误:)
Slope(X) = f(x) - f(x-1)
Slope2(x) = Slope(x) - Slope(x-1)