资源描述:
《清华大学数学实验报告1》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、数学实验报告1插值与数值积分电13苗键强2011010645一、实验目的1.掌握用MATLAB计算拉格朗日、分段线性、三次样条三种插值的方法,改变结点的数目,对三种插值结果进行初步分析。2.掌握用MATLAB及梯形公式、辛普森公式计算数值积分。3.通过实例学习用插值和数值积分解决实际问题。二、实验内容题目1考虑函数fx=11+x2,xϵ[-5,5]Q1:取不同的节点数目分别用Lagrange插值、分段线性、三次插值以及三次样条插值近似f(x),分析插值效果。Q2:选取非均匀插值节点,xk=5cos2k-12nπ,i=1,2···,n尝试进行插值,并分析插值
2、效果。Q1:【分析与解】对于xϵ[-5,5],可以通过n个节点先将其均分为n-1段,根据fx以及相应的x得到相应的y,在确定插值的节点(xk,yk),从而在matlab中通过Lagrange插值、分段线性、三次插值以及三次样条插值进行相应的插值。其公式分别为:Lagrange插值:Ln=i=0nyili,其中li=(x-x0)(x-x1)…(x-xi-1)(x-xi+1)……(x-xn)(xi-x0)(xi-x1)…(xi-xi-1)(xi-xi+1)……(xi-xn)分段线性:Ln=i=0nyili,其中:li=x-xj-1xj-xj-1,(xj-13、4、0;fork=1:np=1;forj=1:nifj~=kp=p*(z-x0(j))/(x0(k)-x0(j));endends=p*y0(k)+s;endy(i)=s;end而对于其他插值方法,直接调用其相应的插值函数。用matlab做以上4种方法的插值计算,进行比较,编程如下:x0=linspace(-5,5,5);y0=1./(1+x0.^2);x=-5:0.1:5;y=1./(1+x.^2);y1=lagr(x0,y0,x);y2=interp1(x0,y0,x);y3=spline(x0,y0,x);y4=interp1(x0,y0,x,'cubi
5、c');fork=1:11xx(k)=x(46+5*k);yy(k)=y(46+5*k);yy1(k)=y1(46+5*k);yy2(k)=y2(46+5*k);yy3(k)=y3(46+5*k);yy4(k)=y4(46+5*k);end[xx',yy',yy1',yy2',yy3',yy4'];plot(x,y,x,y1)pauseplot(x,y,x,y2)pauseplot(x,y,x,y3)pauseplot(x,y,x,y4)从而得到了以下数据(下表中从左往右依次为x,y实际值,Lagrange插值、分段线性、三次样条插值以及分段三次插值得到的
6、值):2.取节点数目n=10,重复以上步骤可得以下数据(下表中从左往右依次为x,y实际值,Lagrange插值、分段线性、三次样条插值以及分段三次插值得到的值):3.取节点数目n=20,重复以上步骤可得以下数据(下表中从左往右依次为x,y实际值,Lagrange插值、分段线性、三次样条插值以及分段三次插值得到的值):【结论】对比n取不同值时的插值图像,显然n取值越大插值得到的函数越接近于原函数;对于题目中的函数,由于其为偶函数,当n取偶数时插值函数的中间部分显然没有n取奇数时更接近于原函数,但随着n的增大,插值函数还是更加趋近于原函数;当n的值相对一定时,
7、可以发现三次样条插值与原函数最为接近,分段三次和分段线性插值其次,而Lagrange插值相差较大。Q2:【分析与解】修改相应的节点,在matlab中编程如下:n=5;fori=1:nx0(i)=5*cos(((2*i-1)/(2*n))*pi);endy0=1./(1+x0.^2);x=-5:0.1:5;y=1./(1+x.^2);y1=lagr(x0,y0,x);y2=interp1(x0,y0,x);y3=spline(x0,y0,x);y4=interp1(x0,y0,x,'cubic');fork=1:11xx(k)=x(46+5*k);yy(k)
8、=y(46+5*k);yy1(k)=y1(46+5*k);yy2(