样条插值

数值分析这个数学分支中,样条插值是使用一种名为样条的特殊分段多项式进行插值的形式。由于样条插值可以使用低阶多项式样条实现较小的插值误差,这样就避免了使用高阶多项式所出现的龙格现象,所以样条插值得到了流行。

样条插值

使用多项式插值,对给定数据集进行插值的n阶多项式就被给定数据点所唯一地定义出来。但是,对同样的数据进行插值的n阶样条并不是唯一的,为了构建一个唯一的样条插值式它还必须满足另外n-1个自由度

线性样条插值

线性样条插值是最简单的样条插值。数据点使用直线进行连接,结果样条是一个多边形

从代数的角度来看,每个Si 都是一个如下

 

线性函数。 样条在每个数据点都必须连续,即

 

我们很容易得到

 
 

所以以上论述成立。

二次样条插值

二次样条插值可以构建为

 

通过选择 ,然后用递推关系就可以得到系数

 

三次样条插值

对于 给定点的数据集 ,我们可以用 段三次多项式在数据点之间构建一个三次样条。如果

 

表示对函数 进行插值的样条函数,那么需要:

  • 插值特性, 
  • 样条相互连接, 
  • 两次连续可导,  以及  .

由于每个三次多项式需要四个条件才能确定曲线形状,所以对于组成  个三次多项式来说,这就意味着需要 个条件才能确定这些多项式。但是,插值特性只给出了 个条件,内部数据点给出 个条件,总计是 个条件。我们还需要另外两个条件,根据不同的因素我们可以使用不同的条件。

其中一项选择条件可以得到给定  钳位三次样条,

 
 

另外,我们可以设

 .

这样就得到自然三次样条。自然三次样条几乎等同于样条设备生成的曲线。

在这些所有的二次连续可导函数中,钳位与自然三次样条可以得到相对于待插值函数f的最小震荡。

如果选择另外一些条件,

 
 
 

可以得到周期性的三次样条。

如果选择,

 
 
 

可以得到complete三次样条。

三次样条的最小性

三次样条有另外一个非常重要的解释,实际上它是在索伯列夫空间 最小化泛函

 

的函数。

泛函 包含对于函数 全部曲率 的近似,样条是 最小曲率的近似。

由于弹性条的总体能量与曲率成比例,所以样条是受到 个点约束的弹性条的最小能量形状。样条也是基于弹性条设计的工具。

使用自然三次样条的插值

它可以定义为

 

以及

 .

通过解下面的方程可以得到它的系数。

 

示例

线性样条插值

假设要为带有节点

 
 
 
 
 

的函数

 

找一个线性样条。直接代入样条公式,我们得到如下样条:

 

样条函数(蓝线)以及所近似的函数(红点)如下图所示:

 

二次样条插值

下图是一个k=4的样条函数(蓝线)与所近似的函数(红线)的例子:

 

参见

  • 三次埃尔米特样条
  • NURBS