数学建模题 年降雨量计算doctypedoc.docx

上传人:b****4 文档编号:3016472 上传时间:2022-11-17 格式:DOCX 页数:13 大小:19.09KB
下载 相关 举报
数学建模题 年降雨量计算doctypedoc.docx_第1页
第1页 / 共13页
数学建模题 年降雨量计算doctypedoc.docx_第2页
第2页 / 共13页
数学建模题 年降雨量计算doctypedoc.docx_第3页
第3页 / 共13页
数学建模题 年降雨量计算doctypedoc.docx_第4页
第4页 / 共13页
数学建模题 年降雨量计算doctypedoc.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

数学建模题 年降雨量计算doctypedoc.docx

《数学建模题 年降雨量计算doctypedoc.docx》由会员分享,可在线阅读,更多相关《数学建模题 年降雨量计算doctypedoc.docx(13页珍藏版)》请在冰豆网上搜索。

数学建模题 年降雨量计算doctypedoc.docx

数学建模题年降雨量计算doctypedoc

组号

组号组号

组号183B题

题题

题、

、、

、中国水坝对区域降水的影响

中国水坝对区域降水的影响中国水坝对区域降水的影响

中国水坝对区域降水的影响

1.摘要

摘要摘要

摘要:

本文通过建立数学模型研究了中国水坝对区域降水影响问题。

对于气象空间

站分布不均匀,使得中国大陆平均降雨量不能直接计算,并且很难得到某地

区非常准确的降雨量数字,我们采用根据距离加权来计算某一点的降雨量,

根据距离它最近的m个点来计算该点的降雨量。

在建立模型求解中,我们着

重解决了以下问题:

1、用matlab编程处理所给xls信息;2、借助c++实现

我们做的模型,并进行稳定性测试。

3、将算法移植到matlab上,解出精确

度为1度的地图上的点的降雨量信息。

4、借助matlab将中国地图大致范围

求出。

5、分析某地区的降雨量变化

声明

声明声明

声明:

由于原始数据坐标问题,导致画出图像与真实情形相差太大,故借助matlab将错误

数据更正。

2.问题重述

问题重述问题重述

问题重述

根据附件中的材料,研究中国水坝对区域降水的影

响。

建立相应的数学模型,并解决的如下问题:

1.

估计1951年——2008年中国大陆的年平均降水量;

2.估计1951年——2008年某一地区的年降水量,即给出某一地区

的经度和纬度,用所建模型计算出该地区的年降水量。

按照你的

方法,估计水坝地区的降水量(1951年——2008年)。

3.研究中国水坝对区域降水的影响。

(注:

影响可能是多方面的。

可能会增加某地区的降水,也可能会减少另一地区的降水,还

可能会对某一地区的降水无影响。

请大家从多个层面考虑这个问

题。

)嶆潈娉曞缓绔嬩簡鏁板妯″瀷锛?

浠ユ眰鍑轰换鎰忎竴E

3.基本假设

基本假设基本假设

基本假设a)

假设经过修改的数据真实可靠。

b)假设大坝是平均分布在全国各地的。

c)假设大坝没有因年代久远或水量过大而影响蓄水量,并且一直完好如初。

4.符号说明

符号说明符号说明

符号说明:

m

为距离任意点(x,y)最近的点的个数

未知点(x,y)的降雨量

为已知点的年平均降雨量

为第i个已知点第j年的降雨量

为m个最近点中第i个点与任意点(x,y)的距离

为第i个计算出来的点的降雨量,

n为计算过的点的个数。

5.术语说明

术语说明术语说明

术语说明:

已知点预测

已知点预测已知点预测

已知点预测:

在验证求未知的是否准确的时候,假设一个离已知点很近的

点为未知点,求出它的降雨量,与刚取的已知点比较,看差距大小。

下文提到的c++程序只有一个,就是附录3中给的

6.

模型的建立与求解

模型的建立与求解模型的建立与求解

模型的建立与求解

6.1模型的建立

模型的建立模型的建立

模型的建立:

由题目中附件

3可以看出,气象站在全国并不是平均分布的,所

以不能用加起来求平均值的方法,我们利用距离位权法建立了数学模型,

以求出任意一点的平均降雨量。

平均降水量;

2.估计1951年——2008年某一s

设任意一点(x,y)降雨量为R(x,y)则:

其中:

为距离任意点(x,y)最近的点的个数

为已知点的年平均降雨量

rj

为第i个已知点第j年的降雨量wi为m个最近点中第i个点与任意点(x,y)的距离

m点的取值和R(x,y)的精确度有关,若m很大,则会包括所有城市,

虽然进行已知点验证时很精确,但不符合实际情况,若m很小,则精确

度会下降,关于m的取值,将会在下边的可靠性分析中讨论。

6.2

模型可靠性分析

模型可靠性分析模型可靠性分析

模型可靠性分析:

根据利用c++编出来的程序,可以验证,当m>60时,进行已知

点验证,与原降雨量差距很小,但是不符合实际,因为某地区降雨

量不会和很远距离的降雨量有太大相关性。

根据c++程序验证,取

m=15。

按閲忥紙1951骞粹€斺€?

00#本模型对于气象站分布较密集的地方精确度较高,但对于西部地

区气象站分布不均且数量有限情况下,可靠性会下降。

从c++程序来

看(去掉70行处注释符),当m=15时进行已知点预测的差别大的主

要在编号140以后的地区。

6.3问题求解

问题求解问题求解

问题求解:

6.3.1问题一的解

问题一的解问题一的解

问题一的解:

借助matlab将数据网格化大致算出中国降雨量可能会覆盖到的地方

如附件2。

如图1纬度

纬度纬度

纬度图1经度

经度经度

经度得到了中国大致的限制方程:

-0.72*x0+94.72-y0<0

其中x0,y0为当时要构造的点的坐标。

年平均降雨量R总为:

加某地区的降水,也可能会减少另M

其中:

为第i个计算出来的点的降雨量,n为计算过的点的个数。

由此,年平均降雨量R总求出

图2为求出的全国降雨量的分布(精确到1度)程序在附录3中图

2全国降雨量分布

6.3.2问题二的解

问题二的解问题二的解

问题二的解:

同模型建立过程

同模型建立过程同模型建立过程

同模型建立过程。

6.3.3问题三的解

问题三的解问题三的解

问题三的解:

我们选取全国

1个地区作为我们的分析对象:

东北区(1-34)。

采用

所建立的模型,借助一元线性回归来分析降雨量变化。

图2东北地区平均降雨量分布图3东北地区降雨量逐年分布水平

利用matlab算出每年东北地区平均降雨量的一次拟合曲线,再不考

虑人为因素时得到初步结论:

水坝的修建会减少降雨量。

然后利用matlab程序计算东北地区年降水量和大坝修建的相关系数

(附录4)

求得相关系数为-0.114,可以看出东北地区的降雨量和水坝的修建基

本无关。

由下图

上图可以看出,大坝在1960年附近和2000年附近时候有大幅上升,

但东北地区的降水量波动不是很大。

故得到最终结论:

东北地区降雨量

和全国大坝修建情况无关。

7.

参考资料

参考资料参考资料

参考资料

8.附件

附件附件

附件

Matlab调试环境

调试环境调试环境

调试环境:

2010a

C++调试环

调试环调试环

调试环境

境境

境:

vs2008附录

1:

以下程序用来初始化:

clear;

%%%%%%%初始化%%%%%%%%%

xls=xlsread('2009A2.xls');

dam=xlsread('2009A1.xls');

fori=2:

161

x(i-1)=xls(i,3);

y(i-1)=xls(i,4);

end

点的坐标。

年平均降雨量R总为:

fori=2:

161

forj=5:

62

zz(i-1,j-4)=xls(i,j);

end

end

fori=1:

160

z1(i)=zz(i,1);

z2(i)=zz(i,58);

end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%大坝容量年增加量%%%%%%%%%%%

damYearX=1:

2009;

damYearY=zeros(2009,1);

damX=zeros(4607,1);

damY=zeros(4607,1);

water=zeros(1,58);

year=1951:

2008;

fori=1:

4607

damX(i)=dam(i,1);

damY(i)=dam(i,2);

end

fori=1:

4607

damYearY(damX(i,1),1)=damYearY(damX(i,1),1)+damY(i,1);

end

fori=1:

2008

ifi>1950

water(i-1950)=damYearY(i);

end

end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

附录2,画图构造降雨量覆盖图

xtmp=linspace(min(x),max(x),80);

ytmp=linspace(min(y),max(y),80);

[X,Y]=meshgrid(xtmp,ytmp);

Z1=griddata(x,y,z1,X,Y);

Z2=griddata(x,y,z2,X,Y);?

_拍@_

%mesh(X,Y,Z1);

mesh(X,Y,Z2);

附录3

#include

#include

#include

#include

#defineMAX200

usingnamespacestd;

doublesum(double*a,intm)

{

doubleans=0;

for(inti=0;i

ans+=a[i];

returnans;

}

intmain()

{

ifstreamcin("aa.txt");//aa.txt文件有MATLAB生成程序附录(5),将aa.txt放到工程文

件夹下

doublex[MAX],y[MAX];

doublex0,y0;

inti,j,m;

doublesave[MAX],rainPerSite[MAX];

intmin[MAX];

for(i=0;i

doubletmp[MAX];

//scanf("%d%lf%lf",&m,&x0,&y0);

for(i=0;i<160;i++)

cin>>x[i];

for(i=0;i<160;i++)

cin>>y[i];

for(i=0;i<160;i++)

cin>>rainPerSite[i];

for(m=2;m<150;m++)

{

intcount=0;meshgrid(xtmp,ytmp);

Z1=griddata(x,y,z1ecout<<"m="<

for(intk=0;k<160;k++)

{

x0=x[k]-0.01;

y0=y[k]-0.01;

for(i=0;i<160;i++)

save[i]=sqrt(fabs((x[i]-x0)*(x[i]-x0))+fabs((y[i]-y0)*(y[i]-y0)));

for(i=0;i

{

for(j=0;j<160;j++)

if(save[min[i]]>save[j])

{

min[i]=j;

tmp[i]=save[min[i]];

}

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

当前位置:首页 > 工作范文 > 其它

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

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