找到曲线最平滑的15%

时间:2011-08-24 21:56:58

标签: numpy numerical-methods

找到与下面曲线类似的曲线最平滑的15%的最佳方法是什么?

curve

我需要知道x坐标的开始和结束。我曾考虑使用导数函数,但这会给我一个最小导数的点,它可能或可能不总是最平滑的15%。

我应该查看的任何算法或建议?

2 个答案:

答案 0 :(得分:3)

除非我对钙的记忆比今天更加失败,否则你想要的就是二阶导数。

或者,您可以使用正确大小的滑动窗口,并计算每个位置窗口的方差,方差最小的窗口应该是最平滑的。

当然,这也取决于你如何定义“平滑”。你的意思是Y值的最小变化,或者(例如)几乎完全笔直(但也几乎垂直)的线条至少可以称为“平滑”吗?

答案 1 :(得分:1)

我将决定分析的分辨率(即闭合间隔的大小,称之为delta X),然后如@Jerry所述,在该闭合间隔内找到函数的最大值和最小值,包括结束分。

这将为您提供 n 间隔(或delta Xs),您将找到每个间隔的最大值和最小值(让我们称之为delta Ys)。

现在你基本上已经将你的函数域剪切成那些 n delta Xs,每个都有一个相应的delta Y.

然后,您应该能够对间隔进行分组,以便一组 m 间隔最多可添加15%的函数域。我们将一组 m 区间称为分析的“窗口大小”。

似乎你应该能够在单个delta X的宽度上滑动窗口,并将窗口的delta Ys相加。存储该值,然后在另一个delta X上滑动,直到空间不足(同时保持域中的整个窗口大小)。找到最小的和,这应该对应于“最平滑的”15% - 假设平滑意味着最小的Y方差。