数学建模美国人口预测报告1

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

3.模型建立

模型1

(1.1) 假设美国人口上限为5亿,根据表中给出的人口增长率,进行适当的处理,建立微分方程模型;

(1.2) 利用 (1.1) 中的模型计算各年人口,与实际人口数量比较,计算模型的计算误差;

(1.3) 利用 (1.1) 中的模型预测美国2010,2020,2030,2040,2050年的人口; (1.4) 假设人口增长率服从[1.1,1.3]上的均匀分布,结合 (1.1) 中建立微分方程模型,预测美国2010,2020,2030,2040,2050年的人口.

图1为美国1790-2000年的人口数据,人

口增长率r 为每10年的取值。首先对人口

增长率进行处理求出其他年份相对于1790

年的增长率R

1

.....n

n

t t t r r R n

其中t1=1800年….. t21=2000年(1

2;对增长率R 求平均直为Rx=2.64%

模型1 为阻滞增长模型 假设人口增长率 r(x)是t 时人口x(t)的函数,r(x)应该是x 的减函数。一个简单的假设是假设 r(x)为x 的线性函数r(x)=r-s*x , s>0.最大人口数量Xm=500 当x=Xm 时增长率为零。在线性化假设前提下可以得到

r(x) = r (1 – x / Xm),(公式1)

其中的r 我们取之前求得的平均增长率r=0.0264 , Xm=500。在公式1假设下,模型可修改为

(1

)

(0)x

t

m d x rx d x x x (公式2)

图1

上述方程改为Logistic模型

x t =m x/1+(m x/0x-1)rt e(公式3)

()

e取2.718,t为t,求出每10年的rt值带入方程算出各年的人口数以

及和实际值的误差见图3。

2010年的R*t=5.808,预测人口为362.32;

2020年的R*t=6.072,预测人口为387.59;

2030年的R*t=6.336,预测人口为408.16;

2040年的R*t=6.6 ,预测人口为427.35;

2050年的R*t=6.864,预测人口为442.48;

观察预测结果1930年以前只有1800 1810 1820误差较小,其它年份误差正负都稍微偏大,1940年以后预测值逐年大于实际值,说明在给定最大人口数后增长率选择不适当,与给定的最大人口数不匹配,有待改进。

图 3

模型2

(2.1) 根据表中的人口数据,进行曲线拟合,建立数学模型;

(2.2) 利用 (2.1) 中的模型计算各年人口,与实际人口数量比较,计算模

型的计算误差;

(2.3) 利用 (2.1) 中的模型预测美国2010,2020,2030,2040,2050年的人口;

利用MATLAB进行曲线拟合,首先在平面上绘出已知数据的分布图,通过直观观察,猜测人口随时间的变化规律,再用函数拟合的方法确定其中的未知参数,从而估计出2010 2020 2030 2040 2050年的美国人口。利用MATLAB作出美国人口统计数据的连线图如图4。

图4 美国人口统计数据连线图图5 建模方法1的拟合效果图

由图4可以发现美国人口的变化规律曲线近似为一条指数函数曲线,因此我们假设美国的人口满足函数关系x=f(t), f(t)=e a+bt,a, b为待定常数,根据最小二乘拟合的原

理,a, b是函数∑

=-

=

n

i

i

i

x t

f

b

a

E

1

2

)

)

(

(

)

,

(的最小值点。其中x i是t i时刻美国的人口数。

利用MATLAB中的曲线拟合程序“curvefit”,编制的程序如下:

首先创建指数函数的函数M——文件

用最小二乘拟合求上述函数中待定常数,以及检验拟合效果的图形绘制程序

m-function, fun1.m

function f=fun1(a,t)

f=exp(a(1)*x + a(2));

t=1790:10:2000;

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 281.4];

plot(t,x,'*',t,x);

a0=[0.001,1];

a=curvefit('fun1',a0,t,x)

ti=1790:5:2050;

xi=fun1(a,ti);

hold on

plot(ti,xi); t1=2010; x1=fun1(a,t1) hold off

在MA TLAB 命令窗口运行该程序,输出结果a = 0.0148 -23.8311;x1 =358.48 因此,参数a=0.0148, b=-23.8307,拟合函数在2010处的函数值f(2010)=358.48。通过作图,我们来看看拟合的误差如何,见图5。从图中可看出,拟合曲线与原数据还是比较吻合,因此,预测美国在2010年的人口数为358.48百万。同理

2020年预测人口为413.33; 2030年预测人口为452.57; 2040年预测人口为475.89; 2050年预测人口为494.18。 图6为误差值%

观察误差和图像,模型2对过去的统计数据吻合得较好,但也存在问题,即人口是呈指数规律无止境地增长,此时人口的自然增长率随人口的增长而增长,这不可能。一般说来,当人口较少时增长得越来越快,即增长率在变大;人口增长到一定数量以后,增长就会慢下来,即增长率变小这是因为,自然资源、环境条件等因素不允许人口无限制地增长,它们对人口的增长起着阻滞作用,而且随着人口的增加,阻滞作用越来越大。而且人口最终会饱和,趋于某一个常数m x

这里通过Matlab 对模型1中的公式3进行一次计算

图 6

相关文档
最新文档