《数值分析Runge插值逼近(共9页).docx》由会员分享,可在线阅读,更多相关《数值分析Runge插值逼近(共9页).docx(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上1. 对Runge函数用在区间-1, 1下列条件作插值逼近,并和的图像进行比较。(1) 用等距节点,h=0.2, 绘出它的10次Newton插值多项式的图像。(2) 用节点(i=0,1,10),绘出它的10次Newton插值多项式的图像。(3) 用等距节点,h=0.2, 绘出它的分段线性插值多项式的图像。(4) 用等距节点,h=0.2, 绘出它的三次自然样条线性插值多项式的图像。解:当x在中间取值范围时,Newton插值曲线与原曲线比较接近,但是当x在两端时,Newton插值曲线与原曲线相差越来越大,出现了Runge现象。插值余项.由插值多项式的唯一性知,因此,牛顿插
2、值与拉格朗日插值有相同的余项表达式,即由此有.牛顿前插公式为.其余项为牛顿后插公式为.其余项为在这里由于x不是等距节点,Lagrange插值曲线与原曲线比较接近,没有出现Runge现象。给定,构造次数不超过的拉格朗日插值多项式.称为关于的次拉格朗日插值多项式,它满足.其中称为为结点的次插值函数,它满足.设是上关于的次插值多项式,在上有阶连续导数,在上存在,则其余项为.分段线性插值函数在区间上是一致收敛的,曲线与原曲线比较接近,不会出现Runge现象,但是需要用分段函数来表示。n越大,分段越多,节点间距越小,分段直线越逼近于原函数曲线;由于在每个节点处,分段线性插值函数都是取该点的原函数的值,故
3、Inx具有很好的收敛性,不会像拉格朗日插值那样出现振荡现象;由于对于x点的插值,分段线性插值只用到x左右的两个节点,并且用直线直接相连,因此分段线性插值在节点处不光滑。三次自然样条插值曲线与原曲线很接近。设为三次样条插值函数,则有估计式, .其中: .可见,当时,三次样条插值函数及其一阶导数、二阶导数分别一致收敛于被插函数、及.在以上四种插值方法中,三次自然样条插值方法得到的曲线与原曲线最相近。拉格朗日插值曲线在节点附近误差很小,曲线也较为光滑,但在端点处有较为明显的振荡现象;分段线性插值曲线具有良好的收敛性,但在节点处不光滑;而三次样条插值曲线在n较小时也会在端点附近有相对较大的误差,但兼具
4、了收敛和光滑的优点,从直观上看与原函数曲线吻合得最好。Matlab程序如下:x0=-1:0.2:1; %初始数据y0=1./(1+25*x0.2);x=-1:0.01:1; %插值点y=1./(1+25*x.2);n=max(size(x0);l=max(size(x);s=1; %一次因子的乘积,预设为1dx=y0; %差商for k=1:l s=1; %一次因子的乘积,预设为1 dx=y0; %差商 yz=y0(1);for i=1:n-1 dx0=dx; for j=1:n-i dx(j)=(dx0(j+1)-dx0(j)/(x0(i+j)-x0(j); end df=dx(1); s=
5、s*(x(k)-x0(i); %一次因子乘积 yz=yz+s*df; %计算各次Newton插值的值 end yx(k)=yzend figure;plot(x,yx,r,LineWidth,2);hold on;plot(x,y,b,LineWidth,2);grid on;plot(x0,y0,ok,markersize,6,LineWidth,6)hold ontitle(Newton插值曲线与原曲线比较,fontsize,24);xlabel(x轴,fontsize,20);ylabel(y轴,fontsize,20);legend(Newton插值曲线,原曲线:1/(1+25*x2)
6、;set(gca,fontsize,16)i=1:11x0=cos(2*i-1)/22*pi)y0=1./(1+25*x0.2);x=-1:0.01:1; %插值计算点y=1./(1+25*x.2);m=length(x);n=11;for k=1:m %分别对每一点进行插值 tx=x(k);%插值点 s=0; %进入迭代计算过程 for j=0:(n-1) t=1; for i=0:(n-1) if i=j t=t*(tx-x0(i+1)/(x0(j+1)-x0(i+1); end end s=s+t*y0(j+1); end yx(k)=s;end%画图显示结果figure;plot(x,
7、yx,r,LineWidth,2);hold on;plot(x,y,b,LineWidth,2);grid on;plot(x0,y0,ok,markersize,6,LineWidth,6)hold ontitle(Lagrange插值曲线与原曲线比较,fontsize,24);xlabel(x轴,fontsize,20);ylabel(y轴,fontsize,20);legend(Lagrange插值曲线,原曲线:1/(1+25*x2);set(gca,fontsize,16)x0=-1:0.2:1y0=1./(1+25*x0.2);x=-1:0.01:1; %插值计算点y=1./(1+
8、25*x.2);m=length(x);n=length(x0);for j=1:mfor i=1:n-1 if (x(j)=x0(i)&(x(j)=x0(i+1) yx(j)=(x(j)-x0(i+1)/(x0(i)-x0(i+1)*y0(i)+(x(j)-x0(i)/(x0(i+1)-x0(i)*y0(i+1); endendendfigure;plot(x,yx,r,LineWidth,2);hold on;plot(x,y,b,LineWidth,2);grid on;plot(x0,y0,ok,markersize,6,LineWidth,6)hold ontitle(分段线性插值曲
9、线与原曲线比较,fontsize,24);xlabel(x轴,fontsize,20);ylabel(y轴,fontsize,20);legend(分段线性插值曲线,原曲线:1/(1+25*x2);set(gca,fontsize,16)x0=-1:0.2:1;%节点y0=1./(1+25*x0.2);x=-1:0.01:1; %插值计算点y=1./(1+25*x.2);yx=csape(x0,y0,second);figure;plot(x,fnval(yx,x),r,LineWidth,2); hold on;plot(x,y,b,LineWidth,2);grid on;plot(x0,y0,ok,markersize,6,LineWidth,6)hold ontitle(三次样条插值曲线与原曲线比较,fontsize,24);xlabel(x轴,fontsize,20);ylabel(y轴,fontsize,20);legend(三次样条插值曲线,原曲线:1/(1+25*x2);set(gca,fontsize,16)专心-专注-专业