表1美国人口统计数据

表1美国人口统计数据

ID:31111440

大小:65.50 KB

页数:4页

时间:2019-01-06

表1美国人口统计数据_第1页
表1美国人口统计数据_第2页
表1美国人口统计数据_第3页
表1美国人口统计数据_第4页
资源描述:

《表1美国人口统计数据》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、表1美国人口统计数据年份1790180018101820183018401850人口(×106)3.95.37.29.612.917.123.2年份1860187018801890190019101920人口(×106)31.438.650.262.976.092.0106.5年份193019401950196019701980人口(×106)123.2131.7150.7179.3204.0226.5建模方法2:上述模型对过去的统计数据吻合得较好,但也存在问题,即人口是呈指数规律无止境地增长,此

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

3、世纪中叶提出的阻滞增长模型(logistic模型)。在MATLAB命令窗口键入dsolve(‘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——文件functionf=fu

4、n3(a,t)f=a(1)./(1+(a(1)/3.9-1)*exp(-(t-1790)*a(2)));用该函数来对所给的美国人口数据作最小二乘拟合,并作出图形观察拟合效果,编制的M——文件如下:x=1790:10:1990;y=[3.95.37.29.612.917.123.231.438.650.262.976...92106.5123.2131.7150.7179.3204226.5251.4];plot(x,y,'*',x,y);a0=[0.001,1];a=curvefit('fun3'

5、,a0,x,y)xi=1790:5:2020;yi=fun3(a,xi);holdonplot(xi,yi);x1=2010;y1=fun3(a,x1)holdoff图3a0=[0.001,1]时的拟合效果图图4a0=[300,1.2]时的拟合效果图运行该程序输出a=[140.84490.0389],y1=139.8928,并伴随有提示说“超过了最大迭代次数”。即(2)中的r=0.0389,x¥=140.8449,拟合效果见图3。从图形看出,拟合效果不好,特别是越过拐点之后,在1950年之后,与实

6、际情况的偏离越来越大,转折太早,导致过早进入人口饱和期,极限人口x¥=140.8449也太小,不合实际。其原因何在呢?是否是a的初值取得不好,导致迭代次数很多,超过了预设值,都还没收敛到最优解?改变a的初值,取a0=[300,1.2]时,误差更大,拟合曲线紧贴着横轴,近似于一条直线,如图4。再将r(即a(2))的初值取为小于1的数,比如取a=[200,0.1]时,得到a=[311.95570.0280],y1=267.1959,即(2)中的r=0.0280,x¥=311.9557,2010年美国的

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

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

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。