资源描述:
《插值法与数据拟合.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、佛山科学技术学院实验报告课程名称数值分析实验项目插值法专业班级姓名学号指导教师成绩日期5月12日一、实验目的1、学会Lagrange插值、牛顿插值和分段线性插值等基本插值方法;2、讨论插值的Runge现象,掌握分段线性插值方法3、学会Matlab提供的插值函数的使用方法,会用这些函数解决实际问题。二、实验原理1、拉格朗日插值多项式2、牛顿插值多项式3、分段线性插值三、实验步骤1、用MATLAB编写独立的拉格朗日插值多项式函数;2、用MATLAB编写独立的牛顿插值多项式函数;3、利用编写好的函数计算本章P66例1、P77例1的结果并比较;4、已知函数在下列各点的值为:0.20.40.60
2、.81.00.980.920.810.640.38试用4次牛顿插值多项式对数据进行插值,根据{},画出图形。5、在区间[-1,1]上分别取用两组等距节点对龙格函数作多项式插值,对不同值,分别画出插值函数及的图形。6、下列数据点的插值01491625364964012345678(1)可以得到平方根函数的近似,在区间[0,64]上作图。(2)用这9个点作8次多项式插值。四、实验结果1、用MATLAB编写独立的拉格朗日插值多项式函数Lagrange插值多项式源代码functionyi=Lagrange(x,y,xi)%Lagrange插值多项式,其中%x---向量,全部的插值节点%y---
3、向量,插值节点处的函数值%xi---标量,自变量x%yi---xi处的函数估计值n=length(x);m=length(y);ifn~=merror('ThelengthsofXandYmustbeequal');return;endp=zeros(1,n);%对向量p赋初值0fork=1:nt=ones(1,n);forj=1:nifj~=kifabs(x(k)-x(j))4、LAB编写独立的牛顿插值多项式函数functionyi=New_Int(x,y,xi)%Newton基本插值公式,其中%x---向量,全部的插值节点,按行输入%y---向量,插值节点处的函数值,按行输入%xi---标量,自变量x%yi---xi处的函数估计值n=length(x);m=length(y);ifn~=merror('ThelengthsofXandYmustbeequal');return;end%计算均差表YY=zeros(n);Y(:,1)=y';%Y(:,1)表示矩阵中第一列的元素fork=1:n-1fori=1:n-kifabs(x(i+k)-x(i))5、rror('theDATAiserror!');return;endY(i,k+1)=(Y(i+1,k)-Y(i,k))/(x(i+k)-x(i));endend%计算Newton插值公式N(xi)yi=0;fori=1:nz=1;fork=1:i-1z=z(xi-x(k));endyi=yi+Y(1,i)z;end3、利用编写好的函数计算本章P66例1、P77例1的结果并比较。P66例1x=[144169225];y=[121315];yi=Lagrange(x,y,175)yi=13.8733P77例1x=[0.40,0.55,0.65,0.80];>>y=[0.41075,0.5
6、7815,0.69675,0.88811];>>yi=New_int(x,y,0.596)yi=0.40004、已知函数在下列各点的值为:0.20.40.60.81.00.980.920.810.640.38试用4次牛顿插值多项式对数据进行插值,根据{},画出图形。解:X=[0.2:0.2:1.0];y=[0.98,0.92,0.81,0.64,0.38];xx=[0.2:0.08:1.0];m=length(xx);z=zeros(1,m);fori=1:mz(i)=Lagrange(x,y,xx(i));endholdonplot(x,y,'o');plot(xx,z,'r');h
7、oldoff得到如下图形:图一练习4的图形5、在区间[-1,1]上分别取用两组等距节点对龙格函数作多项式插值,对不同值,分别画出插值函数及的图形。解:a=-1;b=1;n=100;h=(b-a)/n;>>x=a:h:b;y=1./(1+25.x.^2);>>plot(x,y,'k')其函数原图形分别如下所示:图二龙格函数的图形用龙格函数的Lagrange()插值函数画图源程序当n=10时,有:functionRunge(10)%Runge现象%