当前位置: 首页 > news >正文

2015年五一杯数学建模B题空气污染问题研究解题全过程文档及程序

2015年五一杯数学建模

B题 空气污染问题研究

原题再现

  近十年来,我国 GDP 持续快速增长,但经济增长模式相对传统落后,对生态平衡和自然环境造成一定的破坏,空气污染的弊病日益突出,特别是日益加重的雾霾天气已经干扰到社会的出行秩序和生活质量。国家能源委员会《新能源产业振兴和发展规划》等“国家新能源发展战略”政策的出台,说明国家已经把能源环境问题上升到国家安全级别,经济发展转型、节能减排、能源利用新途径和发展新能源等方面的问题亟待解决。一般认为影响空气质量的主要因素有 PM2.5、PM10、二氧化氮、二氧化硫、一氧化碳、臭氧、硫化氢、碳氢化合物和烟尘等,以京津冀地区为研究对象解决以下问题:
  (1)参考现有国标和美标,建立衡量空气质量优劣程度等级的数学模型。
  (2)查找数据并列出京津冀地区主要污染源及其污染参数,分析影响空气质量的主要污染源的性质和种类。
  (3)建立单污染源空气污染扩散模型,描述其对周围空气污染的动态影响规律。现有河北境内某一工厂废气排放烟囱高 50m,主要排放物为氮氧化物。早上 9 点至下午3 点期间的排放浓度为 406.92mg/m3,排放速度为 1200m3/h;晚上 10 点-凌晨 4 点期间的排放浓度为 1160mg/m3,排放速度为 5700m3/h;通过你的扩散模型求解该工厂方圆 51公里分别在早上 8 点、中午 12 点、晚上 9 点空气污染浓度分布和空气质量等级。
  (4)建立多污染源空气污染扩散模型,并以汽车尾气污染源为例求解分析以下问题:北京在 2015 年 1 月 15 日已经连续三天发生重污染,假设从 16 日开始北京启动汽车单双号限行交通管制措施,求解北京市二环、四环、六环路在 16 日早上 8 点、中午12 点、晚上 9 点时空气污染浓度梯度变化及空气质量等级。
  (5)根据你们的模型和求解结果,分析总结影响空气质量的关键参数,为京津冀地区环保部门撰写一份建议报告,给出实现“APEC”蓝天的可行性措施和建议。

整体求解过程概述(摘要)

  针对问题一:首先,通过查阅国标和美标的建立和计算方式分析其空气质量指数公式的优缺点;其次,利用层次分析法求出各个污染项目的权重从而建立衡量空气质量优劣程度等级的数学模型。
  针对问题二:首先,经过查找数据后分析数据与污染源之间的关系。采取自下而上方法(即按测数据反演法)编制相关的数据表从而可以更直观的反映京津冀地区主要污染源。其次,通过层次分析和因子分析相结合的方法,取污染物中具有代表性的 SO2、 NOx、PM2.5 、PM10 和扬尘等五种主要污染项目对空气质量的影响进行研究,利用变权函数对京津冀地区的各种污染物数据进行“动态加权”得到综合污染指标,对综合污染指标进行排序和分类,从而得到影响空气质量的主要污染源的性质和种类。
  针对问题三:首先,确定出单污染源且只考虑污染物质为氨氧化物情况下,由于高斯烟羽模型具有假定风速风向都不变的局限性,实际情况需要考虑风力、风向、降雨量等情况,由此建立修正高斯烟羽模型;其次,利用高斯模型的修正模型,求解出一定范围内的空气污染扩散分布;最后,当污染源停止排放时,利用相关性,对已排放污染气体在一定空间范围内的分布情况作出大致分析,求解出距离污染源一定范围内不同位置的不同时间段的空气污染浓度分布和空气质量等级。
  针对问题四:首先,利用问题三中的单排放源气体扩散模型,由于不同时间段的排放量不同,可以求解出相同位置不同时间段的空气污染浓度;其次,由于不同的位置排放量不同,可以求解出同一时间内不同位置的空气污染浓度;最后,将两者进行综合分析,利用已有数据,通过灰色预测模型可以解出北京市二环、四环、六环路不同时间段空气污染浓度梯度变化。
  针对问题五:根据建立的模型和求解结果,分析出影响空气质量的关键参数,由于地区的实际情况不尽相同,可就整个京津冀地区和各省市各自的治理分别给出了可行性措施和建议。

模型假设:

  1.污染物的浓度在y、 z 轴上的分布是高斯分布(正态分布)的;
  2.污染源的源强是连续且均匀的;
  3.气体污染物是理想气体,遵守理想气体方程;
  4.取 x 轴为平均风速方向,整个扩散过程中风的方向、大小不随时间地点的改变而改变;
  5.北京市某一天内风向大小不变且没有降雨量;
  6.将每环等分成四份,假设每份上的所有汽车排放总量大致相同;
  7.将每环等分成四份,假设每份上的车流量大致相同。

问题分析:

  问题一的分析:
  问题一要求参考现有的国标和美标,建立能够衡量空气质量优劣程度等级的数学模型。首先我们要分析国标和美标的建立方式和其空气质量指数公式的优缺点并根据国标公式确定空气质量指数;其次,通过计算结果可以看出只有空气质量分数的最大值对最终结果有影响,这样的计算方法对数据的利用率比较低,为了能充分利用所得数据并且大致确定各个污染项目对空气质量的影响程度;最后,利用层次分析法建立模型求出各个污染项目的权重从而建立衡量空气质量优劣程度等级的数学模型。
  问题二的分析:
  问题二的第一小问,要求我们查找数据并列出京津冀地区主要污染源及其污染参数。通过大量查找数据后分析数据与污染源之间的关系。采取自下而上方法(即按测数据反演法)编制的相关的数据表从而可以更直观的反映京津冀地区主要污染源。关于第二小问,我们只考虑 2 SO 、NOx、PM2.5 、PM10和扬尘等五种污染物对环境的综合影响。由于人类对空气中污染物浓度的敏感程度符合 S 形曲线,因此,构造 S 形变权函数。利用该变权函数对各监测点的各种污染物浓度进行“动态加权”得到综合污染指标,再利用综合污染指标进行排序和分类,从而得到影响空气质量的主要污染源的性质和种类。
  问题三的分析:
  本题主要考虑的问题有:(1)单污染源中含有多种污染物质,且每一项污染源中每种污染物的含量在总污染中的比重有很大的差异;(2)每一项污染源的排放浓度和排放速度对空气污染有直接的关系;(3)每一项排放污染源的排放时间也有一定的差异,这对各个时间段空气中的污染含量有很大的影响;(4)空气污染扩散与多种因素有关,我们主要考虑每个地区的的地形、风向、风速和降雨量等因素。现有河北境内某一工厂废气排放,以工厂废气排放为单污染源,且以氮氧化物为主要污染物质。本题通过对各个时间段的排放量的不同可以求解该工厂方圆51公里分别在早上8点、中午12点、晚上9点空气污染浓度分布,并进行空气质量等级划分。
  问题四的分析:
  上述我们已经建立了单污染源空气污染扩散模型,在此基础之上,我们利用多元分析建立多污染源空气扩散模型。以汽车尾气为污染源,每辆汽车可以看成一个污染源。假设每辆汽车的源强一样,且当地的风向、大小保持不变。由于每天有上下班高峰期,空气污染浓度会有很大的变化,且在不同的位置如北京市的二环、三环、六环空气污染浓度也不一样。我们可以在空气污染扩散模型的基础上具体分析,从而解决在不同的时间点不同的位置空气污染浓度梯度变化及空气质量等级。
  问题五的分析:
  问题五要求根据已建立的模型和求解出的结果,分析总结影响空气质量的关键参数,由问题二、三可得出京津冀地区的主要污染源和各主要污染物的性质、种类,由于各地污染构成的不同且北京地区的技术水平要比京津冀地区的平均水平先进一些,因此我们就整个京津冀地区和各省市的治理分别给出了可行性措施和建议。

模型的建立与求解整体论文缩略图

在这里插入图片描述
在这里插入图片描述

全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

程序代码:(代码和文档not free)

clear all;
[x,y]=meshgrid(0:20:5000,-2000:20:2000); %设定网格
Q=406.92; %NOx 的源强
sigy=0.08*x.*(1+0.0001*x).^(-0.5);%y 方向烟气扩散系数
sigz=0.06*x.*(1+0.0015*x).^(0.5);%z 方向烟气扩散系数
H=[ 130.5362776 132.7538462 119.9039121 120.3678051
120.4165713 120.8539326 126.8520578 132.2781406];%泄漏源有效高度
u=1./[ 2.137078652 2.047244094 2.706501548 2.675399361
2.672171254 2.643564356 2.305128205 2.065873016];%各个方向的速度
f=[ 0.033536585 0.042682927 0.079268293 0.384146341
0.240853659 0.082317073 0.067073171 0.070121951];%风频
s=size(u);%计算 u 的元素个数,以便设置循环次数
for i=1:s(2)
Qpi=Q./(pi*u(i)*sigy.*sigz+eps);%计算公式第一部分
ex1=exp(-0.5*(y./(sigy+eps)).^2);%计算公式第二部分
ex2=exp(-0.5*(H(i)./(sigz+eps)).^2);%计算公式第三部分
X1(:,:,i)=Qpi.*ex1.*ex2*f(i);%计算扩散气体浓度高维数组
end
X=X1;
for j=2:s(2)
X(:,:,j)=X(:,:,(j-1))+X(:,:,j);%计算扩散气体浓度高维数组各二
维数组之和
end
X2=1000000*X(:,:,s(2));%计算求和后最终扩散气体浓度
mesh(x,y,X2);
xlabel('x 轴向距离(m)'),ylabel('y 轴向距离(m)'),zlabel('气体扩散
浓度'),
title('基于高斯烟羽模拟垃圾焚烧炉浓度分布图');
全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

相关文章:

2015年五一杯数学建模B题空气污染问题研究解题全过程文档及程序

2015年五一杯数学建模 B题 空气污染问题研究 原题再现 近十年来,我国 GDP 持续快速增长,但经济增长模式相对传统落后,对生态平衡和自然环境造成一定的破坏,空气污染的弊病日益突出,特别是日益加重的雾霾天气已经干扰…...

java面试题,上楼梯有多少种方式

java面试题,上楼梯有多少种方式 题目:一个小孩上一个N级台阶的楼梯,他可以一次走1阶、2阶或3阶,那么走完N阶有多少种方式。 很自然的想法是使用递归: public class Test04 { public static int countWays(int n) {…...

8.HTTP工作原理

HTTP是什么 HTTP工作原理 HTTP协议的请求类型和响应状态码 总结 1.HTTP是什么 HTTP超文本传输协议就是在一个网络中上传下载文件的一套规则 2.HTTP工作原理 HTTP超文本传输协议的本质是TCP通信,链接—>请求—>响应—>断开 3.HTTP协议的请求类型和响应状…...

环境部署的学习笔记(Docker)

1 前言 在现场测试时,常常需要在现场机器上搭建开发环境,此时使用容器会是一个比较方便的途径; 2 常见的容器技术 2.1 Docker⭐️31k:目前使用最为广泛的容器技术 2.2 Nix⭐️13.8k:镜像文件占用会比Docker少 Chat…...

Navicat在分辨率不同的屏幕窗口显示大小不一致问题解决

1.主屏幕为2560*1600分辨率,能够显示较多数据连接 2.在第二屏幕分辨率低,字体变大,显示内容变少 解决办法: 1.右击navicat图标-属性 2.选择【兼容性】-在兼容性页面中选择**“更改高DPI设置”** 3…勾选“高DPI缩放替代”&a…...

通过代码搞明白JAVA中值传递和引用传递

public static void main(String[] args) {Map a new HashMap();a.put("a", 1);System.out.println(a "我在main中的值");aaa(a);System.out.println(a "我在main中的值");bbb(a);System.out.println(a "我在main中的值");int b …...

ambari 开启hdfs回收站机制

hdfs回收站类似于我们常用的windows中的回收站,被删除的文件会被暂时存储于此,和回收站相关的参数有两个: fs.trash.interval:默认值为0 代表禁用回收站,其他值为回收站保存文件时间,单位为分钟 fs.trash…...

服务器数据恢复—服务器重装系统导致逻辑卷发生改变的数据恢复案例

服务器数据恢复环境: 某品牌linux操作系统服务器,服务器中有4块SAS接口硬盘组建一组raid5阵列。服务器中存放的数据有数据库、办公文档、代码文件等。 服务器故障&检测: 服务器在运行过程中突然瘫痪,管理员对服务器进行了重装…...

软件工程之架构设计

从公众号转载,关注微信公众号掌握更多技术动态 --------------------------------------------------------------- 一、架构设计的目的 1.什么是复杂的软件项目 复杂的软件项目通常有两个特点: 需求不确定 技术复杂 技术的复杂性主要体现在四个方面…...

oracle java.sql.SQLException: Invalid column type: 1111

1.遇到的问题 org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.type.TypeException: Could not set parameters for mapping: ParameterMapping{propertyuuid, modeIN, javaTypeclass java.lang.String, jdbcTypenull, numericScalenull, r…...

Mac 浏览器下载的文件名总是「乱码」

如果可以实现记得点赞分享,谢谢老铁~ 本文所说的方法是在出现文件名乱码情况下,如何恢复文件名的正确中文名称,并非一劳永逸地避免乱码的出现。这是由于下载文件名称乱码的出现,往往是系统、浏览器、网站三方面因素共…...

Redis Reactor事件驱动模型源码

前置学习:Redis server启动源码-CSDN博客 1、Redis服务器启动的时候就会就一直在轮询。 // 运行事件处理器,一直到服务器关闭为止 aeSetBeforeSleepProc(server.el,beforeSleep); aeMain(server.el);// 服务器关闭,停止事件循环 aeDeleteEven…...

cv2.error: OpenCV(4.7.0)

运行hsv脚本报错: cv2.error: OpenCV(4.7.0) D:\a\opencv-python\opencv-python\opencv\modules\imgproc\src\color.cpp:182: error: (-215:Assertion failed) !_src.empty() in function cv::cvtColor 解决方案: 这个错误信息是在使用OpenCV的cvtColor函…...

10.vue3项目(十):spu管理页面的sku的新增和修改

目录 一、sku静态页面的搭建 1.思路分析 2.代码实现 3.效果展示...

Java LeetCode篇-深入了解二叉树经典解法(三种方式实现:获取二叉树的最大深度)

🔥博客主页: 【小扳_-CSDN博客】 ❤感谢大家点赞👍收藏⭐评论✍ 文章目录 1.0 对称二叉树 1.1 判断对称二叉树实现思路 1.2 代码实现:判断对称二叉树 2.0 二叉树的最大深度 2.1 使用递归实现获取二叉树的最大深度思路 2.2 代码实…...

Image Segmentation Using Deep Learning: A Survey

论文标题:Image Segmentation Using Deep Learning:A Survey作者:发表日期:阅读日期 :研究背景:scene understanding,medical image analysis, robotic perception, video surveillance, augmented reality, and image…...

可视化开源编辑器Swagger Editor本地部署并实现远程访问管理编辑文档

最近,我发现了一个超级强大的人工智能学习网站。它以通俗易懂的方式呈现复杂的概念,而且内容风趣幽默。我觉得它对大家可能会有所帮助,所以我在此分享。点击这里跳转到网站。 文章目录 Swagger Editor本地接口文档公网远程访问1. 部署Swagge…...

Java TCP协议实现一对一聊天与UDP协议实现群聊案例

JavaTCP协议实现一对一聊天与UDP协议实现群聊案例 1.TCP协议实现一对一聊天 1.1服务端运行结果 1.2客服端运行结果 1.3代码汇总 服务端 package twentyone;import java.io.IOException; import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.…...

【从0配置JAVA项目相关环境1】jdk + VSCode运行java + mysql + Navicat + 数据库本地化 + 启动java项目

从0配置JAVA项目相关环境 写在最前面一、安装Java的jdk环境1. 下载jdk2. 配置jdk3. 配置环境变量 二、在vscode中配置java运行环境1. 下载VSCode2. 下载并运行「Java Extension Pack」 三、安装mysql1.官网下载MySQL2.开始安装如果没有跳过安装成功 3.配置MySQL Server4.环境变…...

人工智能_机器学习053_支持向量机SVM目标函数推导_SVM条件_公式推导过程---人工智能工作笔记0093

然后我们再来看一下支持向量机SVM的公式推导情况 来看一下支持向量机是如何把现实问题转换成数学问题的. 首先我们来看这里的方程比如说,中间的黑线我们叫做l2 那么上边界线我们叫l1 下边界线叫做l3 如果我们假设l2的方程是上面这个方程WT.x+b = 0 那么这里 我们只要确定w和…...

后进先出(LIFO)详解

LIFO 是 Last In, First Out 的缩写,中文译为后进先出。这是一种数据结构的工作原则,类似于一摞盘子或一叠书本: 最后放进去的元素最先出来 -想象往筒状容器里放盘子: (1)你放进的最后一个盘子&#xff08…...

浅谈 React Hooks

React Hooks 是 React 16.8 引入的一组 API,用于在函数组件中使用 state 和其他 React 特性(例如生命周期方法、context 等)。Hooks 通过简洁的函数接口,解决了状态与 UI 的高度解耦,通过函数式编程范式实现更灵活 Rea…...

【Java学习笔记】Arrays类

Arrays 类 1. 导入包:import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序(自然排序和定制排序)Arrays.binarySearch()通过二分搜索法进行查找(前提:数组是…...

AtCoder 第409​场初级竞赛 A~E题解

A Conflict 【题目链接】 原题链接:A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串,只有在同时为 o 时输出 Yes 并结束程序,否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...

React19源码系列之 事件插件系统

事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...

在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用

1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...

什么是Ansible Jinja2

理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具,可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板,允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板,并通…...

HashMap中的put方法执行流程(流程图)

1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中,其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下: 初始判断与哈希计算: 首先,putVal 方法会检查当前的 table(也就…...

基于 TAPD 进行项目管理

起因 自己写了个小工具,仓库用的Github。之前在用markdown进行需求管理,现在随着功能的增加,感觉有点难以管理了,所以用TAPD这个工具进行需求、Bug管理。 操作流程 注册 TAPD,需要提供一个企业名新建一个项目&#…...

LINUX 69 FTP 客服管理系统 man 5 /etc/vsftpd/vsftpd.conf

FTP 客服管理系统 实现kefu123登录,不允许匿名访问,kefu只能访问/data/kefu目录,不能查看其他目录 创建账号密码 useradd kefu echo 123|passwd -stdin kefu [rootcode caozx26420]# echo 123|passwd --stdin kefu 更改用户 kefu 的密码…...