Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 15

第二章 插值 /*

Interpolation */
§1 引 言
许多实际问题都用函数y  f (x ) 来表示某种内在规
律的数量关系,其中相当一部分函数是通过实验或计算
得到的 , 并且只是[a , b] 上一系列点x i 的函数值
yi  f ( x i )( i  0,1,  , n)
这只是一张函数表。有的问题虽有解析表达式,但由于
计算复杂,使用不方便,通常也造一个函数表,比如平
方根表、立方根表、对数表和三角函数表等等。为了研
究函数的变化规律,往往需要求不在表上的函数值。因
此,我们希望根据给定的函数表做一个既能反映函数 f (x )
的特性,又便于计算的简单函数 p( x ) , 用p( x ) 近似f ( x ) 。
§1 Introduction

如:通常用代数多项式或分段代数多项式作为 p( x ) , 并使
p( x i )  f ( x i ) i  0,1,  , n p( x )
对 成立。这样确定的
就是我们希望得到的插值函数。
f ( x)
p( x )
p(x)  f(x)

x0 x1 x2 x x3 x4
插值法定义 §1 Introduction

设函数 y  f (x ) 在区间[a , b]上有定义,且


a  x 0  x1    x n  b
已知在点x0 , x1 ,  , x n 上的值y0 , y1 ,  , y n
若存在一简单函数 p(x ),使
p( x i )  y i , i  0,1, 2 , n (2.1)
成立,就称 p( x ) f (为
x) 的插值函数, x0 , x1  , xn 称为

插值节点,包含插值节点的区间 [a , b ] 称为插值区间,
( 2.1 )称为插值条件,求插值函数p( x ) 的方法称为插
值法。若p( x )为次数不超过 n 的代数多项式,即
p ( x )  a 0  a1 x    a n x n (2.2)
其中 ai为实数,就称 p( x )为插值多项式,相应的插值法称
为多项式插值。若 p( x ) 为分段多项式,就是分段插值。若
p( x ) 为三角多项式,就称为三角插值。
§1 Introduction
插值多项式的存在唯一性
设p(x ) 是形如(2.2) 的插值多项式,用H n 代表所有次
数不超过n 的多项式集合,于是P ( x )  H n . 所谓插值多
项式p( x ) 存在且唯一,就是指在集合H n 中有且只有一个 p(x )
满足插值条件 p( x i )  y i , i  0,1 , n 。
由插值条件可得
a0  a1 x0  a 2 x02    a n x0n  y0
… … (2.3)
a 0  a1 x n  a 2 x n    a n x n  y n
2 n

这是一个关于 a0 , a1  a n的 n  1元线性方程组。
要证明插值多项式的存在唯一性,只要证明上述方
程组存在唯一解,也就是证明方程组的系数行列式的值不
为零。
§1 Introduction

其系数行列式为 1 x0 x02  x0n


1 x1 x12  x1n
Vn ( x0 , x1 , , xn ) 
    
1 xn xn2  xnn
式中Vn ( x0 , x1 ,  , x n )称为 Vandermond 行列式。
利用行列式性质可得 n i 1

Vn ( x0 , x1 ,  , x n )   
i 1 j  0
( xi  x j ),

由于 i  j时x i  x j, 故所有因子 x i  x j  0
于是 Vn ( x0 , x1 ,  , x n )  0
故方程组( 2.3)存在唯一的一组解。
以上论述可写成下列定理:
§1 Introduction

定理 ( 唯一性 ) 满足P ( xi )  yi , i  0, ... , n


次数不超过 n 的插值多项式是唯一存在的。
证明: ( 另一证法)
反证:若不唯一,则除了 pn(x) 外还有另一 n 阶多
项式 Ln(x) 满足 Ln(xi) = yi 。
考察 Qn ( x )  Pn ( x )  Ln ( x ) , n
则 Q 的次数
而 Qn 有n +n1 个不同 x0 … xn
的零点
注:若不将多项式次数限制为 n ,则插值多项式不唯一。
n

例如 P ( x)  Pn ( x)  p ( x) ( x  xi )
i 0
p( 也是一个插值多项式,其中
x)

可以是任意多项式。
§2 拉格朗日多项式 /* Lagrange Polynomial */
求 n 次多项式 Ln ( x )  y0 l0 ( x )  y1l1 ( x )    ynln ( x )
使得 Ln ( xi )  yi , i  0,1, 2,  , n 插值法
插值法
Lagrange插值法
Lagrange
Lagrange
(1779)
(1795)
(1783)
条件:无重合节点,即 i  j xi  x j

n = 1 已知 x0 , x1 ; y0 , y1 , L1 ( x )  l 0 ( x ) y0  l1 ( x ) y1

使得 L 1( x0 )  y 0 , L1 ( x1)  y 1
称为拉氏基函数 /* Lagrange Basis */ ,
可见 L1(x) 是过 满足条件 ( x0 , y0 l)i(x和
j)=ij /*
y1 ) 两点的直
( x1, Kronecker Delta */
线。 y1  y 0

L1 ( x ) y0  ( x  x0 )
x1  x 0
x  x1 x  x0 1 L.
E.Euler
Waring
= y +
x 0  x1 0
y 
x1  x 0 1  l ( x) y
i 0
i i (1707-1783)
(1736-1798)
瑞士数学家
英国数学家、皇家
l0(x) l1(x) 最伟大的数学家之一
学会院士
最多产的数学家
Lucas 教授
§2 Lagrange Polynomial

n1 希望找到 li(x) , i = 0, …, n 使得 li(xj)=ij ;然后



n
Ln ( x )   l i ( x ) yi ,则显然有 L (x ) = y 。
n i i
i0

li(x) 每个 li 有 n 个零点 x0 … xi
与… x 节点 有关,而与f 无关 Lagrange n
li ( xn)  Ci ( x  x0 )...(x  xi )...(x  xn )  Ci  ( x  x j )
Polynomial
ji

Ci   1 j 0
li ( xi ) 1 
j  i ( xi xj )
n (x  xj )
li ( x )  
n

( xi  x j ) Ln ( x )   l i ( x ) y i
ji
j 0 i 0

注:  l ( x)
i
i  1 (特别的, f(x)=1 )
§2 Lagrange Polynomial

特别地,一点零次插值多项式为
Ln ( x )  y0
两点一次插值(线性插值)多项式为
x  x1 x  x0
L1 ( x )  y0  y1
x0  x1 x1  x0
三点二次插值(抛物插值)多项式为

( x  x1 )( x  x2 ) ( x  x0 )( x  x2 ) ( x  x0 )( x  x1 )
L2 ( x )  y0  y1  y2
( x0  x1 )( x0  x2 ) ( x1  x0 )( x1  x2 ) ( x2  x0 )( x2  x1 )
 插值余项 /* Remainder
*/
设节点 a  x0  x1    xn  b ,且 f 满足条件f  C [a , b]
n

f ( n 1)在 [a , b] 内存在 , 考察截断误差R, ( x )  f ( x )  L ( x )


n n

n
Rn ( x )  K( x( )x ( x( xxi ))  0
n(x) 至少有
RRolle’s n+1
Theorem: 若  个( x ) 充分光滑, )
0i  0  1
零点
存在   ( x0 , x1 )  ( )  使得0 。
n
任意固定 注意这里是对 x  xi (i = 0,t …, 求n), 考察 ( t )  Rn ( t )  K ( x )  ( t  x i )
推广:若  ( x0导 )   ( x1 )   ( x 2 )  0  0  ( x0 , x1 ),  1 i ( 0x1 , x 2 )
(t) 有 使得n+2 个不同的零点
 ( 0 )   ( 1 )  0 x 0 …  ( n 1 )
  ( 0 ,  1 ) 使得 ( x )0(, ) x0 (a , b )
xn x
( n  1 )  ( x 0 )     ( x n )  0 ( n 1 )
( x ) Ln ( x )  K ( x )( n  1) !  Rn ( x )  K ( x ) ( n  1) !=0

( n 1)
f 
存在  (a , b ) 使得  ( )  0
(n)

( n 1 )
 f ( n 1 )
( ) n

K ( x) 
f ( x) Rn ( x )  x
( n  1) ! i 0  ( x  xi )
( n  1) !
§2 Lagrange Polynomial

注: 通常不能确定  x , 而是估计 ( x )  M n1


( n 1 )
f
M n 1 n
, x(a,b)  | x  xi |
( n  1)!

i 0

 当
作为误差估计上限。f(x) 为任一个次数 n 的多项式时,
f ( n 1 )
( x)  0
Rn ( x )  0, 可知 ,即插值多项
式对于次数 n 的多项式是精确的。

1 "
当 n  1 时,R1 ( x )  f ( )( x  x0 )( x  x1 ),   [ x0 , x1 ]
2

当 n  2 时,抛物插值余项为
1 "'
R2 ( x )  f ( )( x  x0 )( x  x1 )( x  x2 ),   [ x0, x2 ]
6
§2 Lagrange Polynomial

Quiz: 给定 xi = i +1, i = 0, 1, 2, 3, 4, 5. 下面哪个是 l2(x) 的图


像?
y A y B y C
1- 1- 1-

0.5- 0.5- 0.5-

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


§2 Lagrange Polynomial
例:已知 sin   1 , sin   1 , sin   3
6 2 4 2 3 2
分别利用 sin x 的 1 次、 2 次 Lagrange 插值计算
sin 50 5
50 0 
并估计误差。
18
解: n = 1 分别利用 x0, x1 以及 x1, x2 计
x0 x1 x2
算 
 利用 x0  , x1  L1 ( x )  x   / 4  1  x   / 6  1
6 4  / 6  / 4 2  / 4  / 6 2

sin 50  L1 ( 5 )  0.77614 这里 f ( x )  sin x , f ( 2 ) ( x )   sin  x ,  x  (  ,  )
0
内插通常优于外推。选择18 6 3
f ( x )
( 2)
而 1 要计算的 sin  x  3 , x R所在的区间
1 ( x )  ( x   )( x   )
2 2 2! 6 4
的端点,插值效果较好。

外推
5
 0.01319  R1 (
18
)  0.00762

/* extrapolation */ 的实际误差
 sin 50 = 0.7660444…


 利用x1  , x 2 
 
~  5 
  0.00660
sin 50 0.76008, 0 .00538 R1
4 3  18 

内插 /* interpolation */ 的实际误差 


§2 Lagrange Polynomial
( x  4 )( x  3 ) 1 ( x  6 )( x  3 ) 1 ( x  6 )( x  4 )
n=2 L2 ( x )                   3
( 6  4 )( 6  3 ) 2 ( 4  6 )( 4  3 ) 2 ( 3  6 )( 3  4 ) 2

sin 50  L2 ( 5 )  0.76543
0

18
 cos  x
R2 ( x )  ( x   )( x   )( x   ) ; 1  cos   3
x
3! 6 4 3 2 2

0.00044  R2  5   0.00077
 18   sin 50 = 0.7660444…
2 次插值的实际误差 

HW: p.49 高次插值通常优于


#2 , #3 , #4 低次插值

但绝对不是次数越高
就越好,嘿嘿……
§2 Lagrange Polynomial

When
Oh yeah? you
Right. What start
Then ifall writing the program,
I find
you
the will find how
Then youeasy
might it iswant
to calculate
to take
the current
Lagrange interpolation
basis, l
Excellenti(x) , point !
morethe
notwill Lagrange
interpolating
accurate enough?polynomial.
points into account.
We
will have tocontinue to discuss this problem
be re-calculated.
next time.

You might also like