177
第2第 第 第 第 1 1 第第 2 第第第第第第 3 第第第第第第第第第第 4 第第第第第第 5 第第第第第第 6 第第第第第第

第 2 章 插 值 法

  • Upload
    avi

  • View
    124

  • Download
    9

Embed Size (px)

DESCRIPTION

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

Citation preview

Page 1: 第 2 章  插 值 法

第 2 章 插 值 法

1

第1节 引言

第2节 拉格朗日插值

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

第4节 埃尔米特插值

第5节 分段低次插值

第6节 三次样条插值

Page 2: 第 2 章  插 值 法

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 插值问题的提出

Page 3: 第 2 章  插 值 法

3

nnxaxaaxP 10)( ( 1.2 )

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

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

ia )(xP

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

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

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

Page 4: 第 2 章  插 值 法

4

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

)(xPy

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

)(xfy 见图 .

x0 x1 x2 x3 x4x

P(x) f(x)

Page 5: 第 2 章  插 值 法

5

1n

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

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

2.1.2 多项式插值

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

设在区间 上给定 个点

),,1,0)(( nixfy ii

],[ ba

bxxxa n 10

naaa ,,, 10 1n

n

)(xP

Page 6: 第 2 章  插 值 法

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 )

Page 7: 第 2 章  插 值 法

7

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

.0)(det1

,

n

jioji

ji xxA

naaa ,,, 10

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

)(xP

Page 8: 第 2 章  插 值 法

2.2 拉格朗日插值

2.2.1 线性插值与抛物插值

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

先讨论 的简单情形 .1n

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

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

.)(,)( 1111 kkkk yxLyxL

使它满足

nnxaxaaxP 10)( ( 1.

2 )

Page 9: 第 2 章  插 值 法

9

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

图 2-2

如图 2-2.

Page 10: 第 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 )

Page 11: 第 2 章  插 值 法

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.

Page 12: 第 2 章  插 值 法

12

图 2-3

Page 13: 第 2 章  插 值 法

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

Page 14: 第 2 章  插 值 法

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

Page 15: 第 2 章  插 值 法

15

同理

.))((

))(()(

11

11

kkkk

kkk xxxx

xxxxxl

.))((

))(()(

111

11

kkkk

kkk xxxx

xxxxxl

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

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

Page 16: 第 2 章  插 值 法

16

图 2-4

Page 17: 第 2 章  插 值 法

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它满足条件

Page 18: 第 2 章  插 值 法

2.2.2 拉格朗日插值多项式

18

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

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

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

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

Page 19: 第 2 章  插 值 法

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

Page 20: 第 2 章  插 值 法

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 )

Page 21: 第 2 章  插 值 法

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 )

Page 22: 第 2 章  插 值 法

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

Page 23: 第 2 章  插 值 法

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 )

Page 24: 第 2 章  插 值 法

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

Page 25: 第 2 章  插 值 法

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

Page 26: 第 2 章  插 值 法

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

Page 27: 第 2 章  插 值 法

27

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

),)()((2

1)()(

2

1)( 1021 xxxxfxfxR

],[ 10 xx ( 2.15 )

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

),)()()((6

1)( 2102 xxxxxxfxR

],[ 20 xx ( 2.16 )

Page 28: 第 2 章  插 值 法

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 )

Page 29: 第 2 章  插 值 法

29

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

nHxf )(

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

).()( xfxLn

Page 30: 第 2 章  插 值 法

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

Page 31: 第 2 章  插 值 法

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

(点斜式),

Page 32: 第 2 章  插 值 法

32

)3367.0(3367.0sin 1L

0167.002.0

01892.0314567.0

)3367.0( 001

01 xxx

yyy

.330365.0

Page 33: 第 2 章  插 值 法

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

Page 34: 第 2 章  插 值 法

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 )

Page 35: 第 2 章  插 值 法

35

由( 2.14) ,

,))()((6

)( 2103

2 xxxxxxM

xR

其中

)(max20

3 xfMxxx

于是

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

0cos x ,9493.0

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

截断误差限

Page 36: 第 2 章  插 值 法

36

)3367.0(3367.0sin)3367.0( 22 LR

0233.0033.00167.09493.06

1

.100132.2 6

Page 37: 第 2 章  插 值 法

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

Page 38: 第 2 章  插 值 法

38

Page 39: 第 2 章  插 值 法

39

Page 40: 第 2 章  插 值 法

Matlab 实现

40

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

Page 41: 第 2 章  插 值 法

41

Page 42: 第 2 章  插 值 法

42

Page 43: 第 2 章  插 值 法

43

Page 44: 第 2 章  插 值 法

44

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

Page 45: 第 2 章  插 值 法

45

Page 46: 第 2 章  插 值 法

46

Page 47: 第 2 章  插 值 法

47

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

Page 48: 第 2 章  插 值 法

48

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

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

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

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

Page 49: 第 2 章  插 值 法

49

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

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

Page 50: 第 2 章  插 值 法

50

Page 51: 第 2 章  插 值 法

51

Page 52: 第 2 章  插 值 法

52

Page 53: 第 2 章  插 值 法

53

Page 54: 第 2 章  插 值 法

54

Page 55: 第 2 章  插 值 法

2.3 均差与牛顿插值公式

2.3.1 插值多项式的逐次生成

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

),,1,0)(( nkxlk

Page 56: 第 2 章  插 值 法

56

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

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

),()()(

)()( 01 xxab

afbfafxP

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

),()()( 0101 xxaxPxP

其中 是函数 的差商 .01

011

)()(

xx

xfxfa

)(xf

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

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

Page 57: 第 2 章  插 值 法

57

).)(()()( 10202 xxxxaxPxP

插值多项式

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

由 得 ),()( 222 xfxP

.

)()()()(

))((

)()(

12

01

01

02

02

1202

21222 xx

xxxfxf

xxxfxf

xxxx

xPxPa

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

Page 58: 第 2 章  插 值 法

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 )

Page 59: 第 2 章  插 值 法

59

称 为函数 关

于点 的一阶均差 .

0

00

)()(],[

xx

xfxfxxf

k

kk

)(xf

kxx ,0

定义 2

2.3.2 均差及其性质

1

10010

],[],[],,[

xx

xxfxxfxxxf

k

kk

称为 的二阶均差 .)(xf

Page 60: 第 2 章  插 值 法

60

1

1102010

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

kk

kkkk xx

xxxfxxxfxxxf

( 3.3 )

一般地,称

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

Page 61: 第 2 章  插 值 法

61

均差有如下的基本性质:

.)())(()(

)(

],,,[

0 110

10

k

j kjjjjjj

j

k

xxxxxxxx

xf

xxxf

( 3.4 )

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

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

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

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

Page 62: 第 2 章  插 值 法

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 )

Page 63: 第 2 章  插 值 法

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

.!

)(][

)(

0 n

fxxf

n

n

,,所以

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

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

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

在,,,证明:设

],[

, 1 ],[)(

],[)()()(

1],[)(

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

)(

0

100

ba

baxq

nbaxqxqxq

nbaxqxx

xqxxxxxxxxxfxq

n

n

nn

63

Page 64: 第 2 章  插 值 法

64

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

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

],,[],[)(

],[)(

)(

)(

4321043214324344

32103213233

2102122

1011

00

xxxxxfxxxxfxxxfxxfxfx

xxxxfxxxfxxfxfx

xxxfxxfxfx

xxfxfx

xfx

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

12表

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

Page 65: 第 2 章  插 值 法

65

2.3.3 牛顿插值公式

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

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

二次插值多项式为

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

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

102100100

1021012

xxxxxxxfxxxxfxf

xxxxxxxfxPxP

Page 66: 第 2 章  插 值 法

66

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

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

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

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

可得

Page 67: 第 2 章  插 值 法

67

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

)](,[)()( 0100 xxxxfxfxf

))(](,,[ 10210 xxxxxxxf

),()( xRxP nn

)](,[)()( 0100 xxxxfxfxPn

))(](,,[ 10210 xxxxxxxf

其中

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

)(],,,[ 10 xxxxf nn

( 3.6 )

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

Page 68: 第 2 章  插 值 法

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

Page 69: 第 2 章  插 值 法

69

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

f

f

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

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

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

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

Page 70: 第 2 章  插 值 法

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

Page 71: 第 2 章  插 值 法

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

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

Page 72: 第 2 章  插 值 法

72

截断误差

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

xxfxR

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

Page 73: 第 2 章  插 值 法

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 )

Page 74: 第 2 章  插 值 法

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

Page 75: 第 2 章  插 值 法

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

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

Page 76: 第 2 章  插 值 法

76

,1

!

1],,[ k

mmmkk fhm

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

一般地有

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

),()( nnk

n fhf ( 3.12 )

其中 . ),( nkk xx

Page 77: 第 2 章  插 值 法

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

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

Page 78: 第 2 章  插 值 法

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 )式得其余项为

Page 79: 第 2 章  插 值 法

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

差分表

Page 80: 第 2 章  插 值 法

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

Page 81: 第 2 章  插 值 法

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 )

Page 82: 第 2 章  插 值 法

2.4 埃尔米特插值

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

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

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

Page 83: 第 2 章  插 值 法

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

Page 84: 第 2 章  插 值 法

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 )

Page 85: 第 2 章  插 值 法

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 )称为泰勒插值多项式,它就是一个埃尔米特插值多项式,余项为

Page 86: 第 2 章  插 值 法

86

,)()!1(

)()( 1

0

)1(

nn

n xxn

fxR

),,( ba ( 4.4 )

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

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

0x

n1n

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

1m

m

Page 87: 第 2 章  插 值 法

87

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

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

)](,[)()( 0100 xxxxfxfxP

))(](,,[ 10210 xxxxxxxf

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

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

故其形式为

),)()(( 210 xxxxxxA

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

Page 88: 第 2 章  插 值 法

88

.))((

],,[)(],[)(

2101

21001101

xxxx

xxxfxxxxfxfA

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

其中 为待定函数 . )(xk

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

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

10 xxxxxxxkxR

通过计算可得

可设

Page 89: 第 2 章  插 值 法

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 且

故有

Page 90: 第 2 章  插 值 法

90

),())()((!4

1)( 2

210

)4( xxxxxxfxR (4.5)

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

余项表达式为

于是 ),(

!4

1)( )4( fxk

Page 91: 第 2 章  插 值 法

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

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

Page 92: 第 2 章  插 值 法

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

Page 93: 第 2 章  插 值 法

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

Page 94: 第 2 章  插 值 法

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

Page 95: 第 2 章  插 值 法

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)

Page 96: 第 2 章  插 值 法

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

Page 97: 第 2 章  插 值 法

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

Page 98: 第 2 章  插 值 法

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)

Page 99: 第 2 章  插 值 法

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)

Page 100: 第 2 章  插 值 法

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)

Page 101: 第 2 章  插 值 法

101

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

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

1)( 1

21

2)4(3 kkkk xxxxxxfxR

(4.13)

Page 102: 第 2 章  插 值 法

2.5 分段低次插值

2.5.1 高次插值的病态性质

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

n )(xLn

)(xf

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

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

Page 103: 第 2 章  插 值 法

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 则

Page 104: 第 2 章  插 值 法

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表

Page 105: 第 2 章  插 值 法

105

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

0

0.5

1

1.5

2

2.5

Page 106: 第 2 章  插 值 法

106

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

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

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

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

Page 107: 第 2 章  插 值 法

107

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

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

果并不好 .

)(xLn )(xf

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

Page 108: 第 2 章  插 值 法

108

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

Page 109: 第 2 章  插 值 法

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

Page 110: 第 2 章  插 值 法

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

Page 111: 第 2 章  插 值 法

2.5.2 分段线性插值

111

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

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

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

Page 112: 第 2 章  插 值 法

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

Page 113: 第 2 章  插 值 法

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

Page 114: 第 2 章  插 值 法

114

由此还可以得到

)()(lim0

xfxIhh

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

Page 115: 第 2 章  插 值 法

115

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

Page 116: 第 2 章  插 值 法

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

Page 117: 第 2 章  插 值 法

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

Page 118: 第 2 章  插 值 法

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

Page 119: 第 2 章  插 值 法

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

Page 120: 第 2 章  插 值 法

2.6 三次样条插值

Page 121: 第 2 章  插 值 法

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

Page 122: 第 2 章  插 值 法

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 )

Page 123: 第 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 种:(称为边界条件),

Page 124: 第 2 章  插 值 法

124

),0()0( 0 nxSxS

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

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

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

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

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

)(xS 也是周期函数 .

Page 125: 第 2 章  插 值 法

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

可表示为

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

Page 126: 第 2 章  插 值 法

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 )

Page 127: 第 2 章  插 值 法

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

Page 128: 第 2 章  插 值 法

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

Page 129: 第 2 章  插 值 法

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 )

Page 130: 第 2 章  插 值 法

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 )

Page 131: 第 2 章  插 值 法

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 )

Page 132: 第 2 章  插 值 法

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

Page 133: 第 2 章  插 值 法

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 )

Page 134: 第 2 章  插 值 法

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

Page 135: 第 2 章  插 值 法

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 )

Page 136: 第 2 章  插 值 法

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

Page 137: 第 2 章  插 值 法

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 )

Page 138: 第 2 章  插 值 法

138

图 2-6

Page 139: 第 2 章  插 值 法

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

Page 140: 第 2 章  插 值 法

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表

Page 141: 第 2 章  插 值 法

141

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

Page 142: 第 2 章  插 值 法

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

Page 143: 第 2 章  插 值 法

143

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

Page 144: 第 2 章  插 值 法

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 )

Page 145: 第 2 章  插 值 法

145

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

)(xS

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

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

Page 146: 第 2 章  插 值 法

146

Page 147: 第 2 章  插 值 法

147

Page 148: 第 2 章  插 值 法

148

Page 149: 第 2 章  插 值 法

149

Page 150: 第 2 章  插 值 法

150

Page 151: 第 2 章  插 值 法

151

Page 152: 第 2 章  插 值 法

高元插值及 Matlab 实现

Page 153: 第 2 章  插 值 法

153

Page 154: 第 2 章  插 值 法

154

Page 155: 第 2 章  插 值 法

155

Page 156: 第 2 章  插 值 法

156

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

Page 157: 第 2 章  插 值 法

157

>> surf(Z) 绘制表面图

Page 158: 第 2 章  插 值 法

158

>> surf(X,Y,Z)

Page 159: 第 2 章  插 值 法

159

Page 160: 第 2 章  插 值 法

160

Page 161: 第 2 章  插 值 法

161

Page 162: 第 2 章  插 值 法

单调数据点上的二元插值

Page 163: 第 2 章  插 值 法

163

Page 164: 第 2 章  插 值 法

164

Page 165: 第 2 章  插 值 法

165

Page 166: 第 2 章  插 值 法

166

Page 167: 第 2 章  插 值 法

167

Page 168: 第 2 章  插 值 法

168

Page 169: 第 2 章  插 值 法

169

Page 170: 第 2 章  插 值 法

170

Page 171: 第 2 章  插 值 法

171

Page 172: 第 2 章  插 值 法

172

Page 173: 第 2 章  插 值 法

173

Page 174: 第 2 章  插 值 法

174

Page 175: 第 2 章  插 值 法

175

Page 176: 第 2 章  插 值 法

176

Page 177: 第 2 章  插 值 法

177