Skip to content

19.6.1 多项式插值

插值的基本问题是通过一系列点 (xv,yv)(v=0,1,,n) 来拟合曲线. 它可以通过曲线拟合小段图示,或通过在所谓插值点 xvyv 值的函数 g(x) 数值化,即 g(x) 满足插值条件

(19.159)g(xν)=yν(ν=0,1,2,,n).

插值函数最早用多项式, 对周期函数或用所谓三角多项式. 后一种情况为三角插值 (参见第 1287 页 19.6.4.1,2.). 有 n+1 个插值点,插值阶为 n ,则插值多项式的最高阶至多为 n . 因为随着次数增加,多项式可能产生强烈的振荡,故通常不需要高阶插值. 插值区间能划分为子区间进行样条插值 (参见第 1293 页 19.7).

19.6.1.1 牛顿插值公式

为解插值问题 (19.159),考虑如下形式的 n 次多项式

g(x)=pn(x)=a0+a1(xx0)+a2(xx0)(xx1)+(19.160)+an(xx0)(xx1)(xxn1).

这称为牛顿插值公式, 因为插值条件 (19.159) 导致三角矩阵的线性方程组, 故容易计算系数 ai(i=0,1,,n) .

对于 n=2 ,由 (19.159) 得到附加的方程组. 插值多项式 pn(x) 由插值条件 (19.159) 唯一确定.

p2(x0)=a0=y0,p2(x1)=a0+a1(x1x0)=y1,p2(x2)=a0+a1(x1x0)+a2(x1x0)(x2x1)=y2.

函数值的计算可以由霍纳格式 (参见第 1237 页 19.1.2.1) 简化.

19.6.1.2 拉格朗日插值公式

n 次多项式可以用 n+1 个点 (xv,yv)(v=0,1,,n) 的拉格朗日公式来拟合:

(19.161)g(x)=pn(x)=μ=0nyμLμ(x).

这里 Lμ(xv)(v=0,1,,n) 为拉格朗日插值多项式. 方程 (19.161) 满足插值条件 (19.159), 因为

(19.162)Lμ(xv)=δμv={1,μ=ν,0,μν,

其中 δμν 为克罗内克 (Kronecker) 记号. 拉格朗日插值多项式定义为

Lμ=(xx0)(xx1)(xxμ1)(xxμ+1)(xxn)(xμx0)(xμx1)(xμxμ1)(xμxμ+1)(xμxn)(19.163)=ν=0νμnxxνxμxν
  • 由下表中给出的点来拟合多项式.

01937d01-b6f6-7881-8294-3a9c82211946_44_693_1132_254_133_0.jpg

利用拉格朗日插值多项式 (19.161):

L0(x)=(x1)(x3)(01)(03)=13(x1)(x3),L1(x)=(x0)(x3)(10)(13)=12x(x3),L2(x)=(x0)(x1)(30)(31)=16x(x1);p2(x)=1L0(x)+3L1(x)+2L2(x)=56x2+176x+1.

拉格朗日插值多项式显式且线性依赖于函数值 yμ . 这在理论上是重要的 (例如参见第 1262 页 19.4.1.3,3. 亚当斯-巴什福斯法则). 但在实际计算中, 拉格朗日插值公式并不常用.

19.6.1.3 艾特肯-内维尔插值

在许多实际情况中,我们并不需要多项式 pn(x) 的显形式,只需要插值区域内给定点 x 处的值就可以. 这些函数值可以由艾特肯 (Aitken) 和内维尔 (Neville) 发展的递推方法得到. 记号

(19.164)pn(x)=p0,1,,n(x)

表示以 x0,x1,,xn 为插值点的 n 次多项式. 注意到

(19.165)p0,1,,n(x)=(xx0)p1,2,,n(x)(xxn)p0,1,2,,n1(x)xnx0,

即函数值 p0,1,,n(x) 可由两个次数低于 n1 的多项式 p1,2,,n(x)p0,1,,n1(x) 的线性组合得到. 应用 (19.165),对于 n=4 的情况有

(19.166)x0y0=p0x1y1=p1p01x2y2=p2p12p012x3y3=p3p23p123p0123x4y4=p4p34p234p11234p01234p01234=p4(x).

逐列计算 (19.166) 的元素. 格式中的新值由其左边及左上的数值得到.

(19.167a)p23=(xx2)p3(xx3)p2x3x2=p3+xx3x3x2(p3p2),(19.167b)p123=(xx1)p23(xx3)p12x3x1=p23+xx3x3x1(p23p12),(19.167c)p1234=(xx1)p234(xx4)p123x4x1=p234+xx4x4x1(p234p123).

为在计算机上实施艾特肯-内维尔 (Aitken-Neville) 算法,只需引进有 n+1 个分量的向量 p (见 [19.7]),根据规则依次取 (19.166) 中的列值,第 k 列的值 pik,ik+1,,i (i=k,k+1,,n) 正是 p 的第 i 个分量 pi . 由于必须向下计算 (19.166) 的列, 故 p 包含所有必要的数值. 算法有如下两步:

(1) 对 i=0,1,,n ,设 pi=yi .(19.168a)

(2) 对 k=1,2,,ni=n,n1,,k ,计算 pi=pi+xxixixik(pipi1) .(19.168b)

在结束 (19.168b) 的计算后,我们得到元素 pn 在点 x 处要求的函数值 pn(x) .

version 1.24.0