预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共13页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

清华大学数学实验报告 实验3:插值与数值积分 化学工程系分2安振华2012011837 【实验目的】 1.掌握用MATLAB计算拉格朗日、分段线性、三次样条三种插值的方法,改变节点的数目,以及能对三种插值结果进行初步分析; 2.熟练掌握用MATLAB及梯形公式、辛普森公式计算数值积分; 3.通过实例学习用插值和数值积分解决实际问题。 【实验内容】 预备: eq\o\ac(○,1)编制计算拉格朗日插值的M文件(lagr.m) functiony=lagr(x0,y0,x) n=length(x0);m=length(x); fori=1:m z=x(i); s=0.0; fork=1:n p=1.0; forj=1:n ifj~=k p=p*(z-x0(j))/(x0(k)-x0(j)); end end s=p*y0(k)+s; end y(i)=s; end eq\o\ac(○,2)分段线性插值函数(interp.m) functiony=interp1(x0,y0,x) n=length(x0);m=length(x); fori=1:m s=0; forj=1:n ifx(i)>=x0(j) s=y0(j); end ifx(i)<x0(j) s=s+(x(i)-x0(j-1))/(x(j)-x(j-1))*(y0(j)-y0(j-1)); break end end y(i)=s; end 【实验三:习题10】 表3.10给出的x,y数据位于机翼断面的轮廓线上,y1与y2分别对应轮廓的上下线,假设需要得到x坐标每改变0.1时的y坐标。试完成加工所需数据,画出曲线,求机翼剖面的面积。 表3.10机翼剖面轮廓线数据 x035791112131415y101.82.22.73.03.12.92.52.01.6y201.21.72.02.12.01.81.21.01.6【分析】 由于给定的数据点是有限的,要想确定更多的有效数据,就要运用插值方法。而加工断面的面积,则应通过数值积分分别求出上下轮廓线对x轴围成的面积,然后作差求得。 【解答】 运用学习的三种插值方法逐一计算,具体如下: 1、拉格朗日多项式插值 MATLAB程序: clf,shg, x0=[0,3,5,7,9,11,12,13,14,15]; y10=[0,1.8,2.2,2.7,3,3.1,2.9,2.5,2,1.6]; y20=[0,1.2,1.7,2,2.1,2,1.8,1.2,1,1.6];%按照表格3.10输入原始数据 x=0:0.1:15;%按题目要求以0.1的间隔产生插值点 y1=lagr(x0,y10,x); y2=lagr(x0,y20,x);%在x方向计算拉格朗日插值 subplot(1,2,1),plot(x0,y10,'k',x0,y20,'r') subplot(1,2,2),plot(x,y1,'b',x,y2,'b') S=trapz(x,y1)-trapz(x,y2)%计算机翼剖面面积 运行结果: 给出机翼剖面面积S=40.3044 2、分段线性插值 MATLAB程序: clf,shg, x0=[0,3,5,7,9,11,12,13,14,15]; y10=[0,1.8,2.2,2.7,3,3.1,2.9,2.5,2,1.6]; y20=[0,1.2,1.7,2,2.1,2,1.8,1.2,1,1.6]; x=0:0.1:15; y1=interp1(x0,y10,x) y2=interp1(x0,y20,x)%在x方向计算分段线性插值并输出结果 subplot(1,2,1),plot(x0,y10,'k',x0,y20,'r') subplo(1,2,2),plot(x,y1,'b',x,y2,'b')%分段线性插值作图 S=trapz(x,y1)-trapz(x,y2)%梯形公式计算面积 运行结果: 给出机翼剖面面积S=10.7500 3、三次样条插值 MATLAB程序: clf,shg, x0=[0,3,5,7,9,11,12,13,14,15]; y10=[0,1.8,2.2,2.7,3,3.1,2.9,2.5,2,1.6]; y20=[0,1.2,1.7,2,2.1,2,1.8,1.2,1,1.6]; x=0:0.1:15; y1=spline(x0,y10,x) y2=spline(x0,y20,x)%在x方向计算三次样条插值并输出结果 subplot(1,2,1),plot(x0,y10,'k',x0,y20,'r') subplot(1,2,2),plot(x,y1,'b',x,y2,'b')%三次样条