给定两点(x1, y1)
和(x2, y2)
,x处(x1和x2之间(的线性插值为y = (y1*(x2-x)+y2*(x-x1))/(x2-x1)
。
但是,当这两个点的重要性不同时,这种线性插值可能并不理想。
假设这两个点的权重是w1和w2,则对上述线性插值的修改可以是y = (y1*w1*(x2-x)+y2*w2*(x-x1))/(w1*(x2-x)+w2*(x-x1))
。我找不到这个插值的名字。这个插值的名称是什么?
R中的CCD_ 5只是线性插值。R是否实现了我上面描述的加权插值?
编辑:我不确定样条曲线是否与这个问题有关。但我只是把它作为一个标签来添加,以防它相关。如果没有,请将其移除。
我提到样条曲线,因为我认为可能有一种方法可以将线性插值扩展到样条曲线中,这样可以给输入点不同的权重。它还具有使拟合曲线平滑的额外好处。我上面提出的插值方法在一阶导数上可能不是连续的。但是样条曲线应该使一阶导数连续,这是很好的。
编辑2:当输入数据是单调的时,我提出的有理插值应该保持单调性(即,输入x_i<x_{i+1}和y_i<y_{i+1},输出曲线应该具有正的一阶导数(。但是常规的样条插值不能保证这一点。什么样条插值可以保持单调性?是否有可读取使用的实现?
第三版:看来这个实现可以保持单调性。但它不支持重量。沿着这条线实现,但支持权重可能会有所帮助。请注意,权重具有类似于有理插值的效果。在上面的有理插值中,如果输入点的权重较高,则斜率应大于所有点的权重相等时的斜率。
https://rdrr.io/cran/signal/man/pchip.html
线性插值等效于一阶样条曲线的平凡情况。使用线称重是没有意义的,因为任何两点之间只有一条可能的线。因此,无论您如何选择权重,它都是相同的插值线。如果你想使用更高阶的多项式,确实有一个例如加权三次样条插值,它强调一点多于另一点。