数值分析第二次程序题

上传人:cn****1 文档编号:562108336 上传时间:2022-07-28 格式:DOCX 页数:9 大小:197.51KB
返回 下载 相关 举报
数值分析第二次程序题_第1页
第1页 / 共9页
数值分析第二次程序题_第2页
第2页 / 共9页
数值分析第二次程序题_第3页
第3页 / 共9页
数值分析第二次程序题_第4页
第4页 / 共9页
数值分析第二次程序题_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《数值分析第二次程序题》由会员分享,可在线阅读,更多相关《数值分析第二次程序题(9页珍藏版)》请在金锄头文库上搜索。

1、数值分析第二次程序题插值法1对 Runge 函数R(x)二在区间-1,1作以下插值逼近,并和R(x)的图像进行比较,1 + 25x 2并对结果进行分析。(1)以 x =_1 + ih,h 二 0丄 i 20 为节点,Newt on 插值i图 1 -0.7,0.7上的 Newton 插值图 2 -1,1上的 Newton 插值由上图可以看出,在区间-0.7,0.7上,插值多项式可以比较好地逼近被插值函数。而 当区间改为-1,1时,边界附近插值多项式与被插值函数的差异很大。卩出现了Runge现象。 由于边界接近60的误差,图像中间部分的变化几乎不可见。主 要原 因是 被 插 值 函 数 的 任意阶

2、 导数 不 能到 达 一致 有 界 。 其 插 值 余 项/f (n+1) (& )R(x)=(x)不趋近零。插值多项式不能收敛到被插值函数。n(n +1)!n+1牛顿差值函数x=-1:0.1:1;endfunction f=niudun(z,N,n)n=length(x);for t=1:nf=N(1,1);for i=1:nc(t)=N(t,t);x=-1:0.1:1;y(i)=1/(1+25*x(i)*x(i);endfor k=2:nendz=-1:0.001:1;a=1;N=zeros(n,n);m=size(z,2);for r=1:(k-1)N(:,1)=y;for i=1:ma

3、=a*(z-x(r);for j=2:nRunge(i)=1/(1+25*z(i)*z(i);endfor k=j:nf(i)=niudun(z(i),N,n);f=f+N(k,k)*a;endendN(k,j)=(N(k,j-1)-N(k-1,j-1)/(x(k)-x( k-j+1);plot(z,Runge,k,z,f,r)主程序end以占二 cos(2421 “),(i 二 0,2,20)为节点,Lagrange 插值12n (n +1)!,在区如下图,使用 Chebyshev 多项式零点构造的 Lagrange 插值多项式比较接近原函数,没有出现 Runge 现象,图 4 为第一小问中

4、的等距节点插值,可以明显的看出以 Chebyshev 多项式零点为插值点的优势。主要原因是其多项式误差为| f (x)-L (x) n间内一致收敛。Lagrange 函数function lag=lagrange(z,x,y)for i=1:21l(i)=1;for j=1:21if j=il(i)=l(i)*(z-x(j)/(x(i)-x(j);endendendl=l;lag=y*l;主程序for i=1:21x(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);

5、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)以x. = _1 + ih,h二0.1,0 i 20为节点,分段线性插值i如以下图所示,分段线性插值多项式比较接近原函数,没有出现Runge现象。但是可以 明显地看到在区间-0.1,0.1中,线性插值的拟合度较低,因为这一部分的函数的曲率较大h2也就是二阶导数较大。由误差估计公式lR(x)| maxlf I可知这一部分的误差较大。(4)以x = -1 + ih,h二0.1,0 i 20为节点,三次自然样条插值图 6 三次自然样

6、条插值函数图像由上图可以看出,三次样条插值函数的曲线及其光滑,图中并没有将插值函数连起来否则基本无法分辨出原函数和插值函数的图像,说明得到的函数十分接近被插值函数。另外,题目要求自然样条插值,也就是再两端的二阶导数为0,需在变成过程中加以注意。x=-1:0.1:1; n=length(x);for i=1:n y(i)=1/(1+25*x(i)*x(i);end for i=1:n-1 h(i)=x(i+1)-x(i);endfor i=1:n-2 u(i)=h(i)/(h(i+1)+h(i); r(i)=1-u(i);endG=zeros(n-2,n-2);for i=1:n-2G(i,i)

7、=2;endG(i,i-1)=u(i-1);G(i,i+1)=r(i-1);endd=zeros(1,n-2);for i=1:n-2d(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=Gd;s(j)=M(i)*(x(i+1)-z(j)T/0.6+M(i+1)*(z(j)-x(i)A3/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;endplot(z,s,* r,MarkerSize,3)hold o

8、nendhold onz=-1:0.01:1;for i=1:201M=0;M;0;for i=1:n-1z=x(i):0.01:x(i+1);m=length(z);f(i)=1/(1+25*z(i)*z(i);endplot(z,f,b)=2.对函数:1 3? 0, 0 x 1/2, 1/2 1在区间-1,1作以下插值逼近,并和被插值函数的图像进行比较,并对结果进行分析。以x =_1 + ih,h = 0.1,0 i 20 为节点,Newton 插值i首先对函数进行简要分析,函数f(x)是分段函数,并且在x=0处不连续,对于插值计 算,只需要函数值,所以除了函数作图和计算函数值有所不同以外

9、,程序的主体部分没有明 显改动,所以将此题程序统一放在最后。本小题中由上图可以看出,在区间-0.7,0.7上,插值多项式可以已经无法较好地逼近被插值函 数了,而当区间改为-1,1时,边界附近插值多项式与被插值函数的差异迅速扩大。即出现 了 Runge 现象。由于边界接近 1000 的误差,图像中间部分的变化几乎不可见。相比于第一 题 Runge 现象更为明显。主要原因是被插值函数不连续,导致其插值余项R (x)=-卑(x)可能无穷大。n(n +1)! n+1插值多项式不能收敛到被插值函数。以 xi 二 cos(24!“图 9 以 Chebyshev 多项式零点为插值点),(i 二 0,1,2,

10、20)为节点,Lagrange 插值如下图,使用 Chebyshev 多项式零点构造的 Lagrange 插值多项式比较接近原函数,没 有出现 Runge 现象,并且可以看出,在不连续点位置插值效果一般,但是在函数两端的拟合 效果明显要好,说明使用Chebyshev多项式零点构造的Lagrange插值多项式在连续函数上 的应用效果更佳。以x二-1 + ih,h = 0丄o i 20为节点,分段线性插值i图 10 21 个插值点线性插值图 11 201 个插值点线性插值如以下图所示,分段线性插值多项式比较接近原函数,没有出现Runge现象。此例中我 们看到了线性插值的强大优势,当原函数较为光滑,

11、曲率较小,即使是分段函数对线性插值 的影响也极为有限,当插值点个数扩大10倍到达201个时,可以明显的看出线性插值的优 势所在。(4)以x = -1 + ih,h = 0丄0 i 20为节点,三次自然样条插值i图 12 三次自然样条插值函数图像由上图可以看出,三次样条插值函数的曲线及其光滑,但是与其他多项式拟合一样在不连续点处存在较大的误差,但是与第一二小问中的Lagrange插值多项式相比,三次样条插值可以更快的脱离不连续点的影响,并在其他位置上表现出很好的拟合效果。综合以上2题我们可以初步得出这样的结论:当函数连续光滑,使用 Chebyshev 多项式零点构造的 Lagrange 插值多项

12、式可以有效地 防止Runge现象,但三次样条插值函数的曲线更为优秀。但是当函数出现不连续点时,分 段线性插值的优势明显,可以在不连续段处到达很好的拟合效果,并且可以迅速脱离不连 续点的影响,所以在做函数插值时在斜率很大的部分可以考虑使用分段线性插值,其他部 分采用三次样条效果最好。牛顿插值for j=2:nv=linspace(-1,0,100);x=-1:0.1:1;for k=j:nu=sin(pi*v);n=length(x);plot(v,u,k)for i=1:10N(k,j)=(N(k,j-1)-N(k-1,j-1)/(x(k)-x(hold ony(i)=sin(pi*x(i);

13、k-j+1);v=linspace(0,0.5,50);endendu=cos(pi*v);for i=11:15endplot(v,u,k)y(i)=cos(pi*x(i);for t=1:nhold onendc(t)=N(t,t);v=linspace(0.5,1,50);for i=15:nendu=0;y(i)=0;z=-0.1:0.01:0.1;plot(v,u,k)endm=length(z);hold onfor i=1:mN=zeros(n,n);nd(i)=niudun(z(i),N,n);plot(z,nd,r)N(:,1)=y;end以 Chebyshev 多项式零点为

14、插y(i)=cos(pi*x(i);plot(v,u,k)值点endhold onfor i=1:21endv=linspace(0,0.5,50);x(22-i)=cos(2*i-1)*pi/42);u=cos(pi*v);endz=-1:0.001:1;plot(v,u,k)for i=1:21m=length(z);hold onif x(i)0.5endplot(v,u,k)y(i)=0;v=linspace(-1,0,100);hold onelseu=sin(pi*v);plot(z,lag,r)线性插值elseif x(i)0.5endx=-1:0.01:1;y(i)=0;z=-1:0.001:1;for i=1:

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号