热门

最新

红包

立Flag

投票

同城

我的

发布
m0_74854067
不想学习。。。
2 年前
truem0_74854067

% 定义时间(年份)和人口数据
t = [1790 1800 1810 1820 1830 1840 1850 1860 1870 1880 1890 1900 1910 1920 1930 1940 1950 1960 1970 1980 1990 2000 2010 2020];
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 281.4 309.3 329.4];

% 将年份转换为连续变量,从1790年开始
t = t - 1790;

% 定义Logistic模型
logisticModel = @(b, x) b(1) ./ (1 + ((b(1)/b(2) - 1) * exp(-b(3) * x)));

% 初始参数估计
initialParams = [max(p), p(1), 0.02]; % K, P0, r

% 使用非线性最小二乘法拟合参数
options = optimset('Display', 'off');
beta = lsqcurvefit(logisticModel, initialParams, t, p, [], [], options);


K = beta(1); % 承载力
P0 = beta(2); % 初始人口
r = beta(3); % 增长率

p_pred = logisticModel(beta, t);


figure;
plot(t + 1790, p, 'bo', t + 1790, p_pred, 'r-');
xlabel('Year');
ylabel('Population (millions)');
legend('Actual Data', 'Logistic Model');
title('Logistic Growth Model for US Population');


t_2030 = 2030 - 1790;
p_2030 = logisticModel(beta, t_2030);
fprintf('Logistic Model预测2030年人口: %.2f million\n', p_2030);

CSDN App 扫码分享
分享
评论
点赞
打赏
  • 复制链接
  • 举报
下一条:
哇!好舒服的茶类官网UI设计前端开发
立即登录