1
2.5 埃尔米特插值 有些实际的插值问题不但要求在节点上函数值相等,
下面只讨论函数值与导数值个数相等的情况 . 满足这种要求的插值多项式就是埃尔米特插值多项式 . 而且还要求对应的导数值也相等,甚至要求高阶导数也相等 .
2
),,,1,0(,)(,)( njmxHyxH jjjj (5.1)
这里共有 个插值条件,可唯一确定一个次数不超过22 n
的多项式 ,12 n )()(12 xHxH n
),,,1,0()( njxfm jj 问题是求插值多项式 ,)(xH
设在节点 上, ),( jj xfy bxxxa n 10
.)( 12121012
nnn xaxaaxH
现在仍采用求拉格朗日插值多项式的基函数方法 .
满足条件
其形式为
3
,,1,,0
)(kjkj
x jkkj
将满足条件( 5.1 )的插值多项式 写成用插值基函数表示的形式
)()(12 xHxH n
.)]()([)(0
12
n
jjjjjn xmxyxH (5.3)
先求出 个插值基函数 及 ,)(xj ),,1,0()( njxj 22 n
每一个基函数都是 次多项式,12 n 且满足条件;0)( kj x
,0)( kj x jkkj x )(
(5.2)
).,,1,0,( nkj
4
令 ),()()( 2 xlbaxx jj
由条件( 5.2 ),有 ,1)()()( 2 jjjjj xlbaxx
,0)]()(2)()[()( jjjjjjjjj xlbaxxalxlx
由插值基函数所满足的条件( 5.2 ),有 ),,1,0(,)(,)( 1212 nkmxHyxH kknkkn
下面的问题就是如何求出这些基函数 及 )(xj ),(xj
利用拉格朗日插值基函数 ).(xl j
5
解出 ).(21),(2 jjjjj xlxbxla
由于 ,
)())(()()())(()(
)(110
110
njjjjjj
njjj xxxxxxxx
xxxxxxxxxl
整理得
.0)(2;1
jj
j
xlabax
6
于是 ).()1)(21()( 2
0
xlxx
xxx j
n
jkk kj
jj
(5.4)
两端取对数再求导,得 ,1)(
0
n
jkk kj
jj xxxl
同理,可得 ).()()( 2 xlxxx jjj (5.5)
7
可以证明满足条件( 5.1 )的插值多项式是惟一的 . 用反证法,假设 及 均满足条件( 5.1 ),)(12 xH n )(12 xH n
)()()( 1212 xHxHx nn
这样, 有 重根,但 是不高于 次的多 项式,
)(x 22 n )(x 12 n
于是
在每个节点 上的值及导数值均为零,即 为二重根 .kx kx
.0)( x故 惟一性成立 .
8
其中 且与 有关 . ),( ba x
若 在 内的 阶导数存在,则其插值余项
)(xf ),( ba 22 n
)()!22(
)()()()( 21
)22(
12 xn
fxHxfxR n
n
n
(5.6)
仿照拉格朗日插值余项的证明方法,可以证明:
9
插值多项式( 5.3 )的重要特例是 的情形 . 1n
这时可取节点为 及 ,kx 1kx 插值多项式为 ,)(3 xH
,)(3 kk yxH
,)(3 kk mxH
.)(
;)(
113
113
kk
kk
mxH
yxH(5.7)
相应的插值基函数为 ),(),(),(),( 11 xxxx kkkk
它们满足条件
满足
10
,0)(,1)( 1 kkkk xx
;0)()( 111 kkkk xx
,1)(,0)( 111 kkkk xx
,0)()( 1 kkkk xx
,0)()( 111 kkkk xx
,0)()( 1 kkkk xx
,0)(,1)( 1 kkkk xx
.1)(,0)( 111 kkkk xx
11
.21)(
,21)(
2
11
11
2
1
1
1
kk
k
kk
kk
kk
k
kk
kk
xxxx
xxxxx
xxxx
xxxxx
(5.8)
.)(
,)(
2
111
2
1
1
kk
kkk
kk
kkk
xxxxxxx
xxxxxxx
(5.9)
根据 及 的一般表达式( 5.4 )及( 5.5 ),)(xj )(xj
可得到
12
),()()()()( 11113 xmxmxyxyxH kkkkkkkk
(5.10)
其余项 ,)()()( 33 xHxfxR
).,(,)())((!4
1)( 12
12)4(
3 kkkk xxxxxxfxR
于是满足条件( 5.7 )的插值多项式是
由( 5.6 )得
13
求满足 及 )2,1,0()()( jxfxP jj )()( 11 xfxP
由给定的 4个条件,可确定次数不超过 3的插值多项式 . 由于此多项式通过点 )),(,()),(,()),(,( 221100 xfxxfxxfx
)](,[)()( 0100 xxxxfxfxP
))(](,,[ 10210 xxxxxxxf
的插值多项式及其余项表达式 .例 4
故其形式为
),)()(( 210 xxxxxxA
14
.))((
],,[)(],[)(
2101
21001101
xxxxxxxfxxxxfxfA
待定常数 ,可由条件 确定,)()( 11 xfxP A
其中 为待定函数 . )(xk
为了求出余项 的表达式,)()()( xPxfxR
),())()(()( 22
10 xxxxxxxkxR
通过计算可得
可设
15
).())()(()()()( 22
10 xtxtxtxktPtft
显然 ),2,1,0(0)( jx j
故 在 内有 5个零点(二重根算两个) . )(t ),( ba
,0)(!4)()( )4()4( xkf
反复应用罗尔定理,得 在 内至少有一个零点 ξ,
)()4( t ),( ba
构造
,0)(,0)( 1 xx 且
故有
16
),())()((!4
1)( 22
10)4( xxxxxxfxR (5.11)
式中 位于 和 所界定的范围内 . 210 ,, xxx x
余项表达式为
于是 ),(
!41)( )4( fxk
17
2.6 分段低次插值 2.6.1 高次插值的病态性质
这是因为对任意的插值节点,当 时, 不一定收敛到 .
n )(xLn
)(xf
在次数 增加时逼近 的精度不一定也增加 .n )(xf
根据区间 上给出的节点做出的插值多项式 ),(xLn],[ ba
18
),,1,0(,105 nknkxk
所构造的拉格朗日插值多项式为
以 上的 个等距节点]5,5[ 1n
考虑函数 ,它在 上的各阶导数均存在 .
]5,5[)1/(1)( 2xxf
.)()(
)(1
1)(1
1
02
jnj
nn
j jn xxx
xx
xL
令 ),(21
12/1 nnn xxx ,552/1 nxn 则
19
表 2-5 列出了 时的 的计算结果及 20,,4,2 n )( 2/1nn xL
在 上的误差2/1nx ).( 2/1nxR
994889.39952449.39042440.020080751.20123671.20042920.018
217397.10173867.10043530.016288409.5332743.5044334.014
800440.2755000.2045440.012531662.1578721.1047059.010
880668.0831017.0049651.08553416.0607879.0054463.06
423216.0356826.0066390.04621684.0759615.0137931.02
)()()( 2/12/12/1
nnnn xRxLxfn
52表
20
可见,随 的增加, 的绝对值几乎成倍增加 . n )( 2/1nxR
这说明当 时 在 上是不收敛的 . n nL ]5,5[
Runge 证明了,存在一个常数 ,使得当 63.3c cx
时, 而当 时 发散 .cx )(xLn),()(lim xfxLnn
21
取 根据计算画出 及 ,10n )1/(1 2xy )(10 xLy
在 上的图形,见图 2-5.]5,5[
图 2-5
22
从图上看到,在 附近 , 与 5x )(10 xL )1/(1)( 2xxf
偏离很远, 这说明用高次插值多项式 近似 效果并不好 .
)(xLn )(xf
通常不用高次插值,而用分段低次插值 .
23
下图是用 Matlab 完成的 Lagrange 插值(附程序):
24
附: Lagrange 插值程序n=11; m=61;x= -5:10/(m-1):5;y=1./(1+x.^2);z=0*x;x0=-5:10/(n-1):5;y0=1./(1+x0.^2);y1=lagr1(x0, y0, x);plot(x, z, ’r’, x, y, ’k:’ ,x, y1, ’r’)gtext(‘Lagr.’), gtext(‘y=1/(1+x^2)’)title(‘Lagrange’)
25
附: Lagrange 插值子程序 lagr1:function y=lagr1(x0,y0,x)n=length(x0); m=length(x);for i=1:m z=x(i); s=0.0; for k=1:n p=1.0; for j=1:n if j~=k p=p*(z-x0(j))/(x0(k)-x0(j)); end end s=p*y0(k)+s; end y(i)=s;end
26
2.6.2 分段线性插值
所谓分段线性插值就是通过插值点用折线段连接起来逼近 ).(xf
由于升高插值多项式的阶数有时并不能达到提高精度的效果 , 所以实际中往往采用分段插值的思想 .
分段插值的基本思想是将插值区间划分为若干个小区间 , 然后在每个小区间上做满足一定条件的低阶插值 .
27
设已知节点 上的函数值 bxxxa n 10
,,,, 10 nfff 记 ,max,1 kkkkk hhxxh
],,[)(.1 baCxIh
)(xIh求一折线函数 , 满足:
kkh fxI )(.2 ),,,1,0( nk
在每个小区间 上是线性函数 .)(.3 xIh ],[ 1kk xx
则称 为分段线性插值函数 .)(xIh
28
由定义可知 在每个小区间 上可表示为 )(xIh ],[ 1kk xx
111
1)(
kkk
kk
kk
kh f
xxxxf
xxxxxI ).( 1 kk xxx (6.1)
若用插值基函数表示,则在整个区间 上 为 ],[ ba )(xIh
,)()(0
n
jjjh xlfxI (6.2)
其中基函数 满足条件 )(xl j ),,,1,0,()( nkjxl jkkj
其形式是
29
);0(1 略去 jxxx jj
);(1 略去njxxx jj
].,[],,[ 11 jj xxxbax
,0
,
,
)(1
1
1
1
jj
j
jj
j
j xxxxxxxx
xl (6.3)
利用插值余项( 2.17 )得到分段线性插值的误差估计))((max
2)()(max 1
2
11
kkxxxhxxxxxxxMxIxf
kkkk
30
或写成 ,
8)()(max 22 hMxIxf hbxa
(6.4)
其中 .)(max2 xfMbxa
31
),()()(1 10
xlxlxl kk
n
jj
当 时, ],[ 1 kk xxx
故 ).()]()([)( 1 xfxlxlxf kk
另一方面,这时 ).()()( 11 xlfxlfxI kkkkh
这种性质称为局部非零性质 . 分段线性插值基函数 只在 附近不为零,在其他地方均为零,
)(xl j jx
利用 的局部非零性质及 知,)(xl j
n
jj xl
0
)(1
32
现在证明 , )()(lim xfxIhn
)()()()]()([)()( 111 xlfxlfxfxlxlxIxf kkkkkkh
)()]()([ 1 kkk hxlxl
这里 是函数 在区间 上的连续模,即对任意)(h )(xf ],[ ba
两点 ,只要 就有],[, baxx ,hxx
考虑
11 )()()()( kkkk fxfxlfxfxl
)( kh
).(h
33
),()()( hxfxf
称 为 在 上的连续模, )(h )(xf ],[ ba 当 时,],[)( baCxf
.0)(lim0
hh
就有 由前式可知,当 时有 ],[ bax
).()()(max hxIxf hbxa
因此,只要 ,就有],[)( baCxf
)()(lim0
xfxIhh
在 上一致成立,],[ ba 故 在 上一致收敛到 .],[ ba )(xf)(xIh
34
下图是用 Matlab 完成的分段线性插值(附程序):
35
附:分段线性插值程序n=11; m=61;x=-5:10/(m-1):5;y=1./(1+x.^2);z=0*x;x0=-5:10/(n-1):5;y0=1./(1+x0.^2);y1=interp1(x0, y0, x);plot(x, z, ’r’, x, y, ’k:’, x, y1, ’r’)gtext(‘Piece. –linear.’), gtext(‘y=1/(1+x^2)’)title(‘Piecewise Linear’)注: interp1(x0,y0,x) 为 Matlab 中现成的分段线性插值程序 .
36
2.6.3 分段三次埃尔米特插值 分段线性插值函数 的导数是间断的,若在节点)(xIh
上除已知函数值 外还给出导数值
),,1,0( nkxk kf
),,,1,0( nkmf kk
插值函数 ,)(xIh
],,[)(.1 1 baCxIh
),,,1,0()(,)(.2 nkfxIfxI kkhkkh
在每个小区间 上是三次多项式 .)(.3 xIh ],[ 1kk xx
这样就可构造一个导数连续的分段满足条件
37
根据两点三次埃尔米特插值插值多项式( 5.10 ), 在区间 上的表达式为)(xIh ],[ 1kk xx
2
11
2
1
1 21)(
kk
kk
kk
k
kk
kh xx
xxfxxxx
xxxxxI
.
)(21
11
2
1
2
1
11
1
1
kkkk
k
kkkk
kk
kk
k
fxxxxxx
xfxxxxxxf
xxxx
(6.5)
38
若在整个区间 上定义一组分段三次插值基函数],[ ba
及 ,)(xj ),,1,0()( njxj 则 可表示为)(xIh
)],()([)(0
xfxfxI j
n
jjjjh
(6.6)
其中 , 分别表示为 )(xj )(xj
(6.7)
;,0
),(,21
),0(,21
)( 1
1
2
1
1
1
1
2
1
1
其他
略去
略去
njxxx
xxxx
xxxx
jxxx
xxxx
xxxx
x jj
jj
j
jj
j
jj
jj
j
jj
j
j
39
;其他
略去
略去
,0
),(,
),0(,
)( 1
2
1
1
1
2
1
1
njxxx
xxxxxx
jxxx
xxxxxx
x jjj
jj
j
jjj
jj
j
j(6.8)
由于 , 的局部非零性质,)(xj )(xj 当 时,],[ 1 kk xxx
只有 不为零,)(),(),(),( 11 xxxx kkkk 于是 可表示为)(xIh
).()()()()( 1111 xfxfxfxfxI kkkkkkkkh
).( 1 kk xxx (6.9)
40
,1)(0 xj (6.10)
再研究 的收敛性 . )(xIh
,274)( kk hx ,
274)(1 kk hx (6.11)
.)()]()([100
n
jjjj
n
jjj xxfxf
此外,当 是分段三次多项式时, 的插值多项式 就是它本身 .
)(xf )(xf
)(xIh
例如,当 时,1)( xf
由 及 的表达式,直接得估计式 )(xj )(xj
所以就有由于 ,0f
41
当 时就得 ],[ 1 kk xxx
,1)()( 1 xx kk (6.12)
由( 6.9) --( 6.12 ),当 时还有 ],[ 1 kk xxx
11 )()()()()()( kkkkh fxfxfxfxxIxf
][)27/4( 1 kkk ffh
11 )()()()( kkkk hfxhfx
],[)27/4( 1 kkk ffh
这里 且依赖于 .),(, 1 kk xx x
42
因此对 成立],[ bax
.)(max2735)()(max xfhxIxf
bxahbxa
(6.13)
这表明用 逼近 时,它的界只依赖 ,而与 无关 . )(xIh )(xf h x
因此,当 时],[ bax
)()(lim0
xfxIhh
一致成立 . 设 则当 时, 在 上一致收敛于 .
],,[1 baCf 0h )(xIh ],[ ba
)(xf
从而得到:定理 3
43
2.7 三次样条插值
44
2.7.1 三次样条函数
上是三次多项式,其中 是给定节点,bxxxa n 10
若函数 且在每个小区间 ],,[)( 2 baCxS ],[ 1jj xx
则称 是节点 上的三次样条函数 .)(xS nxxx ,,, 10
若在节点 上给定函数值 jx ),,,1,0)(( njxfy jj
jj yxS )( ),,,1,0( nj ( 7.1)则称 为三次样条插值函数 .)(xS
定义 4
并成立
45
由于 在每个小区间 上有 4个待定系数,)(xS ],[ 1jj xx
共有 个小区间,所以共有 个待定参数 . n n4
),0()0( jj xSxS
由于 在 上二阶导数连续,所以在节点 )(xS ],[ ba
)1,,2,1( njx j 处应满足连续性条件),0()0( jj xSxS
这些共有 个条件,再加上 本身还要满足的 个插值条件,共有 个条件,还需要 2个才能确定 .
)(xS
)(xS
33 n
24 n
1n
).0()0( jj xSxS ( 7.2 )
46
通常可在区间 端点 上各加一个条件],[ ba nxbxa ,0
1. 已知两端的一阶导数值,即.)(,)( 00 nn fxSfxS ( 7.3)
( 7.4 )‘称为自然边界条件 .
2. 已知两端的二阶导数,即
其特殊情况为,)(,)( 00 nn fxSfxS ( 7.4)
.0)()( 0 nxSxS ( 7.4 ) `’
常见的边界条件有以下 3种:(称为边界条件),
47
3. 当 是以 为周期的周期函数时,则要求)(xf 0xxn
),0()0( 0 nxSxS
此时插值条件( 7.1 )中 . nyy 0
这样确定的样条函数 称为周期样条函数 .)(xS
这时边界条件应满足 ),0()0( 0 nxSxS
( 7.5)).0()0( 0 nxSxS
)(xS 也是周期函数 .
48
2.7.2 样条插值函数的建立 下面利用 的二阶导数值 表示 .
)(xS jj MxS )( ),,1,0( nj
)(xS
由于 在区间 上是三次多项式,故 )(xS ],[ 1jj xx )(xS
在 上是线性函数,],[ 1jj xx
j
jj
j
jj h
xxM
hxx
MxS
11)( ( 7.7)
对 积分两次并利用 及 , )(xS jj yxS )( 11)( jj yxS
可表示为
可定出积分常数,于是得三次样条表达式
49
j
jj
j
jj h
xxM
hxx
MxS6
)(6
)()(
3
1
31
j
jjjj
j
jjjj h
xxhMy
hxxhM
y
66
21
11
2
这里 ,是未知的 . ),,1,0( njM j
).1,,1,0( nj ( 7.8)
50
为了确定 , 对 求导得 jM )(xS
j
jj
j
jj h
xxM
hxx
MxS2
)(2
)()(
2
11
2
;6
11j
jj
j
jj hMM
hyy
( 7.9)
由此可求得 .
63)0( 1
1j
jjj
jj
jj h
yyM
hM
hxS
51
类似地可求出 在区间 上的表达式,从而得 )(xS ],[ 1 jj xx
,36
)0(1
111
1
j
jjj
jj
jj h
yyM
hM
hxS
利用 可得 )0()0( jj xSxS
),1,,2,1(2 11 njdMMM jjjjjj ( 7.10 )
其中 ,,,1,0,,
11
1 njhh
hhh
h
jj
jj
jj
jj
52
].,,[6],[],[
6 111
11
jjjjj
jjjjj xxxf
hhxxfxxf
d
( 7.11 )对第一种边界条件( 7.3 ),可导出两个方程
]).,[(62
),],[(62
11
1
0100
10
nnnn
nn xxffh
MM
fxxfh
MM ( 7.12 )
53
如果令 ),],[(6,1 010
000 fxxfh
d
]),,[(6,1 11
nnnn
nn xxffh
d
.
22
22
1
1
0
1
1
0
11
11
0
n
n
n
n
n
nn
dd
dd
MM
MM
( 7.13 )
那么( 7.10 )及( 7.12 )可写成矩阵形式
54
对第二种边界条件( 7.4 ),直接得端点方程 ,00 fM .nn fM ( 7.14 )
如果令 , nnn fdfd 2,2,0 000
也可以写成( 7.13 )的矩阵形式 .则( 7.10 )和( 7.14 )
55
对于第三种边界条件( 7.5 ),可得
其中 ,
01
0
hhh
nn
,],[],[601
110
hhxxfxxfd
n
nnn
,0 nMM ,211 nnnnn dMMM ( 7.15 )
( 7.10 )和( 7.15 )可以写成矩阵形式
,101
1
hhh
n
nnn
56
.
22
22
1
2
1
1
2
1
11
22
11
n
n
n
n
nn
nn
dd
dd
MM
MM
( 7.16 )
( 7.13 )和( 7.16 )是关于 的三对角方程组, 在力学上解释为细梁在 截面处的弯矩,称为 的矩,
),,1,0( njM j
jM jx
)(xS
( 7.13 )和( 7.16 )的系数矩阵为严格对角占优阵,有唯一解 , 求解方法可见第 5章第 4 节追赶法,将解得结果代入( 7.8)的表达式即可 .
方程组( 7.13 )和( 7.16 )称为三弯矩方程 .
57
设 为定义在 上的函数,在节点 )(xf ]30,7.27[
)3,2,1,0( ixi
.0.3)30()(,1.4)29()(,3.4)28()(,1.4)7.27()(
32
10
fxffxffxffxf
试求三次样条函数 ,使它满足边界条件 )(xS ,0.3)7.27( S
.0.4)30( S
例 5上的值如下:
58
,666.46)],[(6,21,
1310,1 010
00210 fxxfh
d
.4.17]),[(6323
23 xxffh
d
,70000.2],,[6,00002.4],,[6 32122101 xxxfdxxxfd
由此得矩阵形式的方程组( 7.13 )为
,1,21,
133,1,30.0 321210 hhh
解 由( 7.11 )及( 7.12 )
59
.
4000.177000.2
00002.4666.46
4000.1721212
21
13102
133
12
3
2
1
0
MMMM
求解得 .115.9,830.0,395.0,531.23 3210 MMMM
60
代入( 7.8)得
)29(51917.4)29(51917.1)30(96167.3)30(13833.0
),28(96167.3)28(13833.0)29(23417.4)29(06583.0
),7.27(31358.14)7.27(21944.0)28(84322.14)28(07278.13
)(
3
3
3
3
3
3
xxxx
xxxx
xxxx
xS
],28,7.27[x
],29,28[x
],30,29[x
(曲线见图 2-6 )
61
图 2-6
62
给定函数 节点 ,55,1
1)( 2
xx
xf
),10,,1,0(5 kkxk 用三次样条插值求 ).(10 xS
取 )()(10 kk xfxS ),5()5(),10,,1,0( 10 fSk
).5()5(10 fS
直接上机计算可求出 在表 2-6 所列各点的值 . )(10 xS
例 6
63
25376.013971.013793.05.20000.10000.10000.1019837.011366.011312.08.294090.092754.091743.03.010000.010000.010000.00.384340.082051.080000.05.010832.008426.008410.03.364316.062420.060976.08.022620.007606.007547.05.350000.050000.050000.00.120130.006556.006477.08.331650.036133.037175.03.105882.005882.005882.00.423535.029744.030769.05.188808.004842.005131.03.418878.023154.023585.08.157872.104248.004706.05.420000.020000.020000.00.280438.103758.004160.08.424145.016115.015898.03.203846.003846.003846.00.5
)()(11
)()(11
10102
10102
xLxSxxxLxSxx
62表
64
下图是用 Matlab 完成的样条插值(附程序):
65
附:样条插值程序n=11; m=61;x=-5:10/(m-1):5;y=1./(1+x.^2);z=0*x;x0=-5:10/(n-1):5;y0=1./(1+x0.^2);y1=interp1(x0, y0, x, ’spline’);plot(x, z, ’r’, x, y, ’k:’, x, y1, ’r’)gtext(‘Spline’), gtext(‘y=1/(1+x^2)’)title(‘Spline’)注: interp1(x0, y0, x, ’spline’) 为 Matlab 中现成的样条插值程序 .
66
也可以将三种插值结果画在一起:
67
2.7.3 误差界与收敛性 定理 4 设 为满足第一种或第二],,[)( 4 baCxf )(xS
则有估计式),1,,1,0(,max 110
nixxhhh iiiini
,)(max)()(max 4)4()()( k
bxakkk
bxahxfCxSxf
,2,1,0k ( 7.17 )其中 .
83,
241,
3845
210 CCC
种边界条件( 7.3 )或( 7.4 )的三次样条函数,令
68
这个定理不但给出了三次样条插值函数 的误差估计 .
)(xS
还说明了当 时, 及其一阶导数 和0h )(xS )(xS
二阶导数 均分别一致收敛于 , 及
)(xS )(xf )(xf ).(xf
Top Related