我的线性插值代码运行异常。
n = np.linspace(t[0],t[-1],101)
print(n)
ypl = np.zeros(len(n))
def closestPoint(x,ydat):
return ydat[int(round(x))]
def linearInt(T,ydat):
t0 = round(T+0.01-1)
y0 = closestPoint(T-1,ydat)
yn = closestPoint(T,ydat)
return y0 + (yn-y0)*(T-t0)
for i in range(len(n)):
if(i != 0):
ypl[i] = linearInt(n[i],y)
pl.plot(t,y,'o')
pl.plot(n,ypl)
变量t是一个从0到10的数组,步长为1。
变量y是数据点的数组(大小与t相同)。
当我运行此代码时,插值遍历所有点,除了怪异的尖峰外,看上去几乎是正确的。可能是什么原因造成的?