资源描述:
《数值分析实验题和程序报告》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、数值分析实验题和程序实验2・1多项式插值的振荡现象问题提出:考虑在一个固定的区间上用插值逼近一个函数。显然Lagrange插值屮使用的节点越多,插值多项式的次数就越高。我们H然关心插值多项的次数增加时,厶(兀)是否也更加靠近被逼近的函数。Runge给出的一个例子是极著名并富有启发性的。设区间[-1,1]上两数几力=1+25疋实验内容:考虑区间[-1,1]的一个等距划分,分点为2)Xj=—1—,i=0」,2,•••,兀n则拉格朗日插值多项式为/=0其中,I(兀),i=0丄2,…,〃是n次Lagrange插值基函数。实验要求:(1)
2、选择不断增大的分点数目〃=2,3,…画出原函数/(x)及插值多项式函数乙(兀)在[-1,1]上的图像,比较并分析实验结果。(2)选择其他的函数,例如定义在区间[-5,5]±的函数Xh(x)=,g(x)=arctanx1+x重复上述的实验,看其结果如何。1>实验MATLAB程序functioncharpt2_I%数值实验2.1:多项式插值的震荡现彖%输入:函数式选择,插值节点数%输出:拟合函数及原函数的图形promps={选择实验函数,若选f(x),输入f,若选h(x),输入h,若选g(x),输入g:'};result=input
3、dlg(promps/charpt2_TJ,{T});Nb_f=char(result);if(Nb_f〜=f&Nb_f〜二h&Nb_f〜=g)errordlgC实验函数选择错误!');return;endresult=inputdlg({*iff输入第一幅图插值节点数N>=2:};charpt2_r,l,{'2'});Nd0=str2num(char(result));if(NdO<2)errordig('节点数输入错误!’);return;endresult=inputdlg(「请输入两幅图间插值节点数差值D:'},‘cha
4、rpt2_l;1,{T});D=str2num(char(result));switchNb_fcaseff=inlineCl./(l+25*x.A2)*);a=-l;b=1;casehf=in!ine(,x./(l+x.A4),);a=-5;b=5;casegf=inline(atan(x)');a=-5;b=5;endfori=l:6Nd=NdO+(i-l).*D;xO=linspace(a,b,Nd+1);yO=feval(f,x());x=a:0.()l:b;y=Lagrange(xO,yO,x);subplot(2,3
5、3);plot(xO,yO,'*');holdon;fplot(f,[a,b];k');holdon;plot(x,y,卜〕);sl=x(节点数N=:s2=num2str(Nd);s3=)*;s=[sls2s3J;xlabel(s);ylabel('y=f(x)-andy=Ln(x)—');end%Lagrange插值畅数functiony=Lagrange(xO,yO,x)n=length(xO);m=lcngth(x);fori=l:mz=x(i);s=0.0;fork=l:np二1.0;forj=l:nif(j〜=k)p=
6、p*(z-x0(j))/(x0(k)-x0(j));endends=s+p*yO(k);endy(i)=s;end2、实验结果・・(M)U1Lpu・・(M=・x・・(M)U1Lpm?亘e图1-1函数f(x)对应的Lagrange插值函数图形(节点数2~7)505.ae丄J05Lpu・・(m•050051x(节点数tO9〉・*)5Lpu・・(m450OSx(帑点JtN«8)-1450OSx《节点数N=11)「•2.3丄M)5L-05005x〈节点数N=12)•05•1060051x<^A«N«10)•05005x<节点数N=13)
7、1得到的拟合插值多项对于函数h(x),当选择的分点数冃不断增大吋,式函数图形如图1-3和图1-4所示。155•o丄m)5lpu・・50x(节点WN»5)10x(节图1-3函数h(x)对应的Lagrange插值函数图形(节点数2〜7)・・(m)5lpu・・«.l-O0x(节点数N=8〉・・S5Lpu・•(■=」05x(节点«N=9>±m)5lpufo(m)ex(节点数N=10)05x(节点数N=11)6av丄mxhlPS・亘JI丄・xntPS・3JL0x(节N=12)丄mxhlpue•(n0x(节点数N=13)x〈节点数N=2》5
8、05o0x〈节点WN-5)50丄JcczPCHAx(节点ttN=6)x(节点針N・7)图1-5函数g(x)对应的Lagrange插佢函数图形(节点数2~7)x(节