使用多个y值进行插值

3

我正在尝试从一组x(分位数)和y(值)样本中,使用scipy的几种方法插值分位函数(反CDF)。 由于它是一个分位函数,所以值有时会重复。例如,CDF最终在1处变平,因此x=1在几个不断增加的y值上重复:

x = [0, 0.19026078648166053, 0.5364188373245662, 0.9627927389184123, 0.9997059472175255, 0.9997059472175255, 0.9999999999999999, 0.9999999999999999, 0.9999999999999999]
y = [0, 468, 1171, 4918, 10072, 20066, 29982, 45207, 59964]

似乎有些插值方法是针对函数构建的,并且不喜欢重复的x。 有些甚至认为重复的x是导数(例如Krogh)。

有什么办法可以解决这个问题吗?


在您具体的情况下,其中图表的一端开始在角度上发散,我过去做过这个:拿出具有相同x值(全部为1)的点,假设我们有N个这样的点,然后从0.999到1.001范围内使用N个点(例如linspace)并为每个N个点分配唯一的x值(因此y增加)。 对于肉眼和实际应用而言,它是相同的,但插值器现在有效了。 根据您的应用,这在我以前完成了工作。在其他情况下,如果同一x值是由于噪声引起的,显然需要应用某种平滑程序等。 - Jesper - jtk.eth
你找到解决方案了吗?我也遇到了同样的问题... - Alessandro Peca
1个回答

1
我刚遇到了同样的问题(我有一个曲线,其中x值重复,并希望插值以在x-y平面上的数据点之间获得相同的弧长),并得出了以下解决方案,适用于我: 把你的x-y函数看作一个参数函数,其中x(t)和y(t),t是某个递增的参数(简单地说就是x或y数组的索引或弧长)。 然后可以分别对x(t)和y(t)进行插值。 这样做,你无法直接访问y(x),但可以通过扫描t值来获取所需的插值x和y值的组合。 同样的方法可能也可以在某种2D插值中完成。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接