数值分析实验二:代数插值 下载本文

毕节学院实验报告

实验名称: 代数插值 实验报告序号: 2 组 别 实验项目 实验类别 24111102017 姓 名 马余荣 同组实验者 实验日期 2012年 9月 26 日 代数插值 □√ 1、验证性实验或基础性实验; □ 2、综合性实验 □ 3、设计性实验; □ 4、创新性实验和研究性实验; 指导教师(签名) 赖志柱 年 月 日 教师评语 实验成绩 实验目的: 进一步熟练掌握代数插值法,提高编程能力和解决插值问题的实践技能,观察代数插值的龙格现象。 实验任务与要求: 1(1)对函数y?f(x)?在[?5,5]上进行等距插值编程实现,要求画出1?x2该函数图像和插值函数图像、节点个数依次从3到11进行取值、简要分析它们的误差,必要时可以输出相关数据表格进行对比分析。 (2)选择对数函数y?lnx或根式函数y?x进行插值研究,要求分别编程实现Lagrange插值、Newton插值和分段线性插值并画图对比分析。 小组分工合作说明: 实验过程及内容: 第一题:分段线性插值适用于计算简单、光滑性要求不高的插值问题,且其整体逼近f(x)的效果较好. 从几何意义上看,分段线性插值就是用折线近似代替曲线错误!未找到引用源。. 设在区间[a,b]上取n+1个点 a?x0?x1???xn?1?xn?b. 函数f(x)在上述节点处的函数值为 (i?0,1,2?,n), yi?f(xi) 于是得到n+1个点 (x0,y0),(x1,y1),?,(xn,yn). (i?0,1,2?,n),,得一折线函连接相邻两点错误!未找到引用源。和(xi?1,yi?1) 数?(x),若满足: (1)?(x)在[a,b]上连续; (2)错误!未找到引用源。 (i?0,1,2,?,n); (3)?(x)在每个小区间错误!未找到引用源。上是线性函数, 则称折线函数?(x)为分段线性插值函数,所以第一题我们用分段线性插值的方法 编程过程: 1.原函数图象: function y=fd1(x) x=-5:5 y=1./(1+x.^2); plot(x,y) 10.90.80.70.60.50.40.30.20.10-5-4-3-2-1012345 2. 插值效果比较函数,选取插值节点数为奇数. 上图为不同节点数插值函数图像与原函数图像,下图为误差图像. function v=fd22(x,y,u) delta=diff(y)./diff(x); n=length(x); k=ones(size(u)); for j=2:n-1 k(x(j)<=u)=j; end s=u-x(k); v=y(k)+s.*delta(k); clear close t=[-5:0.01:5]; a=['k' 'g' 'r' 'c' 'm']; for i=1:5 n=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));hold on; subplot(2,1,2);plot(t,e,a(i));hold on; end subplot(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,[-5 5],'k'); hold off 10.80.60.40.20-5n=3n=5n=7n=9n=11-4-3-2-10123450.6n=3n=5n=7n=9n=110.40.20-0.2-5-4-3-2-1012345