综合实验二人口增长模型及其数量预测

上传人:M****1 文档编号:564397926 上传时间:2023-06-01 格式:DOC 页数:7 大小:102.50KB
返回 下载 相关 举报
综合实验二人口增长模型及其数量预测_第1页
第1页 / 共7页
综合实验二人口增长模型及其数量预测_第2页
第2页 / 共7页
综合实验二人口增长模型及其数量预测_第3页
第3页 / 共7页
综合实验二人口增长模型及其数量预测_第4页
第4页 / 共7页
综合实验二人口增长模型及其数量预测_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《综合实验二人口增长模型及其数量预测》由会员分享,可在线阅读,更多相关《综合实验二人口增长模型及其数量预测(7页珍藏版)》请在金锄头文库上搜索。

1、综合实验一:人口增长模型及其数量预测一、实验目的及意义 1. 学习由实际问题去建立数学模型的全过程; 2. 训练综合应用数学模型 、微分方程、函数拟合和预测的知识分析和解决实际问题; 3. 应用 matlab 软件求解微分方程、作图、函数拟合等功能,设计 matlab 程序来求解其中的数学模型; 4. 提高论文写作、文字处理、排版等方面的能力; 通过完成该实验,学习和实践由简单到复杂,逐步求精的建模思想,学习如何建立反映人口增长规律的数学模型,学习在求解最小二乘拟合问题不收敛时,如何调整初值,变换函数和数据使优化迭代过程收敛 。 二、实验内容 1. 数学建模的基本方法; 2. 查阅资料理解 M

2、althus 人口指数增长模型和 Logistic 模型; 3. Matlab 软件中曲线拟合函数的异常情况处理; 4. 误差分析与模型检验。 三、实验步骤 1. 分析理解 Malthus 人口指数增长模型和 Logistic 模型 ; 2. 利用 Matlab 软件求解上述两个模型; 3. 设计数据拟合方法; 4. 编写 M 文件 , 保存文件并运行观察运行结果 ( 数值或图形 ) ,并进行误差分析; 5. 利用至少两种模型预测人口数量; 6. 分析、整理和总结,写出实验报告。 四、实验要求与任务 从 1790 1980 年间美国每隔 10 年的人口记录如表综 2.1 所示: 表综 2.1

3、年 份 1790 1800 1810 1820 1830 1840 1850 人口 ( 10 6 ) 3.9 5.3 7.2 9.6 12.9 17.1 23.2 年 份 1860 1870 1880 1890 1900 1910 1920 人口 ( 10 6 ) 31.4 38.6 50.2 62.9 76.0 92.0 106.5 年 份 1930 1940 1950 1960 1970 1980 人口 ( 10 6 ) 123.2 131.7 150.7 179.3 204.0 226.5 用以上数据检验马尔萨斯 ( Malthus) 人口指数增长模型,根据检验结果进一步讨论马尔萨斯人口

4、模型的改进,并利用至少两种模型来预测美国 2010 年的人口数量。 提示 1 : Malthus 模型的基本假设是:人口的增长率为常数,记为 r 。记时刻 t 的人口为 x ( t ),(即 x ( t )为模型的状态变量)且初始时刻的人口为 x 0 ,于是得到如下微分方程: 提示 2 :阻滞增长模型(或 Logistic 模型) 由于 资源、环境等因素对人口增长的阻滞作用,人口增长到一定数量后,增长率会下降,假设 人口的增长率为 x 的减函数,如设 r(x)=r(1-x/) ,其中 r 为固有增长率 (x 很小时 ) , 为人口容量(资源、环境能容纳的最大数量), 于是得到如下微分方程: 2

5、010年美国人口预测报告97自动化 乔宇实验目的:1 掌握利用MATLAB软件解决拟合问题的方法2 学会用拟合方法解决实际问题实验内容:给出美国人口从1790年到1990年间的人口如表1(每10年为一个间隔),请估计出美国2010年的人口。表1 美国人口统计数据年 份1790180018101820183018401850人口(106)3.95.37.29.612.917.123.2年 份1860187018801890190019101920人口(106)31.438.650.262.976.092.0106.5年 份193019401950196019701980人口(106)123.21

6、31.7150.7179.3204.0226.5实验分析:首先在平面上绘出已知数据的分布图,通过直观观察,猜测人口随时间的变化规律,再用函数拟合的方法确定其中的未知参数,从而估计出2010年的美国人口。利用MATLAB软件作出美国人口统计数据的连线图如图1。图1 美国人口统计数据连线图 图2 建模方法1的拟合效果图建模方法1:由图1可以发现美国人口的变化规律曲线近似为一条指数函数曲线,因此我们假设美国的人口满足函数关系x=f(t), f(t)=ea+bt,a,b为待定常数,根据最小二乘拟合的原理,a,b是函数的最小值点。其中xi是ti时刻美国的人口数。利用MATLAB软件中的曲线拟合程序“cu

7、rvefit”,编制的程序如下:指数函数的函数M文件function f=fun1(a,t)f=exp(a(1)*x+a(2); 用最小二乘拟合求上述函数中待定常数,以及检验拟合效果的图形绘制程序t=1790:10:1990;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 251.4;plot(t,x,*,t,x);a0=0.001,1;a=curvefit(fun1,a0,t,x)ti=1790:5:2020;xi=fun1(a,ti);h

8、old onplot(ti,xi);t1=2010;x1=fun1(a,t1)hold off 在MATLAB命令窗口运行该程序,输出结果a = 0.0148 -23.8311;x1 =358.4822因此,参数a=0.0148, b=-23.8307,拟合函数在2010处的函数值f(2010)=358.4822。但在求解时,出现提示“矩阵接近奇异或尺度不好,结果可能不准确”。通过作图,我们来看看拟合的误差如何,见图2。从图中可看出,拟合曲线与原数据还是比较吻合,因此,预测美国在2010年的人口数为358.4822百万。 建模方法2:上述模型对过去的统计数据吻合得较好,但也存在问题,即人口是呈

9、指数规律无止境地增长,此时人口的自然增长率随人口的增长而增长,这不可能。一般说来,当人口较少时增长得越来越快,即增长率在变大;人口增长到一定数量以后,增长就会慢下来,即增长率变小这是因为,自然资源、环境条件等因素不允许人口无限制地增长,它们对人口的增长起着阻滞作用,而且随着人口的增加,阻滞作用越来越大。而且人口最终会饱和,趋于某一个常数x,我们假设人口的静增长率为r(1-x(t)/x),即人口的静增长率随着人口的增长而不断减小,当t时,静增长率趋于零。按照这个假设,得到 (1)这便是荷兰数学家Verhulst于19世纪中叶提出的阻滞增长模型(logistic模型)。在MATLAB命令窗口键入d

10、solve(Dx=r*x*(1-x/c),x(1790)=3.9)输出:ans=c/(1+1/39*exp(-r*t)*exp(1790*r)*(10*c-39)其中c=x。因此,人口的变化规律为: (2)利用MATLAB软件中的“curvefit”命令和函数(2) 来拟合所给的人口统计数据,从而确定出(2)中的待定参数r和x。编制的MATLAB程序如下:定义函数(2)的函数M文件function f=fun3(a,t)f=a(1)./(1+(a(1)/3.9-1)*exp(-(t-1790)*a(2); 用该函数来对所给的美国人口数据作最小二乘拟合,并作出图形观察拟合效果,编制的M文件如下:

11、x=1790:10:1990;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 251.4;plot(x,y,*,x,y);a0=0.001,1;a=curvefit(fun3,a0,x,y)xi=1790:5:2020;yi=fun3(a,xi);hold onplot(xi,yi);x1=2010;y1=fun3(a,x1)hold off图3 a0=0.001,1时的拟合效果图 图4 a0=300,1.2时的拟合效果图运行该程序输出a =

12、140.8449 0.0389,y1 =139.8928,并伴随有提示说“超过了最大迭代次数”。即(2)中的r=0.0389, x=140.8449,拟合效果见图3。从图形看出,拟合效果不好,特别是越过拐点之后,在1950年之后,与实际情况的偏离越来越大,转折太早,导致过早进入人口饱和期,极限人口x=140.8449也太小,不合实际。其原因何在呢?是否是a的初值取得不好,导致迭代次数很多,超过了预设值,都还没收敛到最优解?改变a的初值,取a0=300, 1.2时,误差更大,拟合曲线紧贴着横轴,近似于一条直线,如图4。再将r(即a(2))的初值取为小于1的数,比如取a=200, 0.1时,得到a

13、 =311.9557 0.0280, y1 =267.1959,即(2)中的r=0.0280, x=311.9557,2010年美国的人口预计为267.1959百万人。这个结果还比较合理,当t时,静增长率趋于零,人口数趋于311.9557百万人,即极限人口x=311.9557百万。拟合效果见图5,效果比前面两种情形都好。图5 a0=200,0.1时的拟合效果只要取初值a0(2)在0与1之间,a0(1)大于150小于2000,结果均相同,因此,拟合中使用的优化方法对该问题来说是比较稳定的。建模方法3:从图5 看出,在前一段吻合得比较好,但在最上面,若拟合曲线更接近原始数据,对将来人口的预测应该更

14、好。因此,把用函数(2)来拟合所给人口统计数据的评价准则略加修改,看效果如何。将拟合准则改为: (3)其中w为右端几个点的误差权重,在此处应该取为大于1的数,这样会使右边的拟合误差减小,相应的,其他点的误差会有所增加。如何才能使这些误差的增减恰当呢?可以通过调整w和n的具体取值,比较他们取各种不同值时的拟合效果,从而确定出一个合适的数值。实现这些功能的MATLAB程序如下:先编写一个函数M文件,以定义优化问题(3)中的目标函数。function f=fun5(a)n=16;w=2;x=1790:10:1990;x1=x(1:n);x2=x(n+1:21);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 251.4;y1=y(1:n);y2=y(n+1:21);f=fun3(a,x

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 幼儿/小学教育 > 小学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号