切比雪夫多项式的应用

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
切比雪夫多项式的性质及插值法逼近
学号:102111017 专业:计算数学 姓名:余娟
一、切比雪夫多项式的性质: 切比雪夫多项式的性质: 切比雪夫 (Chebyshev) 多项式为 n 次代数多项式, 定义为 Tn ( x) = cos(n arccos x) 其中
− 1 ≤ x ≤ 1 令 θ = arccos x ,
图4 e
−x
sin(2πx) 及其近似多项式的图像
Matlab 编程的主要算法为:
(1) 指定 n 次拉格朗日插值多项式进行函数逼近; (2) 由公式 x k = cos
2k + 1 π , k = 0,1,2, 2n + 2 夫点的函数值;
n 生成 n + 1 个切比雪夫点,并计算切比雪
(3) 给定 t = linspace(−1,1,100000) 求出原函数的值和用 n + 1 个切比雪夫点生成的 n 次拉格朗日插值多项式的函数值; (4) 绘出原函数和切比雪夫插值法实现的 n 次拉格朗日插值逼近多项式的函数图 象,进行比较. 通过翻阅参考文献和实际演练,我认识到使用切比雪夫插值法对插值节点寻优, 利用正交切比雪夫多项式的性质,进行函数最佳逼近,可以有效地提高精度,此外, 此方法实现的算法简单,当 n → +∞ 时,误差无限接近于 0.
1
2.5
0.8
2
0.6 0.4 0.2 0 -0.2 -0.4 -0.6
-1 1.5 1 0.5 0 -0.5
-0.8 -1 -1
-1.5 -1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
图3
sin(5πx) 及其近似多项式的图像
在区间 [− 1,1] 上带权 ω ( x) =
1 1− x2
正交.
因此切比雪夫多项式系 {Tn ( x)}(n = 0,1, ) 是正交多项式系 . 又由于 cos nθ 在 [0, π ] 内有
2k + 1 π , k = 0 ,1 , 2 , n − 1 可知 Tn ( x) 在 [− 1,1] 内有 n 个不同的 2n 2k + 1 实根,它们是 x k = cos (1 ) π , k = 0,1,2, n − 1 2n
n 个零点,即 θ =
由三角恒等式 cos(n + 1)θ + cos(n − 1)θ = 2 cos nθ cos θ
T0 ( x) = 1, T1 ( x) = x n −1 可得递推关系式 另外 Tn ( x) 的最高次幂 x n 的系数为 2 . Tn +1 ( x) = 2 xTn ( x) − Tn −1 ( x)
插值多项式的余项极小化 插值多项式的余项极小化: 多项式的余项极小化:
( x − xn ) = ∏ ( x − x j )
j =0
要使拉格朗日插值多项式 Ln ( x) 尽量逼近 f ( x) , 就要使余项 Rn ( x) 尽量小。 在 Rn ( x) 中, f ( x) 是固定的,而 ξ x 又是未知数,所以要减小 Rn ( x) ,只有恰当选择节点集,使 得在插值区间内余项的最大值为极小值。为了应用切比雪夫多项式,首先应将插值区 1 间 [a, b], 通过简单变换归一化到区间 [−1,1], 做变换 z k = [(b − a) x k + b + a] 所以插值节 2 1 2k + 1 点应取为 z k = [(b − a) cos π + b + a ], 其中, k = 0,1,2, n − 1 所以下面我们只需要 2 2n + 2 讨论区间 [−1,1] 上的函数的切比雪夫插值法: 当取定第一类切比雪夫点
n ≠ m, 0, 1 T ( x )T ( x ) π n 则有 ∫ m dx = ∫ cos mθ cos nθdθ = π , n = m = 0, −1 0 1− x2 π , n = m > 0. 2
所以 Tn ( x) = cos(n arccos x) , n = 0,1,2,
二、切比雪夫多项式插值法: 切比雪夫多项式插值法: 定理:设 x0 , x1 ,
, x n 为区间 [a, b] 上 n + 1 个互不相同的点, f ( x) ∈ C n +1 [a, b] ,则对
任何 x ∈ [a, b], 存在 ξ x ∈ [ x0 , x1 , 满足
, x n , x] ,使得拉格朗日插值余项 Rn ( x) = f ( x) − Ln ( x)
>> k=0:1:10; >> X=cos((2*k+1)*pi/22); >> %求出 10 次切比雪夫多项式的零点 syms x >> F=inline('x.^20'); >> %要插值的原函数 f(x)=x.^20 >> t=linspace(-1,1,100000); >> yt=F(t); y=F(X); yi=interp1(X,y,t,'language'); plot(t,yt,'r--',t,yi,'k-')
n +1
则有 max | ( x) | ,
Rn ( x) max | ( x) | 1 M n +1 , 故切比雪 |= ≤ n M n +1 (n + 1)! 2 (n + 1)!
夫插值法可以使得余项的最大值极小化,得到较佳逼近多项式.
三、切比雪夫插值法举例: 切比雪夫插值法举例: 对于连续函数 f ( x) = x 2 + 2 x + 1 , 按照切比雪夫插值法求其三次拉格朗日插值多项 式 L3 ( x) ,本文算例的计算程序采用 MATLAB 编写绘出函数 f ( x) = x 2 + 2 x + 1 的图像 及其近似拉格朗日多项式的图像如图所示:
附录: (程序)
>> k=0:1:3; X=cos((2*k+1)*pi/8); %求出三次切比雪夫多项式的零点 syms x F=inline(x.^2+2*x+1); %要插值的原函数 f(x)=x.^2+2*x+1 t=linspace(-1,1,100000); yt=F(t); y=F(X); yi=interp1(X,y,t,'language'); plot(t,yt,'r--',t,yi,'k-') text(-0.8,0.3,'\rightarrowL3(x)') text(0.4,1.8,'\leftarrowf(x)')
x k = cos
2k + 1 π , k = 0,1,2, 2n + 2
n
n
后, ω n ( x) = ( x − x 0 )( x − x1 )
( x − x n ) = ∏ ( x − x j ) = 2 − n Tn +1 ( x) ,
j =0
令 M n +1 = max | f
−1≤ x ≤1
4 3.5 3 2.5 2
←f(x)
1.5 1 0.5
→L3(x)
0 -1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1
对于连续函数 g ( x) = x 20 , e x , sin(5πx), e − x sin(2πx) ,分别绘出 n = 10,13,20,21 次拉格朗日 插值多项式 Ln ( x) 的图像和原函数的图像如图 1-4 所示
Rn ( x ) =
1 f ( n +1) (ξ x )ω n ( x) (n + 1)!
其中
[ x0 , x1 , , x n , x] = [min{x0 , x n , x}, max{x0 ,
n
x n , x}] ⊂ [a, b] ,
ω n ( x) = ( x − x 0 )( x − x1 )
1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 -1 0 -1 1 1.5 2.5 3
2
0.5
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
图1
x 20 及其近似多项式的图像
图2
e x 及其近似多项式的图像
>> k=0:1:21; X=cos((2*k+1)*pi/44); syms x F=inline('exp(-x).*sin(2*pi*x)'); >> %要插值的原函数 f(x)=exp(-x)*sin(2*pi*x) t=linspace(-1,1,100000); yt=F(t); y=F(X); yi=interp1(X,y,t,'language'); plot(t,yt,'r--',t,yi,'k-')
k=0:1:20; X=cos((2*k+1)*pi/42); syms x >> F=inline('sin(5*pi*x)'); %要插值的原函数 f(x)=sin(5*pi*x) t=linspace(-1,1,100000); yt=F(t); y=F(X); yi=interp1(X,y,t,'language'); plot(t,yt,'r--',t,yi,'k-')
>> k=0:1:13; >> X=cos((2*k+1)*pi/28); >> syms x >> F=inline('exp(x)'); >> %要插值的原函数 f(x)=exp(x) >> t=linspace(-1,1,100000); >> yt=F(t); y=F(X); yi=interp1(X,y,t,'language'); plot(t,yt,'r--',t,yi,'k-')
相关文档
最新文档