如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
毕节学院实验报告实验名称:代数插值实验报告序号:2组别24111102017姓名马余荣同组实验者实验项目代数插值实验日期2012年9月26日实验类别eq\o\ac(□,√)1、验证性实验或基础性实验;□2、综合性实验□3、设计性实验;□4、创新性实验和研究性实验;教师评语实验成绩指导教师(签名)赖志柱年月日实验目的:进一步熟练掌握代数插值法,提高编程能力和解决插值问题的实践技能,观察代数插值的龙格现象。实验任务与要求:(1)对函数在上进行等距插值编程实现,要求画出该函数图像和插值函数图像、节点个数依次从3到11进行取值、简要分析它们的误差,必要时可以输出相关数据表格进行对比分析。(2)选择对数函数或根式函数进行插值研究,要求分别编程实现Lagrange插值、Newton插值和分段线性插值并画图对比分析。小组分工合作说明:实验过程及内容:第一题:分段线性插值适用于计算简单、光滑性要求不高的插值问题,且其整体逼近的效果较好.从几何意义上看,分段线性插值就是用折线近似代替曲线QUOTE.设在区间[a,b]上取n+1个点函数在上述节点处的函数值为于是得到n+1个点连接相邻两点QUOTE和,得一折线函数,若满足:(1)在[a,b]上连续;(2)QUOTE;(3)在每个小区间QUOTE上是线性函数,则称折线函数为分段线性插值函数,所以第一题我们用分段线性插值的方法编程过程:1.原函数图象:functiony=fd1(x)x=-5:5y=1./(1+x.^2);plot(x,y)2.插值效果比较函数,选取插值节点数为奇数.上图为不同节点数插值函数图像与原函数图像,下图为误差图像.functionv=fd22(x,y,u)delta=diff(y)./diff(x);n=length(x);k=ones(size(u));forj=2:n-1k(x(j)<=u)=j;ends=u-x(k);v=y(k)+s.*delta(k);clearcloset=[-5:0.01:5];a=['k''g''r''c''m'];fori=1:5n=2*i+1;x=linspace(-5,5,n);y=fd1(x);p=fd22(x,y,t);p=p';y1=fd1(t);y1=y1';e=p-y1;subplot(2,1,1);plot(x,y,a(i));holdon;subplot(2,1,2);plot(t,e,a(i));holdon;endsubplot(2,1,1);legend('n=3','n=5','n=7','n=9','n=11')subplot(2,1,2);legend('n=3','n=5','n=7','n=9','n=11')subplot(2,1,1);fplot(@fd1,[-55],'k');holdoff3.结果分析:不同插值节点数所得的分段线性插值函数,在节点处与原函数的函数值一定相同,所得的分段线性插值函数在原函数斜率绝对值变化大的地方,与原函数的误差比较大.由误差平方和e,插值节点个数越多,e有减小的趋势,最后趋于0.只考虑奇数或偶数个节点,则随节点数增加e严格减小,随机生成的节点不如等距节点使插值效果好.第二题:1.(1)Lagrange插值clearclcn=10;lb=0;ub=10;step=0.01;x0=lb:step:ub;y0=log(x0);plot(x0,y0,'r-');holdonfori=1:n+1xi(i)=lb+(ub-lb)*(i-1)/n;yi(i)=log(xi(i));endcount=1;forx=lb:step:ubfl=0;fork=1:n+1up=1;dn=1;fori=1:n+1ifk~=iup=up*(x-xi(i));dn=dn*(xi(k)-xi(i));endendfl=fl+yi(k)*up/dn;endpn(count)=fl;fi(count)=log(x);count=count+1;end(2)Newton插值x=a:(b-a)/n:b;y=log(x);plot(x,y,'b')holdonz=a:(b-a)/(2*n):b;n=length(x);forj=2:nfori=n:-1:jy(i)=(y(i)-y(i-1))/(x(i)-x(i-j+1));endendu=y(n);m=length(z);forj=1:mfori=n-1:-1:1u=y(i)+u*(z(j)-x(i