SciPy 插值错误

3 投票
1 回答
1074 浏览
提问于 2025-04-17 19:14

我正在使用 scipy.interpolate.interp1d 来插值一些数据(这些数据大约是二次曲线),但是我得到了一些奇怪的结果(非常小的数值差异,而且是周期性的)。为了说明这一点,我对插值后的数据进行了求导,你可以看到周期性的峰值,这表明数据中存在某种不连续性。我知道这些差异很小,但在我的情况下,这一点很重要。所以,当你把插值函数和原始函数对比时,看起来还不错,但当我后续进行一些计算时,却发现了一些奇怪的结果,这些都是由于这个原因造成的。

谢谢!!

图片: http://img37.imageshack.us/img37/9444/resultskx.png

1 个回答

0

确保你使用的 x 值顺序是正确的,比如说(线性插值):

def interp_normalize(x, y):
   dorder = {}
   for i, e in enumerate(x):
       dorder[e] = y[i]
   dorder = OrderedDict(sorted(dorder.items()))
   interpolate_x = list(dorder.keys())
   interpolate_y = list(dorder.values())
   return(interpolate_x, interpolate_y)

撰写回答