计算国土面积数值分析课程设计.docx

上传人:b****5 文档编号:28427786 上传时间:2023-07-13 格式:DOCX 页数:17 大小:286.54KB
下载 相关 举报
计算国土面积数值分析课程设计.docx_第1页
第1页 / 共17页
计算国土面积数值分析课程设计.docx_第2页
第2页 / 共17页
计算国土面积数值分析课程设计.docx_第3页
第3页 / 共17页
计算国土面积数值分析课程设计.docx_第4页
第4页 / 共17页
计算国土面积数值分析课程设计.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

计算国土面积数值分析课程设计.docx

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

计算国土面积数值分析课程设计.docx

计算国土面积数值分析课程设计

课程设计题目

第一题:

计算国土面积

图3.8是某国的地图,为了计算它的国土面积,首先对地图作如下测量:

以由西向东方向为

轴,由南到北方向为

轴,选择方便的原点,得到了表3.6、表3.7的地图测量数据,比例尺为30毫米(数据单位):

100公里(实际单位)。

试由测量数据采用插值的方法产生一张需要的地图,计算该国国土的近似面积,与它的精确值156.6500万平方公里比较。

表3.6、表3.7见附件。

表3.6下边疆采样坐标

x

y

17

299

18

298

20

288

31

273

41

262

58

254

66

234

72

220

72

207

69

191

57

175

60

166

71

160

104

150

130

137

146

121

160

117

163

106

168

83

179

64

196

63

223

56

258

50

282

52

307

46

315

38

330

32

352

21

377

21

377

16

392

14

428

34

462

43

501

46

524

60

533

75

555

95

542

114

550

138

561

139

574

133

590

133

599

139

610

157

635

162

644

174

649

188

669

200

671

207

677

205

678

206

696

216

720

218

723

225

 

表3.7上边疆采样坐标

x

y

723

225

722

220

710

240

687

256

676

256

659

241

647

245

630

237

619

245

623

254

626

273

633

309

608

308

596

315

581

315

558

290

537

281

511

270

484

270

464

272

456

278

449

290

434

293

425

301

411

303

394

308

368

297

351

303

332

311

329

337

312

342

284

353

281

358

263

365

251

356

249

347

244

346

240

332

247

314

233

297

222

290

217

297

209

298

189

301

180

303

169

307

165

314

165

325

150

328

138

332

138

337

132

336

127

341

122

338

102

332

86

328

65

322

64

316

54

314

32

314

28

307

17

299

MATLAB求解不规则图形面积

 

摘要:

本文建立在数值分析的理论基础上,对原有的数据进行三次样条插值,运用梯形公式求解面积,能够在MATLAB环境中运行,给出了理论分析、程序清单以及计算结果。

更重要的是,还有详细的对算法的框图说明。

关键词:

MATLAB不规则图形面积三次样条插值复化梯形公式

问题提出

图3.8是某国的地图,为了计算它的国土面积,首先对地图作如下测量:

以由西向东方向为

轴,由南到北方向为

轴,选择方便的原点,得到了表3.6、表3.7的地图测量数据,比例尺为30(数据单位):

100公里(实际单位)。

试由测量数据采用插值的方法产生一张需要的地图,计算该国国土的近似面积,与它的精确值156.6500万平方公里比较。

表3.6、表3.7见附件。

问题解决

1.用MATLAB软件描点绘出地图的大概轮廓及三次样条插值作图

原始数据点所成图像三次样条插值所成图像

观察图形,对三次样条插值后的图和原始数据图的比较,可得三次样条插值后的图更加接近真实数据所形成的图形。

图中,地图的面积记为s,国土面积记为S,上边疆与X轴围成的面积记为s2,下边疆与X轴围成的面积记为s1。

从下面图中可以得出,s=s1-s1,再通过比例转化得S。

观察图形发现4个特殊段与X轴围成的面积,分别记为s11(55

地图面积s

图s2图s1

原始图像和三次样条插值的绘图代码可以参照附录2编写。

2.对特殊段面积的计算

s11(57

s21(619

将特殊段分割出去,对分割出的数据进行三次样条插值

(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;

上边疆:

A03:

B11;

A11:

B14;%(特殊段s21)

A14:

B40;

A40:

B41;%(特殊段s22)

A41:

B49;

A50:

B52;

A53:

B64;

2.求国土面积及相对误差的完整代码

A1=xlsread('第一题数据','下边疆','A03:

B10');

A2=xlsread('第一题数据','下边疆','A11:

B13');

A3=xlsread('第一题数据','下边疆','A13:

B31');

A4=xlsread('第一题数据','下边疆','A32:

B39');

A5=xlsread('第一题数据','下边疆','A39:

B40');

A6=xlsread('第一题数据','下边疆','A40:

B56');

%导入下边疆的实验数据并分好计算的数据段

x1=A1(:

1);x2=A2(:

1);x3=A3(:

1);

x4=A4(:

1);x5=A5(:

1);x6=A6(:

1);

y1=A1(:

2);y2=A2(:

2);y3=A3(:

2);

y4=A4(:

2);y5=A5(:

2);y6=A6(:

2);%给相应的变量赋值

x10=min(x1):

0.001:

max(x1);%对每一段数据点按连结顺序进行点横坐标的加密处理

x20=max(x2):

-0.001:

min(x2);

x30=min(x3):

0.001:

max(x3);

x40=min(x4):

0.001:

max(x4);

x50=max(x5):

-0.001:

min(x5);

x60=min(x6):

0.001:

max(x6);

y1i=interp1(x1,y1,x10,'spline');%对数据进行三次样条插值

y2i=interp1(x2,y2,x20,'spline');

y3i=interp1(x3,y3,x30,'spline');

y4i=interp1(x4,y4,x40,'spline');

y5i=interp1(x5,y5,x50,'spline');

y6i=interp1(x6,y6,x60,'spline');

x=[x10x20x30x40x50x60];y=[y1iy2iy3iy4iy5iy6i];

%对三次样条插值后的数据按连结顺序合并

s10=trapz(x10,y1i)+trapz(x30,y3i)+trapz(x40,y4i)+trapz(x60,y6i);

%用梯形公式求除特殊段以外的各段与X轴围成的面积并求和

s11=-trapz(x20,y2i);%对特殊段面积s11的计算

s12=-trapz(x50,y5i);%对特殊段面积s12的计算

s1=s10-s11-s12;%计算下疆界与X轴围成面积的精确值

plot(x,y)

holdon;

A1=xlsread('第一题数据','上边疆','A03:

B11');

A2=xlsread('第一题数据','上边疆','A11:

B14');

A3=xlsread('第一题数据','上边疆','A14:

B40');

A4=xlsread('第一题数据','上边疆','A40:

B41');

A5=xlsread('第一题数据','上边疆','A41:

B49');

A6=xlsread('第一题数据','上边疆','A50:

B52');

A7=xlsread('第一题数据','上边疆','A53:

B64');

%导入上边疆的实验数据并分好计算的数据段

x1=A1(:

1);x2=A2(:

1);x3=A3(:

1);x4=A4(:

1);

x5=A5(:

1);x6=A6(:

1);x7=A7(:

1);

y1=A1(:

2);y2=A2(:

2);y3=A3(:

2);y4=A4(:

2);

y5=A5(:

2);y6=A6(:

2);y7=A7(:

2);%给相应的变量赋值

x10=min(x1):

0.001:

max(x1);%对每一段数据点按连结顺序进行点横坐标的加密处理

x20=max(x2):

-0.001:

min(x2);

x30=min(x3):

0.001:

max(x3);

x40=max(x4):

-0.001:

min(x4);

x50=min(x5):

0.001:

max(x5);

x60=min(x6):

0.001:

max(x6);

x70=min(x7):

0.001:

max(x7);

y1i=interp1(x1,y1,x10,'spline');%对数据进行三次样条插值

y2i=interp1(x2,y2,x20,'spline');

y3i=interp1(x3,y3,x30,'spline');

y4i=interp1(x4,y4,x40,'spline');

y5i=interp1(x5,y5,x50,'spline');

y6i=interp1(x6,y6,x60,'spline');

y7i=interp1(x7,y7,x70,'spline');

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轴围成面积的精确值

s=s2-s1;

S=s*100/9;%计算实际国土面积

S

plot(x,y)

gridon;

t=abs(1.5665e+006-S)/1.5665e+006;%计算相对误差

t

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1