资源描述:
《插值法与MATLAB应用》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、插值法与MATLAB应用2007-11-0210:35实验2插值法与MATLAB应用一、实验名称:插值法与MATLAB应用。二、实验目的:理解插值的基本原理,掌握常用算法的设计,掌握用MATLAB实现插值。三、实验题目:已知数据如下: 0.20.40.60.81.0 0.97986520.91777100.80803480.63860930.3843735四、实验要求:1、设计全区间上拉格朗日插值程序或者Newton插值程序。利用MATLAB在第一个图中画出离散数据及插值函数曲线。2、利用MATLAB画出分段线性插值函数,并与(1)作对比说明。3、对于自然边界条件,利用MATLAB
2、在第二个图中画出离散数据,再画出通过表中型值点并满足边界条件的三次样条插值函数。4、对于第一种边界条件,利用MATLAB在第三个图中画出离散数据,再画出通过表中型值点并满足边界条件的三次样条插值函数。5、例举一个闭区间上的连续函数,用画图或列表的方式观察与体会Runge现象,分别用下面方法对比说明:1)10次Lagrange;2)分段低次插值;3)分段三次样条插值。6、通过这个实验,谈谈你对插值方法有何理解、三次样条插值有何特点?五、实验内容:1、设计全区间上拉格朗日插值程序或者Newton插值程序。利用MATLAB在第一个图中画出离散数据及插值函数曲线。编写拉格朗日插值多项式函数内容
3、为:functionf=lagfun(x)a=[0.2,0.4,0.6,0.8,1.0];b=[0.9798652,0.9177770,0.8080348,0.6386093,0.3843735];fori=1:5L(i)=1;forj=1:5 ifj~=i L(i)=L(i)*(x-a(j))/(a(i)-a(j)); endendendf=0;fori=1:5 f=f+L(i)*b(i);end画图程序内容为:fplot('lagfun',[0,1]);holdona=[0.2,0.4,0.6,0.8,1.0];b=[0.9798652,0.9177770,
4、0.8080348,0.6386093,0.3843735];plot(a,b,'o')图形为:2、利用MATLAB画出分段线性插值函数,并与(1)作对比说明。序内容为:a=[0.2,0.4,0.6,0.8,1.0];b=[0.9798652,0.9177770,0.8080348,0.6386093,0.3843735];xx=0.2:0.01:1.0;yy=interp1(a,b,xx,'linear');plot(a,b,'r*',xx,yy);title('插值法');图像为: 3、对于自然边界条件,利用MATLAB在第二个图中画出离散数据,再画出通过表中型值点并满足边界条件的
5、三次样条插值函数。程序内容为:>>a=[0.2,0.4,0.6,0.8,1.0];b=[0.9798652,0.9177770,0.8080348,0.6386093,0.3843735];>>pp=csape(a,b,'variational');>>x=0.2:0.01:1;>>y=ppval(pp,x);>>plot(a,b,'o',x,y)>>图形为:4、对于第一种边界条件,利用MATLAB在第三个图中画出离散数据,再画出通过表中型值点并满足边界条件的三次样条插值函数。程序内容为:a=[0.2,0.4,0.6,0.8,1.0];b=[0.9798652,0.9177770,0.
6、8080348,0.6386093,0.3843735];pp=csape(a,b,'second',[0.20271,1.55741]);x=0.2:0.01:1;y=ppval(pp,x);plot(a,b,'o',x,y)图形为: 5、例举一个闭区间上的连续函数,用画图或列表的方式观察与体会Runge现象,分别用下面方法对比说明:1)10次Lagrange;2)分段低次插值;3)分段三次样条插值。举例的函数为:y=1/(1+x^2);编写拉格朗日函数:functionf=lagfun2(x)a=linspace(-5,5,10);b=1./(1+a.^2);fori=1:10L(
7、i)=1;forj=1:10 ifj~=i L(i)=L(i)*(x-a(j))/(a(i)-a(j)); endendendf=0;fori=1:10 f=f+L(i)*b(i);end画出“原函数”,“拉格朗日”,“三次样条”三种函数,程序内容为:a=linspace(-5,5,10);b=1./(1+a.^2);a=linspace(-5,5,10);b=1./(1+a.^2);xx=-5:.01:5;yy=int