如何利用matlab构建人口增长的Malthus模型、Logistic模型以及多项式模型?

表10-3给出了自1790年到1980年(共200年)美国人口数的统计数据。
表10-3 美国人口统计数字(单位: 百万)
年份 1790 1800 1810 1820 1830 1840 1850 1860 1870 1880
统计 3.9 5.3 7.2 9.6 12.9 17.1 23.2 31.4 38.6 50.2
年份 1890 1900 1910 1920 1930 1940 1950 1960 1970 1980
统计 62.0 72.0 92.0 106.5 123.2 131.7 150.7 179.3 204.0 226.5
(1) 试利用前100年的数据,分别构建人口增长的Malthus模型、Logistic模型(设美国人口总体容纳量为20亿),以及多项式模型。
(2) 利用(1)构建的三个模型分别预测后100年的人口数,并与实际数据相比较,说说哪个预测结果比较好?

如何利用matlab构建人口增长的Malthus模型、Logistic模型以及多项式模型?

第一步,分别自定义模型函数,如

Malthus模型:

func=@(a,t)N0*exp(a*(t-t0))

Logistic模型:

func=@(a,t)a(1)/(1+(a(1)/N0-1)*exp(-a(2)*(t-t0)))

多项式模型:

func=@(a,t)a(1)+a(2)*(t-t0)+a(3)*(t-t0)^2

第二步,利用1790-1880年的数据,分别使用lsqcurvefit函数或nlinfit函数,求出系数a

第三步,预测1890-1980年的人口数,即

y=func(a,t)

第四步,使用plot函数绘制,美国人口数的统计数据与各预测模型曲线对比图

第五步,或使用table函数列表显示,对比数据

第六步,预测后100年的人口数,并与实际数据相比较,从图形或表格中,可以看到预测精度多项式模型优于Logistic模型,Malthus模型效果最差。

温馨提示:答案为网友推荐,仅供参考
相似回答
大家正在搜