二维三次样条的自然样条条件

计算科学 图像处理
2021-12-25 05:37:45

我目前正在研究 2D 插值,并且正在使用三次样条。

在给定 N 个点的 1D 中,将使用 N+2 条样条,并且必须应用额外的约束才能实现方形系统。例如,要求插值 S,二阶导数在端点处等于 0,Sxx = 0(自然样条条件)

我想知道如何将其扩展到二维?我相信它应该在您的域边缘类似于 Sxx = Syy = 0 但我不确定(如果是这样,我相信我们仍然会丢失一些方程式)。任何帮助,将不胜感激。

我将提供一个 2D 示例:考虑 x 分量中的点 1:1:10 和 y 分量中的点 1:1:10,因此每个方向上有 N 个点。对于三次样条,每个方向都需要 N+2 个样条。在 1D 插值中,我们可以添加二阶导数应该为零的约束,以得到 (N+2) 个未知数的 (N+2) 个方程。

因此,为了扩展到 2D,我将取这些点的张量积,我将有一个 10x10 网格(100 对点)和每个方向上 12 个样条的张量积(144 个样条)。由于我使用这些进行插值,因此我可以通过为网格中的每个点设置一个方程来检索 100 个方程。我可以通过在边界处询问 S_{xx} = S_{yy} = 0 来检索另外 40 个方程。10 在(x0,y),(xN,y),(x,y0),(x,yN)因此我会丢失 4 个方程。这就是我的困惑所在。

1个回答

将三次样条曲线扩展到二维有两种不同的方法。

更正式的方法是张量积方法。在边界上x是恒定的,你需要Sxx=0=Sxxy. 在边界上y是恒定的,你需要Syy=0=Sxyy. 条件Sxxy=0可以从Sxx(x0,y)=0 y.

不太正式的方法是分层基础或稀疏网格方法。在这里你只需要Sxx=0在边界网格点上x是恒定的,并且Syy=0在边界网格点上y是恒定的。然后你使用一维样条来确定偏导数x- 和y-所有网格点的方向。在一个单元格上,您现在有 12 个规定的自由度:单元格每个角的值和两个导数。线性插值处理这些值,因此您需要的所有导数都是一个在四个角上为零的形式函数,并且在一个角上在一个方向上具有偏导数 1,而在角上所有其他偏导数为零:x2(x1)y. 生成的函数将在任何地方都是连续的,并且通过网格点沿轴平行线平滑。因此,您没有完整的样条平滑度,但应该已经实现了预期的收敛顺序(近似值)。