是什么导致我的线性插补起作用?

时间:2018-10-03 21:42:10

标签: python interpolation

我的线性插值代码运行异常。

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相同)。
当我运行此代码时,插值遍历所有点,除了怪异的尖峰外,看上去几乎是正确的。可能是什么原因造成的?

Image of the output

0 个答案:

没有答案