第四章 插值法 (Interpolation Method)
邹秀芬教授数学与统计学院已经测得在某处海洋不同深度处的水温如下:
深度( M) 466 741 950 1422 1634
水温( oC) 7.04 4.28 3.40 2.54 2.13
根据这些数据,希望合理地估计出其它深度(如
500米,600米,1000米 … )处的水温举例这就是本章要讨论的“插值问题”
当精确函数 y = f(x) 非常复杂或未知时,在区间 [a,b]上一系列节点 x0 … xm 处测得函数值 y0 =
f(x0),…,ym = f(xm),由此构造一个简单易算的近似函数 g(x)? f(x),满足条件
g(xj) = f(xj) (j = 0,… m) (*)
这个问题称为,插值问题”
插值问题的定义这里的 g(x)称为 f(x) 的 插值函数 。
节点 x0 … xm称为插值节点,
条件( *)称为 插值条件,区间 [a,b]称为 插值区间
x0 x1 x2 x3 x4x
f(x)
g(x)
最常用的插值函数是 …?代数多项式用代数多项式作插值函数的插值称为 代数插值本章主要讨论的内容插值函数的类型有很多种插值问题插值法插值函数
一,插值问题解的存在唯一性?
二,插值多项式的常用构造方法?
三,插值函数的误差如何估计?
代数插值
4.2 代数插值问题解的存在惟一性给定区间[ a,b] 上互异的 n+1个点{ xj} nj=0的一组函数值 f(xj),j =0,…,n,求一个 n次多项式
pn(x)∈ Pn,使得
pn(xj)=f(xj),j=0,1,…,n,…..,(1)
令 pn(x)=a0+a1x+…+a nxn,…..,(2)
只要证明 Pn(x)的系数 a0,a1,…,a n存在唯一即可为此由插值条件 (1)知 Pn(x)的系数满足下列 n+1个代数方程构成的线性方程组
a0+a1x0+…+a nx0n=f(x0)
a0+a1x1+…+a nx1n= f(x1)
…………………….
a0+a1xn+…+a nxnn= f(xn) ……(3)
2
0 0 0
2
1 1 1
01
2
1,.,
1,.,
V (,,..,,)
..,,.,,.,,.,,.,
1,.,
n
n
n
n
n n n
x x x
x x x
x x x
x x x
1
10
()
ni
ij
ij
xx
而 ai(i=0,1,2,…,n) 的系数行列式是 Vandermonde行列式由于 xi互异,所以 (4)右端不为零,从而方程组
(3)的解 a0,a1,… an 存在且唯一。
通过解上述方程组 (3)求得插值多项式 pn(x)的方法并不可取,这是因为当 n较大时解方程组的计算量较大,
而且方程组系数矩阵的条件数一般较大(可能 是病态方程组),当阶数 n越 高时,病态越重 。
为此我们必须从其它途径来求 Pn(x):
不通过求解方程组而获得插值多项式基本思想,在 n次多项式空间 Pn中找一组合适的基函数
0(x),?1(x),…,?3( x),使
pn(x)=a0?0(x)+a1?1(x)+…+a n?3( x)
不同的基函数的选取导致不同的 插值方法
Lagrange插值
Newton插值
n = 1 使得可见 P1(x) 是过 ( x0,y0 ) 和 ( x1,y1 ) 两点的直线。
)()( 0
01
01
01 xxxx
yyyxP?
+?
10
1
xx
xx
01
0
xx
xx
= y
0 + y1
l0(x) l1(x)
1
0
)(
i
ii yxl
4.3 Lagrange插值求 n 次多项式 使得 n
nn xaxaaxP +++10)(
( ),0,1,,n i iP x y i n
已知 x0,x1 ; y0,y1,求
1 0 1()P x a a x?+ 1 0 0 1 1 1( ),( )P x y P x y使 得
构造基函数
0 1 1 1
0 1 1 1
0
( ) ( ) ( ) ( ) ( )
()
( ) ( ) ( ) ( ) ( )
j j n
j
j j j j j j j n
n
i
i
ji
ij
x x x x x x x x x x
lx
x x x x x x x x x x
x x
xx
+
+
ji
jixl
ij,1
,0)( ( 2)
与 节点 有关,而与 f 无关这里每个 lj(x)都是 n次多项式,且由 (1)式容易验证
lj(x) 满足
j=0,1,…,n ( 1)
对任意的 pn(x)∈P n,
pn(x)=c0 l0(x)+c1 l1(x)+… +cn ln(x)
其中 c0,c1,…,cn 为组合系数
0 0 1 0 0 0 0
0 1 1 1 1 1 1
01
( ) ( ) ( ) ( )
( ) ( ) ( ) ( )
( ) ( ) ( ) ( )
n
n
n n n n n n
l x l x l x c f x
l x l x l x c f x
l x l x l x c f x
可以证明函数组 l0(x),l1(x),…,ln(x) 在插值区间[ a,b] 上线性无关,所以这 n+1个函数可作为 Pn的一组基函数,称为 Lagrange插值基函数
00
11
()1 0 0
()0 1 0
()0 0 1
nn
c f x
c f x
c f x
Lagrange插值基函数满足 (2)式可知,方程组变成因此得到插值多项式
pn(x)= f(x0)l0(x)+f(x1) l1(x)+…+ f(x n) ln(x)
记为 Ln(x)=?f(xj)lj(x)
称 Ln(x)为 n次 Lagrange插值多项式
The mathematician S,had to move to a new
place,His wife didn't trust him very much,so when
they stood down on the street with all their things,
she asked him to watch their ten trunks,while she
got a taxi,Some minutes later she returned,Said
the husband,"I thought you said there were ten
trunks,but I've only counted to nine!"
The wife said,"No,they're TEN!"
"But I have counted them,0,1,2,..."
插值余项 /* Remainder */
定理 4.3.1 若 ( 1 ) ()nfx+ 在 [a,b]内存在,则在 [a,b]上
( 1 )
0
()( ) ( ) ( ) ( )
( 1 ) !
n n
n n i
i
fR x f x L x x x
n
+
+?
的 n+1个互异的点,对 f( x)所作的 n次 Lagrange插值多项式 Ln (x) 有误差估计
Rolle’s Theorem的推论,若 充分光滑,且
0)()( 0 nxx
存在
),( ba
使得 0)()( n
)(x?
证明:由于 Rn(xi) = 0,i=0,1,…,n
( ) () )(
0
n
R x xux xni
i
任意固定 x? xi (i = 0,…,n),考察
00
( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )
nn
n i n i
ii
t R t u x t x f t L t u x t x?
(t)有 n+2 个不同的根 x0… xn x
( 1 ) ( ) 0,(,)n xx ab+
( 1 ) ()
()
( 1 ) !
nf
ux
n
+
+
例,已知
2
3
3s i n,2
1
4s i n,2
1
6s i n
分别利用 sin x 的 1次,2次 Lagrange 插值计算
sin 50?,并估计误差。
解,n = 1 分别利用 x0,x1 以及 x1,x2 计算
4,6 10
xx?利用
2
1
6/4/
6/
2
1
4/6/
4/)(
1
+?
xxxL
0
1
5s i n 5 0 ( ) 0,7 7 6 1 4
18L
( 2 )
1
() 13( ) ( ) ( ),s in
2 ! 6 4 2 2
x
x
fR x x x
1
50.0 131 9 ( ) 0.0 076 2
18R
sin 50?= 0.7660444…
利用 x0,x1 作为插值节点的实际误差0.01001
3,4 21
xx
利用计算得,sin 50 0.76008,
1
50,0 0 5 3 8 0,0 0 6 6 0
18R
利用 x1,x2作为插值节点的实际误差?0.00596
n = 2
4 3 6 3
2
6 4 6 3 4 6 4 3
64
3 6 3 4
( ) ( ) ( ) ( )11
()
( ) ( ) 2 ( ) ( ) 2
( ) ( ) 3
( ) ( ) 2
x x x x
Lx
xx
+?
+?
2
3c o s
2
1;)
3)(4)(6(!3
c o s)(
2
x
x xxxxR
2
50,0 0 0 4 4 0,0 0 0 7 7
18R
sin 50?= 0.7660444…
2次插值的实际误差?0.00061
0
2
5s i n 5 0 ( ) 0,7 6 5 4 3
18L
计算实习,Lagrange Polynomial
1 输入 n,x,y,x* 2 Pai =1.0,Slag =0.0
3 for i=0,1,…,n
3.1 Pai*(x*-xi)→Pai
end for(i)
4 for j=0,1,…,n
4.1 Tai =1.0
4.2 for i=0,1,…,n
4.2.1 if i≠j then
Tai*(xj-xi)→Tai
end if
end for (i)
4.3 Slag +((yj*Pai)/(x*-xj)*Tai)→Slag
end for(j)
5 Slag 6 end
插值节点个数基函数 lj(x)的分母存放在插值点 x*处的计算结果
xi,yi(i=0,1,…,n)
基函数 lj(x)的分子
邹秀芬教授数学与统计学院已经测得在某处海洋不同深度处的水温如下:
深度( M) 466 741 950 1422 1634
水温( oC) 7.04 4.28 3.40 2.54 2.13
根据这些数据,希望合理地估计出其它深度(如
500米,600米,1000米 … )处的水温举例这就是本章要讨论的“插值问题”
当精确函数 y = f(x) 非常复杂或未知时,在区间 [a,b]上一系列节点 x0 … xm 处测得函数值 y0 =
f(x0),…,ym = f(xm),由此构造一个简单易算的近似函数 g(x)? f(x),满足条件
g(xj) = f(xj) (j = 0,… m) (*)
这个问题称为,插值问题”
插值问题的定义这里的 g(x)称为 f(x) 的 插值函数 。
节点 x0 … xm称为插值节点,
条件( *)称为 插值条件,区间 [a,b]称为 插值区间
x0 x1 x2 x3 x4x
f(x)
g(x)
最常用的插值函数是 …?代数多项式用代数多项式作插值函数的插值称为 代数插值本章主要讨论的内容插值函数的类型有很多种插值问题插值法插值函数
一,插值问题解的存在唯一性?
二,插值多项式的常用构造方法?
三,插值函数的误差如何估计?
代数插值
4.2 代数插值问题解的存在惟一性给定区间[ a,b] 上互异的 n+1个点{ xj} nj=0的一组函数值 f(xj),j =0,…,n,求一个 n次多项式
pn(x)∈ Pn,使得
pn(xj)=f(xj),j=0,1,…,n,…..,(1)
令 pn(x)=a0+a1x+…+a nxn,…..,(2)
只要证明 Pn(x)的系数 a0,a1,…,a n存在唯一即可为此由插值条件 (1)知 Pn(x)的系数满足下列 n+1个代数方程构成的线性方程组
a0+a1x0+…+a nx0n=f(x0)
a0+a1x1+…+a nx1n= f(x1)
…………………….
a0+a1xn+…+a nxnn= f(xn) ……(3)
2
0 0 0
2
1 1 1
01
2
1,.,
1,.,
V (,,..,,)
..,,.,,.,,.,,.,
1,.,
n
n
n
n
n n n
x x x
x x x
x x x
x x x
1
10
()
ni
ij
ij
xx
而 ai(i=0,1,2,…,n) 的系数行列式是 Vandermonde行列式由于 xi互异,所以 (4)右端不为零,从而方程组
(3)的解 a0,a1,… an 存在且唯一。
通过解上述方程组 (3)求得插值多项式 pn(x)的方法并不可取,这是因为当 n较大时解方程组的计算量较大,
而且方程组系数矩阵的条件数一般较大(可能 是病态方程组),当阶数 n越 高时,病态越重 。
为此我们必须从其它途径来求 Pn(x):
不通过求解方程组而获得插值多项式基本思想,在 n次多项式空间 Pn中找一组合适的基函数
0(x),?1(x),…,?3( x),使
pn(x)=a0?0(x)+a1?1(x)+…+a n?3( x)
不同的基函数的选取导致不同的 插值方法
Lagrange插值
Newton插值
n = 1 使得可见 P1(x) 是过 ( x0,y0 ) 和 ( x1,y1 ) 两点的直线。
)()( 0
01
01
01 xxxx
yyyxP?
+?
10
1
xx
xx
01
0
xx
xx
= y
0 + y1
l0(x) l1(x)
1
0
)(
i
ii yxl
4.3 Lagrange插值求 n 次多项式 使得 n
nn xaxaaxP +++10)(
( ),0,1,,n i iP x y i n
已知 x0,x1 ; y0,y1,求
1 0 1()P x a a x?+ 1 0 0 1 1 1( ),( )P x y P x y使 得
构造基函数
0 1 1 1
0 1 1 1
0
( ) ( ) ( ) ( ) ( )
()
( ) ( ) ( ) ( ) ( )
j j n
j
j j j j j j j n
n
i
i
ji
ij
x x x x x x x x x x
lx
x x x x x x x x x x
x x
xx
+
+
ji
jixl
ij,1
,0)( ( 2)
与 节点 有关,而与 f 无关这里每个 lj(x)都是 n次多项式,且由 (1)式容易验证
lj(x) 满足
j=0,1,…,n ( 1)
对任意的 pn(x)∈P n,
pn(x)=c0 l0(x)+c1 l1(x)+… +cn ln(x)
其中 c0,c1,…,cn 为组合系数
0 0 1 0 0 0 0
0 1 1 1 1 1 1
01
( ) ( ) ( ) ( )
( ) ( ) ( ) ( )
( ) ( ) ( ) ( )
n
n
n n n n n n
l x l x l x c f x
l x l x l x c f x
l x l x l x c f x
可以证明函数组 l0(x),l1(x),…,ln(x) 在插值区间[ a,b] 上线性无关,所以这 n+1个函数可作为 Pn的一组基函数,称为 Lagrange插值基函数
00
11
()1 0 0
()0 1 0
()0 0 1
nn
c f x
c f x
c f x
Lagrange插值基函数满足 (2)式可知,方程组变成因此得到插值多项式
pn(x)= f(x0)l0(x)+f(x1) l1(x)+…+ f(x n) ln(x)
记为 Ln(x)=?f(xj)lj(x)
称 Ln(x)为 n次 Lagrange插值多项式
The mathematician S,had to move to a new
place,His wife didn't trust him very much,so when
they stood down on the street with all their things,
she asked him to watch their ten trunks,while she
got a taxi,Some minutes later she returned,Said
the husband,"I thought you said there were ten
trunks,but I've only counted to nine!"
The wife said,"No,they're TEN!"
"But I have counted them,0,1,2,..."
插值余项 /* Remainder */
定理 4.3.1 若 ( 1 ) ()nfx+ 在 [a,b]内存在,则在 [a,b]上
( 1 )
0
()( ) ( ) ( ) ( )
( 1 ) !
n n
n n i
i
fR x f x L x x x
n
+
+?
的 n+1个互异的点,对 f( x)所作的 n次 Lagrange插值多项式 Ln (x) 有误差估计
Rolle’s Theorem的推论,若 充分光滑,且
0)()( 0 nxx
存在
),( ba
使得 0)()( n
)(x?
证明:由于 Rn(xi) = 0,i=0,1,…,n
( ) () )(
0
n
R x xux xni
i
任意固定 x? xi (i = 0,…,n),考察
00
( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )
nn
n i n i
ii
t R t u x t x f t L t u x t x?
(t)有 n+2 个不同的根 x0… xn x
( 1 ) ( ) 0,(,)n xx ab+
( 1 ) ()
()
( 1 ) !
nf
ux
n
+
+
例,已知
2
3
3s i n,2
1
4s i n,2
1
6s i n
分别利用 sin x 的 1次,2次 Lagrange 插值计算
sin 50?,并估计误差。
解,n = 1 分别利用 x0,x1 以及 x1,x2 计算
4,6 10
xx?利用
2
1
6/4/
6/
2
1
4/6/
4/)(
1
+?
xxxL
0
1
5s i n 5 0 ( ) 0,7 7 6 1 4
18L
( 2 )
1
() 13( ) ( ) ( ),s in
2 ! 6 4 2 2
x
x
fR x x x
1
50.0 131 9 ( ) 0.0 076 2
18R
sin 50?= 0.7660444…
利用 x0,x1 作为插值节点的实际误差0.01001
3,4 21
xx
利用计算得,sin 50 0.76008,
1
50,0 0 5 3 8 0,0 0 6 6 0
18R
利用 x1,x2作为插值节点的实际误差?0.00596
n = 2
4 3 6 3
2
6 4 6 3 4 6 4 3
64
3 6 3 4
( ) ( ) ( ) ( )11
()
( ) ( ) 2 ( ) ( ) 2
( ) ( ) 3
( ) ( ) 2
x x x x
Lx
xx
+?
+?
2
3c o s
2
1;)
3)(4)(6(!3
c o s)(
2
x
x xxxxR
2
50,0 0 0 4 4 0,0 0 0 7 7
18R
sin 50?= 0.7660444…
2次插值的实际误差?0.00061
0
2
5s i n 5 0 ( ) 0,7 6 5 4 3
18L
计算实习,Lagrange Polynomial
1 输入 n,x,y,x* 2 Pai =1.0,Slag =0.0
3 for i=0,1,…,n
3.1 Pai*(x*-xi)→Pai
end for(i)
4 for j=0,1,…,n
4.1 Tai =1.0
4.2 for i=0,1,…,n
4.2.1 if i≠j then
Tai*(xj-xi)→Tai
end if
end for (i)
4.3 Slag +((yj*Pai)/(x*-xj)*Tai)→Slag
end for(j)
5 Slag 6 end
插值节点个数基函数 lj(x)的分母存放在插值点 x*处的计算结果
xi,yi(i=0,1,…,n)
基函数 lj(x)的分子