我目前正在尝试通过多维插值曲线(这只是涉及到在每个维度上分别使用插值方法),我对PCHIP(分段三次hermite插值多项式)有点困惑PCHIP是否只适用于单调数据我感兴趣的数据必然是非单调的,所以我使用了catmull-rom样条,但是pchip似乎更适合我的数据,但是pchip im的现成实现只适用于严格增加/减少数据。我想写我自己的PCHIP插值算法(在java中),但我似乎找不到网络上任何地方的底层算法我想我的问题是
1)PCHIP是否适用于非单调数据?
2)如果没有,是否有其他的插值方法,可以通过控制点,我可以使用?
3)有人知道我在哪里可以找到pchip背后的算法吗?
最佳答案
我不知道pchip是一个固定的术语,但对我来说,它的名字意味着任何use of a cubic hermite polynomial for interpolation,即一个更一般的术语,其中包括catmull rom等。区别于普通spline interpolation的主要事实似乎是明确计算的切线。两者都可能适用于您的情况,因为两者都将通过定义点,而且两者都不会强制执行单调性维基百科有一些描述和一些参考,如果这些是你所想的概念。如果不是,则应该更具体地说明您在其中阅读此术语的上下文,因为该上下文可能提供更具体的定义。
关于java - 非单调插值方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14816027/