如何解决减少样条插补中的振荡
我正在尝试使用https://www.theothercompany.com/api/v1/things
函数对一组点进行插值,但是在该组的范围内却出现了通常的大波动,您知道解决此问题的任何方法吗?
我的代码如下:
UnivariateSpline
结果:
解决方法
使高阶多项式适合嘈杂的数据往往可以做到这一点。没有此问题的插值方法是(唯一)分段三次多项式,对于每对连续点i,i+1
:
- 通过
x_i,y_i
- 通过
x_{i+1},y_{i+1}
- 在
x_i
处,坡度为(y_{i+1} - y_{i-1}) / (x_{i+1} - x_{i-1})
- 在
x_{i+1}
处,坡度为(y_{i+2} - y_i) / (x_{i+2} - x_i)
因此,每个点的切线与从上一个点到下一个点的直线段平行。这迫使导数与原始数据“有些相似”,因此它不会剧烈振荡。
如果我没记错的话,这是Catmull-Rom样条,是cubic Hermite spline的特殊情况。也许this question可以帮助您以科学的方式实现它,或者找到自己喜欢的另一种插值方法。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。