人口发展模型matlab实现
- 格式:docx
- 大小:38.69 KB
- 文档页数:3
数学建模第一次实验报告一.实验目的学习有关人口预测的模型,了解有关混沌的基本理论,建立人口预报模型,并完成人口总量的预报,能够用软件完成数据计算。
二.实验内容1.下表为我国自1949年至2000年的人口数据,请根据人口模型,预测出2010、2015年我国的人口总数,并根据中国统计局的全国人口普查公报的1%调查数据,计2.谈谈你所认识的混沌三. 实验步骤1. 查阅资料选择模型通过查阅资料,发现在考虑算法复杂度以及预测效果等综合因素时,阻滞增长模型(Logistic 模型)要优于其他模型,所以我们选用阻滞增长模型进行本次实验。
2. 建立模型阻滞增长模型(Logistic 模型)是考虑到自然资源、环境条件等因素对人口增长的阻滞作用,对指数增长模型的基本假设进行修改后得到的。
阻滞作用体现在对人口增长率r 的影响上,是的r 随着人口数量x 的增加而下降。
若将r 表示为x 的函数()r x ,则它应是减函数,于是有:()()0,0dxr x x x x dt== (1) 对于()r x 的一个最简单的假设是()r x 为x 的线性函数,即:()(),0,0r x r sx r s =->> (2)设自然资源和环境所能容纳的最大人口数量为m x ,当m x x =时人口不在增长,即增长率()0m r x =,代入(2)式可得mrs x =,所以有: ()(1)mrr x r x =-(3) 将(3)式代入(1)式得:()0(1)0m dxr rx dt x x x⎧=-⎪⎨⎪=⎩(4) 解(4)可得(5)式:()01(1)e mrtm x x t xx -=+- (5)3. 根据模型原理进行编程程序见第五部分。
4. 运行结果采用1949年到2000年的人口调查结果作为数据,计算得到的模型参数()r x 和m x 为:()0.0296r x =,()204.5537m x =千万人。
1949年到2000年的预测结果与人口调查结果对比图如图1所示。
人口问题数据拟合的MATLAB程序拟合%拟合数据人口问题x=[1949 1954 1959 1964 1969 1974 1979 1984 1989 1994];y=[5.4 6.0 6.7 7.0 8.1 9.1 9.8 10.3 11.3 11.8];% 1 线性模型%用一阶多项式b=polyfit(x,y,1)z=b(2)+b(1).*x;plot(x,y,'r*',x,z),xlabel('x')%用矩阵运算A=[ones(size(x))', x'];b=A\y'z=b(1)+b(2).*x;plot(x,y,'r*',x,z),xlabel('x')%用线性回归A=[ones(size(x))', x'];[b,c,r,j,R] =regress(y',A)% b 回归系数 c 回归系数的置信区间r 残差j 拟合数据的置信区间R 相关系数F值、p值z=b(1)+b(2).*x;z1=z+j(:,1)';z2=z+j(:,2)';plot(x,y,'r*',x,z,x,z1,x,z2),xlabel('x')e=sqrt(sum((y-z).^2)/8)zz1=z-1.96*e; zz2=z+1.96*e;plot(x,y,'r*',x,z,x,zz1,x,zz2)% 2 非线性模型y=b(2)exp(b(1)x)%转化为线性函数A=[ones(size(x))', x'];y1=log(y);[b1,r,j,R]=regress(y1',A)b=[exp(b1(1)) b1(2)]z=b(1).*exp(b(2).*x);e=sqrt(sum((y-z).^2)/8)z1=z-1.96*e; z2=z+1.96*eplot(x,y,'r*',x,z,x,z1,x,z2)%用非线性函数拟合(缺点初值不合适,就得不到解)x=[49 54 59 64 69 74 79 84 89 94];y=[5.4 6.0 6.7 7.0 8.1 9.1 9.8 10.3 11.3 11.8];fun=inline('b(1).*exp(b(2).*x)','b','x');b0=[2 0.01];[b,r,j]=nlinfit(x,y,fun,b0)z=b(1).*exp(b(2).*x);plot(x,y,'r*',x,z)nlintool(x,y,fun,b0) %拟合曲线图。
目录摘要 (1)关键词 (1)引言 (1)1引言 (1)1.1 论文研究的背景 (2)1.2论文研究的意义 (2)2人口预测模型 (4)2.1 MALTHUS模型 (4)2.2 LOGISTIC模型 (5)3 MATLAB仿真计算 (6)3.1人口预测模型及参数的选定 (6)3.2计算人口环境容纳量 (7)4. 结论 (15)参考文献:.......................................... 错误!未定义书签。
Abstract (1)Key words (1)基于MATLAB的中国人口预测信息与计算科学专业张良指导教师:卢月莉[摘要]以MATLAB为人口预测的仿真计算平台,采用MALTHUS和LOGISTIC模型对中国人口进行了预测和比较,分析了人口增长率的变化率、远期人口预测的相对误差及LOGISTIC 模型的人口发展趋势,给出了合理的人口环境容纳量,修正了预测模型的相对误差,提高了人口预测的准确度。
[关键词]MATLAB仿真;人口预测;误差; MALTHUS模型; LOGISTIC模型;环境容纳量1引言1.1 论文研究的背景人口问题是长期以来制约中国社会发展的最为关键的因素之一。
从新中国成立至今,中国人口己经由5.4亿增至13.3亿,人口总量增加了近8亿。
在中国人口的各发展阶段过程中,人口数据受限于人口基数而表现了结构的变化,自建国初期到70年代,是中国人口由原来的高出生率、高死亡率进入到高出生率、低死亡率的人口增长时期。
特别是受多年的人口结构积累的影响,近年来的中国人口发展出现了老龄化进程加速的态势,预计未来还将进一步地延伸该态势,对中国社会还将持续发生较大的影响作用。
基于现实来看,现代中国处于全面建设小康社会的快速转型期,人口的发展将使中国从总体资源丰富的大国步入人均资源占有量不足的境地,势必抑制国民整体生活水平的快速增长。
诸如此类因素,都将影响中国的未来,因而,有效的分析与科学预测中国人口的发展与变化显得既紧迫又重要。
Logistic人口增长模型实验目的●熟悉MATLAB解微分方程数值解的函数ode23的使用方法●了解Logistic人口增长模型比利时数学家Verhulst 在1844-1845年研究人口增长时指出:受自然资源,环境条件等因素限制,人口数量在初始阶段接近指数增长,当逐渐变得饱和时增速变缓,最终达到稳定后增长停止。
()r d N dt N N =r(N)表示人口数量为N 时的增长率(1)m d r N N N d N t =-N m 表示环境能供养的人口总量的上界,r 为常数变化率。
Logistic 方程:Logistic 人口增长模型微分方程表示:r(N)是减函数比较Malthus 模型:dN N dt r r 为常数增长率Logistic 模型中,r(N)是N 的线性减函数。
应用:Logistic 方程广泛应用于化学,统计学,经济学和神经网络等。
某国2000年总人口为12.674亿,假设受环境限制人口上限为20亿,人口变化率为0.0173。
根据Logistic 人口增长模型,总人口数满足微分方程:(1)(2000)12.670.0174320dN N N dt N ⎧=-⎪⎨⎪=⎩程序文件求解:plot(t,N)function logistic [t, N]=ode23(@fun,[2000,2050],12.674);function vfun=fun(t,N)vfun=0.0173*(1-N/20).*N;(1)md r N N N d N t =-Logistic 方程:示例:图1Logistic人口增长模型图2Malthus模型和Logistic人口增长模型题目中有关Logistic 人口增长模型的参数都是给定的。
如果已有一组人口数据,能否根据这些数据估计r 和N m ?思考:(1)m d r N N N d N t =-。
MATLAB人口数量预测实验报告一,实验目的:1.、学会用matlab软件进行数据拟合;2、了解利用最小二乘法进行数据拟合的基本思想,掌握用数据拟合法寻找最佳拟合曲线的方法;3、了解多元函数的机制在数据拟合法中的应用;4、通过对实际问题进行分析研究,初步掌握建立数据拟合数学模型的方法。
二.问题分析及建立模型1.多项式拟合对于已知数据点,如果选用拟合基函数为幂函数类1,x,x2,x3….xm,则拟合函数为一个m次多项式函数。
y=f(x)=a m*x m+a m-1*x m-1+…a1*x+a0根据最小二乘法你和思想,问题归结为求m+1元函数Q(a0,a1,…a m)=∑(a m*x i m a m-1*x i m-1+…+a1*x+a0)2的最小值问题,同样的,利用多元可微函数求得极值的必要条件得到法方程组∂Q(a0,a1,…a m)/∂a k=0; k=0,1,2,3…m;此时,矩阵G为一范德蒙矩阵,解此方程可以求的多项式系数a=[a m,a m-1,a0]T模型假设美国的人口满足函数关系x=f(t), f(t)=e a+bt,a,b为待定常数,根据最小二乘拟合的原理,a,b是函数∑=-=niiix tfbaE12))((),(的最小值点。
其中x i是t i时刻美国的人口数。
这是第一种模型。
3.Logistic模型上述模型可以在短时间内较好地拟合实际人口数量,但也存在问题。
即人口是呈指数规律无止境地增长,此时人口的自然增长率随人口的增长而增长,这不可能。
一般说来,当人口较少时增长得越来越快,即增长率在变大;人口增长到一定数量以后,增长就会慢下来,即增长率变小。
这是因为自然资源环境条件等因素不允许人口无限制地增长,它们对人口的增长起着阻滞作用,而且随着人口的增加,阻滞作用越来越大。
而且人口最终会饱和,趋于某一个常数x,假设人口的静增长率为r(1-x(t)/x ),即人口的静增长率随着人口的增长而不断减小,当t 时,静增长率趋于零。
人口增长模型数学089班王敬华丘创权黄建其摘要本文根据某个地区的人口从1800年到2000年间的人口数据,利用matlab7.0数据拟合,建立线性增长模型和二次函数增长模型,并对2010年的人口数进行预测。
在本文中,二次函数增长模型拟合的效果明显比线性增长模型差,用线性函数增长模型预测出2010年该地区的人口总数为260.2百万,用二次函数增长模型预测出2010年该地区的人口总数为293.33百万。
关键字人口预测 matlab 7.0问题重述根据以下某个地区的人口从1800年到2000年间的人口数据(如下表),建立人口增长模型(比如线性增长模型或者二次函数增长模型),并确定其中的待定参数,估计出该地区2010年的人口,同时画出拟合效果的图形。
6模型分析根据所给的人口数据,我们借助MATLAB首先作出散点图进行观察分析:(如下图)18001820184018601880190019201940196019802000从散点图中,我们可以看出,人口是逐年增长的,于是我们想到了线性的增长和二次涵数的增长,但由于这两个模型并没有考虑到人口增长不可能是无限的,它受到此地区很多因数的影响,如:资源,环境,医疗,国家政策,战争,疾病,生育观念……。
现在我们忽略这些影响,对这两个模型的预测进行比较。
模型建立模型一:线性增长模型。
(即为y=ax+b模型)1、模型假设:忽略环境对人口的影响,假设人口无限增长,人口增长率是恒变量。
2、模型变量和函数定义:A 人口增长率;xB 初始时刻的人口数量,即:(0)3、模型建立:依照上面的假设和定义,我们可以构造如下模型:Y=Ax+B我们借助MATLAB进行拟合。
如下图:18001820184018601880190019201940196019802000利用MATLAB 求得系数a=1.0e+003 *0.0015;b=1.0e+003*(-2.7548)即a=1.5 ;b=-2754.8; 因此模型为:8.27545.1-=x y4、模型结果分析:线性增长型模型虽然在一定程度上可以表明人口是在不断的增长,但由于没有考虑到自然因数,人为因素和环境因数的影响,因此我们建立了模型二。
基于 MATLAB 的人口预测模型摘要本文以 1980-2014 年中国年终总人口数据资料为依据,分别使用了一次拟合、灰色预测模型和时间序列模型进行拟合,最终得出时间序列模型的效果最优,得到了中国人口数量逐年增长,但同时增长速度逐渐放缓的结论,为政府制定人口、经济政策提供了一定的依据。
关键词:人口数量;一次拟合;灰色预测;时间序列前言世界人口的迅猛增长引起了许多问题。
特别是一些经济不发达国家的人口过度增长,影响了整个国家的经济发展、社会安定和人民生活水平的提高,给人类生活带来许多问题。
为了解决人口增长过快的问题,人类必须控制自己,做到有计划地生育,使人口的增长与社会、经济的发展相适应,与环境、资源相协调。
我国是世界上人口最多的发展中国家。
人口数量多、增长快、可耕地少、国家底子薄,这是我国的基本国情。
人口增长过快,严重制约着我国经济和社会发展的进程,影响着人民生活的改善和民族素质的提高。
从而造成社会再生产投入不足,严重影响国民经济的可持续发展。
认真分析我国目前的人口现状和特点,采取切实可行的措施控制人口的高速增长,提高人口的整体素质,已成为我国目前经济发展中需要解决的首要问题。
本文以中国近 35 年的人口数据尝试建立模型,分别建立了一次模型、灰色预测 GM(1,1)模型和时间序列 AR 模型,最终选取了拟合效果最好的时间序列模型,用于说明我国人口问题以及预测短期内人口数量变化,以及为我国即将面临的人口问题提供一些建议。
概念与引理定义 1[1]:人口问题,是由于人口在数量、结构、分布等方面快速变化,造成人口与经济、社会以及资源、环境之间的矛盾冲突。
人口数量问题,主要由非均衡生育(多子化和少子化)以及人口迁移造成,只有通过均衡生育(发达国家 2.17 胎,发展中国家 2.3 胎)和调控迁移来解决。
人口结构问题,主要包括年龄、性别、收入、人种、民族、宗教、教育程度、职业、家庭人数等人口结构问题;其中最为突出的是年龄(多子化、少子高龄化)、性别(男女比例失调)和收入(基尼系数高、中产塌陷)结构问题。
MATLAB中的差分方程建模与求解方法引言差分方程是数学中常见的一种方程类型,是一种离散形式的微分方程。
在实际问题中,差分方程能够提供对系统的离散描述,对于动态模型的建立和求解具有重要作用。
MATLAB作为一种功能强大的数值计算软件,其内置了丰富的工具箱和函数,为差分方程的建模和求解提供了便利。
一、差分方程的建模差分方程的建模是将实际问题转化为数学方程的过程。
在MATLAB中,差分方程的建模可以通过定义离散系统的状态和状态转移方程来实现。
下面以一个简单的例子说明差分方程的建模过程。
假设有一个人口增长模型,人口数在每年增加10%,则差分方程可以表示为:P(n+1) = P(n) + 0.1 * P(n),其中P(n)表示第n年的人口数,P(n+1)表示第n+1年的人口数。
在MATLAB中,可以通过定义一个函数来描述差分方程的状态转移方程,代码如下:```matlabfunction Pn = population_growth(Pn_minus_1)growth_rate = 0.1;Pn = Pn_minus_1 + growth_rate * Pn_minus_1;end```上述代码定义了一个名为"population_growth"的函数,该函数的输入参数为上一年的人口数"Pn_minus_1",输出为当前年的人口数"Pn"。
其中,growth_rate表示人口增长率,根据差分方程的定义,将上一年的人口数乘以增长率再加上本身,即可得到当前年的人口数。
二、差分方程的求解方法在MATLAB中,差分方程的求解可以通过多种方法实现。
下面介绍两种常用的差分方程求解方法:欧拉法和四阶龙格-库塔法。
1. 欧拉法(Euler's method)欧拉法是差分方程求解中最简单直观的一种方法。
其基本思想是通过离散化的方式逐步逼近连续函数的解。
具体步骤如下:1) 将时间段分割成若干个小区间;2) 根据差分方程的状态转移方程,在每个小区间内进行计算;3) 迭代计算直到达到指定的时间点。
实验二:人口发展模型
实验目的:
理解马尔萨斯模型和Logistic模型,利用中国人口数据,进行参数估计,并比较模型的优劣。
实验题目:
据统计,建国以来我国人口增长情况如表1:
表1各年份中国总人口数(单位:千万)
年
份1954 1955 1956 1957 1958 1959 1960 1961 1962 人
口60.2 61.5 62.8 64.6 66.0 67.2 66.2 65.9 67.3 年
份1963 1964 1965 1966 1967 1968 1969 1970 1971 人
口69.1 70.4 72.5 74.5 76.3 78.5 80.7 83.0 85.2 年
份1972 1973 1974 1975 1976 1977 1978 1979 1980 人
87.1 89.2 90.9 92.4 93.7 95.0 96.259 97.5 98.705 口
年
份1981 1982 1983 1984 1985 1986 1987 1988 1989 人101.65 103.00 104.35 105.85 111.02 112.70 口100.1 4 8 7 1 107.5 109.3 6 4
年
份1990 1991 1992 1993 1994 1995 1996 1997 1998 人114.33 115.82 117.17 118.51 119.85 121.12 122.38 123.62 124.76 口 3 3 1 7 0 1 9 6 1
年
份1999 2000 2001 2002 2003 2004 2005
人125.78 126.74 127.62 128.45 129.22 129.98 130.75
口 6 3 7 3 7 8 6
1数据,
以马尔萨斯模型和Logistic模型来拟合表比较两种模型,哪种模型
更适合人口的长期预测?并预测2006年至2015年各年人口总数。
马尔萨斯模型假设单位时间内人口增长量与当刖时刻人口数成止比,
即有J dT =' 其中r代表增长率,为*时刻人口总量,易得\诃=
『:八-H"',这表明人口按指数变化规律增长。
Logistic 模型 假设人口增长率是当时人口数量 的线性递减函数
巨玉]。
了,表示按自然资源和环境条件的最大人口容量;F 表示固有增长率,即人 口很少时的增长率;当• I 时,—r :-;当」* " 时,^ '1*0由此 建立Logistic 模型丨小 -:
",求解模型得”八
'.
1 ^(0) =
1 + _ i)e-^
实验程序及注释
%马尔萨斯模型 T=1954:2005;
N=[60.2,61.5,62.8,64.6,66,67.2,66.2,65.9,67.3,69.1,70.4,72.5,74.5,76.3,78.5,80. 7,83,85.2,87.1,89.2,90.9,92.4,93.7,95,96.259,97.5,98.705,100.1,101.654,103.008,104. 357,105.851,107.5,109.3,111.026,112.704,114.333,115.823,117.171,118.517,119.85, 121.121,122.389,123.626,124.761,125.786,126.743,127.627,128.453,129.227,129.98 8,130.756];
y=log(N); %计算对数值
p=polyfit(T,y,1);
Malthus=exp(polyval(p,T));
plot(T,N,'o',T,Malthus) RM=sum((N-Malthus).A 2) %Logistic 模
型
b0=[ 241.9598, 0.02985];
fun=inline('b(1)./(1+(b(1)/60.2-1).*exp(-b(2).*(t-1954)))' ,'b','t'); b1= nlinfit(T, N,fun,b0);
Logistic=b1(1)./(1+( b1(1)/60.2-1).*exp( -b1(2).*(T-1954))); %非线性拟合的方 程 plot(T, N,'*' ,T,Logistic) %对原始数据与曲线拟合后的值作图 RL=sum((N-Logistic).A2) % 求残差平方和
图1实验结果
%线性拟合 %求线性函数值 %对原始数据和拟合后的值作图 %求残差平方和
%初始参数值
实验数据结果及分析
由上图可以看出,Logistic模型对人口的拟合更加确切,其误差130.8740较马尔萨斯模型的误差757.4464更小。
利用Logistic模型预测2006年至2015年各
由马尔萨斯模型”八可得,随着时间的推移,人口数量将会无限的
增大,这显然是不合理的,导致这一问题的一个明显原因就是,马尔萨斯原型没有考虑环境的承受能力这一限制。
而Logistic模型则
1 -F (如-l)e~rt 考虑了自然环境对人口数量以及增长率的限制,即随着时间的推移,人口数量会
渐渐增大,但人口的增长率会慢慢减小,直至等于0,此时人口将会达到环境所
能承受的最大值。
实验结论
相比于马尔萨斯模型,Logistic模型更适合长期的人口预测。