- 315
- 0
- 约6.66万字
- 约 7页
- 2016-12-23 发布于贵州
- 举报
20 12 ——20 13 学年第 2 学期
合肥学院数理系
实验报告
课程名称: 数学模型
实验项目: 微分方程模型—人口模型与预测
实验类别:综合性□ 设计性□ 验证性□
专业班级: 10级 数学与应用数学(2)班
姓 名: 王倩 学 号: 1007022039
实验地点: 数理系机房
实验时间: 2013年5月2日
指导教师: 闫晓辉 成 绩:
一.实验目的:
掌握常微分方程模型的建模方法,并能用数值算法或MATLAB库函数求解。
二.实验内容:
下表列出了中国1982-1998年的人口统计数据,取1982年为起始年(),万人,万人。
年 1982 1983 1984 1985 1986 1987 1988 1989 1990 人口
(万人) 101654 103008 104357 105851 107507 109300 111026 112704 114333 年 1991 1992 1993 1994 1995 1996 1997 1998 人口
(万人) 115823 117171 118517 119850 121121 122389 123626 124810
实验要求:
1、建立中国人口的指数增长模型,并用该模型进行预测,与实际人口数据进行比较。
2、建立中国人口的Logistic模型,并用该模型进行预测,与实际人口数据进行比较。
3、绘图,在图中标出中国人口的实际统计数据,并画出两种模型的预测曲线。
三. 实验方案(程序设计说明)
模型一:指数增长模型(马尔萨斯(Malthus)模型)
假设:人口净增长率r是一常数
符号:时刻时的人口,可微函数时的人口
则
于是x(t)满足如下微分方程:
解为:
模型二:Logistic模型
人口净增长率应当与人口数量有关,即: r=r(x)
从而有:
对马尔萨斯模型引入一次项(竞争项),令 r(x)=r-ax
此时得到微分方程: 或
可改写成:
分离变量:
两边积分并整理得:
令x(0)=,求得:
满足初始条件x(0)=的解为:
易见:
四. 实验步骤或程序(经调试后正确的源程序)
1、matlab源程序
%以1982-1998年共计17个数据为例进行拟合:
t=0:16; %输入数据
s=[101654 103008 104357 105851 107507 109300 111026 112704 114333 115823 117171 118517 119850 121121 122389 123626 124810];
y=log(s);
p=polyfit(t,y,1)
2、matlab源程序
t=0:16;
s=101654*(1+0.0131).^t;
plot(t,s,r)
hold on
t=0:16;
s=[101654 103008 104357 105851 107507 109300 111026 112704 114333 115823 117171 118517 119850 121121 122389 123626 124810];
plot(t,s,o)
hold on
t=0:16;
s=200000./(1+(200000/101654-1)*exp(-0.029*t));
plot(t,s,c)
五.程序运行结果
1、运行结果
p = 0.0131 11.5342
预测公式预测1991--1998年的人口数量可得,1998年的由指数增长模型预测出的人口数于实际人口数相差最小,而其他年份的真实值与预测值之间有差别:
年 实际人口
(万人) 指数增长模型 (万人) 误差 1991 114333 1992 115823 115819 4 1993 117171 117325 154 1994 118517 118850 333 1995 119850 120395 545 1996 121121 121960 839 1997 122389 123545 1156 1998 123626 125152 1526 由1991年开始,指数增长模型预测的结果很好的反映了实际情况。按此模型预测现在中国人口已超过13亿,到
原创力文档

文档评论(0)