Hermite and Birkhoff Interpolation

Table of Contents

1. Hermite 插值

在数值分析(Numerical Analysis)中,埃尔米特插值(Hermite interpolation)是一种多项式插值方法,它是拉格朗日插值(Lagrangian interpolation)的一种推广。

我们知道,已知 n+1 个点 (x0,y0),(x1,y1),,(xn,yn) ,使用拉格朗日插值方法可以找到一个次数小于 n+1 的唯一的多项式符合这些点。比如,已知 3 个点 (1,1),(2,4),(3,9) ,使用拉格朗日插值方法可以找到一个 2 次多项式 L(x)=x2 符合这些点。

在使用拉格朗日插值时,已知的点都是某些位置的直接函数值(没有导数值);而 Hermite 插值中,已知的点不仅包含函数值,还可以包含函数的导数值。

已知下面 (n+1)(m+1) 个点: (x0,y0),(x1,y1),,(xn,yn),(x0,y0),(x1,y1),,(xn,yn),(x0,y0(m)),(x1,y1(m)),,(xn,yn(m)) 式中 y0 是一阶导函数在 x0 处的值, y0(m)m 阶导函数在 x0 处的值,其它记号类似。 使用 Hermite 插值可以找到一个次数小于 (n+1)(m+1) 的唯一的多项式符合这些点。 显然当 m=0 时,不涉及导函数,可以直接使用拉格朗日插值方法。本文仅介绍当 m=1 时的简单情况。

1.1. 简单情况(m=1)时的公式

m=1 时,也就是给定的数据最多包含一阶导数值,不会包含更高阶导数值。即已知下面 2(n+1) 个数据, (x0,y0),(x1,y1),,(xn,yn),(x0,y0),(x1,y1),,(xn,yn) 利用下面 Hermite 插值公式可以得到一个次数小于 2(n+1) 的多项式,那最大可能次数就是 2n+1 了,我们记这个多项式为 H2n+1(x) ,它的计算公式为 H2n+1(x)=j=0nf(xj)Hn,j(x)+j=0nf(xj)H^n,j(x) 其中 Hn,j(x)=[12(xxj)Ln,j(xj)]Ln,j2(x) H^n,j(x)=(xxj)Ln,j2(x) 上面的 Ln,j 是拉格朗日系数多项式 Ln,j=(xx0)(xxj1)(xxj+1)(xxn)(xjx0)(xjxj1)(xjxj+1)(xjxn)

1.1.1. Hermite 插值实例

已知表 1 给定的数据

Table 1: Hermite 插值问题的给定数据
x f(x) f(x)
0 2 1
1 4 -1
3 5 -2

求 Hermite 插值多项式。

解:由前面介绍的知识可知,一定存在一个 5 次多项式符合这些点。我们可以设 f(x)=a5x5+a4x4+a3x3+a2x2+a1x+a+0 ,代入 3 个点可得 3 个方程;求得 f(x) 后,再代入剩下 3 个点又可得 3 个方程,6 个方程联立方程组,可求得系数 a5,a4,a3,a2,a1,a0 ,这种方法这里不详细介绍。

由于这是 m=1 时的简单情况,下面介绍直接使用前面介绍的公式求解 Hermite 插值多项式
L2,0(x)=(x1)(x3)(01)(03)=13x243x+1 ,从而 L2,0(x)=23x43
L2,1(x)=(x0)(x3)(10)(13)=12x2+32x ,从而 L2,1(x)=x+32
L2,2(x)=(x0)(x1)(30)(31)=16x216x ,从而 L2,2(x)=13x16

H2,0(x)=[12(x0)(23(0)43)][13x243x+1]2=(1+83x)[13x243x+1]2
H2,1(x)=[12(x1)(1+32)][12x2+32x]2=(2x)[12x2+32x]2
H2,2(x)=[12(x3)(13(3)16)][16x216x]2=(653x)[16x216x]2

H^2,0(x)=(x0)[13x243x+1]2
H^2,1(x)=(x1)[12x2+32x]2
H^2,2(x)=(x3)[16x216x]2

从而可得 Hermite 插值多项式为:
H5(x)=2(1+83x)[13x243x+1]2+4(2x)[12x2+32x]2+5(653x)[16x216x]2+1(x)[13x243x+1]21(x1)[12x2+32x]22(x3)[16x216x]2=56x5+7112x4403x3+374x2+x+2

2. Birkhoff 插值(缺项的 Hermite 插值)

给定 k 个实数 X={x1,x2,,xk} ,它们满足 x1<x2<xk ;设矩阵 E=(ei,j)i=1,j=0kl ,矩阵 E 中的元素 ei,j 或者为 0 或者为 1 ;设矩阵 I(E)={(i,j):ei,j=1} ,记 d=|I(E)| ,也就是说矩阵 E 中值为 1 的元素个数为 d 。记 C={ci,j:(i,j)I(E)}Birkhoff 插值问题就是指:如何寻找一个次数小于 d 次多项式 f(x) ,它们满足给定的 d 个方程: f(j)(xi)=ci,j,(i,j)I(E) 上面式子中, f(j)(xi)=ci,j 表示在位置 xi 处, f(x) 的第 j 阶导数值为 ci,jxi,ci,j 都是给定的已知值, l 是给定数据中的最高阶导数的阶数。

Birkhoff 插值又称为 Hermite-Birkhoff 插值,或者 Lacunary(缺项的)Hermite 插值。

2.1. 求解 Birkhoff 插值的例子

已知表 2 给定的数据

Table 2: Birkhoff 插值问题的给定数据(相对于 Hermite 插值问题的给定数据来说它有“缺项”,即 Not available 位置)
x f(x) f(x)
2 18 Not available
4 Not available 19
5 Not available 23

求 Birkhoff 插值多项式。

对于这个例子, x1=2,x2=4,x3=5E=(e1,0e1,1e2,0e2,1e3,0e3,1)=(100101)I(E)={(1,0),(2,1),(3,1)}d=|I(E)|=3C={c1,0,c2,1,c3,1}={18,19,23} ,Birkhoff 插值问题就是求一个 2 次(次数小于 3 )多项式满足下面三个方程: f(2)=18,f(4)=19,f(5)=23 解决这个问题比较简单,设 f(x)=a0+a1x+a2x2 ,则 f(x)=a1+2a2x ,则有 f(2)=a0+2a1+4a2=18f(4)=a1+8a2=19f(5)=a1+10a2=23 从而可求得 a0=4,a1=3,a2=2 ,也就是说 f(x)=4+3x+2x2

2.2. Birkhoff 插值不一定有唯一解

我们知道,在拉格朗日插值中,已知 d 个点,则一定可以找到一个次数小于 d 的唯一多项式符合这些点;在 Hermite 插值中,已知 (n+1)(m+1) 个点,则一定可以找到一个次数小于 (n+1)(m+1) 的唯一多项式符合这些点。

但是,在 Birkhoff 插值中,已知 d 个点,符合这些点的次数小于 d 的多项式不一定是唯一的。节 2.2.3 中就有这样的例子。

2.2.1. Polya 条件(必要条件)

Polya 给出了一个 Birkhoff 插值存在唯一解的必要条件:如果 Birkhoff 插值存在唯一解(即存在次数小于 d 唯一多项式满足给定的 d 个点),则一定有: |{(i,j)I(E):jt}|t+1,0tl

通俗地讲,Polya 条件是说,Birkhoff 插值存在唯一解时,则一定有:

  1. 给定数据中, 0 阶导数点个数 >=1
  2. 给定数据中, 0 阶和 1 阶导数点个数 >=2
  3. 给定数据中, 0 阶和 1 阶和 2 阶导数点个数 >=3
  4. 给定数据中, 0 阶和 1 阶直到 l 阶导数点个数 >=l+1

2.2.2. Atkinson 和 Sharma 条件(充分条件)

K. Atkinson 和 A. Sharma 在论文 A Partial Characterization of Poised Hermite-Birkhoff Interpolation Problems 中给出了一个 Birkhoff 插值存在唯一解的充分条件。

在介绍 Atkinson 和 Sharma 条件之前,我们先介绍两个概念:1-sequences 和 Supported 1-sequences。

所谓 1-sequences,就是矩阵 E 中每行中的连续 1。如果一个 1-sequences 的西北方向和西南方向都存在至少一个 1,则称这个 1-sequences 为 Supported 1-sequences。

下面用例子介绍一下 1-sequences 和 Supported 1-sequences 的概念。设 E=(1100010000001001) 这个矩阵中第一行有 1 个 1-sequences(含有两个连接 1),第二行有 1 个 1-sequences(含有一个 1),第四行有 2 个 1-sequences(分别含有一个 1)。这 4 个 1-sequences 中,只有第二行的那个 1-sequences 是 Supported 1-sequences,因为它的西北方向和西南方向都存在至少一个 1。

Atkinson 和 Sharma 条件是指: 如果 E 满足 Polya 条件,并且 E 中不包含奇数长度的 Supported 1-sequences,则 E 对应的 Birkhoff 插值一定有唯一解(即存在次数小于 d 唯一多项式满足给定的 d 个点)。 显然,Atkinson 和 Sharma 条件是一个充分条件。

假设 E1=(100110),E2=(100101),E3=(100011100),E4=(100000001110000) ,其中哪些矩阵满足 Atkinson 和 Sharma 条件呢?分析如下:
E1 满足 Polya 条件,但 E1 是第二行有一个奇数长度的 Supported 1-sequences,所以 E1 不满足 Atkinson 和 Sharma 条件。
E2 满足 Polya 条件,且 E2 中不包含奇数长度的 Supported 1-sequences,所以 E2 满足 Atkinson 和 Sharma 条件。
E3 满足 Polya 条件,且 E3 中不包含奇数长度的 Supported 1-sequences,所以 E3 满足 Atkinson 和 Sharma 条件。
E4 不满足 Polya 条件,所以 E4 不满足 Atkinson 和 Sharma 条件。

需要说明的是:Atkinson 和 Sharma 条件依赖于实数中的顺序,它只能应用于实数域,不能直接应用于有限域。

2.2.3. 解不唯一的例子

已知 f(1)=2,f(3)=0,f(5)=2 ,求一个次数小于 3 的多项式满足这些点。

对于这些已知点,对应的 EE=(100110) 由上一节可知,它不满足 Atkinson 和 Sharma 条件,所以我们不能确定它是否有唯一解。

f(x)=a0+a1x+a2x2 ,由 f(1)=2,f(3)=0,f(5)=2 可以得到 a0=2+5ka1=6ka2=k 其中 k 是任意实数。显然它没有唯一解,比如 f(x)=76x+x2,f(x)=1212x+2x2 等都满足上面那些给定的点。

其实,当 EE=(100110) 时,有时也存在唯一多项式。比如已知 f(1)=2,f(3)=0,f(6)=3 ,这些已知点对应的 E 就是上面的 E ,这时可以得到一个次数小于 3 的唯一多项式 f(x)=365x+15x2 满足这些点。

2.3. 公式求解 Birkhoff 插值

在节 2.1 中介绍了通过联立方程组来求解 Birkhoff 插值的例子。 如果 Birkhoff 插值存在唯一解,我们还可以使用公式求解 Birkhoff 插值问题。

在使用公式求解 Birkhoff 插值时,给定点的 x 坐标必须是整数(因为求解过程会把给定点的 x 坐标作为矩阵元素下标的一部分,显然矩阵元素的下标只能是整数),上面这个例子是满足要求的(因为 2,4,5 都是整数)。如果已知数据中有 f(12)=18 等形式,它是不能用公式求解的。

已知 d 个点 f(j)(i)=σi,j (这里给定点的 x 坐标必须是整数 i ,而不是实数 xi ), Birkhoff 插值求解公式(摘自论文 Dynamic and Verifiable Hierarchical Secret Sharing 第 4 节)为: f(x)=k=0d1det(A(E,X,φk))det(A(E,X,φ))xk 其中矩阵 A (它是一个 d×d 的方阵,或者说是一个 r×r 的方阵, dr 是相等的)的定义为 A(E,X,φ)(ϕ0(j1)(i1)ϕ1(j1)(i1)ϕ2(j1)(i1)ϕd1(j1)(i1)ϕ0(j2)(i2)ϕ1(j2)(i2)ϕ2(j2)(i2)ϕd1(j2)(i2)ϕ0(jr)(ir)ϕ1(jr)(ir)ϕ2(jr)(ir)ϕd1(jr)(ir))A(E,X,φk) 就是把 A(E,X,φ) 的第 k+1 列替换为 d 个已知值 σi,j 。式中的 φ{ϕ0,ϕ1,ϕ2,,ϕd1}{1,x,x2,,xd1} ,而 ϕk(j) 表示 ϕkk=0,1,,d1 )的第 j 阶导数。比如 1 阶导数为 ϕ0(1)=0,ϕ1(1)=1,ϕ2(1)=2x,,ϕd1(1)=(d1)xd2 ,又如 2 阶导数为 ϕ0(2)=0,ϕ1(2)=0,ϕ2(2)=2,,ϕd1(2)=(d1)(d2)xd3 。矩阵 A 中的 ir,jrI(E) 中的元素,即 I(E)={(i1,j1),(i2,j2),,(ir,jr)} ,而 I(E) 是矩阵 E 中元素值为 1 的元素的下标组成的有序集合(先按下标 i 排序,再按下载 j 排序)。

需要说明的是,在使用公式求解 Birkhoff 插值时,对 E 的定义和节 2.1 中对 E 的定义有区别,后文会介绍。

这些公式看起来比较抽象,下一节将通过例子介绍公式的应用。

2.3.1. 公式求解 Birkhoff 插值的例子

这节介绍使用前一节公式来求解节 2.1 中的 Birkhoff 插值问题。为了阅读方便,重复题目如下:已知 f(2)=18,f(4)=19,f(5)=23 ,求一个 2 次多项式满足前面给定的点。

这个例子,用公式求解时,对应的 EE=(e1,0e1,1e2,0e2,1e3,0e3,1e4,0e4,1e5,0e5,1)=(0010000101) 我们可以发现,这里对 E 的定义和节 2.1 中对 E 的定义有区别。 I(E) 是矩阵 E 中元素值为 1 的元素的下标组成的有序集合,从而 I(E)={(2,0),(4,1),(5,1)}={(i1,j1),(i2,j2),(i3,j3)} ,从而 i1=2,j1=0,i2=4,j2=1,i3=5,j3=1

A(E,X,φ)=(ϕ0(j1)(i1)ϕ1(j1)(i1)ϕ2(j1)(i1)ϕ0(j2)(i2)ϕ1(j2)(i2)ϕ2(j2)(i2)ϕ0(j3)(i3)ϕ1(j3)(i3)ϕ2(j3)(i3))=(ϕ0(2)ϕ1(2)ϕ2(2)ϕ0(4)ϕ1(4)ϕ2(4)ϕ0(5)ϕ1(5)ϕ2(5)) 代入 ϕ0(x)=1,ϕ1(x)=x,ϕ2(x)=x2,ϕ0(x)=0,ϕ1(x)=1,ϕ2(x)=2xA(E,X,φ)=(1222012×4012×5) 替换每一列有 A(E,X,φ0)=(182221912×42312×5),A(E,X,φ1)=(118220192×40232×5),A(E,X,φ2)=(121801190123)

所以有 f(x)=det(A(E,X,φ0))det(A(E,X,φ))+det(A(E,X,φ1))det(A(E,X,φ))x+det(A(E,X,φ2))det(A(E,X,φ))x2=82+62x+42x2=4+3x+2x2

3. 参考

  1. Math 450 Section 3.4: Hermite Interpolation
  2. Schoenberg, I.J. On Hermite-Birkhoff interpolation, 1966
  3. Giulia Traverso, Denise Demirel, and Johannes Buchmann, Dynamic and Verifiable Hierarchical Secret Sharing, 2017

Author: cig01

Created: <2023-04-15 Sat>

Last updated: <2023-05-06 Sat>

Creator: Emacs 27.1 (Org mode 9.4)