2023 “华为杯” 中国研究生数学建模竞赛(D题)深度剖析|数学建模完整代码+建模过程全解全析

news2024/10/7 19:30:16

问题一:区域碳排放量以及经济、人口、能源消费量的现状分析

思路:

定义碳排放量 Prediction 模型:
CO2 = P * (GDP/P) * (E/GDP) * (CO2/E)

其中: CO2:碳排放量 P:人口数量 GDP/P:人均GDP E/GDP:单位GDP能耗 CO2/E:单位能耗碳排放量

2.收集并统计相关历史数据:

人口数量P
GDP总量与人均GDP
各产业部门能耗E
各产业部门碳排放量CO2


3.分析历史数据变化趋势:

GDP增长率、人均GDP增长率
部门能耗强度降低率
部门碳排放强度降低率
4.预测未来发展态势:

人口预测
GDP增长目标
部门能效提升目标
非化石能源替代目标
5.将预测数据代入碳排放预测模型,计算各年碳排放量。

6.比较碳排放量预测结果与碳中和目标差距,分析碳中和的难点。

代码:

# 导入需要的库
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
 
# 读取历史数据
df = pd.read_excel('history_data.xlsx') 
 
# 数据预处理
df = df[['年份','人口','GDP','第一产业能耗','第二产业能耗','第三产业能耗','生活能耗','碳排放量']]
df['能耗总量'] = df[['第一产业能耗','第二产业能耗','第三产业能耗','生活能耗']].sum(axis=1)
df['人均GDP'] = df['GDP'] / df['人口']  
df['能耗强度'] = df['能耗总量'] / df['GDP']
df['碳排放强度'] = df['碳排放量'] / df['能耗总量']
 
# 分析历史趋势
df['GDP增长率'] = df['GDP'].pct_change()
df['人均GDP增长率'] = df['人均GDP'].pct_change() #见完整版

问题二
区域碳排放量以及经济、人口、能源消费量的预测模型

人口预测模型
根据历史人口数据,可以建立简单的线性回归模型来预测未来人口数量。也可以研究人口增长的S形曲线规律,建立logistic回归模型。需要收集人口出生率、死亡率等数据,来综合判断未来人口变化趋势。

2.人均能耗模型

可以基于每个时期人均GDP水平,结合Engel系数法则等分析人均能耗需求变化规律。随着生活水平提高,人均能耗呈现先增加后下降的趋势。建立人均能耗预测模型时,需要考虑收入弹性、技术进步抑耗作用等因素。

3.能耗强度模型

这反映了经济活动的能效提升程度。可以收集国内外同类产业的能耗强度基准,判断本区域的节能潜力空间。还需要考虑电气化、新材料应用等因素对能耗强度的影响。不同产业需要建立独立的强度预测模型。

4.部门能耗预测

基于能耗总量预测,结合产业发展规划、产业结构优化目标,合理预测各部门的能源需求。重点对能源密集型产业的清洁生产提出指导意见。

5.情景比较

建议设计高能效提升情景、低能效提升情景,以及高非化石能源替代情景、低替代情景。比较各情景下的碳排放量、能耗指标,分析实现碳中和的关键措施。

结合公式:

人口预测模型
线性回归模型:

人口数P = a + b*年份

logistic模型:

P = P_m / [1 + exp(-k(年份-t))]

2.人均能耗模型

人均能耗E_p = c * GDP_p^d

3.能耗强度模型

能耗强度I = a * exp(-b*年份)

4.部门能耗预测模型

第i部门能耗E_i = E_total * r_i

5.碳排放量预测

CO2 = ∑(E_i * f_i)

其中: P_m:人口饱和值上限 k,t:logistic模型参数 E_p:人均能耗 GDP_p:人均GDP I:能耗强度 E_i:第i部门能耗 E_total:总能耗 r_i:第i部门耗能占比 f_i:第i部门碳排放因子

代码:

# 导入库
import pandas as pd
from scipy.optimize import curve_fit
 
# 人口预测
p_data = df[['年份','人口']]
 
# 线性回归
def linear(x, a, b):
    return a + b*x
 
pars, cov = curve_fit(linear, p_data['年份'], p_data['人口'])
a, b = pars
predict_p = [linear(x, a, b) for x in range(2025,2061)]
 
# Logistic回归
def logistic(x, p_m, k, t):#见完整版

问题三
区域双碳(碳达峰与碳中和)目标与路径规划方法

构建多情景框架
设置无干预情景、碳中和情景等多种发展情景。确定各情景的经济增长、能效提升、非化石能源比例等参数。

2.碳排放预测模型

CO2 = Σ(Ei * fi)

Ei = Etotal * ri

其中Ei表示部门i能耗,fi表示对应碳排放因子,ri表示耗能占比。

3.部门能耗确定

工业:Ei = VAi * (1-η1) * η2

建筑:Ei = VAi * (1-η1) * η2

VAi表示部门增加值,η1表示管理节能率,η2表示技术节能率。

4.非化石能源置换

调整碳排放因子fi,设置不同替代情景。

5.GDP约束

∑VAi = GDP

增加值之和约束为GDP总量。

6.情景对比

比较不同情景下的碳排放量、非化石能源比例等结果

详细来说,

构建多情景框架
可以设置3-5种情景,如基准情景、进取情景、保守情景等
确定每个情景的核心参数:经济增速、能效提升目标、非化石能源替代目标
收集相关国内外研究报告,综合判断参数的合理取值范围
2.碳排放预测模型

排放量由各部门的能耗及排放因子决定
部门能耗取决于总量分配和结构优化
排放因子通过提升非化石替代来降低
3.部门能耗确定

考虑管理节能、技术进步来推动能效提升
收集行业案例研究,判断节能潜力空间
4.非化石能源置换

不同情景可以设置不同的替代目标
替代路径可以通过电力置换、氢能应用、生物质利用等途径实现
5.GDP约束

部门增加值之和等于GDP总量
需要平衡部门发展速度,实现经济平稳增长
6.情景对比

比较碳排放量、非化石能源比例差异
分析不同情景的可行性和政策含义
提出相关决策建议

# 导入库
import pandas as pd
from scipy.optimize import curve_fit
 
# 人口预测
p_data = df[['年份','人口']]
 
# 线性回归
def linear(x, a, b):
    return a + b*x
 
pars, cov = curve_fit(linear, p_data['年份'], p_data['人口'])
a, b = pars
predict_p = [linear(x, a, b) for x in range(2025,2061)]
 
# Logistic回归
def logistic(x, p_m, k, t):#见完整版

更多完整版见我的回答~

(5 封私信 / 2 条消息) 如何评价2023数学建模研赛? - 知乎 (zhihu.com)

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

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

相关文章

vuereact质检工具(eslint)安装使用总结

1、ESLint ESLint工具主要类似java中的checkStyle和findbugs,是检查代码样式和逻辑规范的工具。 1.1、ESLint安装流程 打开VSCode软件,打开扩展中心,下载ESLint插件 图1.1 点击后面的install按进行安装,如图1.2所示&#xff1…

MySQL(8) 优化、MySQL8、常用命令

一、MySQL优化 从上图可以看出SQL及索引的优化效果是最好的,而且成本最低,所以工作中我们要在这块花更多时间。 服务端参数配置; max_connections3000 连接的创建和销毁都需要系统资源,比如内存、文件句柄,业务说的支持…

代码随想录算法训练营第四十二天| 01背包问题,你该了解这些! 01背包问题,你该了解这些! 滚动数组 416. 分割等和子集

正式开始背包问题,背包问题还是挺难的,虽然大家可能看了很多背包问题模板代码,感觉挺简单,但基本理解的都不够深入。 如果是直接从来没听过背包问题,可以先看文字讲解慢慢了解 这是干什么的。 如果做过背包类问题&…

网络安全深入学习第七课——热门框架漏洞(RCE— Fastjson反序列化漏洞)

文章目录 一、什么是json?二、Fastjson介绍三、Fastjson-历史漏洞四、Fastjson特征1、在请求包里面有json格式的2、报错信息中会显示fastjson字眼 五、Fastjson序列化和反序列化六、Fastjson反序列化漏洞原理七、Fastjson反序列化漏洞过程八、Fastjson反序列化漏洞&#xff08…

农林种植类VR虚拟仿真实验教学整体解决方案

传统的葡萄嫁接需要在固定月份,实操成本高,管理周期长,葡萄嫁接VR虚拟仿真实训是VR虚拟仿真公司深圳华锐视点通过在虚拟环境中模拟葡萄嫁接过程,融入教学和实训考核多种模式,打造了全新的职业技能培训方式。 葡萄嫁接V…

【Java实战项目】【超详细过程】—— 大饼的图片服务器6

目录 前言一、引入MD51.引入md5计算依赖2.按照md5值查找图片属性3.存储图片4.删除图片 二、防盗链三、分类查看图片1.思路:2.数据库3.Image4.from表单5.ImageDao类中原有方法6.按照类型sort在数据库中查找图片属性7.ImageServlet 类8.ImageSortServlet类9.WEB.xml绑…

DevExpress WinForms图表组件 - 直观的数据信息呈现新方式!(一)

凭借界面控件DevExpress WinForms全面的2D和3D图表类型的集合,DevExpress WinForms的图表控件设计大大简化了开发者直观地向最终用户呈现信息的方式。 DevExpress WinForms有180组件和UI库,能为Windows Forms平台创建具有影响力的业务解决方案。同时能完…

[python 刷题] 739 Daily Temperatures

[python 刷题] 739 Daily Temperatures 题目: Given an array of integers temperatures represents the daily temperatures, return an array answer such that answer[i] is the number of days you have to wait after the ith day to get a warmer temperatur…

记一次实战案例

1、目标:inurl:news.php?id URL:https://www.lghk.com/news.php?id5 网站标题:趋时珠宝首饰有限公司 手工基础判断: And用法 and 11: 这个条件始终是为真的, 也就是说, 存在SQL注入的话, 这个and 11的返回结果必定是和正常页…

修改vscode底部栏背景和字体颜色

修改vscode底部栏背景和字体颜色 如图: 首先打开齿轮,打开设置搜索workbench.colorCustomizations,然后点击编辑setting.json修改setting.json内内容 "workbench.colorCustomizations": {"statusBar.foreground": "#FFFFFF…

为什么u盘在mac上显示不出来

插入U盘是个看似简单的操作,但有时候在Mac电脑上却出现了无法显示U盘的情况。这样的问题是非常让人头疼的,特别是当你急需使用U盘中的文件时。那么,究竟为什么U盘在Mac上会显示不出来呢?今天就让我们一起来深入了解一下这个问题&a…

OR54 字符串中找出连续最长的数字串

目录 一、题目 二、解答 (一)问题一:在记录完一组连续字符串后,没有注意判别紧随其后的非数字字符 (二)问题二:越界访问 (三)正确 一、题目 字符串中找出连续最长的…

powerDesigner 的基本使用

打开powerDesigner 新建 PDM(物理数据模型) 添加表字段 双击表,设置ID自增 选择导出数据库表SQL 导出成功 使用三方工具连接数据库,然后运行对应SQL文件即可 导入SQL文件数据到powerDesigner

Ae 效果:CC Tiler

扭曲/CC Tiler Distort/CC Tiler CC Tiler (CC 平铺器)主要用于将图像以平铺的方式重复显示,可以创建有趣的复制和平铺的视觉效果。 平铺的范围限制在图层大小。如果想在合成大小内进行平铺,最简单的方法是先将源图像(…

【数据结构】逻辑结构与物理结构

🦄个人主页:修修修也 🎏所属专栏:数据结构 ⚙️操作环境:Visual Studio 2022 根据视点的不同,我们把数据结构分为逻辑结构和物理结构. 🌳逻辑结构 逻辑结构:是指数据对象中数据元素之间的相互关系. 逻辑结构分为以下四种: 1.集合结构 集合结…

计算机中实数的比较

计算机中实数的比较 最近被问到了实数与0为什么不能直接比较的问题,要想说清楚还真不容易。 这里从浮点数的表示、内存存储角度加以总结。 科学计数法 科学计数法表示十进制数的浮点数遵循了小数点前面只有一个数(1~9)的规则。 例如&…

python+nodejs+php+springboot+vue 法律知识分享科普系统平台

在设计过程中,充分保证了系统代码的良好可读性、实用性、易扩展性、通用性、便于后期维护、操作方便以及页面简洁等特点。 随着社会的发展,社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 要想实现法律知…

93 # 实现 express 错误处理中间件

上一节实现了 express 的中间件,这一节来实现错误处理中间件 执行某一步出错了,统一规定调用 next 传递的参数就是错误信息 先看 express 实现的demo const express require("express"); const app express();app.use("/", (re…

2023-09-23 Windows系统rust开发环境配置真经

Windows系统rust开发环境配置真经 前言一、配置C编译链和VsCode二、安装rust编译工具三、配置VsCode一. 安装rust-analyzer插件二. 安装Error Lens插件三. 安装Even Better TOML插件四. 配置 launch.json五. 配置 tasks.json六. 配置 Cargo.toml 总结 前言 有了配置C语言环境的…

腾讯mini项目-【指标监控服务重构】2023-08-27

今日已办 Docker Monitoring with cAdvisor, Prometheus and Grafana Docker Monitoring with cAdvisor, Prometheus and Grafana | by Mertcan Simsek | MediumMonitoring Docker container metrics using cAdvisor | Prometheus prometheus.yml global:scrape_interval: …