Python 如何设置B样条结果的上下限,以获得合理的插值

Python 如何设置B样条结果的上下限,以获得合理的插值,python,math,interpolation,Python,Math,Interpolation,我有插值函数: from scipy import interpolate def f(x): x_points = [38508,38510,38512] y_points = [0.249267578125,0.181396484375,0.1912841796875] tck = interpolate.splrep(x_points, y_points,k=2,xb=38508,xe=38512) return interpolate.splev(x, tck) 当我

我有插值函数:

from scipy import interpolate
def f(x):
  x_points = [38508,38510,38512]
  y_points = [0.249267578125,0.181396484375,0.1912841796875]

  tck = interpolate.splrep(x_points, y_points,k=2,xb=38508,xe=38512)
  return interpolate.splev(x, tck)
当我评估f38503时,输出为0.75,这与y_点完全不同


关于如何使用此插值方法或其他插值方法减少此误差,有何建议

正如RishiG在评论中指出的,你要做的是推断

有一个额外的参数:ext

输出:

0.7591400146484374
0.249267578125
编辑:


可能也很有趣。

这不是插值,而是外推,您要求的点超出了训练集的范围。您试图减少的错误是什么?这是一个完全合理的曲线拟合结果,如果你考虑由3个输入点呈现的曲线。
0.7591400146484374
0.249267578125