数学建模人口模型及matlab算法解

本文通过构建Logistic人口模型预测美国人口增长趋势。基于历史数据,采用MATLAB进行参数拟合,得出美国最大承载人口及年增长率,并预测2010年人口数量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

建立美国人口模型,下面是 文本 数据

1790 1800 1810 1820 1830 1840 1850 1860  
3.9 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

单位是 百万人

一、建模:

记 x(t) 为 第t年的人口数量,设人口年增长率r(x) 为x的线性函数,r(x)=r-sx ,自然资源与环境条件所能容纳的最大人口数为 \large x_m , 当

\large x=x_m 时,增长率 \large r(x_m)=0 ,可得     \large r(x)=r(1-\frac{x}{x_m})      建立 Logistic 人口模型:

                                                            \large \left\{\begin{matrix} \frac{dx}{dt}=r(1-\frac{x}{x_m})x & \\ x(t_0)=x_0 & \end{matrix}\right.

其解为:

                                                     \large x(t)=\frac{x_m}{1+(\frac{x_m}{x_0}-1)e^{-r(t-t_0)}}

现在 就是需要解出 其中的参数 ,并估计出 2010年的人口数量

matlab 代码:

a=textread('G:\\matlab脚本文件\\StudyPrepare\\b.txt');
x=a([2:2:6],:)';
x=nonzeros(x);
t=[1790:10:2000]';
t0=t(1);x0=x(1);
fun=@(cs,td) cs(1)./(1+(cs(1)/x0-1)*exp(-cs(2)*(td-t0)));
cs=lsqcurvefit(fun,rand(2,1),t(2:end),x(2:end),zeros(2,1));   % cs(1)=xm , cs(2)=r
xhat=fun(cs,[t;2010]);
disp(cs(1))
disp(cs(2))
disp(xhat(end))

因为解是 一个 rand 的 均匀分布 所以解不唯一 可以得出 我们最终的答案

最终  xm=295.5481

r=0.1030

x(2010)=295.5481

 

 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值