马尔萨斯 ( Malthus)人口指数增长模型Logistic 模型

news/2024/10/18 5:45:00/

3.要求与任务

从 1790 — 1990 年间美国每隔 10 年的人口记录如下表所示:

用以上数据检验马尔萨斯 ( Malthus)人口指数增长模型,根据检验结果进一步讨论马尔萨斯
人口模型的改进,并利用至少两种模型来预测美国2010 年的人口数量。
提示 1 : Malthus 模型的基本假设是:人口的增长率为常数,记为 r 。记时刻 t的人口为
x ( t )(即 x ( t )为模型的状态变量),且初始时刻的人口为 ,于是得到如下微分方程:

在这里插入图片描述

提示 2 :阻滞增长模型(或 Logistic 模型) 由于资源、环境等因素对人口增长的阻滞作用,
人口增长到一定数量后,增长率会下降,假设 人口的增长率为x 的减函数,如设 r(x)=r(1-x/xm) ,
其中 r 为固有增长率 (x 很小时 ) ,xm为人口容量(资源、环境能容纳的最大数量), 于是得到
如下微分方程:
在这里插入图片描述
4、代码及结果
方法一:马尔萨斯 ( Malthus)人口指数增长模型
代码:

t = [1790 1800 1810 1820 1830 1840 1850 1860 1870 1880 1890 1900 1910 1920 1930 1940 1950 1960 1970 1980 1990];
p = [3.9 5.3 7.2 9.6 12.9 17.1 23.2 31.4 38.6 50.2 62.9 76.0 92.0 106.5 123.2 131.7 150.7 179.3 204.0 226.5 251.4];
y = log(p); %求ln(p)函数值
a = polyfit(t,y,1) %用一次多项式对t和y进行拟合
z = polyval(a,t); %求得以a为系数的多项式在t处的函数值
z1 = exp(z)
r = a(1)
plot(t,p,'bo',t,z1,'r') %分别画出散点图以及拟合曲线图
xlabel('时间');
ylabel('人口数量');
legend('实际数据','理论曲线');

在这里插入图片描述
结论:随着时间的增加,人口按指数规律无限增长。可以进行短期的人口预测,较为符合
但是之后误差就很大了。
误差分析:询美国人口统计图表得出2000年为282.162、2010年人口为309.322、2020年人口
为329.484,发现两者有一定区别,因为预测中无法考虑到未来可能发生的各种变化因素。实际上
随着人口数量的增加,自然资源、环境因素, 人口政策,年龄和性别结构、地域特征等因素对人
口数量的阻滞作用越来越明显。
方法二:Logistic模型
通过求解差分方程的方式得到每个时刻的人口增长率,并将其归一化。接着使用线性回归的方法拟合出人口增长率与人口数量之间的关系,并推导出了一个基于人口增长率的指数模型,用于预测未来的人口数量。
代码:

clc
clear
close all
x=[3.9 5.3 7.2 9.6 12.9 17.1 23.2 31.4 38.6 50.2 62.9 76.0 92.0 106.5 123.2 131.7 150.7 179.3 204.0 226.5 251.4];%人口
n=length(x);
t=0:1:n-1;
rk=zeros(1,n);
rk(1)=(-3*x(1)+4*x(2)-x(3))/2;
rk(n)=(x(n-2)-4*x(n-1)+3*x(n))/2;
for i=2:n-1rk(i)=(x(i+1)-x(i-1))/2;
end
rk=rk./x;
p=polyfit(x,rk,1);
b=p(2);
a=p(1);
r0=b;
xm=-r0/a;
%输出
pnum=zeros(n,1);
for i=0:1:n-1pnum(i+1)=xm/(1+(xm/x(1)-1)*exp(-r0*i));
end
year1=[1790 1840 1850 1860 1870 1880 1890 1900 1910 1920 1930 1940 1950 1960 1970 1980 1990 2000 2010 2020 2021];
plot(year1,pnum,'r--o',year1,x,'k-*')
xlabel('年份')
ylabel('人口数量/万人')
legend('预测人口数量','实际人口数量')figure(2)
fnum=zeros(n+14,1);
for i=0:1:n+13fnum(i+1)=xm/(1+(xm/x(1)-1)*exp(-r0*i));
end
year2=[1790 1840 1850 1860 1870 1880 1890 1900 1910 1920 1930 1940 1950 1960 1970 1980 1990 2000 2010 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035];
plot(year2,fnum,'r--o')
xlabel('年份')
ylabel('人口数量/万人')
legend('预测人口数量')

在这里插入图片描述
结论:当t=2000 时人口为295.769、t=2010时人口为315.909、t=2020时人口为333.962。
误差分析:查询美国人口统计图表得出2000年为282.162、2010年人口为309.322、2020年人口
为329.484,发现两者几乎一致,Logistic模型的缺点是模型中的参数r和人口总数上限xm很难准确得
到,尤其是xm的值还会随着人口发展变化的情况而改变。实际上随着人口数量的增加,自然资源、环境因素, 人口政策,
年龄和性别结构、地域特征等因素对人口 数量的阻滞作用越来越明显,增长率不应取为常数。
方法三:多项式拟合
在代码中,使用了polyfit函数拟合5阶多项式,将拟合结果和原始数据一起绘制出来。另外,该
代码还用polyval函数计算了未来几十年的人口预测数量,并在另一个图表中绘制出来。
代码:

Close;
clc;
clear all           %清除所有
n=5;%拟合多项式的次数
year=[1790 1800 1810 1820 1830 1840 1850 1860 1870 1880 1890 1900 1910 
1920 1930 1940 1950 1960 1970 1980 1990];
num=[3.9 5.3 7.2 9.6 12.9 17.1 23.2 31.4 38.6 50.2 62.9 76.0 92.0 106.5123.2 131.7 150.7 179.3 204.0 226.5 251.4];%户籍人口; 
p5= polyfit(year,num,n);       %5阶拟合 
%绘制原始数据和拟合曲线图
figure(1)
hold on;
xlabel('year');     %设置横坐标名
ylabel('num');      %设置纵坐标名
title('1790-1990人口增长曲线');   %设置标题
grid on      %网格线
plot(year,num,'r*',year,polyval(p5,year)) 
legend('人口数量','拟合曲线')
figure(2)
year1=[1790 1800 1810 1820 1830 1840 1850 1860 1870 1880 1890 1900 1910 
1920 1930 1940 1950 1960 1970 1980 1990 2000 2010 2020 2030]
plot(year1,polyval(p5,year1)) 
people=polyval(p5,year1);
legend('人口预测数量')

在这里插入图片描述
结论:当t=2000 时人口为286.151、t=2010时人口为323.925、t=2020时人口为369.047。
误差分析:查询美国人口统计图表得出2000年为282.162、2010年人口为309.322、2020年人口
为329.484发现两者有一些差别,而且预测的时间越长,误差会逐渐增大,因为预测中无法考虑到
未来可能发生的各种变化因素。实际上随着人口数量的增加,自然资源、环境因素, 人口政策,
年龄和性别结构、地域特征等因素对人口数量的阻滞作用越来越明显,增长率不应取为常数。
四、总结及体会
通过这个数学建模的实例,我们可以体会到数学建模的重要性和难度。
在实际问题中,我们需要根据已知数据、假设和条件,将其量化为数学模型。经过推导和求解,得出模型所能提
供的结果。这个过程需要严谨的数学思维和运用一定的数学工具。
同时,在实际问题中,还需要考虑到数据的准确性、假设的合理性和模型的可靠性等因素。这些因素都会影响到
最终的模型结果和应用效果。因此,需要在建立模型的过程中,注重数据的采集、分析和处理,以及对假设和模
型的合理性进行判断和修正。
此外,我们还需要在建模的过程中,注重交流和合作。不同领域的专家拥有不同的知识背景和专业技能,他
们的合作和交流可以使得模型更加完善和全面。
总之,数学建模不仅是数学的一个应用领域,同时也涉及到多个学科,需要全面的知识储备和跨学科的合作
在实际问题中,需要注重思维方式、数据准确性和交流合作等因素,以期获得可信、可靠的模型结果。


http://www.ppmy.cn/news/248316.html

相关文章

TMS320F2812介绍

TMS320F2812 是美国TI 公司推出的C2000 平台上的定点32 位DSP 芯片,主频150MHZ、处理性能可达150MIPS,每条指令周期6.67ns。TMS320F2812 采用哈佛总线结构,具有统一的存储模式,包括4M 可寻址程序空间和4M 可寻址数据空间。同时片内…

利用RTL2832u电视棒芯片追踪民航飞机轨迹

我国民航飞机通讯的频率为1090Mhz&#xff0c;而rtl2832u电视棒芯片可以接受的频率范围为24 – 1766 MHz&#xff08;通过改制Q通道可以接收0-30Mhz的短波&#xff09;下面开始介绍利用rtl2832u电视棒芯片获取民航航线 第一步淘宝搜索rtl2832u820T(50块钱就能买到) <ignore_…

RT-Thread 中科蓝讯AB32VG1 RISC-V开发板上手

前几天偶然发现睿赛德淘宝店上新了一款开发板&#xff0c;名曰AB32&#xff0c;想来这板子也该算是跟STM32、GD32、MM32同属32家的。但是仔细一看&#xff0c;它是RISC-V芯片&#xff0c;国产之光啊&#xff0c;一听价格49&#xff0c;果断入手了一块。 先来看看官方宣称的板载…

TMS320F2812和TMS320F28335的差别

最大的区别就是28335是浮点的&#xff0c;而2812是定点的。 F2812 主要指标 150 MHz EMIF 128KB Flash 36KB RAM GPIO 56路 McBSP 176-pin Package F28335 主要指标 300 MFLOPS 独立DMA 512KB Flash 68 KB RAM 32-bit EMI GPIO 88路 还有一点28335将2812的EV分解成了相互…

rtthread-TMF8801激光测距芯片

一、芯片介绍 TMF8801是2019年艾迈斯半导体推出的用于测量直接飞行时间(dToF)距离的集成式模块&#xff0c;这个传感器测量范围是2cm至2500cm。亮的环境下能达到2.4m&#xff0c;暗环境下能够测量到2.5m&#xff0c;但是在2cm以下测量数据不准备&#xff0c;距离比2cm要短。相…

联发科发布天玑920和天玑810 5G移动芯片

MediaTek 发布天玑系列 5G 移动芯片的两款新品&#xff1a;天玑 920 和天玑 810。这两款 5G 移动芯片将为终端带来强劲的性能、出色的影像和更智能的显示技术&#xff0c;为 5G 智能手机用户带来非凡的移动体验。 天玑 920采用高能效 6nm 制程&#xff0c;拥有强悍性能和低功耗…

TMF8801激光测距芯片驱动程序

TMF8801激光测距芯片驱动程序 一、芯片介绍 TMF8801是2019年艾迈斯半导体推出的用于测量直接飞行时间(dToF)距离的集成式模块&#xff0c;号称全球体积最小&#xff08;表示怀疑&#xff0c;不过体积确实非常小&#xff09;。这个传感器可以精准测量0.02m至2.5m范围&#xff…

TX2--TX2介绍

一、性能参数介绍 1、具体参数如下 二、实物 三、架构 1、CPU、GPU、软件架构详见 TX2学习笔记--Tegra架构介绍。 致谢 1、 Hardware For Every Situation&#xff08;官方&#xff09; 2、 TX2学习笔记--Tegra架构介绍