数学建模人口迁移的动态分析.docx
《数学建模人口迁移的动态分析.docx》由会员分享,可在线阅读,更多相关《数学建模人口迁移的动态分析.docx(9页珍藏版)》请在冰豆网上搜索。
数学建模人口迁移的动态分析
数学建模人口迁移的动态分析
摘要
本文主要是计算A1、A2、A3三地区经过迁移后的人口及人口比例的变化,经过分析列出方程组,利用C程序计算出10年后、100年后三地区的人口数。
由计算所得绘制出人口数量的走势图,加以数据的分析,进而对时间无限的增长各地区人口比例的稳定性进行了很好的分析。
通过对该问题的数学模型建立,培养了团队合作能力,锻炼了我们的发散思维能力,增强了用数学方法解决实际问题的能力。
关键词:
人口迁移模型,研究性学习,VC++,递归方法
问题重述
在工业化的进程中,经济欠发达地区的人口会向经济发达地区迁移,形成一个稳定的朝向城市的人口流动趋势。
假设有三个地区
、
、
,第一年初三个地区的总人口为1亿人,各个地区人口在总人口中的比例分别是25%、35%、40%。
地区
每年有人口的1%流向地区
,有人口的1%流向地区
;地区
每年有人口的1%流向地区
,有人口的2%流向地区
;地区
每年有人口的3%流向地区
,有人口的2%流向地区
。
(1)假如三个地区的总人口保持不变,并且人口流动的这种趋势继续下去,问10年以后三个地区的人口各是多少100年以后呢时间无限增大各地区人口比例是否会稳定在某一个水平。
(2)设地区
的人口自然增长率5‰;地区
的人口自然增长率为7‰;地区
的人人口自然增长率为11‰。
并且假定人口迁移是在每年初或年末一次完成的,问10年以后三个地区的人口各是多少100年以后呢时间无限增大各地区人口比例是否会稳定在某一个水平。
问题分析:
(1)、我们需要建立一个描述这3个地区人口流动的模型,并求出在多少年后A1、A2、A3地区的人口。
问题假设
1、A1、A2、A3地区是相对封闭的地区,人口的流动只发生在这3个地区。
2、问题中提过3个地区的总人口不变,所以假设该3个地区的出生率等于死亡率。
在问
(2)中则不是,A1、A2、A3地区的人口是增长的,没个地区的增长率不一样,而迁移的时候是在增长了人口后。
3、假设人口的迁移时是一次性完成的,在每年末完成。
4、每个地区的迁入、迁出的比例不变。
5、符号的说明:
Aij(i=1、2、3,j=1、2、3…..):
Ai地区在j年后的人口数。
ri(i=1、2、3):
为Ai地区的自然增长率。
问题的解决
问题
(1)我们从问题中获得的信息可以列出数学表达式如下:
设x为总人口数,则:
第一年:
A11=*x+*x*+*x*A21=*x+*x*+*x*A31=*x+*x*+*x*第二年则在第一年的基础上迁移:
A12=*A11+*A21*+*A31*A11*
A22=*A21+*A11*+*A31*A21*
A32=*A31+*A11*+*A21*A31*
第三年则在第二年的基础上迁移…以此类推,用递归的方法可求出某年的A1、A2、A3地区的人口。
问题(2:
):
从问题中分析可知:
每个地区每年增长了人口后,则迁移人口数则与问题
(1)有所不同,用已知的数据和条件求A1、A2、A3地区迁移过后的人口。
设A1、A2、A3地区未增长时的总人口数是x,则:
第一年:
A11=*x*(1++*x*(1+*+*x*(1+*第二年则在第一年的基础上迁移,同时也有人口的增长:
A12=*A11*(1++*A21*(1+*+*A31*(1+*第三年在第二年的基础上迁移,同时也有人口的增长…..运用递归的方法就可求出某年的A1、A2、A3地区的人口。
对于我们来说求解问题时,首先想到的是运用MicrosoftVisualC++来编程:
问题
(1)的解:
运用C程序求出,在人口总数不变的情况下:
10年后地区人口数为:
A1=,A2=,A3=;
100年后地区人口数为:
A1=,A2=,A3=;
当时间无限增长时,用C++程序可求的3个地区的人口趋于稳定了,则人口比例也趋于稳定,也可作出人口—时间的曲线图,可看出曲线到后面已趋于稳定。
问题
(1)100年内人口数目曲线:
问题
(2)的解:
10年后地区的人口数:
A1=,A2=,A3=;
100年后地区人口数:
A1=0,A2=,A3=;
当时间无限增长时,用C++程序运算可求出A1与A2、、A2与A3的人口比例趋于~之间,则可知人口比例趋于稳定。
问题
(2)100年内人口数目曲线:
模型的结果分析
1、在总人口保持不变时,随着时间的推移,各地区的人口数量会趋于一个稳定值。
2、在人口自然增长率固定时,随着时间的推移,各地区的人口数量虽然不会达到一个稳定值,会不断地上升,但最终各地区的人口比例也会趋于一个稳定水平。
模型的优缺点:
优点:
人口迁移在有限年内找到其规律,建立模型,虽然模型求解要用到计算机帮助,但程序原理简单,求解方便。
缺点:
人口迁移局限在了一个很小的地方,忽略了其他地区的迁入和迁出到其他地区的情况,假定了3个地区的总人口不变和人口自然增长率不变,这是与实际不太相符的。
参考文献
数学建模(第二版)徐全智杨晋浩编著
数学模型(第三版)姜启源谢金星叶俊编著
附录
#include<>
#include<>
voidcount_p()
{
doublea,b,c;
inti;
intp;
doubleA1,A2,A3;
A1=;
A2=;
A3=4e7;
printf("请输入需要计算的时间(以年为单位):
");
scanf("%d",&p);
if(p<0)
{
while(p<0)
{
printf("输入错误!
请重新输入!
\n");
scanf("%d",&p);
}
}
for(i=1;i<=p;i++)
{
a=A1;
b=A2;
c=A3;
A1=a+b*+c***;
A2=b+a*+c***;
A3=c+a*+b***;
}
printf("%d年后个地区人口数统计如下:
\n",p);
printf("A1地区人口数:
%g\n",A1);
printf("A2地区人口数:
%g\n",A2);
printf("A3地区人口数:
%g\n",A3);
}
count_p2()
{
doublea,b,c;
inti;
intp;
doubleA1,A2,A3;
A1=;
A2=;
A3=4e7;
printf("请输入需要计算的时间(以年为单位):
");
scanf("%d",&p);
if(p<0)
{
while(p<0)
{
printf("输入错误!
请重新输入!
\n");
scanf("%d",&p);
}
}
for(i=1;i<=p;i++)
{
a=A1;
b=A2;
c=A3;
A1=(a+A1*+(b+A2**+(c+A3**(a+A1**(a+A1**;
A2=(b+A2*+(a+A1**+(c+A3**(b+A2**(b+A2**;
A3=(c+A3*+(a+A1**+(b+A2**(c+A3**(c+A3**;
}
printf("%d年后个地区人口数统计如下:
\n",p);
printf("A1地区人口数:
%g\n",A1);
printf("A2地区人口数:
%g\n",A2);
printf("A3地区人口数:
%g\n",A3);
}
main()
{
intj;
while
(1)
{
printf("\t\t\t人口动态分析人口计算\n");
printf("\t\t\t1流动趋势人口计算\n");
printf("\t\t\t2考虑增长率在内的人口计算\n");
printf("\t\t\t3退出程序\n");
printf("请输入选择:
");
scanf("%d",&j);
if(j<0||j>3)
{
while(j<0||j>3)
{
printf("\n");
printf("输入错误!
请重新输入!
\n");
printf("请输入选择:
");
scanf("%d",&j);
}
}
printf("\n");
switch(j)
{
case1:
count_p();
break;
case2:
count_p2();
break;
case3:
system("cls");
printf("\n\n\n\n\n\n\t\t\t\t谢谢使用!
!
\n");
exit(0);
}
}
}