在彼得·阿尔弗雷德(Peter Alfred)关于多变量散乱数据插值的文章中,他提到,从各种方案中,只有少数在实践者中非常受欢迎.他以Shepard的方法和Hardy Multiquadrics命名.但是这篇文章到现在已经有近20年的历史了,真正有趣的是现在广泛使用的方法.
如果您有使用某些空间插值方案的经验,请告诉它.
UPD:为了使这个问题更具竞争力,我重申了它.这是"你曾经使用过多种插值的方法吗?"
(这会很长,除非我刚用光.)
首先,关于非分散数据的一些评论.(参见引用littleCMS的答案)
有两种类型的颜色插值是常见的.几年前,三线性插值(张量积线性插值)是色表插值的常用方法.三线性插值确实可以实现为一维插值的顺序集合,首先在一个轴上,然后沿着第二个轴,等等.
许多年前,我们都意识到三线性插值在应用于某些类型的变换时会在彩色成像中引入伪像.问题出现在中立者身上.一种解决方案是通过将立方体解剖成6个四面体,在3-d中移动到单纯的插值.在n维中,单位立方体将被解剖为阶乘(n)单形.还有一个立方体的其他解剖,但这种特殊的风格确保主对角线始终是所有单形的共享边缘.当应用于某些颜色查找表时,这反过来恢复了中性的良好行为.
现在让我谈谈真正的分散数据插值问题.
其他人提到了各种各样的计划.Kriging,multiquadrics,基于距离的方法是少数.(当我过去使用这些方案做了一些工作时,我实际上更喜欢逆多次方法.)所有这些实际上只是径向基函数方法的变体,这是一种常见的方案.RBF方法有其优点和缺点.它们通常会产生平滑的插值,这当然取决于所选择的具体基函数,以及您是否选择限制支持.RBF方法还允许您推断,至少在径向基础元素的支撑将延伸的范围内.如果允许基本元素在范围上是无限的,则不会应用对外推的明确约束.(一般来说,推断是一件坏事.)RBF方法的一个问题是它们需要求解大型线性方程组,而那些方程系统通常是密集矩阵.这意味着问题的大小,就可以处理的数据点数而言,往往受到线性代数的限制.相反,如果通过截断基本元素来限制支持,那么矩阵可能变得稀疏.如果您使用稀疏矩阵包作为解决方案,这将改进线性代数.同时,支撑距离成为您必须控制的非线性参数.同样,诸如multiquadrics和inverse multiquadric方法之类的方法可能具有控制基本元素形状的次要非线性参数.克里金有类似的问题,我将所有这些方法混为一谈.
对于这些问题,我将所有这些归类为RBF变体的方法通常都限制在它们可以轻松处理的点数上.根据您处理事物的方式和可用内存量,该限制可能通常在几千点左右.
一般类型的RBF方法的另一个问题是我称之为内插法.这是我多年前创建的一个新词,用于描述数据中相对较大的空洞的插值.事实上,即使在数据中较小的孔上进行插值,也可能经常出现问题.这些方法因为它们在某种程度上是平滑的,可能会在插值表面中引入不需要的极值(大峰或谷).这是偶数1-d插值的常见问题,通常被视为具有三次样条或多项式插值的振铃伪影,并且当然可以看到傅里叶级数插值.更高维度的问题是甚至认识到它确实发生过,因为在三维以上的绘图表面往往是困难的.
如果您的点数多于该限制,或者这些振铃伪像是不可接受的,那么其他方法通常是更好的选择.如果您愿意使用线性插值,那么更高维度的最简单解决方案是从数据的细分开始.因此,在3个维度中,将数据(通常是delaunay镶嵌)细分为四面体.这样做效率很高,并且有很多工具可以用于此目的.然后插入任何单个点是一个简单的问题.仅仅确定该点所处的单形,将重心坐标计算为单形内的插值权重,并在找到的单形的每个顶点处形成函数值的相应线性组合.这一切都非常快速有效.
这些基于曲面细分的方法的缺点是它们通常会限制您到数据点的凸包,而且如果您的数据恰好位于非凸域中,那么插值可能会在某些区域中做出奇怪的事情.你的域名.我上面提到的方案的另一个问题是插值只是分段线性的,但是一旦你进入更高维度,事情会变得非常讨厌.对于基于曲面细分的平滑插值,可以找到其他方法,但是它们将花费更多的努力,因此不太常见.
这里的基本权衡应该是显而易见的.如果您需要平滑插值并且只有几个点,则通常选择RBF方法.它们简单,易于使用等.选择的实际方法通常只是方便,甚至是习惯.我以前使用过一种工具而且很开心,我可能会再次对它感到高兴.由于问题是哪种方法"最适合实际使用",我会指出,当在上下文中应用时,最佳是一个非常主观的词.插值问题的目标是什么?你拥有什么技能?您知道如何使用哪些工具?你会在什么环境下工作?所有这些因素都会影响您选择最佳方法.
如果你有很多数据点,速度是最重要的,但最终的平滑度并不重要,那么你通常会寻找一个单纯的插值.当然,如果你有足够的分数,那么野兽的分段线性特征就不那么重要了.这里的分段线性插值在某些情况下具有很大的优点,它可以永远不会在表面中产生数据中不存在的极值.对于某些问题,例如颜色表征,这是至关重要的.
另一个问题是噪音.虽然噪声的存在通常是需要某种平滑的信号,但并非所有这些表面都应用平滑.任何平滑运算符有时也会平滑数据的重要特征.这是因为我们可以将平滑运算符视为低通滤波器.高频行为通常是噪音,但它也可能只是我表面的尖锐的脚趾或肩膀,我不能失去.如果这是一个问题,那么即使有时存在明显的噪音,您也可能愿意使用插值.在那种情况下,我会建议最简单,最低阶的插值是最好的.平滑,更全局的插值也会倾向于放大数据中的任何噪声,因此如果在存在噪声的情况下寻找最低方差插值,它通常是线性插值.
当然,有许多种类的薄板样条,插值与否.一旦超越一个维度,您的选项也会扩展,至少如果您愿意做这项工作.
在它变成一本书之前我会在这里结束.
我过去使用过Kriging,散布的数据与每个样本的准确度估计一致.看起来像一种强大的技术,值得在地质统计学世界之外更广泛地使用.