第 2 章 插 值 法

Post on 15-Jan-2016

124 views 9 download

description

第 2 章 插 值 法. 第 1 节 引言 第 2 节 拉格朗日插值 第 3 节 均差与牛顿插值多项式 第 4 节 埃尔米特插值 第 5 节 分段低次插值 第 6 节 三次样条插值. ( 1.1 ). 2.1 引 言. 2.1.1 插值问题的提出. 设函数 在区间 上有定义,且已知在点 上的值 ,若存在一简 单函数 ,使. - PowerPoint PPT Presentation

Transcript of 第 2 章 插 值 法

第 2 章 插 值 法

1

第1节 引言

第2节 拉格朗日插值

第3节 均差与牛顿插值多项式

第4节 埃尔米特插值

第5节 分段低次插值

第6节 三次样条插值

2.1 引 言

2

),,,1,0()( niyxP ii ( 1.1 )

设函数 在区间 上有定义,且已知在点 上的值 ,若存在一简单函数 ,使

)(xfy ],[ ba

bxxxa n 10 nyyy ,,, 10

)(xP

成立,就称 为 的插值函数,点 称为插值节点,包含节点的区间 称为插值区间,求插值函数 的方法称为插值法 .

)(xP )(xfnxxx ,,, 10

],[ ba

)(xP

2.1.1 插值问题的提出

3

nnxaxaaxP 10)( ( 1.2 )

若 是次数不超过 的代数多项式,)(xP n

其中 为实数,就称 为插值多项式,相应的插值法称为多项式插值 .

ia )(xP

本章只讨论多项式插值与分段插值 .

若 为分段的多项式,就称为分段插值 .)(xP

若 为三角多项式 ,就称为三角插值 .)(xP

4

从几何上看,插值法就是确定曲线 ,使其通过给定的 个点 ,并用它近似已知曲线 .

)(xPy

1n niyx ii ,,1,0),,(

)(xfy 见图 .

x0 x1 x2 x3 x4x

P(x) f(x)

5

1n

由此可以得到关于系数 的 元线性方程组

上的函数值 , 求次数不超过 的多项式 ,使

2.1.2 多项式插值

),,,1,0()( niyxP ii ( 1.3 )

设在区间 上给定 个点

),,1,0)(( nixfy ii

],[ ba

bxxxa n 10

naaa ,,, 10 1n

n

)(xP

6

,

,

,

10

11110

00010

nnnnn

nn

nn

yxaxaa

yxaxaa

yxaxaa

( 1.4 )

此方程组的系数矩阵为

,

1

1

1

11

00

nnn

n

n

xx

xx

xx

A

称为范德蒙德( Vandermonde )矩阵 , 由于 互异,故

),,1,0( nixi

( 1.5 )

7

因此线性方程组( 1.4 )的解 存在且唯一 .

.0)(det1

,

n

jioji

ji xxA

naaa ,,, 10

定理 1 满足条件( 1.3 )的插值多项式 是存在唯一的 .

)(xP

2.2 拉格朗日插值

2.2.1 线性插值与抛物插值

对给定的插值点,可以用多种不同的方法求得形如(1.2) 的插值多项式 .

先讨论 的简单情形 .1n

问题: 给定区间 及端点函数值 ,],[ 1kk xx )(),( 11 kkkk xfyxfy

要求线性插值多项式 ,)(1 xL

.)(,)( 1111 kkkk yxLyxL

使它满足

nnxaxaaxP 10)( ( 1.

2 )

9

其几何意义就是通过两点 的直线 . ),(),,( 11 kkkk yxyx

图 2-2

如图 2-2.

10

由 的几何意义可得到表达式)(1 xL

)()(1

11 k

kk

kkk xx

xx

yyyxL

(点斜式),

111

11 )(

kkk

kk

kk

k yxx

xxy

xx

xxxL (两点式),

( 2.1 )

由两点式看出, 是由两个线性函数)(1 xL

,)(1

1

kk

kk xx

xxxl ,)(

11

kk

kk xx

xxxl

( 2.2 )

的线性组合得到,其系数分别为 及 ,即ky 1ky

)()()( 111 xlyxlyxL kkkk ( 2.3 )

11

称 及 为线性插值基函数,)(xlk )(1 xlk

,1)( kk xl ;0)( 1 kk xl

,0)(1 kk xl ,1)( 11 kk xl

显然, 及 也是线性插值多项式,在节点 及)(xlk )(1 xlk kx 1kx

上满足条件

图形见图 2-3.

12

图 2-3

13

下面讨论 的情形 .2n

假定插值节点为 , , ,要求二次插值多项式1kxkx1kx

),(2 xL

)1,,1()(2 kkkjyxL jj

几何上 是通过三点 的抛物线 .)(2 xL ),(),,(),,( 1111 kkkkkk yxyxyx

可以用基函数的方法求 的表达式,此时基函数 是二次函数,且在节点上满足条件

)(2 xL

);1,(,0)(,1)( 111 kkjxlxl jkkk

);1,1(,0)(,1)( kkjxlxl jkkk ( 2.4 )).,1(,0)(,1)( 111 kkjxlxl jkkk

使它满足

),(1 xlk ),(xlk )(1 xlk

14

接下来讨论满足( 2.4 )的插值基函数的求法,

以求 为例,)(1 xlk 由插值条件,它应有两个零点 及 ,kx 1kx

),)(()( 11 kkk xxxxAxl

可由插值条件 定出1)( 11 kk xl其中 为待定系数,A

))((

1

111

kkkk xxxxA

于是

.))((

))(()(

111

11

kkkk

kkk xxxx

xxxxxl

可表示为

);1,(,0)(,1)( 111 kkjxlxl jkkk

);1,1(,0)(,1)( kkjxlxl jkkk ( 2.4 )).,1(,0)(,1)( 111 kkjxlxl jkkk

);1,(,0)(,1)( 111 kkjxlxl jkkk

15

同理

.))((

))(()(

11

11

kkkk

kkk xxxx

xxxxxl

.))((

))(()(

111

11

kkkk

kkk xxxx

xxxxxl

二次插值基函数 , , 在区间 上的图形见图 2-4.

)(1 xlk )(xlk )(1 xlk ],[ 11 kk xx

16

图 2-4

17

利用 , , ,)(1 xlk )(xlk )(1 xlk

)()()()( 11112 xlyxlyxlyxL kkkkkk ( 2.5 )

显然,

将 , , 代入 (2.5) ,)(1 xlk )(xlk )(1 xlk

))((

))(()(

111

112

kkkk

kkk xxxx

xxxxyxL

))((

))((

11

11

kkkk

kkk xxxx

xxxxy

.))((

))((

111

11

kkkk

kkk xxxx

xxxxy

立即得到二次插值多项式

).1,,1(,)(2 kkkjyxL jj它满足条件

2.2.2 拉格朗日插值多项式

18

将前面的方法推广到一般情形,讨论如何构造通过 个节点 的 次插值多项式 .1n nxxx 10 n )(xLn

).,,1,0()( njyxL jjn ( 2.6 )

根据插值的定义 应满足)(xLn

先定义 次插值基函数 .n 为构造 ,)(xLn

19

定义 1 若 次多项式 在 个节点 上满足条件

),,1,0,(.,0

;,1)( nkj

jk

jkxl kj ( 2.7 )

就称这 个 次多项式 为节点 1n n )(,),(),( 10 xlxlxl n

上的 次插值基函数 .nxxx ,,, 10 n

n ),,1,0()( njxl j 1n

nxxx 10

20

显然它满足条件( 2.7) .

于是,满足条件( 2.6 )的插值多项式 可表示为 )(xLn

.)()(0

n

kkkn xlyxL ( 2.9 )

)())(()(

)())(()()(

110

110

nkkkkkk

nkkk xxxxxxxx

xxxxxxxxxl

).,,1,0( nk ( 2.8 )

与前面的推导类似, 次插值基函数为 n

),,1,0,(.,0

;,1)( nkj

jk

jkxl kj ( 2.7 )

).,,1,0()( njyxL jjn ( 2.6 )

21

由 的定义,知)(xlk

).,,1,0()()(0

njyxlyxL j

n

kjkkjn

形如( 2.9 )的插值多项式 称为拉格朗日插值多项式,)(xLn

而 (2.3)与 (2.5) 是 和 的特殊情形 .1n 2n

容易求得

),())(()()( 1101 nkkkkkkkn xxxxxxxxx

),())(()( 101 nn xxxxxxx ( 2.10 )

若引入记号 .)()(

0

n

kkkn xlyxL ( 2.9 )

)()()( 111 xlyxlyxL kkkk ( 2.3 )

)()()()( 11112 xlyxlyxlyxL kkkkkk ( 2.5 )

22

于是公式( 2.9 )可改写成

.)()(

)()(

0 1

1

n

k knk

nkn xxx

xyxL

( 2.11 )

注意 : 次插值多项式 通常是次数为 的多项式,n )(xLn n

特殊情况下次数可能小于 .n .)()(0

n

kkkn xlyxL ( 2.9 )

例如通过三点 的二次插值多项式 ,如果三点共线,则 就是一条直线,而不是抛物线,这时 是一次多项式 .

),(),,(),,( 221100 yxyxyx

)(2 xL )(2 xLy

)(2 xL

2.2.3 插值余项与误差估计

23

定理 2 设 在 上连续, 在 内存在,节点 是满足条件 (2.6)

的插值多项式,则对任何 ,插值余项

)()( xf n ],[ ba )()1( xf n ),( ba

)(,10 xLbxxxa nn

],[ bax

这里 且依赖于 , 是( 2.10 )所定义的 .),( ba x )(1 xn

若在 上用 近似 , ],[ ba )(xLn )(xf

),()()( xLxfxR nn

则其截断误差为也称为插值多项式的余项 .

),())(()( 101 nn xxxxxxx ( 2.10 )

)()!1(

)()()()( 1

1(

xn

fxLxfxR n

n

nn

( 2.14 )).,,1,0()( njyxL jjn ( 2.6 )

24

证明 由给定条件知 在节点 上为零,即 ,于是

)(xRn ),,1,0( nkxk

),,1,0(0)( nkxR kn

其中 是与 有关的待定函数 . )(xK x

)()()())()(()( 110 xxKxxxxxxxKxR nnn ( 2.13 )

现把 看成 上的一个固定点,作函数 x ],[ ba

),())()(()()()( 10 nn xtxtxtxKtLtft

根据 的假设可知 在 上连续, 在 内存在 .

f )()( tn ],[ ba )()1( tn ),( ba

25

根据罗尔定理, 在 的两个零点间至少有一个零点,故 在 内至少有 个零点 .

)(t )(t

)(t ],[ ba 1n

对 再应用罗尔定理,可知 在 内至少有 个零点 .

)(t )(t ],[ ba

n

依此类推, 在 内至少有一个零点,记为 ,使

)()1( tn ),( ba

),( ba

,0)()!1()()( )1()1( xKnf nn

根据插值条件及余项定义,可知 在点 及)(t nxxx ,,, 10

处均为零,故 在 上有 个零点,)(t ],[ ba 2nx

26

于是

将它代入( 2.13 ),

余项表达式只有在 的高阶导数存在时才能应用 . )(xf

但 在 内的具体位置通常不可能给出, ),( ba

如果可以求出 那么插值多项式 逼近 的截断误差限是

,)(max 1)1(

n

n

bxaMxf )(xLn

)(xf

.)()!1(

)( 11 x

n

MxR n

nn

( 2.14 )

),,(,)!1(

)()(

)1(

ban

fxK

n

x且依赖于

)()()())()(()( 110 xxKxxxxxxxKxR nnn ( 2.13 )

就得到余项表达式( 2.12) .

27

当 时,线性插值余项为 1n

),)()((2

1)()(

2

1)( 1021 xxxxfxfxR

],[ 10 xx ( 2.15 )

当 时,抛物插值余项为 2n

),)()()((6

1)( 2102 xxxxxxfxR

],[ 20 xx ( 2.16 )

28

利用余项表达式( 2.12 ),当 时,由于 , 于是有

)()( nkxxf k

0)()1( xf n

,0)()(0

xlxxxRn

ii

ki

kn

由此得

.,,1,0,)(0

nkxxlx kn

ii

ki

( 2.17 )

特别当 时,有0k

.1)(0

xln

ii ( 2.18 )

29

利用余项表达式( 2.12 )还可知,若被插函数 由于 ,故 ,即它的插值多项式

nHxf )(

0)()1( xf n 0)()()( xLxfxR nn

).()( xfxLn

30

例 1 证明 ,其中 是关于点 的插值基函数 .

0)()(5

0

2

xlxxi

ii )(xli

510 ,,, xxx

证明 利用公式( 2.17 )可得5 5

2 2 2

0 0

( ) ( ) ( 2 ) ( )i i i i ii i

x x l x x x x x l x

5 5 5

2 2

0 0 0

( ) 2 ( ) ( )i i i i ii i i

x l x x x l x x l x

2 2 22 0.x x x

31

,314567.0,32.0 00 yx

.352274.0,36.0 22 yx

用线性插值计算,取 由公式( 2.1 )

,333487.034.0sin,314567.032.0sin

,352274.036.0sin

,333487.0,34.0 11 yx

例 2 已知

的值并估计截断误差 .

3367.0sin用线性插值及抛物插值计算

解 由题意 , 取

,34.0,32.0 10 xx

)()(1

11 k

kk

kkk xx

xx

yyyxL

(点斜式),

32

)3367.0(3367.0sin 1L

0167.002.0

01892.0314567.0

)3367.0( 001

01 xxx

yyy

.330365.0

33

由( 2.15) , 其截断误差

,))((2

)( 102

1 xxxxM

xR

其中

)(max10

2 xfMxxx

于是

)3367.0(3367.0sin)3367.0( 11 LR

0033.00167.03335.02

1

xxxx

sinmax10

,3335.0sin 1 x

.1092.0 5

),)()((2

1)()(

2

1)( 1021 xxxxfxfxR

34

用抛物插值计算,由公式( 2.5 )得

))((

))((

))((

))((3367.0sin

2101

201

2010

210 xxxx

xxxxy

xxxx

xxxxy

))((

))((

1202

102 xxxx

xxxxy

)3367.0(2L

333487.00008.0

107689.0314567.0

4

0008.0

105511.0352274.0

0004.0

1089.3 44

330374.0

)()()()( 11112 xlyxlyxlyxL kkkkkk ( 2.5 )

35

由( 2.14) ,

,))()((6

)( 2103

2 xxxxxxM

xR

其中

)(max20

3 xfMxxx

于是

这个结果与 6 位有效数字的正弦函数表完全一样,

0cos x ,9493.0

这说明查表时用二次插值精度已相当高了 .

截断误差限

36

)3367.0(3367.0sin)3367.0( 22 LR

0233.0033.00167.09493.06

1

.100132.2 6

37

例 2 设 ,试证],[2 baCf

,)(8

1)(

)()()([)(max 2

2Mabaxab

afbfafxf

bxa

.)(max2 xfMbxa

其中

证明 通过两点 及 的线性插值为))(,( afa ))(,( bfb

),()()(

)()(1 axab

afbfafxL

于是 ( ) ( )max ( ) [ ( ) ( )]a x b

f b f af x f a x a

b a

1

( )max ( ) ( ) max ( )( )

2a x b a x b

ff x L x x a x b

222

1max ( )( ) ( ) .

2 8a x b

Mx a x b b a M

38

39

Matlab 实现

40

例 对正弦曲线上的数据点 (0, 0), (pi/2, 1), (pi, 0), (3pi/2, -1) 进行多项式插值

41

42

43

44

Polyval 还可以计算多项式在向量上的值

45

46

47

也可以使用内部命令 polyfit 进行插值

48

一维插值函数 interp1()y1=interp1(x,y,x1, 方法 )其中 x,y 是插值数据, x1 为用户指定的一组新的插值

点的横坐标,可以是标量、向量或矩阵。方法:默认为‘ linear’(线性插值,在两个样本点间简单

的采用直线拟合)‘ nearest’(最近点等值方式)‘ cubic’(三次 Hermite 插值,新版本改

为‘ pchip’)‘spline’ (三次分段样条插值,建议使用 , 端点处的信息系统自动选取)

49

【例】已知的数据点来自函数

根据生成的数据进行插值处理,得出较平滑的曲线。根据给出的函数可以直接生成数据,并绘图

50

51

52

53

54

2.3 均差与牛顿插值公式

2.3.1 插值多项式的逐次生成

利用插值基函数很容易得到拉格朗日插值多项式,公式结构紧凑,在理论分析中甚为方便,但当插值节点增减时全部插值基函数 均要随之变化,整个公式也将发生变化,甚为不便 .为了计算方便可重新设计一种逐次生成插值多项式的方法 .

),,1,0)(( nkxlk

56

当 时,记线性插值多项式为 ,插值条件为1n )(1 xP

),()(),()( 111001 xfxPxfxP 由点斜式

),()()(

)()( 01 xxab

afbfafxP

将 看成是零次插值 的修正,即)(1 xP )()( 01 xfxP

),()()( 0101 xxaxPxP

其中 是函数 的差商 .01

011

)()(

xx

xfxfa

)(xf

对于三个节点的二次插值 ,插值条件为)(2 xP

),()(),()(),()( 222112002 xfxPxfxPxfxP

57

).)(()()( 10202 xxxxaxPxP

插值多项式

显然),()(),()( 112002 xfxPxfxP

由 得 ),()( 222 xfxP

.

)()()()(

))((

)()(

12

01

01

02

02

1202

21222 xx

xxxfxf

xxxfxf

xxxx

xPxPa

系数 是函数 的“差商的差商” .2a f

58

一般情况,已知 在插值点 上的值为 ,要求 次插值多项式 满足条件

f ),,1,0( nixi

),,1,0)(( nixf i n )(xPn

,,,1,0),()( nixfxP iin

则 可表示为)(xPn

),()()()( 10010 nnn xxxxaxxaaxP

其中 为待定系数,可由插值条件确定 .naaa ,,, 10

这里的 是由基函数 逐次递推得到的,这一点与拉格朗日插值不同 .

)(xPn )}()(,),(,1{ 100 nxxxxxx

( 3.1 )

( 3.2 )

59

称 为函数 关

于点 的一阶均差 .

0

00

)()(],[

xx

xfxfxxf

k

kk

)(xf

kxx ,0

定义 2

2.3.2 均差及其性质

1

10010

],[],[],,[

xx

xxfxxfxxxf

k

kk

称为 的二阶均差 .)(xf

60

1

1102010

],,[],,,[],,[

kk

kkkk xx

xxxfxxxfxxxf

( 3.3 )

一般地,称

为 的 阶均差k)(xf (均差也称为差商) .

61

均差有如下的基本性质:

.)())(()(

)(

],,,[

0 110

10

k

j kjjjjjj

j

k

xxxxxxxx

xf

xxxf

( 3.4 )

这个性质可用归纳法证明 .

( 1 ) 阶均差可表为函数值 的线性组合,

)(,),(),( 10 kxfxfxf k

这性质也表明均差与节点的排列次序无关,称为均差的对称性 .

62

( 3 ) 若 在 上存在 阶导数,且节点)(xf ],[ ba n

],,[,,, 10 baxxx n

].,[,!

)(],,[

)(

10 ban

fxxxf

n

k ( 3.5 )

这公式可直接用罗尔定理证明 .

( 2 ) 由性质( 1 )及( 3.3 )可得

],,,[],,,,[],,[ 0120110 xxxfxxxxfxxxf kkk

则 阶均差与导数关系如下:n

.],,[],,[

],,[0

10110 xx

xxfxxfxxxf

k

kkk

( 3.3 )’

1

1102010

],,[],,,[],,[

kk

kkkk xx

xxxfxxxfxxxf

( 3.3 )

,,, 0][!)()( 0)()( nnn xxfnfq

.!

)(][

)(

0 n

fxxf

n

n

,,所以

,使记为个零点内至少有在理,可知零点;反复应用罗尔定

个内至少有在个零点,故的两个零点间至少有一在

,个零点,根据罗尔定理上有在处均为零,所以,,

在,,,证明:设

],[

, 1 ],[)(

],[)()()(

1],[)(

)( ),())(]([)(

)(

0

100

ba

baxq

nbaxqxqxq

nbaxqxx

xqxxxxxxxxxfxq

n

n

nn

63

64

],,,,[],,,[],,[],[)(

],,,[],,[],[)(

],,[],[)(

],[)(

)(

)(

4321043214324344

32103213233

2102122

1011

00

xxxxxfxxxxfxxxfxxfxfx

xxxxfxxxfxxfxfx

xxxfxxfxfx

xxfxfx

xfx

xfx kk 四阶均差三阶均差二阶均差一阶均差

12表

均差计算可列均差表如下(表 2-1) .

65

2.3.3 牛顿插值公式

根据均差定义,一次插值多项式为

),](,[)()](,[)()( 010001001 xxxxfxfxxxxfxPxP

二次插值多项式为

).)(](,,[)](,[)(

))(](,,[)()(

102100100

1021012

xxxxxxxfxxxxfxf

xxxxxxxfxPxP

66

根据均差定义,把 看成 上一点,x ],[ ba

),](,[)()( 000 xxxxfxfxf

),](,,[],[],[ 110100 xxxxxfxxfxxf

).](,,,,[],,,[],,,[ 101010 nnnn xxxxxxfxxxfxxxf

可得

67

只要把后一式依次代入前一式,就得到

)](,[)()( 0100 xxxxfxfxf

))(](,,[ 10210 xxxxxxxf

),()( xRxP nn

)](,[)()( 0100 xxxxfxfxPn

))(](,,[ 10210 xxxxxxxf

其中

)()](,,,[ 1010 nn xxxxxxxf

)(],,,[ 10 xxxxf nn

( 3.6 )

),()](,,,[ 1010 nn xxxxxxxf

68

),(],,,[)()()( 10 xxxxfxPxfxR nnnn ( 3.7 )

是由( 2.10 )定义的 . )(1 xn

显然,由( 3.6 )确定的多项式 满足插值条件,)(xPn

且次数不超过 ,n

).,,1,0(],,,[ 0 nkxxfa kk

称 为牛顿( Newton )均差插值多项式 . )(xPn

系数 就是均差表 2-1 中加横线的各阶均差,它比拉格朗日插值计算量省,且便于程序设计 .

ka

其系数为 它就是形如( 3.1 )的多项式,

),())(()( 101 nn xxxxxxx ( 2.10 )

)](,[)()( 0100 xxxxfxfxPn ( 3.6 )

),()](,,,[ 1010 nn xxxxxxxf

))(](,,[ 10210 xxxxxxxf )()( 10 nn xxxxa ( 3.1 ) ))(()()( 102010 xxxxaxxaaxPn

69

但( 3.7 )更有一般性,它在 是由离散点给出的情形或 导数不存在时也是适用的 .

f

f

( 3.7 )为插值余项,由插值多项式唯一性知,它与拉格朗日插值多项式的余项应该是等价的 .

事实上,利用均差与导数关系式就可以证明这一点 .

牛顿插值多项式的优点还在于它的递进性,当增加插值节点时,只要在原来插值多项式的基础上增加一项即可 .

),(],,,[)()()( 10 xxxxfxPxfxR nnnn ( 3.7 )

70

0.000120.031260.228630.524931.51533

0.031340.213000.433481.38410

0.197330.358931.27573

0.280001.18600

1.11600

五阶均差四阶均差三阶均差二阶均差一阶均差

首先根据给定函数表造出均差表 .

给出 的函数表(见表 2-2 ),求 4 次牛顿插值多项式,并由此计算 的近似值 .)596.0(f

)(xf

25382.105.1

02652.190.0

88811.080.0

69675.065.0

57815.055.0

40.0 0.41075

22表

)f(xx kk

例 4

71

从均差表看到 4 阶均差近似常数, 5 阶均差近似为 0.

故取 4 次插值多项式 做近似即可 . )(4 xP

)55.0)(4.0(28.0)4.0(116.141075.0)(4 xxxxP

)65.0)(55.0)(4.0(19733.0 xxx

于是

,63192.0)596.0()596.0( 4 Pf

),8.0)(65.0)(55.0)(4.0(03134.0 xxxx

按牛顿插值公式,将数据代入

72

截断误差

.1063.3)596.0(],,[)( 95504

xxfxR

这说明截断误差很小,可忽略不计 .

73

2.3.4 差分形式的牛顿插值公式

实际应用时经常遇到等距节点,即 的情形,这里 为常数,称为步长, 这时插值公式可以进一步简化,计算也简单得多 .

),,1,0(0 nkkhxxk

h

设 点的函数值为 ,称 为 处以 为步长的一阶(向前)差分 .

kx ),,1,0)(( nkxff kk ,1 kkk fff

kx h

类似地称 为 处的二阶差分 .kkk fff 12

kx

一般地称k

nk

nk

n fff 11

1

为 处的 阶差分 .kx n

( 3.8 )

74

为了表示方便,再引入两个常用算子符号

I E

,I kk ff ,E 1 kk ff

称为不变算子 , 称为步长为 的移位算子,由此h

,)IE(IE1 kkkkkk ffffff

kn

kn ff )IE( k

jnn

j

j fj

n

E)1(

0( 3.9 ),)1(

0jkn

n

j

j fj

n

其中 为二项式展开系数,( 3.9 )说明各阶差分均可由函数值给出 .

!

)1()1(

j

jnnn

j

n

75

反之,由

可得

.0

kj

n

jkn f

j

nf

( 3.10 )

kn f)I( ,][

0k

jn

j

fj

n

k

nkn ff E

,],[1

11 h

f

xx

ffxxf k

kk

kkkk

kk

kkkkkkk xx

xxfxxfxxxf

2

12121

],[],[],,[ ,

2

1 22 kfh

从而有均差与差分的关系:

76

,1

!

1],,[ k

mmmkk fhm

xxf ).,,2,1( nm ( 3.11 )

一般地有

由( 3.11 )和( 3.5 )又可得到差分与导数的关系:

),()( nnk

n fhf ( 3.12 )

其中 . ),( nkk xx

77

4

3

22

3

13

2

04

12

2

03

1

02

1

0

0

432

f

f

ff

ff

fff

ff

ff

f

f

fk

由给定函数表计算差分可由以下形式差分表给出 .

78

在牛顿插值公式( 3.6 )中,用( 3.11 )的差分代替均差,并令 ,则得thxx 0

02

000 !2

)1()( f

ttftfthxPn

,!

)1()1(0fn

nttt n

( 3.13 )

),()!1(

)()1()( )1(1

nnn fh

n

ntttxR

).,( 0 nxx ( 3.14 )

( 3.13 )称为牛顿前插公式,由( 3.7 )式得其余项为

79

给出 在 xxf cos)( 1.0,5,,1,0, hkkhxk

处的函数值,试用 4 次牛顿前插公式计算 的近似值并估计误差 .

)048.0(f

例 5

解 为使用牛顿插值公式,先构造差分表 .

87758.050.0

4348.0

00920.092106.040.0

00035.003428.0

00010.000955.095534.030.0

00002.000025.002473.0

00012.000980.098007.020.0

00013.001493.0

00993.099500.010.0

00500.0

00000.100.0

)(

32表5432

fffffxfx kk

差分表

80

取 ,1.0,048.0 hx

)048.0(4P

)00993.0(2

)148.0)(48.0(

99885.0

则 ,48.01.0

0048.00

h

xxt 得

048.0cos)048.0( f

)00500.0(48.000000.1

)00013.0)(248.0)(148.0)(48.0(!3

1

)00012.0)(348.0)(248.0)(148.0)(48.0(!4

1

81

由( 3.14 )可得误差估计

554 )4)(3)(2)(1(

!5)048.0( httttt

MR

,105845.1 7

其中 .565.06.0sin5 M ),()!1(

)()1()( )1(1

nnn fh

n

ntttxR

).,( 0 nxx ( 3.14 )

2.4 埃尔米特插值

有些实际的插值问题不但要求在节点上函数值相等,

满足这种要求的插值多项式就是埃尔米特插值多项式 .

而且还要求对应的导数值也相等,甚至要求高阶导数也相等 .

83

关于均差,有

2.4.1 重节点均差与泰勒插值

定理 3 设 为 上的相异节点,则 是其变量的连续函数 .

nn xxxbaCf ,,,],,[ 10 ],[ ba

],,,[ 10 nxxxf

如果 上的节点互异,根据差商定义,若 则有],[ ba ],,[1 baCf

).()()(

lim],[lim 00

00

00

xfxx

xfxfxxf

xxxx

由此定义重节点均差

).(],[lim],[ 00000

xfxxfxxfxx

84

类似地可定义重节点的二阶均差,当 时,有

.],[],[

],,[01

0010100 xx

xxfxxfxxxf

当 时,有

).(2

1],,[lim],,[ 0210000

02

01

xfxxxfxxxfxxxx

01 xx

01 xx

一般地,可定义 阶重节点的均差,由( 3.5 )得n

).(!

1],,,[lim],,,[ 0

)(10000

0

xfn

xxxfxxxf nn

xxi

( 4.1 )

85

在牛顿均差插值多项式中若令 则由( 4.1 )可得泰勒多项式

),,2,1(0 nixxi

.)(!

)())(()()( 0

0)(

000n

n

n xxn

xfxxxfxfxP ( 4.2 )

这实际上是在点 附近逼近 的一个带导数的插值多项式,它满足条件

0x )(xf

.,,1,0),()( 0)(

0)( nkxfxP kk

n ( 4.3 )

( 4.2 )称为泰勒插值多项式,它就是一个埃尔米特插值多项式,余项为

86

,)()!1(

)()( 1

0

)1(

nn

n xxn

fxR

),,( ba ( 4.4 )

它与插值余项( 2.12 )中令 的结果是一致的 .),,2,1(0 nixxi

泰勒插值是牛顿插值的极限形式,是只在一点 给出 个插值条件所得到的 次埃尔米特插值多项式 .

0x

n1n

一般地只要给出 个插值条件(包括函数和导数值)就可以构造出次数不超过 次的埃尔米特多项式 .

1m

m

87

由给定的 4 个条件,可确定次数不超过 3 的插值多项式 .

由于此多项式通过点 )),(,()),(,()),(,( 221100 xfxxfxxfx

)](,[)()( 0100 xxxxfxfxP

))(](,,[ 10210 xxxxxxxf

考虑满足条件 及 的插值多项式及其余项表达式 .

)2,1,0()()( ixfxP ii )()( 11 xfxP

故其形式为

),)()(( 210 xxxxxxA

2.4.2 两个典型的埃尔米特插值

88

.))((

],,[)(],[)(

2101

21001101

xxxx

xxxfxxxxfxfA

待定常数 ,可由条件 确定,)()( 11 xfxP A

其中 为待定函数 . )(xk

为了求出余项 的表达式,)()()( xPxfxR

),())()(()( 22

10 xxxxxxxkxR

通过计算可得

可设

89

).())()(()()()( 22

10 xtxtxtxktPtft

显然 ),2,1,0(0)( jx j

故 在 内有 5 个零点(二重根算两个) . )(t ),( ba

,0)(!4)()( )4()4( xkf

反复应用罗尔定理,得 在 内至少有一个零点 ξ ,

)()4( t ),( ba

构造

,0)(,0)( 1 xx 且

故有

90

),())()((!4

1)( 2

210

)4( xxxxxxfxR (4.5)

式中 位于 和 所界定的范围内 . 210 ,, xxx x

余项表达式为

于是 ),(

!4

1)( )4( fxk

91

例 6 给定 试求 在 上的三次埃尔米特插值多项式 ,使它满足

并写出余项表达式 .

,4

9,1,

4

1,)( 210

2/3 xxxxxf )(xf

]4

9,

4

1[ )(xP

),2,1,0()()( ixfxP ii ),()( 11 xfxP

解 由所给节点可求出

,8

27)

4

9(,1)1(,

8

1)

4

1( 210 ffffff

.2

3)1(,

2

3)( 2/1 fxxf

为了构造牛顿均差插值,先构造均差表

92

1019

827

49

3011

67

81

41

11

ii fx

均差表4-2表 于是有

.30

11],,[,

6

7],[ 21010 xxxfxxf

).4

9)(1)(

4

1(

)1)(4

1(

30

11)

4

1(

6

7

8

1)(

xxxA

xxxxP

再由条件 ,可得2

3)1()1( fP

,2

3)

4

5(

4

3

4

3

30

11

6

7)1( AP

93

解出

.225

14)

40

11

6

7

2

3(

15

16A

于是所求的三次埃尔米特多项式为

,25

1

450

233

450

263

225

14

)4

9)(1)(

4

1(

225

14

)1)(4

1(

30

11)

4

1(

6

7

8

1)(

23

xxx

xxx

xxxxP

94

余项

).4

9,

4

1()

4

9()1)(

4

1(

16

9

!4

1

)4

9()1)(

4

1(

!4

)()()()(

22/5

2)4(

xxx

xxxf

xPxfxR

95

其中 是关于节点 及 的三次埃尔米特插值基函数,分别满足

另一个典型例子是两点三次埃尔米特插值,插值节点取为 及 ,插值多项式为 ,插值条件为kx 1kx

,)()()()()( 11113 kkkkkkkk mxmxyxyxxH (4.7)

采用基函数的方法,令

)(),(),(),( 11 xxxx kkkk

)(3 xH

kx 1kx

,)(3 kk yxH

,)(3 kk mxH

.)(

;)(

113

113

kk

kk

mxH

yxH(4.6)

96

,0)(,1)( 1 kkkk xx

;0)()( 111 kkkk xx

,1)(,0)( 111 kkkk xx

,0)()( 1 kkkk xx

,0)()( 1 kkkk xx

,0)(,1)( 1 kkkk xx

,0)()( 111 kkkk xx

.1)(,0)( 111 kkkk xx

97

,)(2

1

1

kk

kk xx

xxbaxx

根据给定条件可令

显然,0)( 1 kk x ,0)( 1 kk x

再利用,1)( baxx kkk

及,02)(

1

axx

baxx

kk

kkk

98

解得

,2

1,2

11

kk

k

kk xx

xb

xxa

于是求得

.21)(2

1

1

1

kk

k

kk

kk xx

xx

xx

xxx

同理可得2

11

11 21)(

kk

k

kk

kk xx

xx

xx

xxx

(4.8)

(4.9)

99

,)(2

1

1

kk

kkk xx

xxxxax

为求 ,由给定条件可令)(xk

直接由 ,得到1)( axkk

,)(2

1

1

kk

kkk xx

xxxxx (4.10)

同理

.)(2

111

kk

kkk xx

xxxxx (4.11)

100

最后代入,得

1

2

11

2

1

1

1

2

11

1

2

1

1

13

)(

)(

21

21)(

kkk

kk

kkk

kk

kkk

k

kk

k

kkk

k

kk

k

mxx

xxxx

mxx

xxxx

yxx

xx

xx

xx

yxx

xx

xx

xxxH

(4.12)

101

余项 ,类似( 4.5 )可得)()()( 33 xHxfxR

).,(,)())((!4

1)( 1

21

2)4(3 kkkk xxxxxxfxR

(4.13)

2.5 分段低次插值

2.5.1 高次插值的病态性质

这是因为对任意的插值节点,当 时, 不一定收敛到 .

n )(xLn

)(xf

在次数 增加时逼近 的精度不一定也增加 .n )(xf

根据区间 上给出的节点做出的插值多项式 ),(xLn],[ ba

103

),,1,0(,105 nkn

kxk

所构造的拉格朗日插值多项式为

以 上的 个等距节点]5,5[ 1n

考虑函数 ,它在 上的各阶导数均存在 .

]5,5[)1/(1)( 2xxf

.)()(

)(

1

1)(

1

1

02

jnj

nn

j jn xxx

x

xxL

令 ),(2

112/1 nnn xxx ,

552/1 n

xn 则

104

表 2-5列出了 时的 的计算结果及 20,,4,2 n )( 2/1nn xL

在 上的误差2/1nx ).( 2/1nxR

994889.39952449.39042440.020

080751.20123671.20042920.018

217397.10173867.10043530.016

288409.5332743.5044334.014

800440.2755000.2045440.012

531662.1578721.1047059.010

880668.0831017.0049651.08

553416.0607879.0054463.06

423216.0356826.0066390.04

621684.0759615.0137931.02

)()()( 2/12/12/1

nnnn xRxLxfn

52表

105

-5 -4 -3 -2 -1 0 1 2 3 4 5 -0.5

0

0.5

1

1.5

2

2.5

106

可见,随 的增加, 的绝对值几乎成倍增加 . n )( 2/1nxR

这说明当 时 在 上是不收敛的 . n nL ]5,5[

Runge 证明了,存在一个常数 ,使得当 63.3c cx

时, 而当 时 发散 .cx )(xLn),()(lim xfxLnn

107

从图上看到,在 附近 , 与 5x )(10 xL )1/(1)( 2xxf

偏离很远, 这说明用高次插值多项式 近似 效

果并不好 .

)(xLn )(xf

通常不用高次插值,而用分段低次插值 .

108

下图是用 Matlab 完成的 Lagrange 插值(附程序):

109

附: 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’)

110

附: 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

2.5.2 分段线性插值

111

所谓分段线性插值就是通过插值点用折线段连接起来逼近 ).(xf

由于升高插值多项式的阶数有时并不能达到提高精度的效果 , 所以实际中往往采用分段插值的思想 .

分段插值的基本思想是将插值区间划分为若干个小区间 , 然后在每个小区间上做满足一定条件的低阶插值 .

112

设已知节点 上的函数值 bxxxa n 10

,,,, 10 nfff 记 ,max,1 kk

kkk hhxxh

],,[)(.1 baCxIh

)(xIh求一折线函数 , 满足:

kkh fxI )(.2 ),,,1,0( nk

在每个小区间 上是线性函数 .)(.3 xIh ],[ 1kk xx

则称 为分段线性插值函数 .)(xIh

113

由定义可知 在每个小区间 上可表示为 )(xIh ],[ 1kk xx

111

1)(

kkk

kk

kk

kh f

xx

xxf

xx

xxxI

.1,,1,0

),( 1

nk

xxx kk

(5.1)

分段线性插值的误差可利用插值余项( 2.15 )得到

))((max2

)()(max 12

11

kkxxx

hxxx

xxxxM

xIxfkkkk

或写成 ,

8)()(max 22 h

MxIxf h

bxa

(5.2)

其中 .)(max2 xfMbxa

114

由此还可以得到

)()(lim0

xfxIhh

故 在 上一致收敛到 .],[ ba )(xf)(xIh在 上一致成立,],[ ba

115

下图是用 Matlab 完成的分段线性插值(附程序):

116

附:分段线性插值程序

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 中现成的分段线性插值程序 .

2.5.3 分段三次埃尔米特插值

117

分段线性插值函数 的导数是间断的,若在节点 上除已知函数值 外还给出导数值 就可以构造出一个导数连续的分段插值函数 ,满足条件

)(xIh

),,1,0( nkxk kf

),,,1,0( nkmf kk

],,[)(.1 1 baCxIh

),,,1,0()(,)(.2 nkfxIfxI kkhkkh

在每个小区间 上是三次多项式 .)(.3 xIh ],[ 1kk xx

)(xIh

118

上式对于 成立 .

根据两点三次埃尔米特插值插值多项式( 4.12 ),

在区间 上的表达式为)(xIh ],[ 1kk xx

2

11

2

1

1 21)(

kk

kk

kk

k

kk

kh xx

xxf

xx

xx

xx

xxxI

.

21

11

2

1

2

1

11

1

1

kkkk

k

kkkk

kk

kk

k

fxxxx

xx

fxxxx

xxf

xx

xx

(5.3)

1,,1,0 nk

119

定理 3 设 为 在节点

上的分段三次埃尔米特插值多项式,则有

利用三次埃尔米特插值的余项( 4.13 ),可得误差估计

],,[,)(max384

1)()( 1

)4(4

1

kkxxx

kh xxxxfhxIxfkk

,1 kkk xxh 于是有

)(],,[4 xIbaCf h )(xf

bxxxa n 10

,)(max384

)()(max )4(4

xfh

xIxfbxa

hbxa

其中 ).(max 110

kknk

xxh

2.6 三次样条插值

121

定义 3 若函数 且在每个小区间上是三次多项式,其中 是给定节点,则称 是节点 上的三次样条函数 .

2.6.1 三次样条函数

bxxxa n 10

],,[)( 2 baCxS ],[ 1jj xx

)(xS nxxx ,,, 10

若在节点 上给定函数值 并成立

jx ),,,1,0)(( njxfy jj

jj yxS )( ),,,1,0( nj ( 6.1 )

则称 为三次样条插值函数 .)(xS

122

由于 在每个小区间 上有 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 ( 6.2 )

123

通常可在区间 端点 上各加一个条件],[ ba nxbxa ,0

1. 已知两端的一阶导数值,即

.)(,)( 00 nn fxSfxS ( 6.3 )

( 6.4 )‘称为自然边界条件 .

2. 已知两端的二阶导数,即

其特殊情况为

,)(,)( 00 nn fxSfxS ( 6.4 )

.0)()( 0 nxSxS ( 6.4 )‘

常见的边界条件有以下 3 种:(称为边界条件),

124

),0()0( 0 nxSxS

此时插值条件( 6.1 )中 . nyy 0

这样确定的样条函数 称为周期样条函数 .)(xS

这时边界条件应满足 ),0()0( 0 nxSxS

( 6.5 )).0()0( 0 nxSxS

3. 当 是以 为周期的周期函数时,则要求)(xf 0xxn

)(xS 也是周期函数 .

2.6.2 样条插值函数的建立

125

下面利用 的二阶导数值 表示 . )(xS jj MxS )( ),,1,0( nj

)(xS

由于 在区间 上是三次多项式,故 )(xS ],[ 1jj xx )(xS

在 上是线性函数,],[ 1jj xx

j

jj

j

jj h

xxM

h

xxMxS

1

1)( ( 6.7 )

对 积分两次并利用 及 , )(xS jj yxS )( 11)( jj yxS

可表示为

可定出积分常数,于是得三次样条表达式

126

j

jj

j

jj h

xxM

h

xxMxS

6

)(

6

)()(

3

1

31

j

jjjj

j

jjjj h

xxhMy

h

xxhMy

66

21

11

2

这里 ,是未知的 . ),,1,0( njM j

).1,,1,0( nj ( 6.8 )

127

为了确定 , 对 求导得 jM )(xS

j

jj

j

jj h

xxM

h

xxMxS

2

)(

2

)()(

2

11

2

;6

11j

jj

j

jj hMM

h

yy

( 6.9 )

由此可求得

.63

)0( 11

j

jjj

jj

jj h

yyM

hM

hxS

128

类似地可求出 在区间 上的表达式,从而得 )(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 ( 6.10 )

其中 ,,,1,0,,

11

1 njhh

h

hh

h

jj

jj

jj

jj

129

].,,[6],[],[

6 111

11

jjjjj

jjjjj xxxf

hh

xxfxxfd

( 6.11 )

对第一种边界条件( 6.3 ),可导出两个方程

]).,[(6

2

),],[(6

2

11

1

0100

10

nnnn

nn xxffh

MM

fxxfh

MM( 6.12 )

.)(,)( 00 nn fxSfxS ( 6.3 )

130

如果令

),],[(6

,1 0100

00 fxxfh

d

]),,[(6

,1 11

nnnn

nn xxffh

d

那么( 6.10 )及( 6.12 )可写成矩阵形式

.

2

2

2

2

1

1

0

1

1

0

11

11

0

n

n

n

n

n

nn

d

d

d

d

M

M

M

M

( 6.13 )),1,,2,1(2 11 njdMMM jjjjjj ( 6.10 )

]).,[(6

2

),],[(6

2

11

1

0100

10

nnnn

nn xxffh

MM

fxxfh

MM( 6.12 )

131

对第二种边界条件( 6.4 ),直接得端点方程

,00 fM .nn fM ( 6.14 )

如果令 , nnn fdfd 2,2,0 000

也可以写成( 6.13 )的矩阵形式 .

则( 6.10 )和( 6.14 )

,)(,)( 00 nn fxSfxS ( 6.4 )

132

对于第三种边界条件( 6.5 ),可得

其中

,01

0

hh

h

nn

,],[],[

601

110

hh

xxfxxfd

n

nnn

,0 nMM ,211 nnnnn dMMM ( 6.15 )

( 6.10 )和( 6.15 )可以写成矩阵形式

,101

1

hh

h

n

nnn

),0()0( 0 nxSxS ),0()0( 0 nxSxS

( 6.5 )).0()0( 0 nxSxS

133

.

2

2

2

2

1

2

1

1

2

1

11

22

11

n

n

n

n

nn

nn

d

d

d

d

M

M

M

M

( 6.16 )

( 6.13 )和( 6.16 )是关于 的三对角方程组, 在力学上解释为细梁在 截面处的弯矩,称为 的矩,

),,1,0( njM j

jM jx

)(xS

( 6.13 )和( 6.16 )的系数矩阵为严格对角占优阵,有唯一解 , 求解方法可见第 5 章第 4 节追赶法,将解得结果代入( 6.8 )的表达式即可 .

方程组( 6.13 )和( 6.16 )称为三弯矩方程 .

.

2

2

2

2

1

1

0

1

1

0

11

11

0

n

n

n

n

n

nn

d

d

d

d

M

M

M

M

( 6.13 )

j

jj

j

jj h

xxM

h

xxMxS

6

)(

6

)()(

3

1

31

j

jjjj

j

jjjj h

xxhMy

h

xxhMy

66

21

11

2

).1,,1,0( nj ( 6.8 )

134

.0.3)30()(,1.4)29()(

,3.4)28()(,1.4)7.27()(

32

10

fxffxf

fxffxf

试求三次样条函数 ,使它满足边界条件 )(xS ,0.3)7.27( S

.0.4)30( S

设 为定义在 上的函数,在节点 )(xf ]30,7.27[

)3,2,1,0( ixi 上的值如下:例 7

135

,666.46)],[(6

,2

1,

13

10,1 010

00210 fxxfh

d

.4.17]),[(6

3232

3 xxffh

d

,70000.2],,[6,00002.4],,[6 32122101 xxxfdxxxfd

由此得矩阵形式的方程组( 6.13 )为

,1,2

1,

13

3,1,30.0 321210 hhh

解 由( 6.11 )及( 6.12 )

].,,[6],[],[

6 111

11

jjjjj

jjjjj xxxf

hh

xxfxxfd

( 6.11 )

]).,[(6

2

),],[(6

2

11

1

0100

10

nnnn

nn xxffh

MM

fxxfh

MM( 6.12 )

136

.

4000.17

7000.2

00002.4

666.46

4000.17212

12

2

113

102

13

312

3

2

1

0

M

M

M

M

求解得

.115.9,830.0,395.0,531.23 3210 MMMM

137

代入( 6.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

xx

xx

xx

xx

xx

xx

xS

],28,7.27[x

],29,28[x

],30,29[x

(曲线见图 2-6 )

j

jj

j

jj h

xxM

h

xxMxS

6

)(

6

)()(

3

1

31

j

jjjj

j

jjjj h

xxhMy

h

xxhMy

66

21

11

2

).1,,1,0( nj ( 6.8 )

138

图 2-6

139

给定函数 节点 ,55,1

1)(

2

x

xxf

),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

例 8

140

25376.013971.013793.05.2

0000.10000.10000.1019837.011366.011312.08.2

94090.092754.091743.03.010000.010000.010000.00.3

84340.082051.080000.05.010832.008426.008410.03.3

64316.062420.060976.08.022620.007606.007547.05.3

50000.050000.050000.00.120130.006556.006477.08.3

31650.036133.037175.03.105882.005882.005882.00.4

23535.029744.030769.05.188808.004842.005131.03.4

18878.023154.023585.08.157872.104248.004706.05.4

20000.020000.020000.00.280438.103758.004160.08.4

24145.016115.015898.03.203846.003846.003846.00.5

)()(1

1)()(1

1

10102

10102

xLxSxxxLxSxx

62表

141

下图是用 Matlab 完成的样条插值(附程序):

142

附:样条插值程序

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 中现成的样条插值程序 .

143

也可以将三种插值结果画在一起:

2.6.3 误差界与收敛性

144

定理 4

则有估计式

),1,,1,0(,max 110

nixxhhh iiii

ni

,)(max)()(max 4)4()()( k

bxak

kk

bxahxfCxSxf

,2,1,0k ( 6.17 )

其中 .8

3,

24

1,

384

5210 CCC

设 为满足第一种或第二],,[)( 4 baCxf )(xS

种边界条件( 6.3 )或( 6.4 )的三次样条函数,令

.)(,)( 00 nn fxSfxS ( 6.3 ),)(,)( 00 nn fxSfxS ( 6.4 )

145

这个定理不但给出了三次样条插值函数 的误差估计 .

)(xS

还说明了当 时, 及其一阶导数 和0h )(xS )(xS

二阶导数 均分别一致收敛于 , 及 )(xS )(xf )(xf ).(xf

146

147

148

149

150

151

高元插值及 Matlab 实现

153

154

155

156

mesh(X,Y,Z) 绘制网格图

157

>> surf(Z) 绘制表面图

158

>> surf(X,Y,Z)

159

160

161

单调数据点上的二元插值

163

164

165

166

167

168

169

170

171

172

173

174

175

176

177