减少曲线中的点数

时间:2015-12-25 07:28:51

标签: algorithm graph-algorithm

enter image description here

给出具有(x,y)坐标的曲线。我正在努力减少不。如果此公差低于预定义值(y2-y1)/y1,则使用两点0.01之间的公差检查来计算下降曲线中的点数,然后考虑该点,否则删除该点。

通过这样做,我在底部相对于曲线顶部得到密集点。

如何在曲线顶部形成密集曲线,使其像底部一样。

一些示例点:

9.99E-10    1.17E+00
1.50E-09    7.53E-01
2.00E-09    1.77E-01
2.50E-09    1.61E-02

2 个答案:

答案 0 :(得分:2)

您只是比较身高的变化,但更重要的是坡度的变化。请尝试以下方法:

考虑前三点:

如果从第1到第2的斜率几乎等于从第1到第3的斜率,则删除第2个点。重复。

如果斜率变化很大,则保持第二个点并使其成为新三联的新第一点。

答案 1 :(得分:1)

您应该使用曲线的斜率来确定您需要多少个采样点。一种方法是计算每个点的瞬时导数,可以近似为(y2 - y1) / (x2 - x1),其中两个点彼此非常接近。您可以使用(x2 - x1)的等间距为网格上的整个曲线计算此项。然后你可以看到你原来的方法并不遥远,y2 - y1可以用来近似斜率,因此你需要多少个采样点,对于固定宽度的曲线样本。

通过使用y2 - y1,曲线的中间部分将具有最多的采样点数。这直观有意义,因为功能在中间变化最快。在曲线的边缘,由于斜率变化不大,您需要相对较少的样本。