数值分析第二次程序题(共8页).docx
《数值分析第二次程序题(共8页).docx》由会员分享,可在线阅读,更多相关《数值分析第二次程序题(共8页).docx(8页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上数值分析第二次程序题插值法1.对Runge函数在区间-1,1作下列插值逼近,并和R(x)的图像进行比较,并对结果进行分析。(1) 以为节点,Newton插值图1 -0.7,0.7上的Newton插值 图2 -1,1上的Newton插值由上图可以看出,在区间-0.7,0.7上,插值多项式可以比较好地逼近被插值函数。而当区间改为-1,1时,边界附近插值多项式与被插值函数的差别很大。即出现了Runge现象。由于边界接近60的误差,图像中间部分的变化几乎不可见。主要原因是被插值函数的任意阶导数不能达到一致有界。其插值余项不趋近零。插值多项式不能收敛到被插值函数。专心-专注-专
2、业牛顿差值函数function f=niudun(z,N,n)f=N(1,1);x=-1:0.1:1;for k=2:n a=1; for r=1:(k-1) a=a*(z-x(r); end f=f+N(k,k)*a; end主程序x=-1:0.1:1;n=length(x);for i=1:n y(i)=1/(1+25*x(i)*x(i);endN=zeros(n,n); N(:,1)=y; for j=2:n for k=j:n N(k,j)=(N(k,j-1)-N(k-1,j-1)/(x(k)-x(k-j+1); end end for t=1:nc(t)=N(t,t);endz=-1
3、:0.001:1;m=size(z,2);for i=1:mRunge(i)=1/(1+25*z(i)*z(i);f(i)=niudun(z(i),N,n);endplot(z,Runge,k,z,f,r)(2)以 为节点,Lagrange插值图3 以Chebyshev多项式零点为插值点 图4 以等距节点为插值点如图所示,使用Chebyshev多项式零点构造的Lagrange插值多项式比较接近原函数,没有出现Runge现象,图4为第一小问中的等距节点插值,可以明显的看出以Chebyshev多项式零点为插值点的优势。主要原因是其多项式误差为,在区间内一致收敛。Lagrange函数function
4、 lag=lagrange(z,x,y)for i=1:21 l(i)=1; for j=1:21 if j=i l(i)=l(i)*(z-x(j)/(x(i)-x(j); end endendl=l;lag=y*l;主程序for i=1:21 x(22-i)=cos(2*i-1)*pi/42);endfor i=1:21 y(i)=1/(1+25*x(i)*x(i);endz=-1:0.001:1;m=length(z);for i=1:m f(i)=1/(1+25*z(i)*z(i); lag(i)=lagrange(z(i),x,y);endplot(z,f,k,z,lag,r)(3)以
5、为节点,分段线性插值如下图所示,分段线性插值多项式比较接近原函数,没有出现Runge现象。但是可以明显地看到在区间-0.1,0.1中,线性插值的拟合度较低,因为这一部分的函数的曲率较大,也就是二阶导数较大。由误差估计公式可知这一部分的误差较大。图5 线性插值(4)以为节点,三次自然样条插值图6 三次自然样条插值函数图像由上图可以看出,三次样条插值函数的曲线及其光滑,图中并没有将插值函数连起来,否则基本无法分辨出原函数和插值函数的图像,说明得到的函数十分接近被插值函数。另外,题目要求自然样条插值,也就是再两端的二阶导数为0,需在变成过程中加以注意。x=-1:0.1:1;n=length(x);f
6、or i=1:n y(i)=1/(1+25*x(i)*x(i);endfor i=1:n-1h(i)=x(i+1)-x(i);endfor i=1:n-2u(i)=h(i)/(h(i+1)+h(i);r(i)=1-u(i);endG=zeros(n-2,n-2);for i=1:n-2 G(i,i)=2;endfor i=2:n-2 G(i,i-1)=u(i-1); G(i,i+1)=r(i-1);endd=zeros(1,n-2);for i=1:n-2 d(i)=6*(y(i+2)-y(i+1)/h(i+1)-(y(i+1)-y(i)/h(i)/(h(i+1)+h(i);endd=d;M=
7、Gd;M=0;M;0;for i=1:n-1 z=x(i):0.01:x(i+1); m=length(z); for j=1:m s(j)=M(i)*(x(i+1)-z(j)3/0.6+M(i+1)*(z(j)-x(i)3/0.6+(y(i)-M(i)*0.01/6)*(x(i+1)-z(j)/0.1+(y(i+1)-M(i+1)*0.01/6)*(z(j)-x(i)/0.1; end plot(z,s,* r,MarkerSize,3) hold onendhold onz=-1:0.01:1;for i=1:201f(i)=1/(1+25*z(i)*z(i);endplot(z,f,b)
8、2.对函数:在区间-1,1作下列插值逼近,并和被插值函数的图像进行比较,并对结果进行分析。 (1) 以为节点,Newton插值首先对函数进行简要分析,函数f(x)是分段函数,并且在x=0处不连续,对于插值计算,只需要函数值,所以除了函数作图和计算函数值有所不同以外,程序的主体部分没有明显改动,所以将本题程序统一放在最后。本小题中图7 -1,1上的Newton插值 图8 -0.7,0.7上的Newton插值由上图可以看出,在区间-0.7,0.7上,插值多项式可以已经无法较好地逼近被插值函数了,而当区间改为-1,1时,边界附近插值多项式与被插值函数的差别迅速扩大。即出现了Runge现象。由于边界接
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数值 分析 第二次 程序
限制150内