多项式插值的震荡现象————————————————————————————————作者:————————————————————————————————日期:?第二次作业——多项式插值的振荡现象实验2.1多项式插值的振荡现象问题提出:考虑在一个固定的区间上用插值迫近一个函数。明显Lagrange插值中使用的节点越多,插值多项式的次数就越高。我们自然关怀插值多项式的次数增添时,Ln(x)能否也更为凑近被逼进的函数。设区间[-1,1]上函数1f(x)125x2实验内容:考虑区间[-1,1]的一个等距区分,分点为xi12i,in则拉格郎日插值多项式为nLn(x)i010,1,2,,n,125xi2li(x)此中,li(x),i0,1,2,,n是n次lagrange插值基函数。functiont_charpt2%输入插值结点result=inputdlg({'请输入插值结点数N1:'},'charpt_2',1,{'3'})N1=str2num(char(result));result=inputdlg({'请输入插值结点数N2:'},'charpt_2',1,{'5'})N2=str2num(char(result));result=inputdlg({'请输入插值结点数N3:'},'charpt_2',1,{'10'})N3=str2num(char(result));result=inputdlg({'请输入插值结点数N4:'},'charpt_2',1,{'15'})N4=str2num(char(result));if(N1<1|N2<1|N3<1|N4<1)errordlg('结点输入错误!');return;end%插值结点小于1时错误f=inline('1./(1+25*x.^2)');a=-1;b=1;%
函数fx1=linspace(a,b,N1+1);2=linspace(a,b,N2+1);x3=linspace(a,b,N3+1);x4=linspace(a,b,N4+1);y1=feval(f,x1);y2=feval(f,x2);y3=feval(f,x3);y4=feval(f,x4);x=a:0.1:b;inter1=Lagrange(x1,y1,x);inter2=Lagrange(x2,y2,x);inter3=Lagrainter4=Lagrange(x4,y4,x);%inter1为插值结点为3,inter2为插值结点为5,iter4为插值结点为15fplot(f,[a,b],'-');%画标准函数f的图形nge(x3nter3,y3,x);为插值结点为10,inoldon;plot(x,inter1,'--');plot(x,inter2,'*');plot(x,inter3,'-.');plot(x,inter4,':');%画插值迫近函数legend('f','inter1','inter2','inter3','inter4')xlabel('x');ylabel('y=f(x)oandy=Ln(x)--');%---------------------------------------------------------------functiony=Lagrange(x0,y0,x)n=length(x0);m=length(x);fori=1:mz=x(i);s=0.0;fork=1:np=1.0;forj=1:nif(j~=k)p=p*(z-x0(j))/(x0(k)-x0(j));endends=s+p*y0(k);nd(i)=s;end1图1、函数f(x)125x2的拉格朗日插值多项式结果剖析:多项式插值迫近结果如下图,inter1为插值结点为3,inter2为插值结点为5,inter3为插值结点为10,inter4为插值结点为15。当结点数由3个结点增添为5个结点时,函数图形越凑近,当插值结点增添到10时,曲线圆滑,函数迫近成效在曲线的中间部分(-0.6,0.6)比较好,可是由上图在两个端点处x=-1和x=1邻近时会出此刻与原函数f(x)误差会很大(龙格现象)。能够看出,适合提升插值多项式次数,能够提升迫近的精度,可是太高反而会产生不良的现象。由函数x1x4和g(x)arctanx的拉格郎日插值多项式的迫近结果能够得出h(x)同样的结论。x图2、函数h(x)1x4的拉格郎日插值多项式图3、函数g(x)arctanx拉格郎日插值多项式由上图函数h(x)x的拉格郎日插值多项式和函数g(x)arctanx拉格郎日插值多式x41的拟合图形能够看出,采纳插值多项式时,适合增添插值结点能够提升拟合的精度,可是当插值结点过于大时都会出现龙格现象。