Math 非等距点的三次插值

Math 非等距点的三次插值,math,interpolation,catmull-rom-curve,Math,Interpolation,Catmull Rom Curve,我正在尝试创建点列表的插值 我有一些坐标(TI,XI),其中TI是时间戳,席席是相关的值。我想创建一个通过这些点的函数,并允许我找到对应于区间中的一般t的x值 我想用三阶插值法对它们进行插值。我见过像CasMull ROM插值的东西,但只有当点席等距时才起作用。 例如,在这里你可以发现时间戳点是等距的,就像这里一样 有什么方法可以应用非规则点的三次插值?参数的不等间距不是问题,只要它们都是不同的。您可能知道,如果有四个不同的时间t[i],则存在一个唯一的多项式插值,对应的值x[i]的次数最多为3

我正在尝试创建点列表的插值

我有一些坐标(TI,XI),其中TI是时间戳,席席是相关的值。我想创建一个通过这些点的函数,并允许我找到对应于区间中的一般t的x值

我想用三阶插值法对它们进行插值。我见过像CasMull ROM插值的东西,但只有当点席等距时才起作用。 例如,在这里你可以发现时间戳点是等距的,就像这里一样


有什么方法可以应用非规则点的三次插值?

参数的不等间距不是问题,只要它们都是不同的。您可能知道,如果有四个不同的时间
t[i]
,则存在一个唯一的多项式插值,对应的值
x[i]
的次数最多为3次(立方或更低阶)

有两种主要的方法来计算插值,和

记住,仅仅找到多项式不是重点,而是在间隔中的另一个时间来评估它,有一些编程的折衷要考虑。 如果时间

t[i]
是固定的,但值
x[i]
是反复更改的,那么使用拉格朗日方法可能会很好。它基本上构造了四个三次多项式,它们在四个点中的三个点上生根,并在剩余点上给出一个归一化值1。一旦有了这四个多项式,插值值
x[i]
就只需要取它们相应的线性组合。拉格朗日的方法有许多缺点

但是,如果时间
t[i]
不断变化,或者您可能正在为相同
t[i],x[i]
数据的多个中间点计算插值多项式,则可能更好。如果精度很重要,可以改变时间
t[i]
在分割差表中出现的顺序,以便将评估定位在距离需要该值的中间时间最近的时间附近


<> P>牛顿,在C++中,在java、python或java.

中找到样本的代码,不难找到一个方法。我发现这种方法是稳健的,实用的,即使有少量的点。