关于不同二维曲线拟合方法的速度和精度比较问题

计算科学 算法 数值分析 插值 曲线拟合
2021-12-25 17:29:36

这可能是一个微不足道的问题,如果是这样,我深表歉意。考虑以下简单问题:我们有一个二维的规则网格点(比如X=[0,5000]×[0,5000]) 以 1 为单位均匀间隔(例如,(0,0),(0,1),(1,0)X并且存在一个函数f(x,y)我们的目标是近似X. 让我们假设它是好的和平滑的,至少C2. 假设我们在一个统一的子网格上有数据样本(比如在一个方向上每 100 个点我们有一个样本值f(xi,yi))。我们都知道存在许多不同的方法来逼近这样的函数。我很好奇的是关于哪些方法可以为我提供对不在子网格上的新给定点的最快评估的建议(例如,在某个点(50,25))。

选项 1:多元多项式插值。

我们可以选择某个固定次数的多元多项式基(假设是 3 阶)所以,p(x,y)=c0+c1x+c2y+c3x2+c4xy+c5y2+c6x3+c7x2y+c8xy2+cny3.

这种方法有很多优点:存储空间小(我们只需要存储系数,相对于网格中的点数来说这是一个非常小的数字)并且对新点的评估相对较快(我们有几个乘法,加上一些加法)。

但是,我们还必须拟合这个多项式。这需要我们解决最小二乘问题,其中我们将有一个矩阵N×d其中 d 是系数的数量和N是样本点的数量。相信我最好的选择是 SVD 解决方案(可能使用 Armadillo 或 Eigen)。这肯定是整个考验中最慢的部分,因此前期成本很高。

下一个缺点是诸如龙格现象之类的问题。由于某些区域的精度差等问题,我通常对拟合多元多项式非常谨慎。此外,基的选择显着影响系统的可解性。如果这是一维的,如果可能的话,我会做切比雪夫多项式。在 2D 中是否有更好的基础来解决这样的问题?

选项 2:方形网格上的分段多项式

我是这个选项的粉丝。我可以在实际子区域(比如 100 x 100 单位)上使用线性或二次元素。缺点是我需要存储N已知函数样本。所以这需要更多的存储空间,因此复制和移动这些信息比移动例如多项式系数(这是一个固定的微小数字)更重要。评估应该很快。我需要知道单元格顶点的值,并给定一个新点 (x,y),我需要计算它所在的方形单元格。我假设我可以通过除法来做到这一点xy跨步(比如 100)并将其铺平以找出新点所在的单元格的左下角。我在这里看到的巨大优势是我没有解决大型系统来获取近似函数的系数。

我真正看到的唯一缺点是我的网格间距变化的情况(比如 100 x 100 个单元格,然后是 50 x 50 个单元格)。给定一个新点来评估 (x,y) 处的函数值,我需要高效快速地计算 (x,y) 所在的单元格,然后在该单元格中快速进行分段多项式评估。也许我很笨,但是当单元格的大小不同时,快速计算一个点所在的单元格的有效方法是什么?

3:径向基函数方法

这需要解决大型系统大量系数,所以我在这里没有看到优势。如果我有不规则的采样点,我会考虑这个。

总结:速度对我来说至关重要;我将有很多传入点和函数值的评估在这些所需的点,我还需要尽快设置近似函数(例如求解多项式或 RBF 系数)。建议会很棒。谢谢!

编辑:我的问题不清楚。我的目标是使用某种方法(多项式、分段多边形等)实时(或尽可能接近)拟合传入的数据集(如上所述),然后这些方法将随后实时接收许多评估请求. 我将收到不止一个数据集,每秒可能很多(几十个?几百个?)。因此,构建插值/拟合方案和后续评估的前期成本都需要很快。我肯定需要尽可能多地并行化。

1个回答

首先,如果您不想直接处理使用矩阵方法求解大型方程组,则可以将 1 和 3 的拟合问题转化为迭代优化问题。

对于2,您可以使用哈希表并设计空间哈希函数将坐标映射到适当的子区域,这将非常快。

对于3,假设您使用局部影响数据拟合的 RBF,您可以使用具有 m-Nearest Neighbors 算法的 KD 树来查找影响给定输入点的 RBF,并仅使用它们来计算值。我发现这在我的实现中非常有效。难点在于弄清楚要使用多少个 RBF 以及将其影响区域设置为多大。

其他想法

如果您没有存储要求,您还可以考虑使用局部线性或二次拟合进行局部加权回归。我已经在具有 9 维数据点的大型数据集上构建了代码来执行此操作,而且速度非常快。

该算法的好处是您不必事先拟合任何模型。您最终会使用一组靠近您想要在其中找到函数值的输入数据点的数据,并使用更简单的模型(线性、二次)进行局部拟合,因此速度很快。如果您使用 KD 树来查找 M 最近邻,它应该很快。

最后的想法

我怀疑选项 2 可能是您在速度和减少数据存储之间的最佳平衡,特别是如果您使用哈希表/哈希函数对将输入点映射到适当的子区域。

编辑

我差点忘了,但是对于方法1,您还可以对多项式模型的系数进行正则化。这将帮助您避免龙格现象,并且应该为您提供最快的模型来评估相对于其他方法的许多点。