当前位置:文档之家› 基于人口增长模型的数学建模(DOC)

基于人口增长模型的数学建模(DOC)

基于人口增长模型的数学建模(DOC)数学建模论文题目:人口增长模型的确定专业、姓名:专业、姓名:专业、姓名:人口增长模型摘要随着人口的增加,人们越来越认识到资源的有限性,人口与资源之间的矛盾日渐突出,人口问题已成为世界上最被关注的问题之一。

问题给出了1790—1980年间美国的人口数据,通过分析近两百年的美国人口统计数据表,得知每10年的人口数的变化。

预测美国未来的人口。

对于问题我们选择建立Logistic 模型(模型2)现实中,影响人口的因素很多,人口也不能无限的增长下去,Logistic 模型引进常数N 表示自然资源和环境所能承受的最大人口数,因而得到了一个贝努利方程的初值问题公式,从实际效果来看,这个公式较好的符合实际情况的发展,随着时间的递增,人口不是无限增长的,而是趋近于一个数,这个即为最大承受数。

我们还同时对数据作了深入的探讨,作数据分析预测,通过观测比较选择一个比较好的拟合模型(模型3)进行预测。

预测接下来的每隔十年五次人口数量,分别为251.4949, 273.5988 , 293.4904 , 310.9222 325.8466。

关键词:人口预测Logistic模型指数模型一、问题重述1790-1980年间美国每隔10年的人口记录如下表所示。

年份1790 180018101820183018401850186018701880人口(⨯106) 3.95.37.29.6 12.917.123.231.438.650.2年份1890 190019101920193019401950196019701980人口(⨯106) 62.976.092.0106.5123.131.150.179.204.226.2 7 73 0 5试用以上数据建立马尔萨斯(Malthus)人口指数增长模型,并对接下来的每隔十年预测五次人口数量,并查阅实际数据进行比对分析。

如果数据不相符,再对以上模型进行改进,寻找更为合适的模型进行预测。

二、问题分析人口预测是一个相当复杂的问题,影响人口增长除了人口数与可利用资源外,还与医药卫生条件的改善,人们生育观念的变化等因素有关…….可以采取几套不同的假设,做出不同的预测方案,进行比较。

人口预测可按预测期长短分为短期预测 (5年以下)、中期预测(5~20年)和长期预测(20~50年)。

在参数的确定和结果讨论方面,必须对中短期和长期预测这两种情况分开讨论。

中短期预测中所用的各项参数以实际调查所得数据为基础,根据以往变动趋势可较准确加以估计,推算结果容易接近实际,现实意义较大。

三、问题假设1.在模型中预期的时间内,人口不会因发生大的自然灾害、突发事故或战争等而受到大的影响;2.假设美国人口的增长遵循马尔萨斯人口指数增长的规则3.假设人口增长不受环境最大承受量的限制四、变量说明:数据的起始时间,即1790年t:时间r:人口增长率x :人口常数最大值五、模型建立模型一图一由图1可以发现美国人口的变化规律曲线近似为一条指数函数曲线,因此我们假设美国的人口满足函数关系x=f(t), f(t)=e a+bt,a,b为待定常数,根据最小二乘拟合的原理,a,b是函数∑=-=niiix tfbaE12))((),(的最小值点。

其中x i是t i时刻美国的人口数。

利用MATLAB软件中的曲线拟合程序“lsqcurvefit”。

模型二上述模型对过去的统计数据吻合得较好,但也存在问题,即人口是呈指数规律无止境地增长,此时人口的自然增长率随人口的增长而增长,这不可能。

一般说来,当人口较少时增长得越来越快,即增长率在变大;人口增长到一定数量以后,增长就会慢下来,即增长率变小这是因为,自然资源、环境条件等因素不允许人口无限制地增长,它们对人口的增长起着阻滞作用,而且随着人口的增加,阻滞作用越来越大。

而且人口最终会饱和,趋于某一个常数x ∞,我们假设人口的静增长率为r(1-x(t)/x ∞),即人口的静增长率随着人口的增长而不断减小,当t →∞时,静增长率趋于零。

按照这个假设,得到⎪⎩⎪⎨⎧=-=∞00)()1(x t x x x r dtdx(1)这便是荷兰数学家Verhulst 于19世纪中叶提出的阻滞增长模型(logistic 模型)。

利用分离变量法,人口的变化规律为: r t e x x x )1790(3910)1(1--∞∞-+= (2)利用MATLAB软件中的“lsqcurvefit”命令和函数(2) 来拟合所给的人口统计数据,从而确定出(2)中的待定参数r和x∞。

模型三从图 5 看出,在前一段吻合得比较好,但在最上面,若拟合曲线更接近原始数据,对将来人口的预测应该更好。

因此,把用函数(2)来拟合所给人口统计数据的评价准则略加修改,看效果如何。

将拟合准则改为:∑∑+==-+-=211212))(())(()(minnii iniiixtfwxtfaE其中w为右端几个点的误差权重,在此处应该取为大于1的数,这样会使右边的拟合误差减小,相应的,其他点的误差会有所增加。

如何才能使这些误差的增减恰当呢?可以通过调整w 和n的具体取值,比较他们取各种不同值时的拟合效果,从而确定出一个合适的数值。

六、模型求解模型一图二a =0.0154 -25.1080 x1 =279.0104x2 =325.6156x3 =380.0056x4 =443.4808X5=517.5587模型二图三a =285.8931 0.0286 x1=230.9149x2 =242.5078x3 =252.0148x4 =259.6639x5 =265.7242模型三图四a =388.7178 0.0260x1 =251.4949x2 =273.5988x3 =293.4904x4 =310.9222x5 =325.8466七、结果分析从图二可以看出,模型一对过去的统计数据吻合得较好,但也存在问题,即人口是呈指数规律无止境地增长,此时人口的自然增长率随人口的增长而增长,这不可能。

一般说来,当人口较少时增长得越来越快,即增长率在变大;人口增长到一定数量以后,增长就会慢下来,即增长率变小这是因为,自然资源、环境条件等因素不允许人口无限制地增长,它们对人口的增长起着阻滞作用,而且随着人口的增加,阻滞作用越来越大。

而且人口最终会饱和,趋于某一个常数。

这时模型二比较符合。

从图三看,在前一段吻合得比较好,但在最上面,若拟合曲线更接近原始数据,对将来人口的预测应该更好。

因而用将模型二进行改进后的模型三拟合,此时后面的值更为拟合,预测结果更为准确。

所以,1990-2030年的人口预测数目为251.4949,273.5988,293.4904,310.9222,325.8466(百万),经过与1990,2000,2010的实际查找数据(251.4,281.4,308.7)比较,误差较小,可以作为预测数据。

八、参考文献【1】姜启源,谢金星,叶俊,数学模型(第三版),北京:高等教育出2003 九、附录一.function f=fun1(a,t)f=exp(a(1)*t+a(2));t=1790:10:1980;x=[3.9 5.3 7.2 9.6 12.9 17.1 23.2 31.4 38.6 50.2 62.9 76 ...92 106.5 123.2 131.7 150.7 179.3 204 226.5];plot(t,x,'-*');a0=[0.001,1];a=lsqcurvefit('fun1',a0,t,x)ti=1790:5:2040;xi=fun1(a,ti);hold onplot(ti,xi,’.’);t1=1990;x1=fun1(a,t1)t2=2000;x2=fun1(a,t2)t3=2010;x3=fun1(a,t3)t4=2020;x4=fun1(a,t4)t5=2030;x5=fun1(a,t5)hold off二.x=1790:10:1980;y=[3.9 5.3 7.2 9.6 12.9 17.1 23.2 31.4 38.6 50.2 62.9 76 ...92 106.5 123.2 131.7 150.7 179.3 204 226.5];plot(x,y,'-*');a0=[0.001,1];a=lsqcurvefit('fun3',a0,x,y)xi=1790:5:2040;yi=fun3(a,xi);hold onplot(xi,yi);t1=1990;x1=fun3(a,t1)t2=2000;x2=fun3(a,t2)t3=2010;x3=fun3(a,t3)t4=2020;x4=fun3(a,t4)t5=2030;x5=fun3(a,t5)hold off三.function f=fun4(a)n=16;w=30;x=1790:10:1980;x1=x(1:n);x2=x(n+1:20);y=[3.9 5.3 7.2 9.6 12.9 17.1 23.2 31.4 38.6 50.2 62.9 76 ...92 106.5 123.2 131.7 150.7 179.3 204 226.5];y1=y(1:n);y2=y(n+1:20);f=[fun3(a,x1)-y1,w*fun3(a,x2)-w*y2];t=1790:10:1980;x=[3.9 5.3 7.2 9.6 12.9 17.1 23.2 31.4 38.6 50.2 62.9 76 ...92 106.5 123.2 131.7 150.7 179.3 204 226.5];plot(t,x,'-*');a0=[300,0.03];a=lsqnonlin('fun4',a0)ti=1790:5:2040;xi=fun3(a,ti);hold on;plot(ti,xi,t,x,'*');t1=1990;x1=fun3(a,t1) t2=2000;x2=fun3(a,t2) t3=2010;x3=fun3(a,t3) t4=2020;x4=fun3(a,t4) t5=2030;x5=fun3(a,t5) hold off。

相关主题