Professional Documents
Culture Documents
(Muchong Com) NA002b
(Muchong Com) NA002b
Lagrange 插值虽然易算,但若要增加一个节点时,
全部基函数 li(x) 都需重新算过。
c ? c ?( x x ) c ?( x x )( x x )
将 Ln(x) 改写成0 1 0 2 0 1
f [ xi , x j ] f [ x j , xk ]
f [ xi , x j , xk ] (i k ) 2 阶差商
xi xk
§3 Newton’s Interpolation
(k+1) 阶差商:
f [ x0 , x1 , ... , xk ] f [ x1 , ... , xk , xk 1 ]
f [ x0 , ... , xk 1 ]
x 0 x k 1
f [ x0 , ... , xk 1 , xk ] f [ x0 , ... , xk 1 , xk 1 ]
x k x k 1
差商性质:
1). k 阶差商可表为函数值 f ( x0 ), f ( x1 ), , f ( x k )的线性组合,即
k f (xj ) k f (xj )
f [ x0 , , x k ]
j 0 ( x j x 0 ) ( x j x j 1 )( x j x j 1 ) ( x j x k ) j 0 k
1 ( x j )
2). 差商具有对称性,即
f [ x0 , x1 ,, x k ] f [ x1 , x0 , x2 , xk ] f [ x1 ,, xk , x0 ]
3). 若f (x ) 在 [a , b] 上有n 阶导数 , 且节点x i [a , b](i 0,1, n),
则 n阶差商与 n阶导数有如下关系式:
f ( )
(n)
f [ x 0 , x1 , x n ] [a , b ]
n!
4). 若 f (x ) 是 n 次多项式,则其 k阶差商 f [ x0 , x1 , x k 1 , x ]
当 k n 时是一个 n k次多项式,而当 k n 时恒为零 .
§3 Newton’s Interpolation
差商计算可列差商表如下
xi f ( xi ) 一阶差商 f二阶差商 (x ) f (x )
1
x x
0 三阶差商
x0
1 0
f ( xf () x0 f) ( x )
3 2
f (x ) f (x )
2 1 f [ x1 , x 2 ] f [ x0 , x1 ]
x x x 2 x0
x1 x x
f ( x1 )
3 2
f [ x0 , x1 ]
2 1
f [ x 2 , x 3 ] f [ x1 , x 2 ]
x2 f ( x2 ) f [ x1 , x2 ] f [ x0 , x1 , x2 ] x 3 x1
x3 f ( x3 ) f [ x2 , x3 ] f [ x1 , x2 , x3 ] f [ x0 , x1 , x2 , x3 ]
f ( x1 , x 2 , x 3 ) f ( x0 , x1 , x 2 )
x 3 x0
§3 Newton’s Interpolation
Newton 插值是通过选取特殊的基函数来实现的,这时,取
0 ( x) 1 f ( x1 ) N n ( x1 ) c0 c1 ( x1 x0 )
i 1 ( x ) ( x x i ) i( fx( x),0 )i x1 ,1x,
c1 ( 0 0) ,n 1
0 ) N n (插值的以
x 0 ) c0 x , 得
f ( xNewton f (x ) f (x )
作为 , x n1为节点的基函数,而次数
0 x1c1
0
f [ x0 , x1 ]
x1 x0
不超过 n的多项式 N n (x )可表示为
N n ( x ) c0 c1 ( x x0 ) c2 ( x x0 )( x x1 )
cn ( x x0 )( x x1 )( x xn1 )
其中 c0 , c1 , , c n 是待定系数,由插值条件 (2.1)决定。
§3 Newton’s Interpolation
通过插值条件运用数学归纳法可以求得
c k f [ x 0 , x1 , , x k ]
因此就得到下列的满足插值条件 (2.1) 的 n 次插值多项
式
N n ( x ) f ( x0 ) f [ x0 , x1 ]( x x0 )
f [ x0 , x1 , x 2 ]( x x0 )( x x1 )
f [ x0 , x1, , x n ]( x x0 )( x x1 ) ( x x n 1 )
§3 Newton’s Interpolation
N n ( x ) c0 c1 ( x x0 ) c2 ( x x0 )( x x1 ) cn ( x x0 )( x x n1 )
f ( x ) f ( x0 ) ( x x0 ) f [ x , x0 ] 1
f [ x , x0 ] f [ x0 , x1 ] ( x x1 ) f [ x , x0 , x1 ] 2
…………
f [ x , x0 , ... , x n1 ] f [ x0 , ... , x n ] ( x x n ) f [ x , x0 , ... , x n ] n1
f ( x ) f ( x0 ) f [ x0 , x1 ]( x x0 ) f [ x0 , x1 , x 2 ]( x x0 )( x x1 ) ...
f [ x0 , ... , x n ]( x x0 )...( x x n1 )
f [ x , x0 , ... , x n ]( x x0 )...( x x n1 )( x x n )
Nn(x) ci = f [ x0, …, xi ]
Rn(x)
§3 Newton’s Interpolation
解: xk f ( xk ) 一阶 二阶 三阶
0.40 0.41075
0.55 0.57815 1.11600
0.65 0.69675 1.18600 0.28000
0.80 0.88811 1.27573 0.35893 0.19733
f (0.596) 0.62836
§3 Newton’s Interpolation
向前差分 f i f i 1 f i
/* forward diffe
rence */ k f i ( k 1 f i ) k 1 f i 1 k 1 f i
向后差分 f i f i f i1
/* backward dif
ference */ k
fi k 1
f i k 1
f i 1
中心差分 k f i k 1 f i k 1 f i
1 1
/* centered diff 2 2
其中 f f ( x )
h
erence */ i 2
1 i 2
差分值可由函数值算出:
n
n n
n
f k ( 1)
n j
f n k j fk (1)
n n j
f k j n
j0 j j 0 j
n n( n 1)...(n j 1)
其中
j! /* binomial coefficients */
j
n
函数值可由差分值算出: f n k nj f k
j
j 0
k f 0 由 Rn 表达
f [ x0 , ... , x k ] 归
k! hk
k f n 纳 式 k
f0
f [ xn , xn 1 , ... , xn k ] ( )
法
(k )
k f
k! h h
k
§3 Newton’s Interpolation
使用 Newton 前插或后插公式,先构造差分表如下 :
xk f ( xk ) yk 2 yk 3 yk 4 yk
x0 y0
y0
x1 y1 y0
2
x2 y1 y0
3
y2 y1
2
y2
x3 y3
§3 Newton’s Interpolation
t ( t 1) 2
N 2 (0.57891) f 0 tf 0 f0
2!
(0.2109)( 0.2109 1)
0.56464 ( 0.2109) 0.08521 ( 0.00480)
2
0.54707
误差
0.13
R2 ( x ) ( 0.2109)( 0.2109 1)( 0.2109 2)( cos ), (0.4 0.6)
3!
故
R2 ( x ) 4.57 10 5
§4 埃尔米特插值 /* Hermite Interpolation */
不仅要求函数值重合,而且要求若干阶导数也重合。
即:要求插值函数 (x) 满足 (xi) = f (xi), ’ (xi) = f ’ (xi),
…, (mi) (xi) = f (mi) (xi).
( x x 0 ) ( m 1 )
0
( m0 1)!
§4 Hermite Interpolation
低次埃尔米特插值多项式
1. 二点三次埃尔米特插值多项式
设给定区间 [ x0 , x1 ]两端点处的函数值与导数值如下:
x x0 x1
f (x ) y0 y1
f ' ( x) m0 m1
求插值多项式 H 3 ( x) , 使满足
H 3 ( x 0 ) y0 , H 3 ( x1 ) y1
H 3 ' ( x 0 ) m 0 , H 3 ' ( x1 ) m1
由于给出了四个条件,故可唯一确定出一个三次多项式,
不妨设
H 3 ( x ) 0 ( x ) y0 1 ( x ) y1 0 ( x )m0 1 ( x )m1
§4 Hermite Interpolation
因此问题归结为构造
0 ( x )与 0 ( x ), 1 ( x )与 1 ( x )
首先, 0 ( x )与 0 ( x ), 1 ( x )与 1 ( x ) 应该为三次式。
再者,由插值条件易知 i ( x j ), i ( x j ) i , j 1,2 应该满足条件
1 i j
(
i j x ) ij i j
'i ( x j ) 0 ( i , j 0,1)
0
1 i j
i ( x j ) 0 'i ( x j ) ij
0 i j
取
2
x xj
l i(x )
2 , ( i , j 0,1; i j )
x x
i j
§4 Hermite Interpolation
令
i ( x ) ( a i x bi )l i2 ( x )
i ( x ) c i ( x x i )l i2 ( x ) , i 0,1 ;
其中a i , bi , c i为待定系数,由 0( x0 ) 1, 0( x0 ) 0知 a0 ,b0
满足
a0 x0 b0 1
a0 2( a0 x0 b0 )l 0 ' ( x0 ) 0
解之得
1
a 0 2l 0 ' ( x 0 ) 2
x 0 x1
1
b0 1 2 x 0 l 0 ' ( x 0 ) 1 2 x 0
x 0 x1
§4 Hermite Interpolation
故 x x0 x x1 2
0 ( x ) (1 2 )( )
x0 x1 x0 x1
类似可以求得
x x1 x x0 2
1 ( x ) (1 2 )( ),
x1 x0 x1 x0
x x1 2 x x0 2
0 ( x ) ( x x0 )( ) , 1 ( x ) ( x x1 )( )
x0 x1 x1 x0
于是
x x0 2 x x1 2
H 3 ( x ) y0 (1 2 ) l 0 ( x ) y1 (1 2 ) l1 ( x )
x0 x1 x1 x0
m0 ( x x0 )l 02 ( x ) m1 ( x x1 )l12 ( x )
注: α
i
i (x) 1 (特别的, f(x)=1 )
§4 Hermite Interpolation
2. 三点三次带一个导数值的插值多项式
假设给定的函数表如下:
x x0 x1 x2
f (x ) y0 y1 y2
f ' ( x) m1
要求三次多项式 H 3 ( x) , 使
H 3 ( xi ) yi
(i 0,1,2)
H 3 ( x1 ) m1
利用满足三个条件的 Newton 插值多项式,我们设
H 3 ( x ) y0 f [ x0 , x1 ]( x x0 ) f [ x0 , x1 , x 2 ]( x x0 )( x x1 )
k ( x x0 )( x x1 )( x x 2 )
§4 Hermite Interpolation
其中 k为待定系数,显然 H 3 ( x) 满足前三个插值条件,
利用第四个条件确定常数 k ,于是
H 3 ' ( x1 ) f [ x0 , x1 ] f [ x0 , x1 , x 2 ]( x1 x0 )
k ( x1 x0 )( x 2 x1 ) m1
m1 f [ x0 , x1 ] f [ x0 , x1 , x 2 ]( x1 x0 )
k
( x0 x1 )( x1 x 2 )
将其代入,即可得到 H 3 ( x)的表达式 :
H 3 ( x ) y0 f [ x0 , x1 ]( x x0 ) f [ x0 , x1 , x 2 ]( x x0 )( x x1 )
m1 f [ x0 , x1 ] f [ x0 , x1 , x 2 ]( x1 x0 )
( x x0 )( x x1 )( x x 2 )
( x0 x1 )( x1 x 2 )
§4 Hermite Interpolation
由余下条件 α i(xi) = 1 和 αi’(xi) = 0 可解 Ai 和 Bi
( x ) [1 2l ( x )( x x )] l 2 ( x )
i i i i i
y y
1-
斜率 =
1-
0.5 - 1
0.5-
0 1 2 3 4 5 6 x
-
0 1 2 3 4 5 6 x
HW: p.50
#10 , #11 ,
§5 分段低次插值 /* piecewise polynomial approximation *
/在区间[a , b] 上用插值多项式Pn ( x ) 近似函数f ( x ) ,是否Pn ( x ) 的
次数越高,逼近效果越好呢,回答是否定的。由于次数越高
计算工作量也越大,积累误差也越大;在整个区间上作个高
次多项式,当局部插值节点的值有微小误差时,就可能引起
整个区间上函数值的较大变化,使计算不稳定。
1
例:在 [5, 5] 上考察f ( x )
1 x2
的
xi 5 10 i ( i 0, ... , n)
n
Ln(x)2.5。取 Remember what I have said?
2
(x)
f (x)
Lnpolynomial
Increasing the degree of interpolating
will NOT guarantee a good result,
1.5 since high-degree polynomials are
oscillating.
1
n 越大,
0.5
端点附近抖动
0
越大,称为
Runge 现象
-0.5
-5 -4 -3 -2 -1 0 1 2 3 4 5
§5 piecewise polynomial approximation
分段低次插值
分段线性插值 /* piecewise linear interpolation
*/ 所谓的分段线性插值就是通过插值点用折线段连接起来
a x0 x1 xn b 上函数值f 0 , f1 , , f n ,
逼近 f ( x ) . 设已知节点
记
hk xk 1 xk , h max hk
k
求一折线函数 I h ( x )满足
(1) I h ( x ) C [a , b],
( 2) I h ( xk ) f k ( k 0,1, , n)
( 3) I h ( x ) 在每个小区间[ xk , xk 1 ]上都是线性函数。
则称 I h ( x )为分段线性插值函数。
设
n
I h ( x ) f k lk ( x )
k 0
§5 piecewise polynomial approximation
根据两点三次插值多项式。可知,在区间 [ xk , xk 1上的
] I h (x )
表达式为
x xk 1 2 x xk
Ih ( x) ( ) (1 2 ) fk
x k xk 1 xk 1 xk
x xk 2 x xk 1
( ) (1 2 ) f k 1
x k 1 xk xk xk 1
x xk 1 2
( ) ( x xk ) f 'k
x k xk 1
x xk 2
( ) ( x xk 1 ) f ' k 1
x k 1 xk
§5 piecewise polynomial approximation
x x
2
x xk
于是: k 1
1 2 x [ x k 1 , x k ]
x k x k 1 x k 1 x k
x x
2
x xk
k ( x ) k 1
1 2 x [ x k , x k 1 ]
kx x x x
k 1 k 1 k
0 else
x x
2
k 1
x x k x [ x kHow
1 , x k ]
can we make a
x k x k 1 smooth interpolation
2
k ( x ) x x k 1 x x x [ x without, x ]
asking too
x k x k 1
k k k 1
much from f ?
Headache …
0 else
导数一般不易得到。