求水域面积
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
陕西理工学院
机械工程专业 郑佳文 2015年12月22日
题目:
某地为了发展旅游产业及美化环境,规划将一片水域改造成一个景观湖,需测算该水域的面积,并计划沿湖修建一条观光道路。已在水域边界上测量了n 个点的坐标(见表),现要求解决下列问题:
(1)做出该水域的平面图 (2)求出该水域面积的近似值 (3)求出该水域边界的周长
表:湖的边界点实测坐标
解题思路:
1. 根据边界点实测的离散数据,利用多项式拟合求法分别求得数据(x,Y1)和(x,Y2)所对
应的拟合多项式表达式W1和W2。 2. 根据表达式,利用数值积分分别求出W1与W2与X 轴围城的面积1s 与2s ,则所测水域
的面积21s s s =
-.
3. 利用曲线积分公式b
a
L =
⎰,分别求得W1和W2对应函数的曲线长度,则所测水域的周长12L L L =
+.
MATLAB 程序如下:
%测量数据
x=[2 15 28.6 52 61.8 75.4 92.9 105.9 121.1...
140.8 157.2 180.5 216.8 248.5 279.8 310.4...
335 360.6 378.5 400.1 420.5 448.5 470.5 493.1];
Y1=[38.5 18.6 12.4 5.8 10.6 23.8 36.8 38.8...
25.4 28.7 18.8 38.6 50.5 20.4 5.4 32.8...
51.9 56.8 72.8 66.6 55.5 65.5 90.5 170.4];
Y2=[38.5 78.5 86.8 81.5 98.6 114.2 160.6...
172.8 176.6 165.5 158.6 155.6 186.8 252.4...
268.8 276.7 275.4 258.2 235.2 228.9 198.5 195.5 188.1 170.4]; %----------------------------------------------------------------------------------------
n=13;
m=15;
p=polyfit(x,Y1,n);
w1=poly2sym([p],'x')
c1=double(int(w1,2,493.1));
dw1=diff(w1);
s1=int(sqrt(1+dw1^2),2,493.1);
L1=double(s1);
q=polyfit(x,Y2,m);
w2=poly2sym([q],'x');
c2=double(int(w2,2,493.1));
dw2=diff(w2);
s2=int(sqrt(1+dw2^2),2,493.1);
L2=double(s2);
MJ=c2-c1 %水域的近似面积
L=L1+L2 %水域的边界周长
xi=linspace(2,493.1);
z1=polyval(p,xi);
z2=polyval(q,xi);
plot(x,Y1,'ok',xi,z1,'b');
hold on
plot(x,Y2,'ok',xi,z2,'b');
title('测绘水域平面图');
xlabel('x');
ylabel('y');
text(30,270,{[' ','计算结果',' '];['水域面积为:',num2str(MJ),'m^2'];['水域周长为:',num2str(L),'m']})
legend('测绘点','拟合曲线');
运行结果如下:
50100150200
250300350400450500
测绘水域平面图
x
y