1、实验次样条插值实验精品文档数值分析实验报告姓 名忘川学 号1205025106系 别数学系班级12级 主讲教师指导教师实验日期2014/6/25专业信息与计算科学专业 课程名称数值分析同组实验者无一、实验名称: 实验四、三次样条插值实验二、 实验目的:1掌握三次样条插值的运用;2了解拉格朗日插值在高次上的误差。三、实验内容及要求:给定函数节点(1)编写三次样条程序求,取 (2)作原函数、Langrage插值函数和三次样条插值函数的图像,并比较它们的区别。附:算法描述:三次样条插值(Cubic Spline Interpolation)PURPOSE: To find a piecewise c
2、ubic spline function . (, ).where , and ,. INPUT: interpolated points; clamped boundary condition.OUTPUT: Step 1 For Step 2 By clamped boundary condition, Set ,Step 3 Solve tri-diagonal systemStep 4 Output . Stop四、实验步骤(或记录)(1)编写三次样条程序求,取 程序如下:function s,m=selfspline(x0,y0,df,x,conds)n=length(x0);h=d
3、iff(x0);b=ones(1,n)*2;for j=2:n-1 a(j)=h(j-1)/(h(j-1)+h(j); c(j)=h(j)/(h(j-1)+h(j); d(j)=6*(h(j-1)*(y0(j+1)-y0(j)-h(j)*(y0(j)-y0(j-1)/(h(j)*h(j-1)*(h(j)+h(j-1);enda(1:n-2)=a(2:n-1);switch condscase 1 a(n-1)=1; c(1)=1; d(1)=6*(y0(2)-y0(1)/(x0(2)-x0(1)-df(1)/(x0(2)-x0(1); d(n)=6*(df(2)-(y0(n)-y0(n-1)/
4、(x0(n)-x0(n-1)/(x0(n)-x0(n-1); case 2 a(n-1)=0; c(1)=0; d(1)=2*df(1); d(n)=2*df(2);otherwise error(conds值错误, conds只能为1或2)endfor i=2:n r=a(i-1)/b(i-1); b(i)=b(i)-r*c(i-1); d(i)=d(i)-r*d(i-1);endm(n)=d(n)/b(n);for i=n-1:-1:1 m(i)=(d(i)-c(i)*m(i+1)/b(i);endfor j=1:length(x) for i=1:n-1 if x(j)=x0(i)&x(
5、j) k=0:10; x0=-5+k; y0=1./(x.2+1); x=-5:0.5:5; y=1./(x.2+1); df=diff(y)得到如下数据:df = 0.0086 0.0118 0.0166 0.0245 0.0379 0.0621 0.1077 0.1923 0.3000 0.2000 -0.2000 -0.3000 -0.1923 -0.1077 -0.0621 -0.0379 -0.0245 -0.0166 -0.0118 -0.0086(2)作原函数、Langrage插值函数和三次样条插值函数的图像,并比较它们的区别。先写拉格朗日插值的程序,如下:function y=
6、lagr1(x0,y0,x)n=length(x0); m=length(x);for i=1:m z=x(i); s=0.0; for k=1:n p=1.0; for j=1:n if j=k p=p*(z-x0(j)/(x0(k)-x0(j); end end s=p*y0(k)+s; end y(i)=s;endend然后直接在matlab的命令窗口输入:x0=-5 -4 -3 -2 -1 0 1 2 3 4 5 ;y0=1./(x0.2+1);x=-5:0.01:5;df=diff(y0);conds=1;y=selfspline(x0,y0,df,x,conds);y1=1./(x.2+1);y2=lagr1(x0,y0,x);plot(x,y1,b,x,y,y-,x,y2,r:)legend(原函数,三次样条插值,Lagrange插值)即可得到以下图形:(3) 分析结果:根据图像可知,用拉格朗日插值函数进行插值时,在次数较高时会出现龙格现象,导致其值与原函数相差甚大,在一定范围内插值拟合效果不好,而三次样条插值函数可以很好地接近原函数且光滑性较好,是比较理想的插值函数。五、教师评语(或成绩) 教师签字 : 年 月 日收集于网络,如有侵权请联系管理员删除