1、实验 3 插值与数值积分实验目的:1掌握用MATLAB 计算拉格朗日、分段线性、三次样条三种插值的方法,改变节点的数目,对三种插值结果进行初步分析;2掌握用MATLAB 及梯形公式、辛普森公式、高斯公式计算数值积分;3通过实例学习用插值和数值积分解决实际问题。实验内容:一、 实验预备1、编制计算拉格朗日插值的 M 文件,如下:function y=lagr(x0,y0,x)n=length(x0);m=length(x);for i=1:mz=x(i);s=0;for k=1:np=1;for j=1:nif j=kp=p*(z-x0(j)/(x0(k)-x0(j);endends=p*y0(
2、k)+s;endy(i)=s;end2、编制辛普森公式的 .m文件,并命名为simp.m文件。如下:function s=simp(x,y)n=length(x);s=0;m=(n-1)/2;for k=1:(m-1)s=s+4*y(2*k+2)+2*y(2*k+1);ends=s+y(1)+y(n);s=s*(x(2)-x(1)/3;end二、 实验题目【问题 1】 表 3.7 中给出的 x,y 数据位于机翼剖面的轮廓线上,y1 和 y2 分别对应轮廓的上下线。假设需要得到 x 坐标每改变 0.1 时的 y 坐标。试完成加工所需数据,画出曲线,求加工剖面的面积。表 3.7 机翼剖面轮廓线上的
3、数据X 0 3 5 7 9 11 12 13 14 15y1 0 1.8 2.2 2.7 3.0 3.1 2.9 2.5 2.0 1.6y2 0 1.2 1.7 2.0 2.1 2.0 1.8 1.2 1.0 1.6【问题分析】本题中若要求得 x 坐标每改变 0.1 时的 y 坐标,必须使用插值的方法来获得更多的数据。利用获得的数据画出曲线之后,可以再使用积分的方法求得加工剖面的面积。【运算程序】使用拉格朗日插值法、分段线性插值法、三次样条插值法求出所需数据:x0=0,3:2:11,12,13,14,15; %将题中已给数据 x 设为 x0y1=0 1.8 2.2 2.7 3.0 3.1 2.
4、9 2.5 2.0 1.6;y2=0 1.2 1.7 2.0 2.1 2.0 1.8 1.2 1.0 1.6;%按照表格输入原始数据x=0:0.1:15;%以 0.1 的间隔取插值点s1=lagr(x0,y1,x);s2=lagr(x0,y2,x);%在 x 方向计算拉格朗日插值i1=interp1(x0,y1,x);i2=interp1(x0,y2,x); %在 x 方向计算分段线性插值j1=spline(x0,y1,x);j2=spline(x0,y2,x); %在 x 方向计算三次样条插值subplot(1,3,1),plot(x,s1,r,x,s2,r) %拉格朗日上下轮廓线subpl
5、ot(1,3,2),plot(x,i1,b,x,i2,b) %分段线性上下轮廓线subplot(1,3,3),plot(x,j1,g,x,j2,g) %三次样条上下轮廓线a=x,s1,i1,j1,s2,i2,j2%输出数据x y1(拉 格 朗日 插 值 法 ) y1( 分 段线 性 插 值法 )y1( 三 次样 条 插 值法 ) y2(拉 格 朗日 插 值 法 ) y2(分 段 线性 插 值 法 )y2(三 次样 条 插 值法 )0 0 0 0 0 0 0 0.1000 0.5516 0.0600 0.1089 -4.9437 0.0400 0.04990.2000 1.0117 0.1200
6、 0.2134 -8.8200 0.0800 0.0990 0.3000 1.3910 0.1800 0.3137 -11.7726 0.1200 0.14740.4000 1.6992 0.2400 0.4097 -13.9310 0.1600 0.19510.5000 1.9452 0.3000 0.5018 -15.4117 0.2000 0.2421 0.6000 2.1371 0.3600 0.5898 -16.3190 0.2400 0.28840.7000 2.2821 0.4200 0.6740 -16.7457 0.2800 0.3340 0.8000 2.3868 0.48
7、00 0.7545 -16.7747 0.3200 0.37880.9000 2.4573 0.5400 0.8314 -16.4792 0.3600 0.4230 1.0000 2.4989 0.6000 0.9047 -15.9238 0.4000 0.46651.1000 2.5165 0.6600 0.9747 -15.1651 0.4400 0.5094 1.2000 2.5143 0.7200 1.0413 -14.2524 0.4800 0.55151.3000 2.4961 0.7800 1.1047 -13.2287 0.5200 0.5930 1.4000 2.4654 0
8、.8400 1.1651 -12.1307 0.5600 0.63381.5000 2.4251 0.9000 1.2225 -10.9898 0.6000 0.6739 1.6000 2.3778 0.9600 1.2770 -9.8326 0.6400 0.71341.7000 2.3258 1.0200 1.3287 -8.6812 0.6800 0.7523 1.8000 2.2711 1.0800 1.3778 -7.5539 0.7200 0.79041.9000 2.2154 1.1400 1.4244 -6.4654 0.7600 0.8280 2.0000 2.1600 1.
9、2000 1.4685 -5.4272 0.8000 0.86492.1000 2.1061 1.2600 1.5104 -4.4484 0.8400 0.9012 2.2000 2.0549 1.3200 1.5499 -3.5353 0.8800 0.93682.3000 2.0069 1.3800 1.5874 -2.6923 0.9200 0.9719 2.4000 1.9629 1.4400 1.6229 -1.9220 0.9600 1.00632.5000 1.9233 1.5000 1.6565 -1.2253 1.0000 1.0401 2.6000 1.8886 1.560
10、0 1.6884 -0.6019 1.0400 1.07322.7000 1.8587 1.6200 1.7185 -0.0504 1.0800 1.1058 2.8000 1.8340 1.6800 1.7471 0.4316 1.1200 1.13782.9000 1.8145 1.7400 1.7742 0.8472 1.1600 1.1692 3.0000 1.8000 1.8000 1.8000 1.2000 1.2000 1.20003.1000 1.7905 1.8200 1.8245 1.4942 1.2250 1.2302 3.2000 1.7858 1.8400 1.848
11、0 1.7343 1.2500 1.25993.3000 1.7857 1.8600 1.8704 1.9249 1.2750 1.2889 3.4000 1.7900 1.8800 1.8918 2.0706 1.3000 1.31743.5000 1.7983 1.9000 1.9125 2.1765 1.3250 1.3454 3.6000 1.8104 1.9200 1.9325 2.2470 1.3500 1.37273.7000 1.8259 1.9400 1.9519 2.2870 1.3750 1.3995 3.8000 1.8446 1.9600 1.9708 2.3007
12、1.4000 1.42583.9000 1.8661 1.9800 1.9894 2.2926 1.4250 1.4515 4.0000 1.8900 2.0000 2.0076 2.2666 1.4500 1.47674.1000 1.9161 2.0200 2.0258 2.2265 1.4750 1.5014 4.2000 1.9441 2.0400 2.0439 2.1757 1.5000 1.52554.3000 1.9735 2.0600 2.0620 2.1174 1.5250 1.5491 4.4000 2.0042 2.0800 2.0803 2.0544 1.5500 1.
13、57224.5000 2.0359 2.1000 2.0989 1.9894 1.5750 1.5947 4.6000 2.0682 2.1200 2.1179 1.9245 1.6000 1.61684.7000 2.1010 2.1400 2.1374 1.8616 1.6250 1.6383 4.8000 2.1340 2.1600 2.1575 1.8024 1.6500 1.65944.9000 2.1671 2.1800 2.1784 1.7481 1.6750 1.6799 5.0000 2.2000 2.2000 2.2000 1.7000 1.7000 1.70005.100
14、0 2.2326 2.2250 2.2225 1.6587 1.7150 1.7196 5.2000 2.2647 2.2500 2.2459 1.6249 1.7300 1.73875.3000 2.2962 2.2750 2.2700 1.5988 1.7450 1.7573 5.4000 2.3270 2.3000 2.2948 1.5806 1.7600 1.77545.5000 2.3570 2.3250 2.3201 1.5703 1.7750 1.7930 5.6000 2.3862 2.3500 2.3459 1.5677 1.7900 1.81025.7000 2.4145
15、2.3750 2.3720 1.5723 1.8050 1.8269 5.8000 2.4418 2.4000 2.3984 1.5838 1.8200 1.84305.9000 2.4682 2.4250 2.4249 1.6015 1.8350 1.8588 6.0000 2.4936 2.4500 2.4515 1.6249 1.8500 1.87406.1000 2.5180 2.4750 2.4781 1.6531 1.8650 1.8887 6.2000 2.5415 2.5000 2.5045 1.6855 1.8800 1.90306.3000 2.5640 2.5250 2.
16、5307 1.7212 1.8950 1.9168 6.4000 2.5857 2.5500 2.5566 1.7595 1.9100 1.93016.5000 2.6066 2.5750 2.5821 1.7995 1.9250 1.9430 6.6000 2.6266 2.6000 2.6071 1.8405 1.9400 1.95536.7000 2.6459 2.6250 2.6315 1.8817 1.9550 1.9672 6.8000 2.6645 2.6500 2.6552 1.9225 1.9700 1.97866.9000 2.6826 2.6750 2.6780 1.96
17、21 1.9850 1.9895 7.0000 2.7000 2.7000 2.7000 2.0000 2.0000 2.00007.1000 2.7169 2.7150 2.7210 2.0357 2.0050 2.0100 7.2000 2.7335 2.7300 2.7411 2.0686 2.0100 2.01957.3000 2.7496 2.7450 2.7602 2.0984 2.0150 2.0285 7.4000 2.7654 2.7600 2.7786 2.1249 2.0200 2.03707.5000 2.7810 2.7750 2.7961 2.1477 2.0250
18、 2.0450 7.6000 2.7963 2.7900 2.8130 2.1666 2.0300 2.05257.7000 2.8114 2.8050 2.8291 2.1817 2.0350 2.0595 7.8000 2.8264 2.8200 2.8446 2.1929 2.0400 2.06607.9000 2.8414 2.8350 2.8595 2.2003 2.0450 2.0719 8.0000 2.8562 2.8500 2.8739 2.2040 2.0500 2.07738.1000 2.8709 2.8650 2.8878 2.2041 2.0550 2.0822 8
19、.2000 2.8856 2.8800 2.9013 2.2010 2.0600 2.08658.3000 2.9003 2.8950 2.9144 2.1949 2.0650 2.0902 8.4000 2.9149 2.9100 2.9272 2.1862 2.0700 2.09338.5000 2.9294 2.9250 2.9397 2.1752 2.0750 2.0959 8.6000 2.9439 2.9400 2.9520 2.1623 2.0800 2.09798.7000 2.9582 2.9550 2.9641 2.1479 2.0850 2.0994 8.8000 2.9
20、723 2.9700 2.9761 2.1325 2.0900 2.10028.9000 2.9863 2.9850 2.9881 2.1164 2.0950 2.1004 9.0000 3.0000 3.0000 3.0000 2.1000 2.1000 2.10009.1000 3.0134 3.0050 3.0119 2.0838 2.0950 2.0990 9.2000 3.0264 3.0100 3.0238 2.0680 2.0900 2.09749.3000 3.0390 3.0150 3.0355 2.0531 2.0850 2.0952 9.4000 3.0510 3.020
21、0 3.0469 2.0393 2.0800 2.09259.5000 3.0625 3.0250 3.0578 2.0269 2.0750 2.08939.6000 3.0733 3.0300 3.0683 2.0161 2.0700 2.0857 9.7000 3.0833 3.0350 3.0782 2.0069 2.0650 2.08159.8000 3.0924 3.0400 3.0873 1.9996 2.0600 2.0770 9.9000 3.1005 3.0450 3.0956 1.9941 2.0550 2.072110.0000 3.1076 3.0500 3.1029
22、1.9904 2.0500 2.0668 10.1000 3.1136 3.0550 3.1092 1.9883 2.0450 2.061110.2000 3.1183 3.0600 3.1143 1.9878 2.0400 2.0552 10.3000 3.1216 3.0650 3.1181 1.9886 2.0350 2.049010.4000 3.1236 3.0700 3.1206 1.9903 2.0300 2.0425 10.5000 3.1239 3.0750 3.1215 1.9928 2.0250 2.035810.6000 3.1227 3.0800 3.1209 1.9
23、955 2.0200 2.0289 10.7000 3.1198 3.0850 3.1185 1.9980 2.0150 2.021910.8000 3.1151 3.0900 3.1143 2.0000 2.0100 2.0147 10.9000 3.1085 3.0950 3.1082 2.0008 2.0050 2.007411.0000 3.1000 3.1000 3.1000 2.0000 2.0000 2.0000 11.1000 3.0895 3.0800 3.0897 1.9970 1.9800 1.992411.2000 3.0770 3.0600 3.0772 1.9914
24、 1.9600 1.9841 11.3000 3.0624 3.0400 3.0626 1.9826 1.9400 1.974211.4000 3.0457 3.0200 3.0459 1.9702 1.9200 1.9621 11.5000 3.0268 3.0000 3.0269 1.9537 1.9000 1.946911.6000 3.0058 2.9800 3.0059 1.9328 1.8800 1.9280 11.7000 2.9826 2.9600 2.9826 1.9072 1.8600 1.904611.8000 2.9572 2.9400 2.9573 1.8765 1.
25、8400 1.8759 11.9000 2.9297 2.9200 2.9297 1.8408 1.8200 1.841312.0000 2.9000 2.9000 2.9000 1.8000 1.8000 1.8000 12.1000 2.8682 2.8600 2.8682 1.7542 1.7400 1.751612.2000 2.8344 2.8200 2.8342 1.7035 1.6800 1.6970 12.3000 2.7986 2.7800 2.7984 1.6485 1.6200 1.637712.4000 2.7609 2.7400 2.7606 1.5895 1.560
26、0 1.5749 12.5000 2.7214 2.7000 2.7211 1.5272 1.5000 1.509912.6000 2.6801 2.6600 2.6798 1.4625 1.4400 1.4442 12.7000 2.6372 2.6200 2.6370 1.3962 1.3800 1.379012.8000 2.5928 2.5800 2.5927 1.3296 1.3200 1.3157 12.9000 2.5470 2.5400 2.5470 1.2637 1.2600 1.255613.0000 2.5000 2.5000 2.5000 1.2000 1.2000 1
27、.2000 13.1000 2.4519 2.4500 2.4518 1.1399 1.1800 1.150113.2000 2.4029 2.4000 2.4026 1.0848 1.1600 1.1063 13.3000 2.3531 2.3500 2.3527 1.0364 1.1400 1.068713.4000 2.3027 2.3000 2.3021 0.9962 1.1200 1.0377 13.5000 2.2520 2.2500 2.2513 0.9656 1.1000 1.013413.6000 2.2011 2.2000 2.2004 0.9462 1.0800 0.99
28、60 13.7000 2.1502 2.1500 2.1496 0.9391 1.0600 0.985713.8000 2.0996 2.1000 2.0991 0.9454 1.0400 0.9828 13.9000 2.0494 2.0500 2.0491 0.9656 1.0200 0.987514.0000 2.0000 2.0000 2.0000 1.0000 1.0000 1.0000 14.1000 1.9515 1.9600 1.9519 1.0483 1.0600 1.020514.2000 1.9042 1.9200 1.9049 1.1096 1.1200 1.04921
29、4.3000 1.8583 1.8800 1.8594 1.1819 1.1800 1.0863 14.4000 1.8142 1.8400 1.8156 1.2627 1.2400 1.132014.5000 1.7720 1.8000 1.7737 1.3480 1.3000 1.1866 14.6000 1.7320 1.7600 1.7339 1.4325 1.3600 1.250314.7000 1.6945 1.7200 1.6963 1.5095 1.4200 1.3233 14.8000 1.6598 1.6800 1.6614 1.5705 1.4800 1.405714.9
30、000 1.6282 1.6400 1.6292 1.6050 1.5400 1.4979 15.0000 1.6000 1.6000 1.6000 1.6000 1.6000 1.6000上图中:最左边是使用拉格朗日插值法,中间是使用分段线性插值法,最右边是使用三次样条插值法。依据输出的数据及图形来,显然利用拉格朗日插值法得到的数据波动太大,不符合实际情况。所以现采用与实际情况拟合较好的三次样条插值法计算剖面面积。S=trapz(x,j1)-trapz(x,j2) %用梯形公式求剖面面积S =11.3444 S=simp(x,j1)-simp(x,j2) %用辛普森公式求剖面面积S =11.
31、3381【结果分析】观察三种插值方法得到的数据及图形,由于已知数据点太少,使得拉格朗日的误差较大,振荡也比较大;使用分段线性插值法,所得数据及图形比较接近实际情况,但是不光滑;使用三次线条插值法,所得数据及图形也比较接近实际情况,图形也比较光滑。X 7 10.5 13 17.5 34 40.5 44.5 48 56 61 68.5 76.5 80.5 91y1 44 45 47 50 50 38 30 30 34 36 34 41 45 46y2 44 59 70 72 93 100 110 110 110 117 118 116 118 118X 96 101 104 106.5 111.5
32、 118 123.5 136.5 142 146 150 157 158y1 43 37 33 28 32 65 55 50 66 66 68 66 68y2 121 124 121 121 121 122 116 82 86 85 68 85 68综上,应使用三次线条插值法获得所需数据及图形。已知,梯形公式的代数精度为 1,辛普森公式为 3,用辛普森公式更能求得实际结果。此处依照两公式的计算结果分别为:11.3444 和 11.3381,二者近似相等,所以机翼剖面的面积约为 11.34。【问题 2】 为算出某欧洲国家的国土面积,对该国地图做出如下测量:以由西向东方向为 x 轴,由南到北方向为
33、 y 轴,选择方便的原点,并将从最西边界点到最东边界点在 x 轴上的区间适当的划分为若干段,在每个分点的 y 方向测出南边界点和北边界点的 y 坐标 y1 和 y2,得到表三(单位: mm) 。 根据地图的比例尺我们知道 18mm 相当于 40km,试由测量数据计算该国国土的近似面积,与它的精确值 41288km2 作比较。 地图边界点数据【问题分析】借用上一题的思路,先利用插值法来获得足够多的数据点,然后再利用积分方法算出该国家的面积。【程序运算】 x0=7.0 10.5 13.0 17.5 34.0 40.5 44.5 48.0 56.0 61.0 68.5 76.5 80.5 91.0
34、96.0 101.0 104.0 106.5 111.5 118.0 123.5 136.5 142.0 146.0 150.0 157.0 158.0; y1=44 45 47 50 50 38 30 30 34 36 34 41 45 46 43 37 33 28 32 65 55 54 52 50 66 66 68; y2=44 59 70 72 93 100 110 110 110 117 118 116 118 118 121 124 121 121 121 122 116 83 81 82 86 85 68; %输入题中所给数据 x=7.0:158.0; s1=lagr(x0,y1
35、,x); s2=lagr(x0,y2,x); %拉格朗日插值 i1=interp1(x0,y1,x); i2=interp1(x0,y2,x); %分段线性插值 j1=spline(x0,y1,x); j2=spline(x0,y2,x); %三次样条插值 subplot(1,3,1),plot(x,s1,r,x,s2,r) %拉格朗日插值画图 subplot(1,3,2),plot(x,i1,b,x,i2,b) %分段线性插值画图 subplot(1,3,3),plot(x,j1,g,x,j2,g) %三次样条插值画图上图中:最左边的是依据拉格朗日插值法画出的图形,中间是依据分段线性插值法,
36、最右边是依据三次线条插值法。对照上图和实际图形,拉格朗日法的误差太大,不以其来计算面积。另外两种拟合较好,分别使用其所得数据计算面积。 S1=trapz(x,i2)-trapz(x,i1)S1 = 8.5875e+003 S1=S1/(18*18)*40*40S1 =4.2407e+004 %梯形公式计算分段线性插值所得数据 S2=trapz(x,j2)-trapz(x,j1)S2 = 8.5977e+003 S2=S2/(18*18)*40*40S2 =4.2458e+004 %梯形公式计算三次样条插值所得数据 S3=simp(x,i2)-simp(x,i1)S3 =8.5654e+003
37、S3=S3/(18*18)*40*40S3 =4.2298e+004 %辛普森公式计算分段线性插值所得数据 S4=simp(x,j2)-simp(x,j1)S4 =8.5792e+003 S4=S3/(18*18)*40*40S4 = 4.2366e+004 %辛普森公式计算三次样条插值所得数据通过由以上四种方法计算出的面积与真实面积的比较,不难发现用辛普森公式与分段线性插值法所得数据误差较小。 S3 =4.2298e+004; D=S3-41288D =1010 %计算误差【结果分析】由三种插值方法得出的图形以及最后由两种积分方法算出的结果可知,用辛普森公式计算积分、用分段线性插值所得面积误
38、差最小,面积为42298km2,误差为 1010km2,相对误差为 2.4%。误差在可接受范围内,所采取的方法相对可靠。【问题3】在桥梁的一端每隔一段时间记录1min有几辆车过桥,得到下表数据。过桥车辆数据试估计一天通过桥梁的车流量。【问题分析】该问题依旧是考察插值方法和积分方法的运用。同样可用插值法先计算出每隔1min过桥的车辆数,再用积分的方法求得一天通过桥梁的车流量。【程序运算】 x0=0:120:240,300:60:540,630:60:750,840,960:60:1440; y=2 2 0 2 5 8 25 12 5 10 12 7 9 28 22 10 9 11 8 9 3;
39、%录入图表数据 x=0:1440; s=lagr(x0,y,x); %拉格朗日法求插值 i=interp1(x0,y,x); %分段线性法求插值 j=spline(x0,y,x); %三次样条法求插值 subplot(1,3,1),plot(x,s,r) %拉格朗日法插值画图 subplot(1,3,2),plot(x,i,b) %分段线性法插值画图 subplot(1,3,3),plot(x,j,g) %三次样条法插值画图时 间 车 辆 数 /辆 时 间 车 辆 数 /辆 时 间 车 辆 数 /辆0:00 2 9:00 12 18:00 222:00 2 10:30 5 19:00 104:
40、00 0 11:30 10 20:00 95:00 2 12:30 12 21:00 116:00 5 14:00 7 22:00 87:00 8 16:00 9 23:00 98:00 25 17:00 28 24:00:00 3上图中:最左边是拉格朗日插值法所画图形,中间是分段线性插值法,最右边是三次线条插值法。下面利用分段线性法与三次样条法所得插值计算车流量。 V1=trapz(x,i) V1 = 12990 %梯形公式计算分段线性插值所得数据 V2=simp(x,i) V2 = 1.2987e+004 %辛普森公式计算分段线性插值所得数据 V3=trapz(x,j) V3 = 1.26
41、68e+004 %梯形公式计算三次样条插值所得数据 V4=simp(x,j)V4 = 1.2666e+004 %辛普森公式计算三次样条插值所得数据【结果分析】比较计算结果,分段线性插值法所得数据较大,且两种积分方法得到结果相近,近似认为车流量为 12987 辆/天;三次样条插值法所得数据较小,且两种积分方法得到结果相近,近似认为车流量为 12666 辆/天。综上,可估计车流量为 1260013000 辆/天。实验总结作为一个技术渣,第一次使用 MATLAB 做作业耗时较多,加上前期对MATLAB 基本操作的掌握大概有 7 个小时。不过此次作业的收货还是非常多的,首先知道了 MATLAB 本身没有拉格朗日插值法的函数,需要自己编一个文件,然后这三道题从本质上来看是一道题,而且核心知识点也只有三种插值方法以及求面积的三种方法,经过这三道题的反复练习,现在已经掌握了。整体上还是觉得 MATLAB 比编程更有趣,在工程上、实际应用中也有更大的用处,我相信我会把数学实验学好的!