阻滞增长模型--Logistic模型

article/2025/8/27 16:55:41

文章目录

  • 写在前面
  • 一、思路
  • 二、原始数据
  • 三、源代码
  • 四、结果


写在前面

做了一个作业,觉得挺有意思,有空就发上来了。

阻滞增长模型–Logistic模型的部分推导、思路,并给出参考代码。
参考书籍:《数学模型》第四版,姜启源 谢金星 叶俊 编
MATLAB版本2021b
点我下载源代码及原始数据
提取码:p3uu


一、思路

阻滞作用体现在对人口增长率r的影响上,使得r随着人口数量x的增加而下降。于是有:
在这里插入图片描述
对r(x)做假设,设r(x)是x的线性函数,即,
在这里插入图片描述这里r称固有增长率;引入人口容量xm,当x=xm时人口不在增长,于是有,
在这里插入图片描述
结合上述三式,有,
在这里插入图片描述
可解得,
在这里插入图片描述式5即为Logistic阻滞增长模型。
取数据得第一个时间点得值为x0,即x0=3.9。
由式4可得,
在这里插入图片描述
等号左边项可由实际数据计算得出,左端项与右端x呈线性关系,可通过线性拟合得r,s,进而求得x_m。
至此,式5中固有人口增长率r、人口容量x_m、人口初始值x_0均已求得。


二、原始数据

点我下载mat格式原始数据
提取码:75d5
数据在参考书P164
参考书P164


三、源代码

// function_xt.m
function output = function_xt(xm, x0, r, t )
%UNTITLED2 此处提供此函数的摘要
% Logistic模型
% 输入:
% xm:人口容量
% r :固有增长率
% x0:初始人口数
% t :时间点
% 输出
% x(t),时间点对应的人口数
output = xm / ( 1 + ( xm/x0 - 1 ) * exp(-r*t) );
end
// main
%%
% 运行环境:matlab2021b
%
% @94902022-3-29
%
clear
close all%% 加载数据并进行 固有增长率、人口容量 的计算
% 加载原始数据
load('data.mat')
% 求微分
dxdt = diff(Data.value);
% 线性拟合中 y 的计算
y = dxdt./Data.value(1:end-1);
% 进行线性拟合
% 返回值p(1)为系数,p(2)为截距
p = polyfit(Data.value(1:end-1), y, 1);
% 对应赋值
s = -p(1);
r = p(2);
xm = r/s;
x0 = Data.value(1); % 取第一个数据点为x0%% 获取模型关键值后进行计算
for t = 0:1:20yhat(t+1) = function_xt(xm,x0,r,t);
end
%% 画图,返回关键值
plot(Data.t(1:end-1), Data.value(1:end-1),'blue')
hold on
plot(Data.t(1:end-1), yhat, '*')
set(gca, 'XLim',[Data.t(1) Data.t(end)]);
xlabel('时间(年)','FontSize',24)
ylabel('人数(百万)','FontSize',24)
legend('原始数据','模型计算','FontSize',24)
title('阻滞增长模型拟合图形','FontSize',24)fprintf('人口容量xm是:%f\n',xm)
fprintf('固有增长率r是:%f\n',r)

四、结果

人口容量xm是:294.385993
固有增长率r是:0.324519

在这里插入图片描述



http://chatgpt.dhexx.cn/article/s01XxMXp.shtml

相关文章

logistic模型原理与推导过程分析(2)

二项逻辑回归模型 既然logistic回归把结果压缩到连续的区间(0,1),而不是离散的0或者1,然后我们可以取定一个阈值,通常以0.5为阈值,如果计算出来的概率大于0.5,则将结果归为一类(1),…

从logit变换到logistic模型

从logit变换到logistic模型 logit变换几率logistic模型 前面我们知道对数函数和对数函数的一些基本性质,也许你会问,为什么要引入对数函数?而且还是一个基本初等函数?这就要从logit变换说起。 logit变换 我们在研究某一结果&…

Gompertz模型绘图 matlab,Logistic模型matlab求解

Logistic模型求解怎么用matlab求解啊? 悬赏分:100 - 解决时间:2008-11-17 23:09 已知 x0:1:12 y[43.65 109.86 187.21 312.67 496.58 707.65 960.25 1238.75 1560.00 1824.29 2199.00 2438.89 2737.71] yL/(1a*exp(-k*x)) 利用线性回归模型所…

数学建模-Logistic模型

文章目录 Malthus模型模型假设建模与求解模型评价 Logistic模型模型假设建模与求解模型检验 为了更好地理解Logistic模型,我们先看看Malthus模型 Malthus模型 这是英国神父Malthus通过对一百多年人口统计资料的分析之后提出的人口模型假设 模型假设 设x(t)表示t时…

数学建模-Logistic模型附Matlab代码

目录 一、Logistic模型介绍 二、Logistic模型实例 三、Logistic模型原理 3.1 Logistic 方程定义 3.2 Yule算法 3.2 Rhodes算法 3.3 Nair算法 4、Logistic模型Matlab部分代码 4.1 Yule算法 4.2 Rhodes算法 4.3 Nair算法 一、Logistic模型介绍 logistic回归又称logi…

logistic回归模型—基于R

logistic回归模型—基于R 数据理解和准备一. 对缺失值的处理二.虚拟变量的赋值三.箱线图四.相关性分析 训练集与测试集的划分模型构建与评价一.logistic回归模型二.检查模型在训练数据集和测试数据集上的表现使用交叉验证的logistic回归 logistic回归又称logistic回归分析&…

数学模型——Logistic回归模型(含Matlab代码)

写在前面 Logistic回归模型是一种非常常见的统计回归模型,在处理大量数据,揭示各自变量如何作用于因变量(描述X与Y之间的关系)时有着十分重要的作用。笔者在写Logit回归模型前参加了一次市场调研比赛,在这次比赛中学到…

菜鸟的数学建模之路(五):Logistic模型

matlab实现 Logistic回归跟多元线性回归差不多,但是有区别: (1) 线性回归:y是一个定量的变量,这时y对于不同的自变量来说有相应的值。 (2) Logistic回归:y是一个定性的变…

自学鸿蒙应用开发(25)- 基本的CommonDialog

动作演示 对话框是应用程序的主要输入手段之一,但是遗憾的是目前鸿蒙的开发网站上只有ToastDialog用法,其他类型的对话框则只能参考为数不多的英文文档。 以下是作者经过不断尝试,终于鼓捣出来的CommonDialog对话框。 CommonDialog1 代码实…

Builder设计模式构建通用型Dialog

目录 写在前面 一、什么是Builder模式 二、AlertDialog源码分析 2.1、源码阅读 2.2、Builder模式工作流程 三、代码实战——Builder模式构建通用型Dialog 3.1、基本框架搭建 3.2、完善Builder 3.3、完善真正的构建器 3.4、自定义参数配置 四、使用Dialog 写在前面 …

自学鸿蒙应用开发(26)- 自定义CommonDialog

执行效果 上一篇文章中说过,直接使用鸿蒙系统中的CommonDialog大致是下面的效果: 这个效果实在是无法用于实际的应用开发。本文介绍如何定制自己的CommonDialog。还是先看演示视频: CustomizeCommonDialog 准备布局 定制CommonDialog的第一…

Android炫酷翻转Dialog及高仿苹果IOS的Dialog

简单的Android弹出Dialog效果(圆角) 最近一段时间工作挺忙的,一直想写一篇博文,总是被各种事情打破计划,终于这次利用这个周末来开始自己第一次的技术文章的写作,提前说明,本人还是个菜鸟&#…

Android 全局Dialog

前沿 android 弹窗好几种,全局弹窗是什么?和普通Dialog(必须依附activity上下文的弹窗)有什么区别? 逛技术blog发现【全局dialog】这个名词,之前用FragmentDialog,自定义dialog。以及dialog的…

Android开发dialog内存泄露,Android中导致内存泄漏的竟然是它----Dialog

一. 内存泄漏的 Bug 猛增 最近在 App 进行 mokey 测试的时候检测到一些内存泄漏问题。在前天的测试中,楼主一瞬间收到了4个这样的 Bug 单,瞬间心理无比纠结,真有千万只羊驼向我奔来。 登录页面出现内存泄漏??!!楼主的代码是如此的***而无懈可击,这么可能出现这么多泄漏的…

dialog.setOnDismissListener(null)过程分析

前提 为解决DialogFragment的内存泄漏,使用了此篇博客的处理方法 DialogFragment 内存泄露,简单说就是给 dialog 设置 getDialog().setOnCancelListener(null); getDialog().setOnDismissListener(null);但发现了一个问题,当用户返回Activi…

深入分析Android中Dialog

在Android中,Dialog是一个非常重要的UI, 它可以方便的给用户提示,用最简洁的方式向用户展示信息, 以下的图片是Dialog的一个整体架构,通过它,可以总体对Dialog有一个很清晰的认识. 从这张图中可以看到,Dialog为父类, 其下有最重要的&#xf…

android自定义dialog去除title,Android 自定义Dialog去除title导航栏的解决方法

Android 自定义Dialog去除title导航栏的解决方法 如下所示: Dialog dialog = new Dialog(context); dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); dialog.setContentView(view); 以上这篇Android 自定义Dialog去除title导航栏的解决方法就是小编分享给大家的全部内…

android常见的dialog的使用及认识

介绍 在实际开发过程中 , 我们难免要经常使用提示框 (dialog), 根据不同的场景使用不同的样式的提示框(dialog). androd提供了丰富的dialog函数 , 本文将介绍在实际开发中经常使用的对话框, 包括普通对话框 , 列表对话框 , 单选对话框 , 多选对话框 , 等待对话框, 进度条对话框…

ABAP屏幕设计Dialog

目录 一、概览 1.屏幕 2.程序组织 3.屏幕定义和维护 用途: 组成: Dialog的屏幕执行过程: 属性: 创建: 4.屏幕属性的动态修改 5.屏幕序列 二、Screen编程实例 1.Hello World屏幕编程 建立程序: 设计…

Android Dialog 源码研究

Android Dialog 源码研究 在阅读Dialog源代码之前,我给自己提出了4个问题,带着这4个问题的疑问,我才开始看源码,这样的好处能让阅读中有了侧重点,往往能更快的理解某些代码的意图,这也正是为什么总说提出问题本身,要比解决问题困难。 我下面要思考的4个问题是: Dialo…