生态平衡建模实验.docx

上传人:b****1 文档编号:1089459 上传时间:2023-04-30 格式:DOCX 页数:17 大小:21.40KB
下载 相关 举报
生态平衡建模实验.docx_第1页
第1页 / 共17页
生态平衡建模实验.docx_第2页
第2页 / 共17页
生态平衡建模实验.docx_第3页
第3页 / 共17页
生态平衡建模实验.docx_第4页
第4页 / 共17页
生态平衡建模实验.docx_第5页
第5页 / 共17页
生态平衡建模实验.docx_第6页
第6页 / 共17页
生态平衡建模实验.docx_第7页
第7页 / 共17页
生态平衡建模实验.docx_第8页
第8页 / 共17页
生态平衡建模实验.docx_第9页
第9页 / 共17页
生态平衡建模实验.docx_第10页
第10页 / 共17页
生态平衡建模实验.docx_第11页
第11页 / 共17页
生态平衡建模实验.docx_第12页
第12页 / 共17页
生态平衡建模实验.docx_第13页
第13页 / 共17页
生态平衡建模实验.docx_第14页
第14页 / 共17页
生态平衡建模实验.docx_第15页
第15页 / 共17页
生态平衡建模实验.docx_第16页
第16页 / 共17页
生态平衡建模实验.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

生态平衡建模实验.docx

《生态平衡建模实验.docx》由会员分享,可在线阅读,更多相关《生态平衡建模实验.docx(17页珍藏版)》请在冰点文库上搜索。

生态平衡建模实验.docx

生态平衡建模实验

 

生态平衡建模实验

 

1、目标

通过此实验了解系统动力学的仿真方法,学会用所学的建模理论来对实

际问题进行建模,并对实际问题进行分析。

对此生态平衡系统进行仿真实验,改变不同的控制参数,分析实验的结果,得出系统保持生态平衡的条件,为决策者决策提供理论分析基础。

2、原理

通过此次实验了解系统动力学的仿真方法,学会用所学的建模理论来对实

际问题进行建模,并对实际问题进行分析。

对此生态平衡系统进行仿真实验,改变不同的控制参数,分析实验的结果,得出系统保持生态平衡的条件,为决策者决策提供理论分析基础。

系统动力学(SystemDynamics)是美国麻省理工学院J.W福雷斯特(JayWForrester)教授创立的一门新兴学科。

它按照自身独特的方法论建立系统的动态模型,并借助于计算机进行仿真,以处理行为随时间变化的系统的问题。

系统动力学首先强调系统性的观点,以及联系、发展、运动的观点,是研

究复杂系统,诸如:

社会、经济、环境、人口、生态平衡、产业发展等的有效工

具。

系统动力学的研究对象主要是社会经济系统。

社会经济系统的范围十分广泛,

凡是涉及到人类的社会活动和经济活动的系统都属于社会系统。

诸如本文要研究

的人口系统、资源系统、环境系统、经济系统、科技系统、能源系统,都属于社

会经济系统。

系统动力学的基础是通过实验方法认识系统的行为,为管理决策者

提供决策的依据。

系统动力学仿真的基本步骤是:

(1)明确建模目的

一般来说,系统动力学对社会系统进行仿真实验的主要目的是认识和预测系统的结构和设计最佳参数,为制定合理的政策提供依据。

这一步的工作包括

观察系统、专家咨询、收集数据资料等,在涉及具体对象系统时,应根据其要求,仿真目的有所侧重。

(2)确定系统边界

系统动力学是将研究对象视为一个系统来处理的。

系统是一个相对的概念,相对于所研究问题的实质和建模的目的而言。

一旦所要研究的问题的实质和建模的目的已经确定,系统也就确定了,其边界应该是清晰的和唯一的。

确定了系统边界之后,才能确定系统的内生变量和外生变量。

内生变量是由系统内部反馈结构决定的变量,外生变量是由影响环境因素确定的变量。

系统动力学认为系统的行为是基于系统内部的种种因素而产生的,并假定系统的外部因素不给系统的行为以本质的影响,也不受系统内部因素的控制。

(3)因果关系分析

通过因果关系分析,要明确系统内部各要素之间的因果关系,并用表示因果关系的反馈回路来描述。

所谓反馈是指:

系统中某要素的增加,使受它影响的系统其他要素也发生变化(增加或者减少)。

反馈环分为正反馈和负反馈,而正反馈环使系统表现为增长的行为,负反馈使系统表现为收敛的行为。

系统动力学认为反馈环是构造系统的第一层次,其多少是系统复杂程度的标志。

观察实际系统

精选文库

 

获得的信息首先用于这一层次。

任意两个系统要素从因果关系来看必然是正因果关系、负因果关系或无因果关系。

由于决策是在一个或几个反馈回路中进行,而且由于各种回路的耦合,使系统的行为更加复杂化。

(4)建立系统动力学模型

进行因果关系分析属于系统动力学仿真的定性分析,要对系统进行定量分析

还必须借助流图与构造方程式建立系统模型。

所谓建模就是要确定各反馈环中的流位和流率。

流位是系统的状态变量,它的变化可用来描述系统的动态特征:

而流率是流位的变化速率,它控制着流位,流率变量是一个决策函数(包括人的决策与机理决策的行为)。

当确定了流位和流率变化之后,就可以得到流图与构造方程式。

(5)运行模型

采用系统动力学仿真语言,将上一阶段建立的系统模型转换成系统仿真模

型,并在计算机上模拟运行,得出结果。

(6)结果分析

通过对结果的分析,不仅可发现系统的构造错误和缺陷,而且还可以找出错误和缺陷的原因。

根据结果分析情况,如果需要,就对模型进行修正,然后再做仿真试验,直至得到满意的结果为止。

3、理论分析

生活在同一环境中的各类生物之间,进行着残酷的生存竞争,一类动物靠捕

食另一类动物为生,而另一种动物则靠又多又快地繁衍后代和逃逸等手段求生存

求发展,如此等等。

设一封闭的海岛上,有两个种群,狐狸和啮齿动物。

狐狸吃

啮齿动物,啮齿动物吃草。

青草是如此之丰富,以至啮齿动物无需为无食而发愁,

啮齿动物饱食后大量繁殖。

啮齿动物数量一多,狐狸容易得食,狐狸也增加。

狐狸数过多而吃掉大量啮齿动物之后,狐狸进入饥饿状态而造成总数下降,这时啮齿动物们又相对安全一些。

于是,啮齿动物总数回升。

如此,狐狸和啮齿动物

两种动物之数额相关地交替增减,无休止循环,出现生态动态平衡。

本次实验不考虑种内竞争,只考虑物种间的斗争。

4、建模过程

(1)系统因果关系分析

本文中作以下假设:

1.狐狸只吃成年啮齿动物,故幼年啮齿动物的死亡只与成年啮齿动物的死

亡有关;

2.考虑啮齿动物以种群生活,不考虑单独家庭,则幼年啮齿动物的死亡只与种群中成年啮齿动物单位时间的死亡量有关。

3.猎人只捕杀成年狐狸;

4.水草数量充足,故在一定限度内不用考虑啮齿动物因食物不足导致的死

亡,只有当啮齿动物总量超过100000时,啮齿动物才会受到水草的限制停止增

长;实际上,对于一个封闭系统来说,啮齿动物的数量肯定会与水草总量有关,

水草充足时,啮齿动物死亡率只受狐狸数量影响,水草不足时,啮齿动物会面临

灭亡的危险,继而导致狐狸数量减少。

但是,由于找不到合适的函数,来表达啮

齿动物与水草之间的制约关系,故本文中假设水草充足。

幼年狐狸的数量取决于成年狐狸8个月前月初的数量以及幼年狐狸原来

 

—2

精选文库

 

的数量,同时还受成年啮齿动物数量的限制;成年狐狸数量受成年啮齿动物数量的限制(假设当狐狸需要的啮齿动物大于啮齿动物数量时系统崩溃),同时也受

8个月前幼年狐狸出生数量的影响,120个月后猎人的捕杀会减少狐狸的数量;成年啮齿动物因作为狐狸的食物而减少,也受三个月前幼年啮齿动物数量的影

响;幼年啮齿动物的数量因成年啮齿动物的死亡而减少,也受之前出生的幼年啮齿动物的影响。

系统的因果关系图如下图图1所示。

 

+

 

+

 

成年狐狸

+

幼年狐狸

+

幼年狐狸

出生率

 

-

+

-

-

-

-

成年啮齿动物

水草

幼年狐狸

成年狐狸

死亡率

死亡率

死亡率

-

+

-

-

-

猎人

+

成年啮齿

动物

+

+

+

幼年啮齿动物

幼年啮齿出生率

动物

+

 

图1:

系统的因果关系图

 

(2)变量定义:

 

仿真时间(月数)month(120个月以内)

超过120个月的部分Month

 

成年狐狸(初始)个数Fox

幼年狐狸(初始)个数fox

成年啮齿动物(初始)个数Rodent

幼年啮齿动物(初始)个数rodent

 

—3

精选文库

 

幼年狐狸单位时间出生量Birth_f

幼年狐狸单位时间成长量Growth_f

成年狐狸单位时间死亡量Death_F

幼年狐狸单位时间死亡量Death_f

 

幼年啮齿动物单位时间出生量Birth_r

幼年啮齿动物单位时间成长量Growth_r

成年啮齿动物单位时间死亡量Death_R

幼年啮齿动物单位时间死亡量Death_r

 

猎人的个数Hunter

猎人每月打死成年狐狸的数量是4

 

(3)系统动力学模型

(a)系统流图(简化)

 

图2:

简化的系统流图

 

(b)构造方程式组

系统动力学模型首先描述的是系统的状态即流位,“流位”是由系统内物质的流动情况所决定。

系统的流位由输入流和输出流决定。

该系统中定义的流位变量有五个:

幼年狐狸fox、成年狐狸Fox、幼年啮齿动物rodent、成年啮齿动物Rodent,它们的流位方程分别为:

幼年狐狸:

fox=Birth_r-Death_F-Birth_f;

成年狐狸:

Fox=Growth_f-Death_F;

幼年啮齿动物:

rodent=Birth_r-Death_F-Birth_f;

成年啮齿动物:

Rodent=Growth_r-Death_F;

流率表达式则是一组代数方程。

该系统中流率之间的关系可通过如下方程组表示:

(考虑一个单位时间为1月)

 

—4

精选文库

 

幼年啮齿动物单位时间出生量:

Birth_r=floor(Rodent*0.95)

幼年啮齿动物单位时间成长量:

Growth_r_unit=Birth_r/3;

成年啮齿动物单位时间死亡量:

如果狐狸种群吃的啮齿动物量较少(假设狐狸只吃成年啮齿动物),即:

10*fox+60*Fox

如果狐狸种群吃的量较多,超过成年啮齿动物总量的承受范围,啮齿动物灭亡,即:

10*fox+60*Fox>Rodent,则Death_R=Rodent

另外,由于环境中水草的数量的限制,当成年啮齿动物的数量超过一定的界限时,啮齿动物数量大量死亡,即:

Rodent>100000时,Death_R=Rodent-100000;

 

幼年狐狸单位时间出生量:

Birth_f=floor(Fox*0.75);

幼年狐狸单位时间成长量:

Growth_f_unit=Birth_f/8;

幼年狐狸单位时间死亡量:

Death_f_unit=(10*fox+60*Fox-Death_R)/40;

成年狐狸单位时间死亡量:

成年狐狸死亡的分为两个阶段,在猎人介入之前的

120个月里,只与食物有

关,此时:

Death_F=(10*fox+60*Fox-Rodent)/30;

此时:

Death_F=(10*fox

猎人介入之后,死亡量还与猎人每月的捕杀量有关

+60*Fox-Rodent)/30+10*Hunter;(Hunter为猎人个数)(4)程序流程图

 

—5

精选文库

 

图3程序流程图

 

(5)仿真源程序

fox=400;%ExistingBabyFoxes

Fox=200;%ExistingAdultFoxes

rodent=10000;%ExsitingBabyRodents

Rodent=90000;%ExsitingAdultRodents

Hunter=1;%Hunters

 

fori=1:

month+Month

 

—6

精选文库

 

%%FoxandRodentInfluenceEachOther

if10*fox(i)+60*Fox(i)

Death_R=10*fox(i)+60*Fox(i);%Foxeatadultrodent

else

Death_R=Rodent(i);%Alladultrodentdie

ifRodent(i)>100000%Rodentexceeds10W

Death_R=Rodent(i)-100000;

end

end

 

ifi<120

Death_F=(10*fox(i)+60*Fox(i)-Rodent(i))/30;

else

Death_F=(10*fox(i)+60*Fox(i)-Rodent(i))/30+10*Hunter;

end

%ifi<120&&60*Fox(i)>Rodent(i)

%Death_F=(10*fox(i)+60*Fox(i)-Rodent(i))/30;

%elseifi<120&&8*10*fox(i)

%Death_F=(8*10*fox(i)+60*Fox(i)-Rodent(i))/30;

%elseifi<120&&8*10*fox(i)>Rodent(i)

%Death_f=(8*10*fox(i)-Rodent(i))/30;

%elseifi>120

%Death_F=(10*fox(i)+60*Fox(i)-Rodent(i))/30

+4*Hunter;

%end

%end

%end

%end

 

Birth_r=floor(Rodent(i)*0.95);

Birth_f=floor(Fox(i)*0.75);

Death_f_unit=(10*fox(i)+60*Fox(i)-Death_R)/40;

Growth_r_unit=Birth_r/3;

Growth_f_unit=Birth_f/8;

%%BabyFoxPart

iffox(i)+Birth_f-Death_f_unit-Growth_f_unit>0

fox(i+1)=fox(i)+Birth_f-Death_f_unit-Growth_f_unit;

else

fox(i+1)=0;

end

 

%%AdultFoxPart

ifFox(i)+Growth_f_unit-Death_F>0

Fox(i+1)=(Fox(i)+Growth_f_unit-Death_F)/(0.005*Fox(i)+1);

 

—7

精选文库

 

else

Fox(i+1)=0;

end

 

%%BabyRodentPart

ifrodent(i)-Death_F-Birth_f>0

rodent(i+1)=rodent(i)-Death_F-Birth_f;

else

rodent(i+1)=0;

end

 

%%AdultRodentPart

ifRodent(i)+Growth_r_unit-Death_F<0

Rodent(i+1)=0;

elseifRodent(i)+Growth_r_unit-Death_F>100000

Rodent(i+1)=Rodent(i)+Growth_r_unit-Death_F-100000;

else

Rodent(i+1)=Rodent(i)+Growth_r_unit-Death_F;

end

end

 

end

 

%%FigurePlot

subplot(2,2,1),plot(fox),axis([0,month+Month,0,3000]),title(

'Baby

Foxes'

),ylabel(

'Amount'

);

grid

on

subplot(2,2,2),plot(Fox),axis([0,month+Month,0,2000]),title(

'Adult

Foxes'

);

grid

on

subplot(2,2,3),plot(rodent),axis([0,month+Month,0,100000]),

title(

'BabyRodents'

),xlabel(

'Month'

),ylabel(

'Amount'

);

grid

on

subplot(2,2,4),plot(Rodent),axis([0,month+Month,0,100000]),

title(

'AdultRodents'

),xlabel(

'Month'

);

grid

on

 

5、仿真结果分析

按照上述程序,设初值如下:

月数month=120;Month=30;

幼年狐狸数量fox=400;

成年狐狸数量Fox=200;

幼年啮齿动物数量rodent=10000;

 

—8

精选文库

 

成年啮齿动物数量Rodent=10000;

猎人数量Hunter=1;

该数据分配情况下,运行结果如下图4。

很明显,仿真结果很不理想,系统在不到几年的时间内就崩溃,啮齿动物首先灭亡,然后狐狸因食物不足继而灭亡。

分析原因可能是啮齿动物数量太少,不足以维持狐狸的生存。

 

图4

 

鉴于上述结果,我们增加成年啮齿动物数量,对数据做如下改动:

幼年狐狸数量fox=400;

成年狐狸数量Fox=200;

幼年啮齿动物数量rodent=10000;

成年啮齿动物数量Rodent=90000;

猎人数量Hunter=1;

仿真结果如下图5:

 

—9

精选文库

 

图5

 

由上图可知,系统处于一个动态平衡状态,但总是在由于当成年啮齿动物很多时时,啮齿动物大量死亡,引起很大波动。

假设狐狸和啮齿动物都比较少的时候,又会是什么情况呢?

设置数据进行仿真,结果如下图6所示:

幼年狐狸数量fox=50;

成年狐狸数量Fox=15;

幼年啮齿动物数量rodent=10000;

成年啮齿动物数量Rodent=5000;

猎人数量Hunter=1;

该数据分配情况下,运行结果如下图6:

 

—10

精选文库

 

图6

 

由上图可知,即使初始时动物的数量比较少,但随着时间的推移,啮齿动物数量还是会增加一定的数量,从而引起大的波动。

此外,若想观察120个月之后,猎人加入后对系统造成的影响,可以通过在保持猎人每月射杀的狐狸数量不变的情况下,改变程序中猎人的数量来探讨。

设置数据额如下:

幼年狐狸数量fox=50;

成年狐狸数量Fox=15;

幼年啮齿动物数量rodent=10000;

成年啮齿动物数量Rodent=5000;

猎人数量Hunter=5;

运行结果如下图7。

 

—11

精选文库

 

图7

显然,当增加猎人后,狐狸数目很快下降,直至全部被猎人打死。

6、提供几种情况下的对比

①系统由开始的不稳定系统过渡到稳定系统的情况比较(图

4、5):

图4

系统崩溃,当增加啮齿动物数量,如图5所示系统达到稳定状态。

由图可推测到应该是程序中啮齿动物初始数量不合适导致。

经更改后,系统稳定。

这情况说明如果系统中啮齿动物由于某种数量较少时,则会导致整个系统崩溃,所有物种灭绝,因此初始情况下,啮齿动物要远大于狐狸个数。

②图5与图6比较:

图5初始的时候狐狸个数和啮齿动物数量都比较多,当二者都减少的时候,随着时间的推移,系统也能够达到一种动态平衡状态,但这两种状态成年啮齿动物的波动都很大。

③图6和图7比较:

其他初始数据不变的情况下,当增加猎人的数量时,狐狸的数量就会减少,直至灭亡。

7、感受及建议

通过文中几种情况下的对比,可知一个系统要想保持稳定,各个物种的数量必须保持合理的制约关系,一个物种灭亡必然会导致另外一个物种的灭亡,从而导致系统崩溃。

另外,人类的介入会在很大的程序上影响环境中物种的数量,如果人类滥捕滥杀,势必会对环境中的物种造成不可挽回的影响。

当系统中啮齿动物过多,导致水草减少时,可以适当减少猎人的数量或者减少猎人每月射杀的狐狸的数量,来增加狐狸种群的数量,进而减少啮齿动物的数量,防止沙漠的出现。

反之,当狐狸越来越多,可适当增加猎人的数量来限制。

以此来维持一个系统的稳定。

 

—12

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

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2