4, 2, 2 N e w to n 插值公式
由差商定义
0 0
0
( ) ( ) [,]f x f x f x x
xx
? ?
?
0 0 0( ) ( ) ( ) [,]f x f x x x f x x? ? ? ? ( 1)
0 0 1 01
1
[,] [,] [,,]f x x f x x f x x x
xx
? ?
?
0 0 1 1 0 1[,] [,] ( ) [,,]f x x f x x x x f x x x? ? ? ? ( 2 )
)4(],,,[)(],,[],,[
],,,[
],,[],,[
)3(],,[))((
],[)()()(
1)2(
210221010
210
2
21010
2
1010
1000
xxxxfxxxxxfxxxf
xxxxf
xx
xxxfxxxf
x
xxxfxxxx
xxfxxxfxf
???
?
?
?
???
???
得
,则点为了提高精度,增加节
)式得:式代入(
上有一般的,在节点
)式得:式代入(
n
xxxx
xxxxfxxxxxx
xxxfxxxxxxfxxxfxf
,.,,,,,
],,,[))()((
],,[))((],[)()()(
3)4(
210
210210
10101000
????
??????
插值公式和余项。
上的在节点分别为、其中 N e w t o n}{)()()(
)()(
],.,,,,[))(),,, ()((
],.,,,[)),,, ()((...
],,[))((],[)()()(
0
10110
110110
210101000
n
inn
nn
nnn
nn
xxfxRxN
xRxN
xxxxfxxxxxxxx
xxxfxxxxxx
xxxfxxxxxxfxxxfxf
??
?????
?????
??????
?
??
)(
)()(
)()(
],[)()(
}
],[],[
)(],[){()(
]},,[)(],[){()()(
)(
)()(
)()(
],[)()()(
)()(
2
02
02
020
02020
12
1002
1210020
21012100202
1
01
01
010
100101
00
xf
xx
xfxf
xxxf
xxfxxxf
xx
xxfxxf
xxxxfxxxf
xxxfxxxxfxxxfxN
xf
xx
xfxf
xxxf
xxfxxxfxN
xfxN
n
n
n
?
?
?
???
???
?
?
?????
?????
?
?
?
???
???
?
可以验证:
。的最大值与最小值之间介于其中,
故有差商与导数的关系
即:
因此他们的余式也相等由插值的唯一性知:
类似地可以证明
n
n
n
n
n
n
iin
xxxx
n
f
xxxxf
x
n
f
xxxxfx
xLxN
nixfxN
,.,,,,
)!1
)(
],.,,,,[
)(
)!1
)(
],.,,,,[)(
),()(
),.,,2,1,0()()(
10
)1(
10
)1(
10
?
?
?
?
?
?
?
?
?
?
??
?
?
重点插商
为重点插商。
为使用方便,我们规定
],.,,,,,[
],.,,,,,[],.,,,,,[
],.,,,,,,[],.,,,,,[
10
1010
0
10
0
10
lim
lim
n
nn
h
n
h
n
xxxxf
dx
d
h
xxxxfxxxhxf
xxxxhxfxxxxxf
?
??
?
??
?
?
Newton插值计算
插商表 1
一阶插商 二阶插商 三阶插商 单元号
F(0)
F(1)
F(2)
F(3)
… … … …… ………
F(n)
)( kxf
)( 0xf
)( 1xf
kx
0x
1x
2x
3x
)( 2xf
)( 3xf
],[ 10 xxf
],[ 20 xxf
],[ 30 xxf
],,[ 210 xxxf
],,[ 310 xxxf ],,,[
3210 xxxxf
nx
)( nxf ],[ 0 nxxf ],,[ 10 nxxxf ],,,[
210 nxxxxf
插商表 2
kx
)( kxf
一阶差商 二阶差商 三阶差商 n 阶差商 单 元 号
0x
)( 0xf
F (0)
1x
)( 1xf
01[,]f x x
F (1)
2x
)( 2xf
12[,]f x x
0 1 2[,,]f x x x
F (2)
3x
)( 3xf
23[,]f x x
1 2 3[,,]f x x x
F (3)
M M M M M M M
nx
)( nxf
1[,]nnf x x?
21[,,]n n nf x x x??
3 2 1[,,,]n n n nf x x x x? ? ?
01[,,,]nf x x x???
F (n)
求 Nn(x)
? 插商表 1计算简单,好实现,但数值不稳
定。
? 插商表 2在计算机上稳定性好,但算法复
杂。
? 计算 Nn(x)常采用秦九韶程序(取 n=4)
4 0 0 0 1 0 1 0 1 2( ) ( ) ( ) [,] ( ) ( ) [,,]N x f x x x f x x x x x x f x x x? ? ? ? ? ?
0 1 2 0 1 2 3( ) ( ) ( ) [,,,]x x x x x x f x x x x? ? ? ?
0 1 2 3 0 1 2 3 4( ) ( ) ( ) ( ) [,,,,]x x x x x x x x f x x x x x? ? ? ? ?
0 0 0 1 1 0 1 2( ) ( ) ( [,] ( ) ( [,,]f x x x f x x x x f x x x? ? ? ? ?
2 0 1 2 3( ) [,,,] ) )x x f x x x x??
( 4.2,3)
例题
例 4.2,1 试用 N ew t on 插值公式计算 si n x 在 x = π / 1 2
处的近似值 。
解 先列差商表 如表 4,2, 2 所示, 所以得
2 5 8 5 8 7 9 0 8.0
)))0 2 8 7 9 7 1 0 6.0)
312
(1 3 6 4 8 9 0 9.0)(
412
(
2 0 8 6 0 7 6.0)(
612
(9 5 4 9 2 9 6 5 8.0)(0
12
(0)
12
(
4
?
?????
???????
????
????
N
表 4,2.2 f ( x) =s i n x 关于节点
0,,,,
6 4 3 2
????
的差商表
kx
() kfx
一阶差商
二阶差商
三阶差商
四阶差商
0
0
6
?
1
2
0.954 9 29 6 58
4
?
2
2
0.791 0 89 6 91
- 0.208 607 6
3
?
3
2
0.6070 2442 4 - 0.351 538 65 - 0.136 489 09
2
?
1 0.255 8 72 6 3 - 0.447 100 35 - 0.091 254 70 0.028 7 97 1 06
算法 4,2,1 ( Ne w t o n 插值法)
(1 ) 输入:
,ijxf
(2 )
ijzf?
( i =0, 1, 2,…,n )
(3 ) 计算差商
对 i = 1, 2,…,n 做
1 ) 对 j = i, i +1,…,n 做
1
1
()
()
jj
j
jj
zz
f
xx
?
?
?
?
?;
2 ) 对 j = i, i +1,…,n 做
ijzf?;
(4 ) 计算插值 N ( u )
1 ) 输入插值 u ;
2 ) v = 0 ;
3 ) 对 i = n,n - 1,…,0 做
ii fxuvv ??? )(;
(5 ) 输出 u,v 。
4,2,3 等距节点 N e w t o n 插值公式
? 在实际应用中,常是等距节点情况,即
这里 h>0为常数,称为步长,这时 Newton插值公
式就可以简化,为此我们引入差分概念。
),...,2,1,0( niihax i ???
定义 4.2.2 设函数 f ( x ) 在等距节点
ix a ih??
( i = 0,1,2,…,n )
上值为 ()
iif f x?
,则
(1 ) 称
1i i if f f?? ? ?
( i = 0,1,2,…,n ) 为函数 f ( x ) 在点
0{}
n
ix
上
的一阶向前差分(简称差分);又称 11
1
k k k
i i if f f
??
?? ? ? ? ?
( k =1,2,…,n ; i =0,1,…,n - k ) 为函数 f ( x ) 在点
0{}
n
ix
上的 k 阶向前差
分,这里约定
0{}
n
ix;
(2 ) 称
1???? iii fff
( i = n,n - 1,…,1 ) 为函数 f ( x ) 在点
1i i if f f ?? ? ?
上
的后差分;又称 11
1k k ki i if f f?? ?? ? ? ? ?
( k =1,2,…,n ; i = n - k +1,…,2,1 )
为函数 f ( x ) 在点
0{} nix
上的 k 阶向后差分,同样约定 0
iiff??
。
等距节点 Newton插值公式
? 插商与差分的关系
( 1)用前插表示 N(x)
在等距节点条件下有,
0
01
01
10
1)()(
],[ f
hxx
xfxf
xxf ??
?
?
?
010
0
2
2
01
02
1021
210
!
1
],.,,,,[
!2
1
2
11
]),[]),[
],,[
f
hn
xxxf
f
hh
f
h
f
h
xx
xxfxxf
xxxf
n
nn
??
??
???
?
?
?
?
一般有
),(),()),,, (1(
)!1(
)(
!
)1),,, (1(
.,,
!2
)1(
!1
)()(
,
00
)1(
1
00
2
00
0
0
hxxfnttt
n
h
xR
f
n
nttt
f
tt
f
t
f
thxNxN
N e w t o nthxx
n
n
n
n
nn
????
?
?
?
???
???
?
????
??
??
?
?
??
式插值公式和余式具有形则若令
( 2)用后插表示 N(x)
同样有:
插值公式为:则
到排序为:如果将节点
],,.,,,[)),,, ()((
.,,],,[))((
],[)()()(
,,.,,,,.,,,,
01111
211
1
0110
xxxxfxxxxxx
xxxfxxxx
xxfxxxfxN
N e w t o n
xxxxxx
nnnn
nnnnn
nnnnn
nnn
??
???
?
?
????
????
???
n
n
nnn
n
nn
nn
nnnn
nnn
n
nn
nn
nn
f
hn
xxxxf
f
hh
f
h
f
h
xx
xxfxxf
xxxf
f
hxx
xfxf
xxf
??
??
???
?
?
?
?
??
?
?
?
?
?
?
???
??
?
?
?
!
1
],,.,,,,[
!2
1
2
11
],[],[
],,[
1)()(
],[
011
2
2
1
2
211
21
1
1
1
一般有
),(),()),,, (1(
)!1(
)(
!
)1),,, (1(
.,,
!2
)1(
!1
)()(
)0(
)1(
1
2
nn
n
n
n
n
n
nnnnnn
n
xnhxfnsss
n
h
xR
f
n
nsss
f
ss
f
s
fshxNxN
sshxx
????
?
?
?
???
??
?
?
??????
???
?
?
??
则一般取若令
例题
例 4,2,2 设函数 y = f ( x ) 在各节点的
取值 如 下 表 所示,试计算各阶差分值。
解:列差分表如下
x 0 0,2 0.4 0.6 0.8 1.0
f ( x ) 1 0.818 731 0.670 320 0.548 812 0.44932 9 0.367 879
x f ( x ) ?
2? 3? 4? 5?
0 1
- 0.181 269
0.2 0.818 731 0.032 585
- 0.148 41 1 - 0.005 955
0.4 0.670 320 0,026 903 0.001 077
- 0.121 508 - 0.004 878 - 0.000 191
0.6 0.548 812 0.022 025 0.000886
- 0.099 483 - 0.003 992
0.8 0.449 329 0.018 033
- 0.018 033
1.0 0.367 879
0 0 0 1 9 1.0,0 0 0 8 8 6.0,0 0 3 9 9 2.0
0 1 8 0 3 3.0,0 8 1 4 5 0.0,3 6 7 8 7 9.0
0 0 0 1 9 1.0,0 0 1 0 7 7.0,0 0 5 9 5 5.0
,0 3 2 8 5 8.0,1 8 1 2 6 9.0,1
5
5
5
4
5
3
5
2
55
0
5
0
4
0
3
0
2
00
????????
??????
????????
??????
fff
fff
fff
fff
而:
即:
? Lagrange插值公式所求得 L(x)保证了节
点处的函数值相等,也就是保证了函数
的连续性,但不少实际问题还需要插值
得光滑度,也就是还要求它在节点处的
导数值也相等,导数的阶数越高则光滑
度越高。现代的仿生学就是一个典型的
例子。在设计交通具的外形,就是参照
海豚的标本上已知点及已知点的导数,
做插值在计算机上模拟海豚的外形制成
飞机、汽车等外形。
4,3 H e r m i t e 插值
所谓 H erm i t e 插值是插值函数与被插值函数
不仅在节点
0{}
n
ix
处函数值相等,而且导数, 设函数
f ( x ) 在区间 [ a,b ] 上具有一阶连续导数,如果有不超
过 2 n +1 次多项式
21 ()nHx ?
满足
),..,2,1,0(,)(),()( '' 1212 nxfHxfxH iniin ??? ??
则称
21 ()nHx ?
为 f ( x ) 关于节点
0{}
n
ix
的 H er m i t e 插值
多项式 。
Hermite插值多项式
? 构造 H(x)
??
??
??
????
???
n
j
jjj
n
j
j
iiii
iiii
fxyxxH
nifxfxHxfxH
xH
nixffxfyx
i
i
0
'
0
'''
''
)()()(
),.,,2,1,0()()(),()(
)(
),.,,,2,1,0()(),(
??
令
满足希望
,已知
?
?
?
?
?
?
??
??
?
?
?
?
?
?
ij
ij
x
nix
nix
ij
ij
x
L a g r a n g e
i
ij
i
ij
j
j
0
1
)(4
,.,,2,1,00)(3
,.,,2,1,00)(2
0
1
)(1
'
'
?
?
?
?
)(
)(
)(
)(
插值函数我们设想由
?
?
?
?
?
)(
)(
x
x
j
j
?
?
如何求
0)(,1)(
)(...)(
)(...)()(0:)(
)(...)(
)(...)()(0:)(
'
'
1
'
1
'
1
'
0
''
1
110
??
???
????
???
????
?
?
?
?
jjj
nj
j
njjj
jjjjj
xx
xx
xxxx
xx
xxxx
j
jj
jjj
j
??
??
????
??
????
而
为一次多是项式。次多项式,故是由于
所以令
的二重零点。是则
)(12)(
)()(
).,, ()().,, ()()(
).,, ()().,, ()()(
)()(
)(,.,,,,,.,,,
2
22
1
2
1
2
1
2
0
22
1
2
1
2
1
2
0
1110
xCnxH
xlxC
xxxxxxxxxx
xxxxxxxxxx
xCx
xxxxxx
j
njjjjjjj
njj
j
jnjj
?
?
?????
?????
?
??
??
??
?
?
)()()()( 2 xlBAxxBAxxC jj ???? ?即令
0)()(2
))()(2)(()()(0
)()(1
0)(,1)(
'
'2'
2
'
???
????
????
??
jjj
jjjjjjjj
jjjj
jjj
xlBAxA
xlxlBAxxAlx
BAxxlBAx
xx
j
j
即
得:由
?
??
??
?
?
?
??
??
?
?
?
???
??
)(21
)(2
0)()(2
1
'
'
'
jjj
jj
jjj
j
xlxB
xlA
xlBAxA
BAx
得
由
)())()(21(
)())(21)(2()(
2'
2''
xlxlxx
xlxlxxxlx
jjjj
jjjjjjj
???
?????
故得:
由
同理可得 )()()( 2 xlxxx jjj ???
)()()(
,)(,.,,,,.,,,
1)(,0)(
0)(...)()(...)()(
0)(...)()(...)()(
2
1110
'
1
'
1
'
1
'
1
'
0
'
11110
xlDCxx
xxxxxx
xx
xxxxx
xxxxx
jj
jnjj
jjj
jjj
jjjjjjjj
j
jjjjj
??
??
???????
???????
??
???
???
?
?
??
?????
?????
所以设的二重零点是知道
)()()(
1
1)()()(2)()(
0)(
2
'2'
xlxxx
xD
C
xlxlDCxxClx
DCxx
jjj
j
jjjjjjjj
jjj
j
??
?
?
?
??
?
?
?
?
?
?
????
???
?
?
?
所以
解得:
引理 设 2 n + 1 次多项式 ( ) ( )
jjxx??,
在节点 0{} nix
上满足
1,( ) '
0,( )
'
( ) { ( ) 0
( ) 0,( ) ( 0,1,2,,)
ij
j i i j i j j i
j i j i i j
xx
x x j
? ? ?
? ? ?
?
?? ? ?
? ? ? ? ? ? n
则 '2( ) [ 1 2 ( ) ( ) ] ( )
j j j j jx x x l x l x? ? ? ?
( 4,3,2 )
2( ) ( ) ( )j j jx x x l x? ??
其中,()jlx 为基本插值多项式 (4,1.3 ) 。
证明 因为 ()
j x?
在
jxx?
(i = 0,1,2 … n,ij? ) 上为
二重零点,故可 设
2( ) ( ) ( )jjx A x B l x? ??
由条件 '( ) 1 ( ) 0j j j jxx?? ??,可得
'2 ( )jjA l x??
'1 2 ( )j j jB x l x??
将 A, B 代入上式可得式 ( 4,3,2 ),而式 ( 4,3,3 )
完全类似可证。
定理 4, 3,1 设函数 y = f ( x ) 在区间 [ a,b ] 上的 n +1 个互异节 点
0{}
n
ix
处 给 定 了 函 数 值
() iif x y?
及 一 阶 导 数
''()
iif x f?
( i =0,1,2 … n ),则一定存在唯一的不 超过 2 n +1 次的多项式
21 ()nHx ?
满足
''
2 1 2 1( ) ( )n i i n i iH x y H x f?? ??
( i = 0,1,2 … n )
且有
' ' 2
21
0
( ) { ( ) [ 2 ( ) ] } ( )
n
n i j i i j j j
j
H x y x x f y l x l x
?
?
? ? ? ??
其中
?
??
?
?
?
n
jii ij
i
j
xx
xx
xl
,0
)(
为基本插值多项式。
算法实现
))),,, ()((
...)),,, ()((
)),,, ()(((
1
)(
),),,, ()((
)),,, ()((
1
)(
)(1
121
31
32
'
02010
210
'
0
?
????
????
?????
????
????
n
n
n
n
n
jj
xxxxxx
xxxxxx
xxxxxx
A
xl
xxxxxxA
xxxxxx
A
xl
xl
则其中
例如:
)首先如何实现(
?
?
?
?
?
?
??
?
?
?
?
?????
????
?????
n
i j
n
n
n
n
xx
xxxxxx
xxxxxx
xxxxxx
xxxxxx
A
xl
1 0
02010
102010
03010
030200
'
0
)(
1
)(
1
...
)(
1
)(
1
))),,, ()((...
)),,, ()((
)),,, ()(((
1
)(
所以有
?
?
??
?
?
?
?
??
?
?
?
??
?
?
?
?
n
ji
i jnjjj
jjjj
jj
xxxxxx
xxxxxx
xl
1 01
110
'
)(
1
)(
1
.,,
)(
1
)(
1
.,,
)(
1
)(
1
)(
不是一般性
算法 4.3.1
1 ) 输入插值点 u ;
2) H =0 ;
3) 对 j = 0,1,…,n 做
( 1) 输入,',,
iiix y f
( i =0,1,…,n );
( 2 ) 计算插值 H ( u )
a)
0
( ) ( ) ( )
n
j i j i
i
ij
l u u x x x
?
?
? ? ??;
b)
0
' 1()
n
i ji
ij
ij xxlx
?
?
?
? ?;
c) '2( ) [ 1 2( ) ( ) ] ( )
j j j j ju x u l x l u? ? ? ?;
d) 2( ) ( ) ( )
j j ju u x l u? ??;
e) '( ) ( )
j j j jH H u y u f??? ? ?;
4) 输出 u,H 。
Hermite插值余项
定理 4, 3,2 设函数
( 2 1 )( ) [,]nf x C a b??
,且 f ( x ) 在 ( a,b ) 内
存在 2 n +2 次导数,则满足式 ( 4, 3,4) 插值条件的
21 ()nHx ?
的
余式有如下估计
( 2 2 ) 2
21
1
( ) ( ) ( ) ( ) ( )
( 2 2 ) !
n
n
R x f x H x f x
n
??
?
?
? ? ?
?
其中,
01(,) ( ) ( ) ( ) ( )na b x x x x x x x?? ? ? ? ? ? ? ? ?,
特例( n=1)
21'
1
2'
11
1
''
1113
'''
1
'
31113
3
1
))()()21((
))()()21((
)()()()()(:
)(,)(
)()(,)()(
)(
],[
1
1
313
j
j
jj
j
j
j
j
jj
j
j
jjjjjj
jjj
jjjjjj
jj-
h
xx
fxxy
h
xx
h
xx
fxxy
h
xx
fxfxyxyxxH
fxHfxH
yxfxHyxfxH
xH
He r m i t exx
j
j
jj
j
?
?
??
?
???
?
???
?
??
?
??
?
??
?
??
????
??
????
?
?
?
????则
满足条件:插值多项式
上求二点三次对于区间
)(),(
)())((
!4
1
)()()(
11
22
1
)4(
33
jjjjj
jj
xxxxh
xxxxf
xHxfxR
????
???
??
??
?
?
?
其中,
例题 例 4,3.1 设 ( ) s i nf x x?,试用 ( 0 ) 0f ?,
1
()
62
f
?
?
,
' (0 ) 1f ?
,
' 3()
62
f
?
?
确定二 点三次
H er m i t e 插值多项式
3 ()Hx
并计算
3 ()12H
? 的值。
解,方法一 由 二点三次 H erm i t e 插值公式得,
2
3
0
6
( ) [ [ 1 2 ] 0 ( 0 ) 1 ] [ ]
66
x
x
H x x
?
??
?
?
? ? ? ? ? ?
2
1 3 0
6
[ [ 1 2 ] ( ) ] [ ]
2 6 2
66
x
x
x
?
?
??
?
?
? ? ? ? ? ?
22
2
6 3 6 3 3 6( 1 ) [ ( ) ( ) ]
2 2 6x x x x x
?
? ? ?? ? ? ? ? ?
所以有
3 13( ) 0, 2 5 8 7 6 8 6 1 61 2 4 8 4 9 6H ?? ?? ? ? ?
与真值 si n 0.25 8819 045
12
? ? 相比已有三位有小数字。
方法二:直接用待定系数法求 3 ()Hx 。
由 1( 0 ) 0 ( )
62ff
???,,可有
1
3()y L x x
???
,于是可设
3
3( ) ( ) ( )
6H x x x x A x B
?
?? ? ? ?
由 ''
3 (0 ) (0 ) 1Hf ??
和 ''
3
3( ) ( )
6 6 2Hf
?? ?? 得
3
( ) 1
6
33
( ) ( )
6 6 2
{
B
AB
?
?
??
?
? ? ?
? ? ?
2
3 6 3 6
( 1 ) 0, 1 5 9 8 8 6 9 4
2
63
( 1 ) 0, 0 8 6 0 7 8 0 1
{
A
B
??
??
? ? ? ? ?
? ? ? ?
将 A, B 代入式 3 ()Hx 得
3 3( ) ( ) ( 0, 1 5 9 8 8 6 9 4 0, 0 8 6 0 7 8 0 1 )6H x x x x x??? ? ? ?
由此可解得
于是
2
3 1( ) (0, 1 5 9 8 8 6 9 4 0, 0 8 6 0 7 8 0 1 ) 0, 2 5 8 7 6 8 6 1 61 2 4 1 4 4 1 2H ? ? ?? ? ? ? ?
结果与前法完全一致。
由差商定义
0 0
0
( ) ( ) [,]f x f x f x x
xx
? ?
?
0 0 0( ) ( ) ( ) [,]f x f x x x f x x? ? ? ? ( 1)
0 0 1 01
1
[,] [,] [,,]f x x f x x f x x x
xx
? ?
?
0 0 1 1 0 1[,] [,] ( ) [,,]f x x f x x x x f x x x? ? ? ? ( 2 )
)4(],,,[)(],,[],,[
],,,[
],,[],,[
)3(],,[))((
],[)()()(
1)2(
210221010
210
2
21010
2
1010
1000
xxxxfxxxxxfxxxf
xxxxf
xx
xxxfxxxf
x
xxxfxxxx
xxfxxxfxf
???
?
?
?
???
???
得
,则点为了提高精度,增加节
)式得:式代入(
上有一般的,在节点
)式得:式代入(
n
xxxx
xxxxfxxxxxx
xxxfxxxxxxfxxxfxf
,.,,,,,
],,,[))()((
],,[))((],[)()()(
3)4(
210
210210
10101000
????
??????
插值公式和余项。
上的在节点分别为、其中 N e w t o n}{)()()(
)()(
],.,,,,[))(),,, ()((
],.,,,[)),,, ()((...
],,[))((],[)()()(
0
10110
110110
210101000
n
inn
nn
nnn
nn
xxfxRxN
xRxN
xxxxfxxxxxxxx
xxxfxxxxxx
xxxfxxxxxxfxxxfxf
??
?????
?????
??????
?
??
)(
)()(
)()(
],[)()(
}
],[],[
)(],[){()(
]},,[)(],[){()()(
)(
)()(
)()(
],[)()()(
)()(
2
02
02
020
02020
12
1002
1210020
21012100202
1
01
01
010
100101
00
xf
xx
xfxf
xxxf
xxfxxxf
xx
xxfxxf
xxxxfxxxf
xxxfxxxxfxxxfxN
xf
xx
xfxf
xxxf
xxfxxxfxN
xfxN
n
n
n
?
?
?
???
???
?
?
?????
?????
?
?
?
???
???
?
可以验证:
。的最大值与最小值之间介于其中,
故有差商与导数的关系
即:
因此他们的余式也相等由插值的唯一性知:
类似地可以证明
n
n
n
n
n
n
iin
xxxx
n
f
xxxxf
x
n
f
xxxxfx
xLxN
nixfxN
,.,,,,
)!1
)(
],.,,,,[
)(
)!1
)(
],.,,,,[)(
),()(
),.,,2,1,0()()(
10
)1(
10
)1(
10
?
?
?
?
?
?
?
?
?
?
??
?
?
重点插商
为重点插商。
为使用方便,我们规定
],.,,,,,[
],.,,,,,[],.,,,,,[
],.,,,,,,[],.,,,,,[
10
1010
0
10
0
10
lim
lim
n
nn
h
n
h
n
xxxxf
dx
d
h
xxxxfxxxhxf
xxxxhxfxxxxxf
?
??
?
??
?
?
Newton插值计算
插商表 1
一阶插商 二阶插商 三阶插商 单元号
F(0)
F(1)
F(2)
F(3)
… … … …… ………
F(n)
)( kxf
)( 0xf
)( 1xf
kx
0x
1x
2x
3x
)( 2xf
)( 3xf
],[ 10 xxf
],[ 20 xxf
],[ 30 xxf
],,[ 210 xxxf
],,[ 310 xxxf ],,,[
3210 xxxxf
nx
)( nxf ],[ 0 nxxf ],,[ 10 nxxxf ],,,[
210 nxxxxf
插商表 2
kx
)( kxf
一阶差商 二阶差商 三阶差商 n 阶差商 单 元 号
0x
)( 0xf
F (0)
1x
)( 1xf
01[,]f x x
F (1)
2x
)( 2xf
12[,]f x x
0 1 2[,,]f x x x
F (2)
3x
)( 3xf
23[,]f x x
1 2 3[,,]f x x x
F (3)
M M M M M M M
nx
)( nxf
1[,]nnf x x?
21[,,]n n nf x x x??
3 2 1[,,,]n n n nf x x x x? ? ?
01[,,,]nf x x x???
F (n)
求 Nn(x)
? 插商表 1计算简单,好实现,但数值不稳
定。
? 插商表 2在计算机上稳定性好,但算法复
杂。
? 计算 Nn(x)常采用秦九韶程序(取 n=4)
4 0 0 0 1 0 1 0 1 2( ) ( ) ( ) [,] ( ) ( ) [,,]N x f x x x f x x x x x x f x x x? ? ? ? ? ?
0 1 2 0 1 2 3( ) ( ) ( ) [,,,]x x x x x x f x x x x? ? ? ?
0 1 2 3 0 1 2 3 4( ) ( ) ( ) ( ) [,,,,]x x x x x x x x f x x x x x? ? ? ? ?
0 0 0 1 1 0 1 2( ) ( ) ( [,] ( ) ( [,,]f x x x f x x x x f x x x? ? ? ? ?
2 0 1 2 3( ) [,,,] ) )x x f x x x x??
( 4.2,3)
例题
例 4.2,1 试用 N ew t on 插值公式计算 si n x 在 x = π / 1 2
处的近似值 。
解 先列差商表 如表 4,2, 2 所示, 所以得
2 5 8 5 8 7 9 0 8.0
)))0 2 8 7 9 7 1 0 6.0)
312
(1 3 6 4 8 9 0 9.0)(
412
(
2 0 8 6 0 7 6.0)(
612
(9 5 4 9 2 9 6 5 8.0)(0
12
(0)
12
(
4
?
?????
???????
????
????
N
表 4,2.2 f ( x) =s i n x 关于节点
0,,,,
6 4 3 2
????
的差商表
kx
() kfx
一阶差商
二阶差商
三阶差商
四阶差商
0
0
6
?
1
2
0.954 9 29 6 58
4
?
2
2
0.791 0 89 6 91
- 0.208 607 6
3
?
3
2
0.6070 2442 4 - 0.351 538 65 - 0.136 489 09
2
?
1 0.255 8 72 6 3 - 0.447 100 35 - 0.091 254 70 0.028 7 97 1 06
算法 4,2,1 ( Ne w t o n 插值法)
(1 ) 输入:
,ijxf
(2 )
ijzf?
( i =0, 1, 2,…,n )
(3 ) 计算差商
对 i = 1, 2,…,n 做
1 ) 对 j = i, i +1,…,n 做
1
1
()
()
jj
j
jj
zz
f
xx
?
?
?
?
?;
2 ) 对 j = i, i +1,…,n 做
ijzf?;
(4 ) 计算插值 N ( u )
1 ) 输入插值 u ;
2 ) v = 0 ;
3 ) 对 i = n,n - 1,…,0 做
ii fxuvv ??? )(;
(5 ) 输出 u,v 。
4,2,3 等距节点 N e w t o n 插值公式
? 在实际应用中,常是等距节点情况,即
这里 h>0为常数,称为步长,这时 Newton插值公
式就可以简化,为此我们引入差分概念。
),...,2,1,0( niihax i ???
定义 4.2.2 设函数 f ( x ) 在等距节点
ix a ih??
( i = 0,1,2,…,n )
上值为 ()
iif f x?
,则
(1 ) 称
1i i if f f?? ? ?
( i = 0,1,2,…,n ) 为函数 f ( x ) 在点
0{}
n
ix
上
的一阶向前差分(简称差分);又称 11
1
k k k
i i if f f
??
?? ? ? ? ?
( k =1,2,…,n ; i =0,1,…,n - k ) 为函数 f ( x ) 在点
0{}
n
ix
上的 k 阶向前差
分,这里约定
0{}
n
ix;
(2 ) 称
1???? iii fff
( i = n,n - 1,…,1 ) 为函数 f ( x ) 在点
1i i if f f ?? ? ?
上
的后差分;又称 11
1k k ki i if f f?? ?? ? ? ? ?
( k =1,2,…,n ; i = n - k +1,…,2,1 )
为函数 f ( x ) 在点
0{} nix
上的 k 阶向后差分,同样约定 0
iiff??
。
等距节点 Newton插值公式
? 插商与差分的关系
( 1)用前插表示 N(x)
在等距节点条件下有,
0
01
01
10
1)()(
],[ f
hxx
xfxf
xxf ??
?
?
?
010
0
2
2
01
02
1021
210
!
1
],.,,,,[
!2
1
2
11
]),[]),[
],,[
f
hn
xxxf
f
hh
f
h
f
h
xx
xxfxxf
xxxf
n
nn
??
??
???
?
?
?
?
一般有
),(),()),,, (1(
)!1(
)(
!
)1),,, (1(
.,,
!2
)1(
!1
)()(
,
00
)1(
1
00
2
00
0
0
hxxfnttt
n
h
xR
f
n
nttt
f
tt
f
t
f
thxNxN
N e w t o nthxx
n
n
n
n
nn
????
?
?
?
???
???
?
????
??
??
?
?
??
式插值公式和余式具有形则若令
( 2)用后插表示 N(x)
同样有:
插值公式为:则
到排序为:如果将节点
],,.,,,[)),,, ()((
.,,],,[))((
],[)()()(
,,.,,,,.,,,,
01111
211
1
0110
xxxxfxxxxxx
xxxfxxxx
xxfxxxfxN
N e w t o n
xxxxxx
nnnn
nnnnn
nnnnn
nnn
??
???
?
?
????
????
???
n
n
nnn
n
nn
nn
nnnn
nnn
n
nn
nn
nn
f
hn
xxxxf
f
hh
f
h
f
h
xx
xxfxxf
xxxf
f
hxx
xfxf
xxf
??
??
???
?
?
?
?
??
?
?
?
?
?
?
???
??
?
?
?
!
1
],,.,,,,[
!2
1
2
11
],[],[
],,[
1)()(
],[
011
2
2
1
2
211
21
1
1
1
一般有
),(),()),,, (1(
)!1(
)(
!
)1),,, (1(
.,,
!2
)1(
!1
)()(
)0(
)1(
1
2
nn
n
n
n
n
n
nnnnnn
n
xnhxfnsss
n
h
xR
f
n
nsss
f
ss
f
s
fshxNxN
sshxx
????
?
?
?
???
??
?
?
??????
???
?
?
??
则一般取若令
例题
例 4,2,2 设函数 y = f ( x ) 在各节点的
取值 如 下 表 所示,试计算各阶差分值。
解:列差分表如下
x 0 0,2 0.4 0.6 0.8 1.0
f ( x ) 1 0.818 731 0.670 320 0.548 812 0.44932 9 0.367 879
x f ( x ) ?
2? 3? 4? 5?
0 1
- 0.181 269
0.2 0.818 731 0.032 585
- 0.148 41 1 - 0.005 955
0.4 0.670 320 0,026 903 0.001 077
- 0.121 508 - 0.004 878 - 0.000 191
0.6 0.548 812 0.022 025 0.000886
- 0.099 483 - 0.003 992
0.8 0.449 329 0.018 033
- 0.018 033
1.0 0.367 879
0 0 0 1 9 1.0,0 0 0 8 8 6.0,0 0 3 9 9 2.0
0 1 8 0 3 3.0,0 8 1 4 5 0.0,3 6 7 8 7 9.0
0 0 0 1 9 1.0,0 0 1 0 7 7.0,0 0 5 9 5 5.0
,0 3 2 8 5 8.0,1 8 1 2 6 9.0,1
5
5
5
4
5
3
5
2
55
0
5
0
4
0
3
0
2
00
????????
??????
????????
??????
fff
fff
fff
fff
而:
即:
? Lagrange插值公式所求得 L(x)保证了节
点处的函数值相等,也就是保证了函数
的连续性,但不少实际问题还需要插值
得光滑度,也就是还要求它在节点处的
导数值也相等,导数的阶数越高则光滑
度越高。现代的仿生学就是一个典型的
例子。在设计交通具的外形,就是参照
海豚的标本上已知点及已知点的导数,
做插值在计算机上模拟海豚的外形制成
飞机、汽车等外形。
4,3 H e r m i t e 插值
所谓 H erm i t e 插值是插值函数与被插值函数
不仅在节点
0{}
n
ix
处函数值相等,而且导数, 设函数
f ( x ) 在区间 [ a,b ] 上具有一阶连续导数,如果有不超
过 2 n +1 次多项式
21 ()nHx ?
满足
),..,2,1,0(,)(),()( '' 1212 nxfHxfxH iniin ??? ??
则称
21 ()nHx ?
为 f ( x ) 关于节点
0{}
n
ix
的 H er m i t e 插值
多项式 。
Hermite插值多项式
? 构造 H(x)
??
??
??
????
???
n
j
jjj
n
j
j
iiii
iiii
fxyxxH
nifxfxHxfxH
xH
nixffxfyx
i
i
0
'
0
'''
''
)()()(
),.,,2,1,0()()(),()(
)(
),.,,,2,1,0()(),(
??
令
满足希望
,已知
?
?
?
?
?
?
??
??
?
?
?
?
?
?
ij
ij
x
nix
nix
ij
ij
x
L a g r a n g e
i
ij
i
ij
j
j
0
1
)(4
,.,,2,1,00)(3
,.,,2,1,00)(2
0
1
)(1
'
'
?
?
?
?
)(
)(
)(
)(
插值函数我们设想由
?
?
?
?
?
)(
)(
x
x
j
j
?
?
如何求
0)(,1)(
)(...)(
)(...)()(0:)(
)(...)(
)(...)()(0:)(
'
'
1
'
1
'
1
'
0
''
1
110
??
???
????
???
????
?
?
?
?
jjj
nj
j
njjj
jjjjj
xx
xx
xxxx
xx
xxxx
j
jj
jjj
j
??
??
????
??
????
而
为一次多是项式。次多项式,故是由于
所以令
的二重零点。是则
)(12)(
)()(
).,, ()().,, ()()(
).,, ()().,, ()()(
)()(
)(,.,,,,,.,,,
2
22
1
2
1
2
1
2
0
22
1
2
1
2
1
2
0
1110
xCnxH
xlxC
xxxxxxxxxx
xxxxxxxxxx
xCx
xxxxxx
j
njjjjjjj
njj
j
jnjj
?
?
?????
?????
?
??
??
??
?
?
)()()()( 2 xlBAxxBAxxC jj ???? ?即令
0)()(2
))()(2)(()()(0
)()(1
0)(,1)(
'
'2'
2
'
???
????
????
??
jjj
jjjjjjjj
jjjj
jjj
xlBAxA
xlxlBAxxAlx
BAxxlBAx
xx
j
j
即
得:由
?
??
??
?
?
?
??
??
?
?
?
???
??
)(21
)(2
0)()(2
1
'
'
'
jjj
jj
jjj
j
xlxB
xlA
xlBAxA
BAx
得
由
)())()(21(
)())(21)(2()(
2'
2''
xlxlxx
xlxlxxxlx
jjjj
jjjjjjj
???
?????
故得:
由
同理可得 )()()( 2 xlxxx jjj ???
)()()(
,)(,.,,,,.,,,
1)(,0)(
0)(...)()(...)()(
0)(...)()(...)()(
2
1110
'
1
'
1
'
1
'
1
'
0
'
11110
xlDCxx
xxxxxx
xx
xxxxx
xxxxx
jj
jnjj
jjj
jjj
jjjjjjjj
j
jjjjj
??
??
???????
???????
??
???
???
?
?
??
?????
?????
所以设的二重零点是知道
)()()(
1
1)()()(2)()(
0)(
2
'2'
xlxxx
xD
C
xlxlDCxxClx
DCxx
jjj
j
jjjjjjjj
jjj
j
??
?
?
?
??
?
?
?
?
?
?
????
???
?
?
?
所以
解得:
引理 设 2 n + 1 次多项式 ( ) ( )
jjxx??,
在节点 0{} nix
上满足
1,( ) '
0,( )
'
( ) { ( ) 0
( ) 0,( ) ( 0,1,2,,)
ij
j i i j i j j i
j i j i i j
xx
x x j
? ? ?
? ? ?
?
?? ? ?
? ? ? ? ? ? n
则 '2( ) [ 1 2 ( ) ( ) ] ( )
j j j j jx x x l x l x? ? ? ?
( 4,3,2 )
2( ) ( ) ( )j j jx x x l x? ??
其中,()jlx 为基本插值多项式 (4,1.3 ) 。
证明 因为 ()
j x?
在
jxx?
(i = 0,1,2 … n,ij? ) 上为
二重零点,故可 设
2( ) ( ) ( )jjx A x B l x? ??
由条件 '( ) 1 ( ) 0j j j jxx?? ??,可得
'2 ( )jjA l x??
'1 2 ( )j j jB x l x??
将 A, B 代入上式可得式 ( 4,3,2 ),而式 ( 4,3,3 )
完全类似可证。
定理 4, 3,1 设函数 y = f ( x ) 在区间 [ a,b ] 上的 n +1 个互异节 点
0{}
n
ix
处 给 定 了 函 数 值
() iif x y?
及 一 阶 导 数
''()
iif x f?
( i =0,1,2 … n ),则一定存在唯一的不 超过 2 n +1 次的多项式
21 ()nHx ?
满足
''
2 1 2 1( ) ( )n i i n i iH x y H x f?? ??
( i = 0,1,2 … n )
且有
' ' 2
21
0
( ) { ( ) [ 2 ( ) ] } ( )
n
n i j i i j j j
j
H x y x x f y l x l x
?
?
? ? ? ??
其中
?
??
?
?
?
n
jii ij
i
j
xx
xx
xl
,0
)(
为基本插值多项式。
算法实现
))),,, ()((
...)),,, ()((
)),,, ()(((
1
)(
),),,, ()((
)),,, ()((
1
)(
)(1
121
31
32
'
02010
210
'
0
?
????
????
?????
????
????
n
n
n
n
n
jj
xxxxxx
xxxxxx
xxxxxx
A
xl
xxxxxxA
xxxxxx
A
xl
xl
则其中
例如:
)首先如何实现(
?
?
?
?
?
?
??
?
?
?
?
?????
????
?????
n
i j
n
n
n
n
xx
xxxxxx
xxxxxx
xxxxxx
xxxxxx
A
xl
1 0
02010
102010
03010
030200
'
0
)(
1
)(
1
...
)(
1
)(
1
))),,, ()((...
)),,, ()((
)),,, ()(((
1
)(
所以有
?
?
??
?
?
?
?
??
?
?
?
??
?
?
?
?
n
ji
i jnjjj
jjjj
jj
xxxxxx
xxxxxx
xl
1 01
110
'
)(
1
)(
1
.,,
)(
1
)(
1
.,,
)(
1
)(
1
)(
不是一般性
算法 4.3.1
1 ) 输入插值点 u ;
2) H =0 ;
3) 对 j = 0,1,…,n 做
( 1) 输入,',,
iiix y f
( i =0,1,…,n );
( 2 ) 计算插值 H ( u )
a)
0
( ) ( ) ( )
n
j i j i
i
ij
l u u x x x
?
?
? ? ??;
b)
0
' 1()
n
i ji
ij
ij xxlx
?
?
?
? ?;
c) '2( ) [ 1 2( ) ( ) ] ( )
j j j j ju x u l x l u? ? ? ?;
d) 2( ) ( ) ( )
j j ju u x l u? ??;
e) '( ) ( )
j j j jH H u y u f??? ? ?;
4) 输出 u,H 。
Hermite插值余项
定理 4, 3,2 设函数
( 2 1 )( ) [,]nf x C a b??
,且 f ( x ) 在 ( a,b ) 内
存在 2 n +2 次导数,则满足式 ( 4, 3,4) 插值条件的
21 ()nHx ?
的
余式有如下估计
( 2 2 ) 2
21
1
( ) ( ) ( ) ( ) ( )
( 2 2 ) !
n
n
R x f x H x f x
n
??
?
?
? ? ?
?
其中,
01(,) ( ) ( ) ( ) ( )na b x x x x x x x?? ? ? ? ? ? ? ? ?,
特例( n=1)
21'
1
2'
11
1
''
1113
'''
1
'
31113
3
1
))()()21((
))()()21((
)()()()()(:
)(,)(
)()(,)()(
)(
],[
1
1
313
j
j
jj
j
j
j
j
jj
j
j
jjjjjj
jjj
jjjjjj
jj-
h
xx
fxxy
h
xx
h
xx
fxxy
h
xx
fxfxyxyxxH
fxHfxH
yxfxHyxfxH
xH
He r m i t exx
j
j
jj
j
?
?
??
?
???
?
???
?
??
?
??
?
??
?
??
????
??
????
?
?
?
????则
满足条件:插值多项式
上求二点三次对于区间
)(),(
)())((
!4
1
)()()(
11
22
1
)4(
33
jjjjj
jj
xxxxh
xxxxf
xHxfxR
????
???
??
??
?
?
?
其中,
例题 例 4,3.1 设 ( ) s i nf x x?,试用 ( 0 ) 0f ?,
1
()
62
f
?
?
,
' (0 ) 1f ?
,
' 3()
62
f
?
?
确定二 点三次
H er m i t e 插值多项式
3 ()Hx
并计算
3 ()12H
? 的值。
解,方法一 由 二点三次 H erm i t e 插值公式得,
2
3
0
6
( ) [ [ 1 2 ] 0 ( 0 ) 1 ] [ ]
66
x
x
H x x
?
??
?
?
? ? ? ? ? ?
2
1 3 0
6
[ [ 1 2 ] ( ) ] [ ]
2 6 2
66
x
x
x
?
?
??
?
?
? ? ? ? ? ?
22
2
6 3 6 3 3 6( 1 ) [ ( ) ( ) ]
2 2 6x x x x x
?
? ? ?? ? ? ? ? ?
所以有
3 13( ) 0, 2 5 8 7 6 8 6 1 61 2 4 8 4 9 6H ?? ?? ? ? ?
与真值 si n 0.25 8819 045
12
? ? 相比已有三位有小数字。
方法二:直接用待定系数法求 3 ()Hx 。
由 1( 0 ) 0 ( )
62ff
???,,可有
1
3()y L x x
???
,于是可设
3
3( ) ( ) ( )
6H x x x x A x B
?
?? ? ? ?
由 ''
3 (0 ) (0 ) 1Hf ??
和 ''
3
3( ) ( )
6 6 2Hf
?? ?? 得
3
( ) 1
6
33
( ) ( )
6 6 2
{
B
AB
?
?
??
?
? ? ?
? ? ?
2
3 6 3 6
( 1 ) 0, 1 5 9 8 8 6 9 4
2
63
( 1 ) 0, 0 8 6 0 7 8 0 1
{
A
B
??
??
? ? ? ? ?
? ? ? ?
将 A, B 代入式 3 ()Hx 得
3 3( ) ( ) ( 0, 1 5 9 8 8 6 9 4 0, 0 8 6 0 7 8 0 1 )6H x x x x x??? ? ? ?
由此可解得
于是
2
3 1( ) (0, 1 5 9 8 8 6 9 4 0, 0 8 6 0 7 8 0 1 ) 0, 2 5 8 7 6 8 6 1 61 2 4 1 4 4 1 2H ? ? ?? ? ? ? ?
结果与前法完全一致。