数学建模2Word文档格式.docx
《数学建模2Word文档格式.docx》由会员分享,可在线阅读,更多相关《数学建模2Word文档格式.docx(8页珍藏版)》请在冰豆网上搜索。
![数学建模2Word文档格式.docx](https://file1.bdocx.com/fileroot1/2022-11/16/4c4d380e-5a1c-437b-8a53-f2538558b71f/4c4d380e-5a1c-437b-8a53-f2538558b71f1.gif)
5.3
7.2
9.6
12.9
17.1
23.2
31.4
1870
1880
1890
1900
1910
1920
1930
1940
38.6
50.2
62.9
76.0
92.0
106.5
123.2
131.7
1950
1960
1970
1980
1990
2000
150.7
179.3
204.0
226.5
251.4
281.4
表
(1)
模型假设
1.所给的数据能反应美国人口变化的基本情况;
2.一些重大事件,如战争,自然灾害等对人口预测的影响暂不考虑;
3.美国条件优越,不考虑移民、空间不足的问题;
4.生育模式不随时间变化。
模型分析
首先,我们运用Matlab软件编程,绘制出1790年到2000年美国的人口数据图,如图一。
程序为:
x=1790:
10:
2000;
y=[3.95.37.29.612.917.123.231.438.650.262.976.092.0106.5123.2131.7150.7179.3204.0226.5251.4281.4];
plot(x,y,'
r*'
);
%画点,红色
holdon;
%使得以下图形画在同一个窗口
p=polyfit(x,y,2)%多项式拟合,返回系数p
xn=1790:
5:
%定义新的横坐标
yn=polyval(p,xn);
%估计多项式p的函数值
plot(xn,yn)%把(x,yn)定义的数据点依次连起来
%给图形加上图例
xlabel('
年份'
ylabel('
人口数'
legend('
原始数据'
'
拟合函数'
2);
boxon;
gridon;
x1=2000;
y1=polyval(p,x1)%估计多项式p在未知点的函数值
1790年到2000年美国的人口数据图
图1
从图1我们可以看出1800年到2000年的人口数是呈现增长的趋势的,而类似二次函数增长。
所以我们可以建立了一个二次函数模型,并用最小二乘法对已有数据进行拟合得到模型的具体参数。
于是我们假设人口增长率是人口数的线性减函数,即随着人口数的增加,人口的增长速度会慢慢下降,从而我们可以建立一个阻滞增长模型。
模型建立
我们假设人口增长率r是人口数x的线性减函数,即随着人口数的增加,人口增长速度会慢慢下降:
(1)
人口数量最终会达到饱和,且趋于一个常数
,当
时,增长率为0,即:
(2)
由上面的关系式可得出:
(3)
把上式代进指数增长模型的方程中,并利用初始条件
可以得到:
(4)
解得:
(5)
dsolve('
Dx=r*x*(1-x/xm)'
x(0)=x0'
t'
)
解答步骤为:
由
得:
两边积分,得
其中
为任意常数。
化简得:
将初值条件
时,
代入得:
最后解得:
我们可以利用已有数据拟合:
对方程:
(6)
、
利用最小二乘法对参数r和
进行拟合
%参数拟合
%在命令文件main.m中调用函数文件curvefit_fun2.m
%定义向量(数组)
*'
x,y);
%画点,并且画一直线把各点连起来
a0=[0.001,1];
%初值
%最重要的函数,第1个参数是函数名(一个同名的m文件定义),第2个参数是初值,第3、4个参数是已知数据点
a=lsqcurvefit('
curvefit_fun2'
a0,x,y);
disp(['
a='
num2str(a)]);
%显示结果
年份/年'
人口/百万'
拟合曲线'
实际值'
变形得:
上式左端可以从实际人口数据用数值微分算出,右端对参数r,s是线性的。
我们利用1790年至2000年的数据,结合模型通过Matlab进行关于参数的最小二乘估计计算得到:
r=0.027353/(10年),
=342.44,将他们带入(5)式中得:
对其进行数据拟合得下图。
阻滞增长模型数据拟合图
图
(二)
图3是阻滞增长模型的拟合效果图。
从图3我们可以看出我们的模型对该美国的人口数据拟合得很好。
可以看出阻滞增长模型更客观地反映人口的增长规律,基本上都在拟合曲线上,拟合效果好。
其中:
x(t):
t时刻的人口数量;
:
初始时刻的人口数量;
r:
固有人口增长率;
环境所能容纳的最大人口数量,即r(xm)=0。
结果分析
将上面得到的参数r和x代入(5)式中,将计算结果与实际数据作比较,得到下图。
模型检验
在估计阻滞增长模型的参数时没有用2000的实际数据,是因为用了它作模型检验。
我们用模型计算2000年的人口,与已知实际数据(281.4百万)比较,来检验模型是否合适。
为简单起见,可利用X(1990)和方程(5)作出计算,得到x(2000)=274.5百万,与实际数据的误差约为2.5%,可以认为该模型是相当满意的。
模型优缺点分析
用数学工具描述人口变化规律,关键是对人口增长率作出合理,简化的假设。
阻滞增长模型就是将指数增长模型关于人口增长率是参数的假设进行修正后得到的。
可以想到,影响增长率的出生率和死亡率与年龄有关,所以,更合乎实际的人口模型应该考虑到年龄因素。
参考文献
[1]周品,何正风等编著。
MATLAB数值分析。
机械工业出版社
[2]姜启源,谢金星,叶俊.数学建模(第四版)[M]。
高等教育出版社,2004年。
[3]王高雄,周之铭,朱思铭,王寿松编。
常微分方程。
高等教育出版社。