MATLAB--计算国土面积

更新时间:2023-05-13 07:47:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

MATLAB--计算国土面积 数值分析 课程设计 历时两周 完美通过!!

国土面积的计算

摘要:数学建模方法是处理科学理论的一种经典方法,也是解决各类实际问题的常用方法。本文采用插值、复化梯形公式的方法,并利用数学软件MATLAB对国土面积进行计算,计算结果与实际记录基本吻合,最终将误差控制在1%内。 关键词:建模 分段 插值 复化梯形公式(trapz)方法 MATLAB

1.问题分析

在生产与科学试验中,反映自然规律的函数关系,往往是通过实验、观测得到的。从题目我们知道本题的本质是就是求不规则平面图形的面积。题目给出地图测量数据,我们就可以使用MATLAB软件的plot函数画出该不规则平面图形的模拟图。题中已经把图形分成上下边疆线,所以可以运用插值与复化梯形公式分别求出上下边疆的面积,最后求出图形面积。

2.算法设计

2.1作图

因为表中数据点较多,并且横轴有重复的点,无法直接进行插值,所以需要进行分段。分别把上下边疆线按数字连续截取,遇到重复的值,或小的值进行分段。

记为xn,其中n=1,2,3,……

以下边疆线为例:

把下边疆线分为6段,分别是:

x1=[17 18 20 31 41 58 66 72 ];

x2=[57 60 71 104 130 146 160 163 168 179 196 223 258 282 307 315 330 352 377 ]; x3=[377 392 428 462 501 524 533 555];

x4=[542 550 561 574 590 599 610 635 644 649 669 671 677 678 696 720 723]; x5=[69 72];

MATLAB--计算国土面积 数值分析 课程设计 历时两周 完美通过!!

x6=[542 555];

为了作出一个合理的图像,首先考虑用线性插值。记为yni,其中n=1,2,3……

以x1为例

x1i=17:1:72;

y1i=interp1(x1,y1,x1i);

y1i就是以区间[17 72]运用线性插值构造的函数值,x1,y1是插值节点,x1i是被插值点。所以我们对被分段的上下边疆的数据进行线性插值。

2.2求面积

对每段构造的函数值分别用复化梯形公式(trapz)求积分,记为sn,其中n=1,2,3……

以s1为例 s1=trapz(y1i)*1

设区间[17 72]之间的面积为s1。s1的面积是蓝色的部分,同理可求上、下边疆的面积。sx=s1+s2+s3+s4+s5-s6; ss=s7+s8+s9+s10+s11+s12-s13.

MATLAB--计算国土面积 数值分析 课程设计 历时两周 完美通过!!

最后根据图形与题意用四则运算分别计算出整个上边疆线与下边疆线的面积,分别记为ss,sx。用ss减sx所求得的值即为地图面积,记为s。

2.3误差

设图形面积为s,根据比例尺把s换算成实际单位,并与实际面积1566500平方公里作比较,求误差。

3.程序运行结果

上边疆线面积 ss=220240

下边疆线面积 sx=77909;

图形面积 s=142330;

误差估计为0.0095234

参考文献:计算方法——数值分析

附录

部分源代码:

x1=[17 18 20 31 41 58 66 72 ];

y1=[299 298 288 273 262 254 234 220 ];

x1i=17:1:72;

y1i=interp1(x1,y1,x1i);

plot(x1,y1,'bo',x1i,y1i,'b-')

hold on;

x2=[57 60 71 104 130 146 160 163 168 179 196 223 258 282 307 315 330 352 377 ];

MATLAB--计算国土面积 数值分析 课程设计 历时两周 完美通过!!

y2=[175 166 160 150 137 121 117 106 83 64 63 56 50 52 46 38 32 21 21 ]; x2i=57:1:377;

y2i=interp1(x2,y2,x2i);

plot(x2,y2,'mo',x2i,y2i,'m-')

hold on;

x3=[377 392 428 462 501 524 533 555];

y3=[16 14 34 43 46 60 75 95];

x3i=377:1:555;

y3i=interp1(x3,y3,x3i);

plot(x3,y3,'ko',x3i,y3i,'k-')

hold on;

x4=[542 550 561 574 590 599 610 635 644 649 669 671 677 678 696 720 723]; y4=[114 138 139 133 133 139 157 162 174 188 200 207 205 206 216 218 225]; x4i=542:1:723;

y4i=interp1(x4,y4,x4i);

plot(x4,y4,'ro',x4i,y4i,'r-')

hold on;

x5=[69 72];

y5=[191 207];

x5i=69:1:72;

MATLAB--计算国土面积 数值分析 课程设计 历时两周 完美通过!!

y5i=interp1(x5,y5,x5i);

plot(x5,y5,'go',x5i,y5i,'g-')

hold on;

x6=[542 555];

y6=[114 95];

x6i=542:1:555;

y6i=interp1(x6,y6,x6i);

plot(x6,y6,'yo',x6i,y6i,'y-')

hold on;

%以上是上边疆的图形

x1=[17 18 20 31 41 58 66 72 ];

y1=[299 298 288 273 262 254 234 220 ];

h=1;

x1i=17:h:72;

y1i=interp1(x1,y1,x1i,'spline');

s1=trapz(y1i)*h

x2=[57 60 71 104 130 146 160 163 168 179 196 223 258 282 307 315 330 352 377 ]; y2=[175 166 160 150 137 121 117 106 83 64 63 56 50 52 46 38 32 21 21 ]; x2i=57:h:377;

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

MATLAB--计算国土面积 数值分析 课程设计 历时两周 完美通过!!

x3=[377 392 428 462 501 524 533 555];

y3=[16 14 34 43 46 60 75 95];

x3i=377:h:555;

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

s3=trapz(y3i)*h

x4=[542 550 561 574 590 599 610 635 644 649 669 671 677 678 696 720 723]; y4=[114 138 139 133 133 139 157 162 174 188 200 207 205 206 216 218 225]; x4i=542:h:723;

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

s4=trapz(y4i)*h

x5=[ 69 72];

y5=[ 191 207];

x5i=69:h:72;

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

s5=trapz(y5i)*h

x6=[542 555];

y6=[114 95];

x6i=542:h:555;

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

MATLAB--计算国土面积 数值分析 课程设计 历时两周 完美通过!!

%以上是上边疆的面积

本文来源:https://www.bwwdw.com/article/yape.html

Top