数值分析实验(四)插值法实验.doc
插值法实验班别: 学生姓名: 学号:一、 实验目的1.通过进行不同类型的插值,比较各种插值的效果,明确各种插值的优越性;2.通过比较不同次数的多项式拟合效果,了解多项式拟合的原理;3.利用matlab编程,学会matlab命令;4.掌握拉格朗日插值法和牛顿插值法;二、 实验题目(1) 调用拉格朗日插值程序求拉格朗日插值4次多项式在0.45 0.5 0.6 0.8上的值,并画出原函数与拉格朗日插值4次多项式的图像进行比较。(2) 调用牛顿插值程序求牛顿插值4次多项式, 并求其在0.45 0.5 0.6 0.8上的值。(3)选做:调用分段线性插值程序求其在0.45 0.5 0.6 0.8上的值,并画出原函数与分段线性插值多项式的图像进行比较。三、 实验原理1. 拉格朗日插值2. 牛顿插值的原理四、 实验内容与结果1. 拉格朗日插值法(1)相关程序function yy=mlagr(x,y,xx)%用途:拉格朗日插值法求解%格式:yy=mlagr(x,y,xx), x是节点向量, y是节点对应的函%数值向量, xx是插值点(可以是多个), yp返回插值结果n=length(x); m=length(xx);yy=zeros(1,m); c1=ones(n-1,1); c2=ones(1,m);for i=1:n xp=x(1:i-1,i+1:n); yy=yy+y(i)*prod(c1*xx-xp'*c2)./(x(i)-xp'*c2);End(原函数与拉格朗日插值4次多项式的图像进行比较的程序)x=0.4 0.55 0.65 0.8 0.9;y=0.41075 0.57815 0.69675 0.88811 1.02652;plot(x,y,'+');x=0.4:0.01:0.6;y0=sin(x); plot(x,y0,'*')(2) 实验结果(3)>> x=0.4 0.55 0.65 0.8 0.9;y=0.41075 0.57815 0.69675 0.88811 1.02652;xx=0.45 0.5 0.6 0.8; yy=mlagr(x,y,xx)yy =0.4653 0.5211 0.6367 0.8881(原函数与拉格朗日插值4次多项式的图像进行比较)x=0.4 0.55 0.65 0.8 0.9;y=0.41075 0.57815 0.69675 0.88811 1.02652;plot(x,y,'+');x=0.4:0.01:0.6;y0=sin(x); plot(x,y0,'*')(3)实验结果分析2. 牛顿插值法相关程序(1)相关程序%程序5.2-mnewp.mfunction yy=mnewp(x,y,xx)%用途:牛顿差值%格式:yy=mnewp(x,y,xx), x是节点向量, y是节点对应的函%数值向量, xx是插值点(可以是多个), yy返回插值结果n=length(x);syms t; yy=y(1);y1=0; lx=1;for i=1:n-1 for j=i+1:n y1(j)=(y(j-1)-y(j)/(x(j-i)-x(j); %计算差商 end c(i)=y1(i+1); lx=lx*(t-x(i); yy=yy+c(i)*lx; %计算牛顿插值多项式的值 y=y1;endif nargin=3 yy=subs(yy,'t',xx);else yy=collect(yy); yy=vpa(yy,6);end(2)实验结果 x=0.4 0.55 0.65 0.8 0.9;y=0.41075 0.57815 0.69675 0.88811 1.02652;xx=0.45 0.5 0.6 0.8; yy=mnewp(x,y,xx)yy =0.4653 0.5211 0.6367 0.8881(3)实验结果分析