资源描述:
《人口预测实验报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、数学与计算科学学院实验报告实验项目名称人口的控制与预测所属课程名称数学建模实验类型综合实验日期2014年4月15日班级数学1201班学号2012641001姓名何兴成绩7一、实验概述:【实验目的】1、学会用初等数学的方法来构造和求解模型;2、利用数学模型对人口数量的增长进行预测,与实际人口相比较,体现该模型的必要性;3、可以根据该模型防范人口增长速度过快;4、熟悉掌握MATLAB作图技巧。【实验原理】1、利用MATLAB解方程并作出相应图形;2、利用微积分,提出假设,建立数学模型并求解;3、查找实际的人口数据与理论数据对比得出相应结论。【实验环境】MicrosoftWindowsXPP
2、rofessional版本2002ServicePack3MATLABR2007a二、实验内容:【实验方案】1、指数增长模型记今年人口为,k年后人口为,年增长率为r,则(1)记时刻t的人口为,将视为连续可微函数,记初始时刻(t=0)的人口为.假设人口增长率为常数r,即单位时间内的增量等于r乘以,于是得到满足微分方程(2)有这个方程解出7(3)r>0时(3)式表示人口将按指数规律随时间无限增长,称为指数增长模型.2、阻滞增长模型——logistic模型若将r表示为x的函数,方程(2):(4)设为x的线性函数,即(5)r称为固有增长率.表示人口很少事的增长率,引入自然资源和环境条件所能容纳
3、的最大人口数量,称为人口容量.当时人口不再增长,即增长率,代入(5)式得,于是,将代入方程(4),得(6)称为阻滞增长模型.将(6)式分离变量法求解得到(7)【实验过程】(实验步骤、记录、数据、分析)为了估计指数增长模型(2)或(3)中的参数r和,将(3)式取对数,得到(8)以美国人口实际数据(表1)为例,对(8)式作数据拟合,如用1790年至1900年的数据,得到r=0.2743/(10年),;若用全部数据可得r=0.2022/(10年),.也可以令,只计算r。用得到的r和代入(3)式,将结果与实际数据作比较,表1中计算人口是用1790年至1900年数据拟合的结果,是用全部数据拟合的
4、结果,并用MATLAB编写程序后运行出图1和图2.表1指数增长模型和组织增长模型对美国人口数据拟合的结果7年实际人口/百万计算人口(指数增长模型)计算人口(指数增长模型)计算人口(阻滞增长模型)17903.94.26.03.918005.35.57.45.018107.27.29.16.518209.69.511.18.3183012.912.513.610.7184017.116.516.613.7185023.221.720.317.5186031.428.624.922.3187038.637.630.528.3188050.249.537.335.8189062.965.145
5、.745.0190076.085.655.956.2191092.068.469.71920106.583.785.51930123.2102.5103.91940131.7125.5124.51950150.7153.6147.21960179.3188.0171.31970204.0230.1196.31980226.5281.7221.21990251.4344.8245.32000281.4422.1【实验结论】(结果)7图1指数增长模型拟合图形(1790年至1900年)图2指数增长模型拟合图形(1790年至2000年)7图3阻滞增长模型拟合图形(1790年为起点)【实验小结】
6、(收获体会)1、使用MATLAB,很大程度的提高了工作效率,将数据用图形表现出来,十分直观。2、对实际问题的分析,减少误差,建立合适的数学模型十分重要。3、认识人口数量的变化规律,建立人口模型,作出较准确的预报,是有效控制人口增长的前提。4、有效的控制人口的增长不仅是贯彻科学发展观的需要,也是我们义不容辞的责任。三、指导教师评语及成绩:评语评语等级优良中及格不及格1.实验报告按时完成,字迹清楚,文字叙述流畅,逻辑性强2.实验方案设计合理3.实验过程(实验步骤详细,记录完整,数据合理,分析透彻)4实验结论正确.成绩:指导教师签名:批阅日期:7附录1:源程序编写源程序:1、先编写调用程序,
7、并命令为renk.m.源程序为:functionf=renk(t)x0=4.1884;r=0.2743;f=x0*exp(r*t);2、编写一个命令文件,调用程序renk.m运行出图1.源程序为:clccleart=0:0.1:12;x=renk(t);plot(t,x);t0=0:1:12;x0=[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]holdonplot(t