我必须找到两组点X,Y
之间的插线,以便:
X = [2011, 2012, 2013, 2014, 2015, 2016, 2017]
Y = [0.947079910779078, 0.958840491330058, 0.948653507807658, .94687561871641, 0.94732364567882, 0.953963141055096, 0.943468711524127]
我尝试通过CubicSpline
F_spline = scipy.interpolate.CubicSpline(X, Y, extrapolate='periodic'))
但如果我反复核对,我明白了,
In [98]: F_spline_val = [F_spline(year) for year in X]
Out[98]: [array(0.94707991),
array(0.95884049),
array(0.94865351),
array(0.94687562),
array(0.94732365),
array(0.95396314),
array(0.94707991)]
请注意,此处为2017
计算的最后一个值为0.94707991
,而在原始变量中,2017
的值为0.943468711524127
。这显然是不准确的。我在这里错过了什么?为什么2017
的值不明确?
答案 0 :(得分:1)
您的问题是使用关键字A*(1,0)' = (1,i)'
。正如人们可能猜测的那样,假设数据集中存在周期性it has to fulfill the condition that y[0] == y[-1]
。
由于不清楚,为什么您的年度相关数据应该是定期的并且您违反了该假设,请设置((1,i)',(1,0)')
并且您不会在数据集的边缘获得奇怪的结果。