Matlab插值实验
一、实验目的
1.熟悉MATLAB的运行环境. 2.学会使用MATLAB作图. 3.学会使用MATLAB编程.
二、实验内容
实验一:几何物理中的插值问题
1. 轮船的甲板成近似半椭圆面形,为了得到甲板的面积。首先测量得到横向最大相间8.534米;然后等间距地测得纵向高度,自左向右分别为:
0.914, 5.060, 7.772, 8.717, 9.083, 9.144, 9.083, 8.992, 8.687, 7.376, 2.073, 计算甲板的面积。
2. 物体受水平方向外力作用,在水平直线上运动。测得位移与受力如下表
X F 0 20 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 21 21 20 19 18.5 18.0 13.5 9 4.5 0 求 (1) 物体从位移为0到0.4所做的功;(2) 位移为0.4时的速度是多少?
3.火车行驶的距离(路程)﹑速度数据如下,计算从静止开始20 分钟内走过的路程。
t(分) 2 4 6 8 10 12 14 16 18 20 v(km/h) 10 18 25 29 32 20 11 5 2 0 4. 确定地球与金星之间的距离
天文学家在1914年8月份的7次观测中,测得地球与金星之间距离(单位:米),并取其常用对数值,与日期的一组历史数据如下表:
日期18 (号) 距离9.961772对数 20 22 24 26 28 30 4 9.9543649.9468069.9390959.9312249.9231919.9149925 9 0 5 5 5 由此推断何时金星与地球的距离(米)的对数值为9.9351799?
实验二
1. 山区地貌图
在某山区(平面区域(0,2800)(0,2400)内,单位:米)测得一些地点的高程(单位:米)如表4.12所示,试作出该山区的地貌图和等高线图。
表4.12 2400 2000 1600 1430 1450 1470 1320 1280 1200 1080 940 1450 1480 1500 1550 1510 1430 1300 1200 1460 1500 1550 1600 1550 1600 1600 1600
1200 800 400 0 Y/X 1370 1500 1200 1100 1550 1600 1550 1380 1270 1500 1200 1100 1350 1450 1200 1150 1230 1390 1500 1500 1400 900 1100 1060 1180 1320 1450 1420 1400 1300 700 900 0 400 800 1200 1600 2000 2400 2800 三、实验环境
Windows操作系统; MATLAB 7.0.
四、实验过程 实验一:
1. 因为插值点越多,划分越细则,又因为等间距则,当x0时,我们视插值点的矩形面积为yix,则总面积为Syix,xi1n8.534,则 nx=linspace(0,8.534,11);
y=[0.914 5.060 7.772 8.717 9.083 9.144 9.083 8.992 8.687 7.376 2.073]; plot(x,y)
1098765432100123456789
cx=linspace(0,8.534,100); s=0;
cy=interp1(x,y,cx, 'spline'); for i=1:100
s=s+8.534./100.*cy(i);
end z =s z = 64.7476 2.x=linspace(0,0.4,5); y=[20 21 21 20 19]; plot(x,y)
2120.820.620.420.22019.819.619.419.21900.050.10.150.20.250.30.350.4
cx=linspace(0,0.4,20); s=0;
for i=1:20
cy(i)=interp1(x,y,cx(i)); s=s+0.4.*cy(i)./20; end z=s z = 8.1316
(2)假设初始速度为0,则0.4时刻的速度为 v=(2*z/m).^(1./2)(其中m为物体的质量)。 3.t=linspace(2,20,10); v=[10 18 25 29 32 20 11 5 2 0]; plot(t,v)
353025201510502468101214161820
ct=linspace(2,20,100); s=0;
for i=1:100
cv(i)=interp1(t,v,ct(i), 'spline'); s=s+20.*cv(i)./60./100; end z=s z = 5.4351 4.t=linspace(0,13,7);
s=[9.9617724 9.9543645 9.9468069 9.9390950 9.9312245 9.9231915 9.9149925];
plot(t,s)
9.989.979.969.959.949.939.929.9102468101214
ct=linspace(0,13,100); cs=interp1(t,s,ct) 观察计算结果知 T=59*13/100+18 T =
25.6700 实验二: 程序如下:
x=[0 0 0 0 0 0 0 400 400 400 400 400 400 400 800 800 800 800 800 800 800 1200 1200 1200 1200 1200 1200 1200 1600 1600 1600 1600 1600 1600 1600 2000 2000 2000 2000 2000 2000 2000 2400 2400 2400 2400 2400 2400 2400 2800 2800 2800 2800 2800 2800 2800];
y=[0 400 800 1200 1600 2000 2400 0 400 800 1200 1600 2000 2400 0 400 800 1200 1600 2000 2400 0 400 800 1200 1600 2000 2400 0 400 800 1200 1600 2000 2400 0 400 800 1200 1600 2000 2400 0 400 800 1200 1600 2000 2400 0 400 800 1200 1600 2000 2400];
z=[1180 1230 1270 1370 1460 1450 1430 1320 1390 1500 1500 1500 1480 1450 1450 1500 1200 1200 1550 1500 1470 1420 1500 1100 1100 1600 1550 1320 1400 1400 1350 1550 1550 1510 1280 1300 900 1450 1600 1600 1430 1200 700 1100 1200 1550 1600 1300 1080 900 1060 1150 1380 1600 1200 940];
[cx,cy]=meshgrid(0:100:2800,0:100:2400);cz=griddata(x,y,z,cx,cy, 'cubic'); meshz(cx,cy,cz),title('山区地貌图') figure(2),contour(cx,cy,cz),title('等高线图')
山区地貌图1800160014001200100080060030002000200010000010003000
等高线图200015001000500005001000150020002500
五、实验总结
1.遇到的问题及解决过程
在计算等高线和山区地貌图时取得的值过密,插值后结果计算较难。因此引起了电脑死机,多次实验后知道了问题所在,改进成功。 2.产生的错误及原因分析
对于取值的选取不熟悉,导致取值过多,计算时计算机死机。在插值选取方面不理想。 3.体会和收获
通过这次实验,熟悉了插值的基本方法,以及插值的实际运用和实际意义。明白了如何正确运用插值方法求解问题。
六、参考文献
[1]数学实验,重庆大学数学系傅鹂、龚劬、刘琼荪、何中市编著,科学出版社,2000年9月.
七、教师评语
因篇幅问题不能全部显示,请点此查看更多更全内容