ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:329.74KB ,
资源ID:6572799      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6572799.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(人口增长模型.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

人口增长模型.docx

1、人口增长模型人口增长模型学院: 专 业: 姓 名: 学号:_ 实验时间: 实验地点: 一、实验项目:数据拟合与模型参数估计二、实验目的和要求a.了解数据拟合的原理和Matlab中的有关命令。b. 建立实用的人口增长模型,包括参数估计、模型检验和人口预测三、实验内容 问题的描述 建立指数增长模型和阻滞增长模型,根据下表中美国人口数据进行模型的参数估计、检验和预报,便可以分析人口增长趋势,认识人口数量的变化规律,对人口增长做出有效的控制。 下表是用excel表格填写的美国人口数据:问题的分析在理想的情况下,假设人口增长率不变,可以建立指数增长模型;由于自然资源、环境条件等因素对人口的增长起着组织作

2、用,并且随着人口的增加,阻滞作用越来越大,考虑到这个因素,建立阻滞增长模型logistic模型。 模型一、指数增长模型建立模型记时刻t的人口为x(t),将x(t)视为连续、可微函数,记 初始时刻(t=0)的人口为x0 ,年增长率为常数r,即单位时间内x(t)的增量dx/dt等于r乘以x(t),于是得到x(t)满足微分方程(1)由此方程很容易解出 (2)r0时,(2)式表明人口将按指数规律随时间无限增长,称为指数增长模型。模型求解 (代码、计算结果或输出结果)参数估计:为了估计指数增长模型中的参数r和x0,需将(2)式取对数,得到:y=rt+a y=ln(x) a=ln(x0) (7)以美国人口

3、实际数据为例,对(7)式作数据拟合。如用17901900年的数据:(t以17901990间的数字表示,求出的r是以 /年为单位)代码如下:t=1790:10:1900;c=3.9, 5.3, 7.2, 9.6, 12.9, 17.1, 23.2, 31.4, 38.6, 50.2,62.9, 76.0;d=log(c); % y=ln(x),所以将c取自然对数x=polyfit(t,d,1); % 因为t用17901990表示,所以 r=x(1) (以/年为单位,不是/10年) x0=x(2) 是最初t=0时的人数,可用z(1790)求出本题中实际意义上的x0,即截屏中的4.2百万z=poly

4、val(x,t);z=exp(z);t;z ; % 输出的17901900年的人口计算值plot(t,c,k+,t,z,r)gtext(+代表:实际数据)代码截屏: 指数增长拟合图形(17901900年)用17901990年的数据进行参数估计(t以021间的数字表示,求出的r以/10年为单位) t=0:1:21; c=c 92.0 106.5 123.2 131.7 150.7 179.3 204.0 226.5 251.4 281.4; d=log(c);x=polyfit(t,d,1) % r=x(1) 以10年为单位,x(2)=ln(x0),即x0=exp(x(2) exp(x(2) %

5、 x0值,因为是用0:21表示t,所以x0就是1790年的计算值 z=polyval(x,t);z=exp(z); t;z; %计算17902000年的人口值 plot(t,c,k+,t,z,r)gtext(+代表:实际数据)代码截屏: 指数增长模型拟合图形(17902000年)从图像可看出,指数增长模型对人口的预计,随时间的增长人口数量趋近于无穷,t越大,拟合的数据误差越大。模型二、阻滞增长模型logistic模型 由模型一可知,人口无限增长的分析显然不能成立,为了使人口预报特别是长期预报更好地符合实际情况,必须修改指数增长模型关于人口增长率是常数这个基本假设,故建立阻滞增长模型。阻滞作用体

6、现在对人口增长率r的影响上,使得r随着人口数量x的增加而下降,若将r表示为x的函数r(x),则它应是减函数,于是有(3)对r(x)做简单的假定,设r(x)为x的线性函数,即r(x)=r-sx(r,s0) (4)这里r称固有增长率,表示人口很少时(理论上x=0)的增长率。引入自然资源和环境条件所能容纳的最大人口数量xm,称人口容量。当xxm时,人口不再增长。即x=xm时,r(xm)=0,代入(3),得到 ,x(0)=x0 (5)方程右端的因子rx体现人口自身的增长趋势,因子则体现了环境和资源对人口增长的阻滞作用。显然,x越大,前一因子rx越大,后一因子越小,人口增长是两个因子共同作用的结果,(5

7、)式便称为阻滞增长模型。以x为横轴,以为纵轴作出方程(5)的图形,可以分析人口增长速度随着x的增加而变化的情况,从而大致地看出x(t)的变化规律。图形代码: x=3.0:300.0; y=0.2.*x.*(1-x./300.0); plot(x,y) gtext(dx/dt) gtext(xm/2) 实际上,利用分离变量法,由(5)很容易得到 (6)由计算机画出(6)式的图形,如图:图形代码: syms x t r xm x0 x=dsolve(Dx=r*x*(1-x/xm),x(0)=x0,t); y=subs(x,x0,r,xm,3.9,0.21,384.0); ezplot(y,0,50

8、) gtext(x0-) gtext(xm/2-) gtext(xm-)模型求解 (代码、计算结果或输出结果)用阻滞增长模型进行人口预报,要先作参数估计,除了初始值人口r和x0外,需估计xm,他们可利用数据拟合得到。1.对于r和xm的估计:将(5)改为: (8)可以以从实际人口数据用数值微分算出,右端r,s是线性的,用差分法估计参数:我们利用1790:1990的数据进行参数估计:c=3.9,5.3,7.2,9.6,12.9,17.1,23.2,31.4,38.6,50.2,62.9,76.0,92.0,106.5,123.2,131.7,150.7,179.3,204.0,226.5,251.

9、4;b=diff(c)b = %用前向差分进行数值微分,b即:dx Columns 1 through 14 1.4000 1.9000 2.4000 3.3000 4.2000 6.1000 8.2000 7.2000 11.6000 12.7000 13.1000 16.0000 14.5000 16.7000 Columns 15 through 20 8.5000 19.0000 28.6000 24.7000 22.5000 24.9000 b1=8 13 15 19 ; b(b1)=; %为估计更准确,去掉b向量中的第8、13、15、19个异常数据 b2=1 9 14 16 20;

10、 e=c; % e 是(dx/dt)/x中的x向量,先令其为c(17901900的所有数据) e(b2)=; % 去掉e中的第1、9 、14、16、20个数值 dxx=b./e; % dxx 即:(dx/dt)/x,因为dt=1,所以dxx也为dx/x= b./e a=polyfit(e,dxx,1) % r=a(2) ,xm=-r/a(1)x0=3.9; r=a(2);xm=-r/a(1); t=0:1:21; %用估计的参数计算17902000年的所有人口数值f=inline(xm./(1+(xm/x0-1)*exp(-r*t),t,xm,r,x0); c(22)=281.4; plot(

11、t,f(t,xm,r,x0),-r,t,c,+b);g=xm./(1+(xm/x0-1)*exp(-r*t) % g为计算的1790-2000年的人口数值a1=g(20) g(21) g(22); %计算1980、1990的误差,估计2000的人口数量并计算误差b1=c(20) c(21) c(22);wu=(b1-a1)./a1 % 误差结果显示 gtext(用数值微分作参数估计:)代码及输出截屏:用数值积分拟合的阻滞增长模型图形结果分析:由该图像可看出,拟合数据与真实数据变化趋势一致,且吻合较好,误差在10%以内,但还是有点大,这是因为数据选择的原因,在这里是用全部17901990年间的数

12、据,去掉了其中的个别异常数据进行的参数估计,而书上是用1860-1990年间的数据,去掉了其中的个别异常数据。因为情况太多,可能与书上真实实验时的数据不一致,所以,结果误差相对较大。用 进行参数估计:function f=curve2(x,tdata) % .m文件f=x(1)./(1+(x(1)/x(3)-1)*exp(-x(2)*tdata); %x(1):xm x(2):r x(3):x0t=0:1:21;tdata=t; % 命令窗口的输入c=3.9, 5.3, 7.2, 9.6, 12.9, 17.1, 23.2, 31.4, 38.6, 50.2,62.9, 76.0 , 92.0

13、 106.5 123.2 131.7 150.7 179.3 204.0 226.5 251.4 281.4;cdata=c;x0=300.0,0.02,3.9;x=lsqcurvefit(curve2,x0,tdata,cdata)x = 444.2892 0.2160 7.6576 % x(1):xm x(2):r/10年 x(3):x0 (1790年)f=x(1)./(1+(x(1)/x(3)-1)*exp(-x(2)*tdata) %17902000 人口计算值 plot(t,f,r,t,c,b+)代码及图形截屏:误差分析:用1980.1990.2000年的实际数据与计算值比较,得到:

14、(1990)=| f(1980)-c(1980)|/c(1980)=0.48%;(1990)=|f(1990)-c(1990)|/c(1990)=1.09%;(2000)=|f(2000)-c(2000)|/c(2000)=0.56%这说明拟合的计算值已与实际值相当接近,模型建立成功,可用于进一步的研究。检验及预测:据美国人口普查局公布,截止到2010年4月,美国总人口为3.087,亿现在用上面的结果对2010年的数据进行模型检验和模型预测:预测得到的结果说明,预测的误差为3.49%,这已经说明该模型具有很好的实用性了。(因为标准误差是5%,一般认为在5%以内的误差均是允许误差),这也是对该模

15、型的检验。结果分析:由上误差分析和拟合图形可知,用该方式拟合的数据误差极小,则说明该模型建立成功且实用性强,可用于进行较为准确的人口的预测。对于以上两种方式的阻滞增长模型进行预测时,并没有达到书上那么准确的结果,这是由于书上的数据是以18601990年(去掉其中个别异常数据)进行的拟合,而从这些数据中去掉异常数据,最大会有(214-1)中可能,所以由于数据的选择性,没有实现书上那么小的误差。 4种拟合方式人口数据拟合的结果四、实验总结1. 指数增长模型:从两种表现形式的指数增长模型可看出,若用021间的数表示t,则r是以/年为单位,而若用17902000间的数表示,便是以/10年为单位;2.阻滞增长模型:阻滞增长模型,书上是用18601990年的数据(去掉个别异常数据)拟合的,因不知道书上到底是去掉了哪几个数据,我试了几种可能,但都没出现书上误差那么小的结果,所以,最后直接用了全部的数据做估计,误差相对书上结果而言较大,但最后一种拟合方式的误差较小,在误差允许范围内也可用于人口预测。由上分析,也可知,误差的原因可能是由于数据的选择不当。

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

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