微分方程应用案例

news2024/7/6 19:55:35

 下表1给出了近两个世纪美国人口统计表(单位:百万),建立数学模型并检验,最后用它预报2010年美国的人口。

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

人口

38.6

50.2

62.9

76.0

92.0

106.5

123.2

1940

1950

1960

1970

1980

1990

2000

人口

131.7

150.7

179.3

204.0

226.5

251.4

281.4

 1、指数增长模型(Malthus人口模型)

托马斯·罗伯特·马尔萨斯牧师(Thomas Robert Malthus,1766年2月13日-1834年12月23日)。英国教士、人口学家、经济学家。以其人口理论闻名于世。     在《人口论》(1798)中指出:人口按几何级数增长而生活资源只能按算术级数增长,所以不可避免地要导致饥馑、战争和疾病;呼吁采取果断措施,遏制人口出生率。其理论对李嘉图产生过影响 。

【模型假设】

  1. 人口增长率为常数
  2. 单位时间内人口的绝对增长与当前人口数量成正比
  3. 人口总数随时间连续变化

【符号说明】

【模型建立】

 t时刻人口总量为x(t),对一个地区或国家来说,x(t)数量很大,视为一个可微函数。 

  记初始时刻t=0时,人口总数为x0。根据假设(2),从t到t+Δt时间内,人口的增量正比于x(t)与Δt的乘积,即

令Δt→0,得到x(t)的微分方程【2.1】

变量分离容易求出【2.2】

【2.2】称为指数增长模型,也称Malthus人口模型。

【参数估计】 

为了更好利用表1的数据和线性拟合参数,对【2】两边取对数,有

设y=lnx,a=lnx0,则有y=a+rt【3】

 这类模型的目的是为了预报预测,预测准不准确不是模型本身可以完全决定的,需要用实际数据检验。所以,在数据拟合时,一般采用前2/3的数据来拟合参数(自找导师监督学习),用后1/3的数据来检验模型的可用性。如果数据本身较少,也说明可获取的信息太少,模型的可信度本来就低。

 用前12个数据,用matlab软件做直线拟合

clear
A=xlsread('d:\Arenkou.xlsx');
A=A';
t=A(:,1);x=A(:,2);
t1=t(1:12);y=log(x(1:12));
[b,bt,r,rt,st]=regress(y,[ones(length(y),1),t1]);
x0=exp(b(1));r=b(2);

得到预报公式为: 

【4】

图2是前12个年份的理论值(线)与实际值(*)的对比。可以看出,这个模型基本上能够描述19世界以前美国人口增长。 这和假设(1),即人口增长率是常数基本吻合。

                        图2  指数增长模型拟合图 (1790-1900)

 图3是全部年份的理论值(线)与实际值(*)的对比。从图可以看出,进入20世纪后,美国人口明增长变慢了,模型不再适应。 

                              图3 指数增长模型拟合图(1790-2000) 

【误差原因分析】

利用差商的形式来定义增长率,即【5】

将表1中数据代入【5】,得到r(k),并绘制如图4。 

                              图4 时间-增长率散点图

由图4可以看出,虽然增长率是摆动的,但随着人口增长,增长率有明显的下降趋势。也可以看到,1930年左右增长率特别小(29年经济大萧条所致)。 

【模型的优缺点】

1、优点

  1. 模型简单,易于理解和计算
  2. 从第一张图可以看出,Malthus人口模型在短期内拟合较好,短期预测误差不是很大

2、缺点

  1. 从第二张图可以看出,Malthus模型不能做中长期的预测,误差较大
  2. 看,这根本不可能,说明模型假设存在致命的缺陷。

3、修正方案 

把增长率是常数修改为增长率随人口增加而降低。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1018761.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Chromedriver 在 Python 中查看源代码的方法

Python 中可以属性来查看需要爬取的网站的源代码。 对应具体的是:chrome.page_source 需要注意的是首先需要导入包 from selenium.webdriver import Chrome 然后进行初始化:chrome Chrome(serviceService(r"C:\Users\yhu\Downloads\chromedrive…

华为智慧搜索,下一片流量蓝海的“入海口”

几年前开始,TMT业界就发出了一类质疑的声音:移动互联网的各个APP彼此割裂,是在“孤岛炼油”。 大量的应用程序和服务互不打通,形成了严重的数据孤岛,用户只能进行站内搜索,很难穿透APP壁垒,进行…

平衡二叉树的定义,插入操作以及插入新结点后的调整规则(ALV树)

1.定义 平衡二叉树( Balanced Binary Tree),简称平衡树(AVL树)。 1.特点 树上任一结点的左子树和右子树的高度之差不超过1。 结点的平衡因子左子树高-右子树高。 2.平衡二叉树的判定 平衡二叉树结点的平衡因子的值只可能是-1…

全国职业技能大赛云计算--高职组赛题卷①(容器云)

全国职业技能大赛云计算--高职组赛题卷①(容器云) 第二场次题目:容器云平台部署与运维任务1 Docker CE及私有仓库安装任务(5分)任务2 基于容器的web应用系统部署任务(15分)任务3 基于容器的持续…

Mysql详解Explain索引优化最佳实践

目录 1 Explain工具介绍2 explain 两个变种3 explain中的列3.1 id列3.2 select_type列3.3 table列3.4. type列3.5 possible_keys列3.6 key列3.7 key_len列3.8 ref列3.9 rows列3.10 Extra列 4 索引最佳实践4.1.全值匹配4.2.最左前缀法则4.3.不在索引列上做任何操作(计…

使用 Feature Flags 实现数据库灰度迁移的监控与可观测性

作者:观测云与胡博 场景描述 很多企业会遇到数据库升级、或数据库迁移的情况,尤其是在自建数据库服务向云数据库服务、自建机房向云机房、旧数据库向新数据库迁移等场景。 然而,我们需要在整个移植过程中保证其稳定性、避免数据遗失、服务宕…

Windows 安装 chromedriver 和 Python 调试

下载 chromedriver 从官方网站上下载 chromedriver 的版本,这个版本需要和你 Chrome 的版本对应上。 下载的地址为:ChromeDriver - WebDriver for Chrome - Downloads 这个地方,将会打开一个新的浏览器界面,Chrome for Testing …

9参数化重采样时频变换,基于MATLAB平台,程序已调通,可直接替换数据进行分析。

参数化重采样时频变换,基于MATLAB平台,程序已调通,可直接替换数据进行分析。 9matlab参数化重采样时频变换 (xiaohongshu.com)

Debian 12安装Docker

1.更新系统包 #apt update 2.安装依赖包 #apt install apt-transport-https ca-certificates curl gnupg lsb-release 3.添加Docker源 (1)添加Docker 官方GPG密钥 #curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/s…

OPENCV实现DNN图像分类

使用步骤1 使用步骤2 使用步骤3 使用步骤4 使用步骤5 使用步骤6 完整代码如下: import numpy as np

lv5 嵌入式开发-1 进程的创建和回收

目录 1 进程概念 2 进程内容 3 进程类型 4 进程状态 5 查看进程信息 5.1 相关命令ps top /proc 5.2 相关命令 nice renice 5.3 相关命令job bg fg 6 子进程概念 7 子进程创建 – fork 8 父子进程 9 思考 10 进程结束 – exit/_exit 11 进程的回收 11.1 进程回…

opencv形状目标检测

1.圆形检测 OpenCV图像处理中“找圆技术”的使用-图像处理-双翌视觉OpenCV图像处理中“找圆技术”的使用,图像处理,双翌视觉https://www.shuangyi-tech.com/news_224.htmlopencv 找圆心得,模板匹配比霍夫圆心好用 - 知乎1 相比较霍夫找直线算法, 霍夫找…

RK3568平台开发系列讲解(调试篇)系统运行相关频率设置

🚀返回专栏总目录 文章目录 一、CPU 频率设置二、DDR 频率设置三、NPU 频率设置沉淀、分享、成长,让自己和他人都能有所收获!😄 📢 CPU 默认是 interactive 状态,它会根据 CPU 使用率和目标负载来动态地调整 CPU 频率。为获得更高运行速度或者性能评估,我们需要手动固…

红外成像技术

针对GI S设备红外检测目前未被大众认可的原因: 1 、 目前对GI S带电检测的意义认识不够, 许多单位认为GI S测温发现不了什么, 对其测温仅仅检测接头。 2、 GI S外壳温度异常的原因多种, 出现外壳温度异常大家不会分析,…

stringBuffer.append(analyze);使用这个拼接时候如何在字符串参数字符串参数整数参数字符串数组参数内容之间添加空格

stringBuffer.append(analyze);使用这个拼接时候如何在字符串参数字符串参数整数参数字符串数组参数内容之间添加空格? 在添加参数到 StringBuffer 时,你可以在每次添加参数之后都添加一个空格,如下所示: StringBuffer stringBu…

【Linux入门】---Linux权限管理详解

文章目录 1.shell命令以及运行原理2.linux用户分类su指令切换用户 3.Linux权限管理3.1Linux文件访问者3.2文件类型和访问权限3.3文件权限值的表示方法3.4文件访问权限的相关设置方法chmod指令--权限修改方法①chmod指令--权限修改方法②chown指令chgrp指令umask指令file指令 4.…

按键点亮led灯

原理图: K0这个按键按下时,开发板D1这个灯亮,松开,灯灭 代码如下: #include "stm32f4xx.h" void LED_Init(void) {//1.定义一个GPIO外设的结构体变量 GPIO_InitTypeDef GPIO_InitStructure;//RCC_AHB1PeriphClockCmd(RCC_AHB1Pe…

【自学开发之旅】Flask-前后端联调-异常标准化返回(六)

注册联调: 前端修改: 1.修改请求向后端的url地址 文件:env.development修改成VITE_API_TARGET_URL http://127.0.0.1:9000/v1 登录:token验证 校验forms/user.py from werkzeug.security import check_password_hash# 登录校验…

目标检测前言,RCNN,Fast RCNN,Faster RCNN

一、RCNN: 找到概率最高的目标之后,与其他目标进行IOU交并比计算,若高于一定值,则说明这两张图片预测的是同一个目标,则把概率低的目标删掉 二、Fast RCNN 因为是直接得到特征图之后进行映射,所以不限制输入…

AXMB-GY v2.0: 全新开源的爱希彩虹易支付模板,简洁轻量级设计

AXMB-GYv2.0:全新发布的开源爱希彩虹易支付模板。该模板对用户中心、登录、注册、找回密码和支付页面进行了美化,采用了简洁轻量级的设计风格。作为全开源模板,它提供了灵活且自由的定制和二次开发选项。同时,该模板具有出色的兼容…