计算国土面积数值分析报告课程设计Word文档下载推荐.docx
《计算国土面积数值分析报告课程设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《计算国土面积数值分析报告课程设计Word文档下载推荐.docx(16页珍藏版)》请在冰豆网上搜索。

137
146
121
117
163
106
168
83
179
64
196
63
223
56
258
50
282
52
307
46
315
38
330
32
352
21
377
16
392
14
428
34
462
43
501
524
533
75
555
95
542
114
550
138
561
139
574
133
590
599
610
157
635
162
644
174
649
188
669
200
671
677
205
678
206
696
216
720
218
723
225
表3.7上边疆采样坐标
722
710
240
687
256
676
659
241
647
245
630
237
619
623
626
633
309
608
308
596
581
558
290
537
281
511
270
484
464
272
456
278
449
434
293
425
301
411
303
394
368
297
351
332
311
329
337
312
342
284
353
358
263
365
251
356
249
347
244
346
247
314
233
222
217
209
189
180
169
165
325
328
132
336
127
341
122
338
102
86
65
322
316
54
28
MATLAB求解不规则图形面积
摘要:
本文建立在数值分析的理论基础上,对原有的数据进行三次样条插值,运用梯形公式求解面积,能够在MATLAB环境中运行,给出了理论分析、程序清单以及计算结果。
更重要的是,还有详细的对算法的框图说明。
关键词:
MATLAB不规则图形面积三次样条插值复化梯形公式
问题提出
轴,选择方便的原点,得到了表3.6、表3.7的地图测量数据,比例尺为30(数据单位):
问题解决
1.用MATLAB软件描点绘出地图的大概轮廓及三次样条插值作图
原始数据点所成图像三次样条插值所成图像
观察图形,对三次样条插值后的图和原始数据图的比较,可得三次样条插值后的图更加接近真实数据所形成的图形。
图中,地图的面积记为s,国土面积记为S,上边疆与X轴围成的面积记为s2,下边疆与X轴围成的面积记为s1。
从下面图中可以得出,s=s1-s1,再通过比例转化得S。
观察图形发现4个特殊段与X轴围成的面积,分别记为s11(55<
x<
72)、s12(542<
555)、s21(619<
633)、s22(240<
247),对特殊段的处理见下。
地图面积s
图s2图s1
原始图像和三次样条插值的绘图代码可以参照附录2编写。
2.对特殊段面积的计算
s11(57<
72)s12(542<
555)
s21(619<
633)s22(240<
247)
将特殊段分割出去,对分割出的数据进行三次样条插值
(1),再用复化梯形公式
(2)求出特殊段s11,s12,s21,s22的值。
由于这四个特殊段面积的计算方法类同,所以这里就以s11的计算为例。
s11的计算:
A2=xlsread('
第一题数据'
'
下边疆'
'
A11:
B13'
);
x2=A2(:
1);
y2=A2(:
2);
x21=max(x2):
-0.001:
min(x2);
y2i1=interp1(x2,y2,x21,'
spline'
s11=-trapz(x21,y2i1);
%由于x21的值是降序的所以符号取反的结果才是面积
s11
计算结果为:
s11=2.7150e+003
s12=1.3585e+003
s21=3.8407e+003
s22=2.2610e+003
3.计算s1和s2
s1中包含s11和s12的图
s2中包含s21和s22的图
由于s1和s2的计算方法类同,所以这就以s1的计算为例。
对分段的数据进行三次样条插值(除特殊段以外,具体分割见附录1下边疆),每段都运用复化梯形公式并求出和记为s10。
观察图形可得出,s10与s1相比就只多算了两个特殊段的面积s11,s12,所以s1=s10-s11-s12。
计算s1的关键代码:
s10=trapz(x10,y1i)+trapz(x30,y3i)+trapz(x40,y4i)+trapz(x60,y6i);
%用复化梯形公式求除特殊段以外的各段与X轴围成的面积并求和
s1=7.4597e+004
s2=2.1257e+005
4.计算S
从以上的过程已经得出s=s2-s1,还要将s按比例转化所得就是国土面积S。
s=s2-s1;
S=s*100/9;
S
S=1.5331e+006(平方公里)
5.计算相对误差t
相对误差的求解公式为:
t=0.0213
6.误差分析
误差的产生主要来源于数据点的个数有点少以及数据点之间不够均匀,这样三次样条插值后的数据作图就会与实际地图和地形相比有较大的误差。
7.分析和总结
由于t的值较小,所以以上的计算结果S=1.5331e+006平方公里可以作为国土面积的近似值。
在以后的不规则图形面积的计算中,此方法可以考虑选择使用。
由于梯形公式只有一次代数精确度(3),所以会产生计算的结果不够精确。
但要很精确求出不规则图形面积,就必须测量出更多的数据点以及选用代数精确度更高的算法,才能够更加减少插值和计算上的误差。
至此,国土面积计算完成。
注释:
(1)三次样条插值:
参照参考文献[2]46~50页
(2)复化梯形公式:
参照参考文献[2]90~91页
(3)代数精确度:
参照参考文献[2]88页
参考文献:
[1]玉莉等,MATLAB函数速查手册,:
化学工业,2010
[2]袁东锦,计算方法—数值分析,:
师大学,2007
[3]蒲俊吉家锋伊良忠,Matlab6.0数学手册,浦东:
浦东电子,2002
附录:
1.对附件数据的分段
下边疆:
A03:
B10;
A11:
B13;
%(特殊段s11)
A13:
B31;
A32:
B39;
A39:
B40;
%(特殊段s12)
A40:
B56;
上边疆:
B11;
B14;
%(特殊段s21)
A14:
B41;
%(特殊段s22)
A41:
B49;
A50:
B52;
A53:
B64;
2.求国土面积及相对误差的完整代码
A1=xlsread('
A03:
B10'
A3=xlsread('
A13:
B31'
A4=xlsread('
A32:
B39'
A5=xlsread('
A39:
B40'
A6=xlsread('
A40:
B56'
%导入下边疆的实验数据并分好计算的数据段
x1=A1(:
x3=A3(:
x4=A4(:
x5=A5(:
x6=A6(:
y1=A1(:
y3=A3(:
y4=A4(:
y5=A5(:
y6=A6(:
%给相应的变量赋值
x10=min(x1):
0.001:
max(x1);
%对每一段数据点按连结顺序进行点横坐标的加密处理
x20=max(x2):
x30=min(x3):
max(x3);
x40=min(x4):
max(x4);
x50=max(x5):
min(x5);
x60=min(x6):
max(x6);
y1i=interp1(x1,y1,x10,'
%对数据进行三次样条插值
y2i=interp1(x2,y2,x20,'
y3i=interp1(x3,y3,x30,'
y4i=interp1(x4,y4,x40,'
y5i=interp1(x5,y5,x50,'
y6i=interp1(x6,y6,x60,'
x=[x10x20x30x40x50x60];
y=[y1iy2iy3iy4iy5iy6i];
%对三次样条插值后的数据按连结顺序合并
%用梯形公式求除特殊段以外的各段与X轴围成的面积并求和
s11=-trapz(x20,y2i);
%对特殊段面积s11的计算
s12=-trapz(x50,y5i);
%对特殊段面积s12的计算
s1=s10-s11-s12;
%计算下疆界与X轴围成面积的精确值
plot(x,y)
holdon;
上边疆'
B11'
B14'
A14:
B41'
A41:
B49'
A50:
B52'
A7=xlsread('
A53:
B64'
%导入上边疆的实验数据并分好计算的数据段
x7=A7(:
y7=A7(:
x40=max(x4):
min(x4);
x50=min(x5):
max(x5);
x70=min(x7):
max(x7);
y7i=interp1(x7,y7,x70,'
x=[x70x60x50x40x30x20x10];
y=[y7iy6iy5iy4iy3iy2iy1i];
s20=trapz(x10,y1i)+trapz(x30,y3i)+trapz(x50,y5i)+trapz(x60,y6i)+trapz(x70,y7i);
%用梯形公式求除特殊段以外的各段与X轴围成的面积并求和
s21=-trapz(x20,y2i);
%对特殊段面积s21的计算
s22=-trapz(x40,y4i);
%对特殊段面积s22的计算
s2=s20-s21-s22;
%计算上疆界与X轴围成面积的精确值
%计算实际国土面积
gridon;
t=abs(1.5665e+006-S)/1.5665e+006;
%计算相对误差
t