第6章 实验五插值多项式的误差
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第6章 实验五插值多项式的误差
实验目的:明确插值多项式逼近函数是有误差的,了解误差的分布,哪些地方误差大些,哪些地方误差小些。我们应该如何控制这些误差。
6.1 插值误差余项多项式
举例说明多项式插值误差情况,用ππ≤≤-x 上的5个等距点对函数
)cos(x y =进行插值估计,插值多项式是通过以下给定的数据点的四次多项式:
⎥⎦⎤⎢⎣
⎡
--=ππππ,2,0,2,x
[])sin(),2/sin(),0sin(),2/sin(),sin(ππππ--=y
误差定义为:
)()cos()(4x L x x e -=
),())(cos(!
5)
)(2/)(0)(2/)(()
5(ππξξππππ-∈---++=
x x x x x
其中)(x e 是插值余项,)(4x L 是5个数据点的拉格朗日插值多项式。图6.1是函数和误差的图形,可以观察到误差曲线是震荡的,它的值在接近端点的区间上最大,这种误差特性在等距多项式插值中十分典型,误差分布形状上的变化还取决于被插函数的性质及插值区间的大小a b -。
-0.8-0.6-0.4-0.20.20.40.60.8x
c o s (x ) e (x )
图6.1 函数和误差曲线的图形
清单6.1 (是作图6.1的程序)
clear clc
x=[-pi,-pi/2,0,pi/2,pi]; % 插值节点横坐标 y=[cos(-pi),cos(pi/2),cos(0),cos(pi/2),cos(pi)]; % 插值节点纵坐标 x1=-pi:0.001:pi; % 绘图点的横坐标 y1=Lagran_(x,y,x1); % 绘图点的纵坐标 e=cos(x1)-y1; % 插值误差 y2=e;
plot(x,cos(x),'.',x1,cos(x1),'b',x1,y2,'r') % 绘出两个函数曲线图形 xlabel('x');ylabel('cos(x) e(x)') text(1.2,0.6,'cos(x)','fontsize',18) text(-1.1,-0.1,'e(x)=cos(x)-y','fontsize',18)
一般分析插值的误差:
),()
()!
1()())(()(11)
1(121+++∈+---=
n n n x x f n x x x x x x x R ξξ
)(m a x )!
1()
())(()()1(),(12111ξξ+∈+++---≤
n x x n f n x x x x x x x R n 如果当被插值)(x f 是一个n 阶或更低阶多项式,则)(x R =0,即误差为零。否则,右端给出了对任意x 的误差上界估计,右端的分布完全由)(x g 决定,
)!
1()())(()(121+---=
+n x x x x x x x g n
多项式函数)(x g 分布曲线由程序清单6.2给出,分布图形由图6.2(a )、(b )、(c )、(d )分别给出。
清单6.2
clear,clf,hold on x=-pi:pi/2:pi;
f=(x+pi).*(x+pi/2).*(x-0).*(x-pi/2).*(x-pi)./120;
x1=-pi:0.01:pi;
y2=1/30.*(x1+pi).*(x1+pi/2).*(x1-0).*(x1-pi/2).*(x1-pi)./120; axis([-pi,pi,-0.01,0.01]);
subplot(2,2,1),plot(x,f,'.',x1,y2,'r'),title('(a)')
xlabel('x');ylabel('1/30*g(x)');
xp=-pi:pi/4:0;
f1=(xp+pi).*(xp+3*pi/4).*(xp+pi/2).*(xp+pi/4).*(xp-0)./120;
xp1=-pi:0.01:0;
yp1=(xp1+pi).*(xp1+3*pi/4).*(xp1+pi/2).*(xp1+pi/4).*(xp1-0)./120; axis([-pi,pi,-0.01,0.01]);
subplot(2,2,2),plot(xp,f1,'.',xp1,yp1,'r'),title('(b)')
xlabel('x');ylabel('g(x)');
xq=-pi:pi/4:pi;
fq=(xq+pi).*(xq+3*pi/4).*(xq+pi/2).*(xq+pi/4).*(xq-0).*(xq-pi/4). *(xq-pi/2).*(xq-3*pi/4).*(xq-pi)./362880;
xq1=-pi:0.01:pi;
yq2=5*(xq1+pi).*(xq1+3*pi/4).*(xq1+pi/2).*(xq1+pi/4).*(xq1-0).*(x q1-pi/4)...
.*(xq1-pi/2).*(xq1-3*pi/4).*(xq1-pi)./362880;
axis([-pi,pi,-0.01,0.01]);
subplot(2,2,3),plot(xq,fq,'.',xq1,yq2,'r'),title('(c)')
xlabel('x');ylabel('5*g(x)');
xr = [-3.0939 -2.7207 -2.0194 -1.0745 0.0000 1.0745 2.0194 2.7207 3.0939];
fr=(xr+3.0939).*(xr+2.7207).*(xr+2.0194).*(xr+1.0745).*(xr-0).*(x r-1.0745).*(xr-2.0194).*(xr-2.7207).*(xr-3.0939)./362880;
x1=-pi:0.001:pi;
yy=20*(x1+3.0939).*(x1+2.7207).*(x1+2.0194).*(x1+1.0745).*(x1-0).