2011年国赛高教杯数学建模A题城市表层土壤重金属污染分析解题全过程文档及程序

2011年国赛高教杯数学建模

A题 城市表层土壤重金属污染分析

  随着城市经济的快速发展和城市人口的不断增加,人类活动对城市环境质量的影响日显突出。对城市土壤地质环境异常的查证,以及如何应用查证获得的海量数据资料开展城市环境质量评价,研究人类活动影响下城市地质环境的演变模式,日益成为人们关注的焦点。
  按照功能划分,城区一般可分为生活区、工业区、山区、主干道路区及公园绿地区等,分别记为1类区、2类区、……、5类区,不同的区域环境受人类活动影响的程度不同。
  现对某城市城区土壤地质环境进行调查。为此,将所考察的城区划分为间距1公里左右的网格子区域,按照每平方公里1个采样点对表层土(0~10 厘米深度)进行取样、编号,并用GPS记录采样点的位置。应用专门仪器测试分析,获得了每个样本所含的多种化学元素的浓度数据。另一方面,按照2公里的间距在那些远离人群及工业活动的自然区取样,将其作为该城区表层土壤中元素的背景值。
  附件1列出了采样点的位置、海拔高度及其所属功能区等信息,附件2列出了8种主要重金属元素在采样点处的浓度,附件3列出了8种主要重金属元素的背景值。
  现要求你们通过数学建模来完成以下任务:
  (1) 给出8种主要重金属元素在该城区的空间分布,并分析该城区内不同区域重金属的污染程度。
  (2) 通过数据分析,说明重金属污染的主要原因。
  (3) 分析重金属污染物的传播特征,由此建立模型,确定污染源的位置。
  (4) 分析你所建立模型的优缺点,为更好地研究城市地质环境的演变模式,还应收集什么信息?有了这些信息,如何建立模型解决问题?

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

  本文通过对附件中所给海量数据进行处理分析,找出主要污染原因及污染物传播特性,进而来研究人类活动影响下城市地质环境的变化模式,对地质环境的保护起到积极作用。
  对于问题一,先用matlab软件对数据插值拟合,作出各元素在该城区的空间分布图。从图中可直接地观察各元素对不同地点的污染程度,再将附表中所给数据标准化。本文采用目前学术界应用最普遍的单因子浸染指数法和内梅罗综合浸染数法对不同功能区进行逐一分析。得出各个区域重金属污染程度,其中生活区、工业区与主干道路区-重度污染、山区-轻度污染、公园绿地区-中度污染,且它们之间综合污染指数排序为工业区>主干道路区>生活区>公园绿地区>山区。
  对于问题二,根据问题一中计算出的单因子浸染指数,并作出各功能区不同元素的单因子浸染指数柱状图。通过比较分析发现,某些元素在各功能区单因子指数相近(如As、Ni、Cr),说明同种元素在整个城区的污染原因相同。通过matlab软件分别算出在整个城区和各功能区各元素之间的相关度,可以看出有些元素呈现一定相关性,若相关显著可知其间污染原因可能相同。为了进一步明确不同功能区土壤中重金属的污染来源,再以公园绿地区为例利用主成分分析方法,得出公园绿地区八个变量的全部信息可由四个主成分表示,并分析污染物的来源。根据上述模型进行分析,可知As的主要污染原因为:在某些有色金属的开发和冶炼中,砷化物的广泛利用,煤的燃烧。Ni和Cr相关度较高,主要污染原因有:地球化学成因影响;整个城区的多种人为活动产生的综合污染。除这些元素外,再对其他元素的污染进行分区考虑,根据其它元素之间的相关度可知:生活区Cu、Cd、Pb主要污染原因为生活废弃物;Hg、Zn和其他元素均不相关,说明其主要污染原因是重金属的运移。工业区污染原因主要为工业生产污染。山区轻度污染,主要原因为重金属的运移。主干道路区污染比较复杂,其主要污染原因为交通运输、道路建设、人为活动、金属运移等。公园绿地区处于中度污染,主要污染原因为人类活动和重金属的运移。
  对于问题三,综合考虑对流、弥散、扩散吸附和微生物降解等作用, 根据质量守恒原理, 建立了污染物在饱和及非饱和土壤中运移的对流扩散数学模型:
a_1 (∂^2 C)/(∂x^2 )+a_2 (∂^2 C)/(∂y^2 )+a_3 (∂^2 C)/(∂z^2 )+a_4 ∂C/∂x+a_5 ∂C/∂y+a_6 ∂C/∂z+a_7 x+a_8 y+a_9 z+a_10+a_11 C=∂C/∂t根据附表数据拟合出扩散系数a_i(i =1…10),再利用初始浓度及长时间的稳定态作为初值条件构成微分方程的定解问题,最后采用数值模拟方法预测污染物的迁移过程、迁移范围及浓度分布特征。并由此来分析污染物的传播特征并确定污染源的位置(见表5),结合问题二中的主成分分析的结果,确定最终污染源有7个。
  对问题四,问题三模型建立后,发现如果能够收集到城市详细的卫星图、城市历史地质资料、同一位置不同时间的重金属浓度、城市土壤更多的测定值等信息,能够更好的建立污染物迁移速度的演变模式。可以建立通过聚类分析法、人工神经网络的SOFM网络得出城市不同时期的综合评价结果,从而分析出城市地质环境的演变模式。

模型假设:

  1、假设附件所给数据准确无误;
  2、假设污染源排放污染物稳定、连续;
  3、假设污染物在自然环境下自由传播;
  4、假设污染物在传播过程中质量守恒;
  5、假设污染物传播只与空间有关,与时间无关;

问题分析:

  本题主要是研究表层土壤重金属污染的问题,主要目的是通过对附表中所给八种主要重金属的采样数据进行分析,从而得到这八种元素的空间分布,并确定各功能区的污染程度;再根据数据分析,先找出各金属间的相关度,确定其是否来自同一污染源,再根据相关分类标准,找出重金属污染的主要原因;然后根据数据建立适当函数,找出污染物传播特征,并建立适当模型,最终确定污染源的物质。

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

在这里插入图片描述

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

部分程序代码:

%syms x1 x2 x3 x4 x5 x6 x7 x8 x9 x10
a=[-0.000109287652109 	0.000635260069389 	0.516315789473684 	0.025660770031218 	-0.021669595782074 	12.330000000000000 	8017	7210	39	1
-0.000757120898578 	-0.000024470387428 	-0.666666666666666 	-0.189154518950437 	-1.158571428571430 	-16.220000000000000 	4948	7293	6	1
-0.000096945211774 	0.000090358584587 	-0.015898771367521 	-0.015780845556514 	-0.056978193146417 	-0.351730769230769 	13855	3345	79	1
-0.000457307232306 	0.004842383083857 	1.479861111111110 	-0.072228260869565 	-0.055145228215768 	-53.160000000000000 	2383	3692	7	1
-0.000308833734969 	0.000211980435812 	4.667500000000000 	0.193295454545455 	-0.060533807829182 	-25.530000000000000 	8622	10638	4	1
0.000062607723798 	-0.000109998421723 	0.889880952380952 	0.008987435328899 	-0.012854122621565 	1.737142857142860 	12153	12336	16	1
-0.000052640377967 	0.000012890933239 	-0.008995925263367 	0.000516320474777 	-0.001855010660981 	0.008055555555556 	26015	12078	57	1
-0.005422959353530 	0.000760551532441 	5.000000000000010 	-1.230736842105260 	0.628602150537634 	116.920000000000000 	4777	4897	8	1
0.002510316980250 	0.038800479841974 	0.472566280566281 	-0.054024691358025 	-0.158550724637681 	-1.182702702702700 	3518	2571	59	1
0.000042033121506 	-0.000011309266827 	0.046103040086091 	-0.059379157427938 	0.024301270417423 	-0.425079365079365 	18413	11721	88	1
]; 
%X=[x1,x2,x3,x4,x5,x6,x7,x8,x9,x10]';
b=[124.24 
130.36 
54.98 
381.64 
94.93 
53.42 
28.30 
472.48 
128.60 
38.47 
];
X=a\b
function readdata() 
data=xlsread('data','sheet1','B4:E322'); 
save data data  %坐标信息 
data1=xlsread('data','sheet2','B4:I322'); 
save data1 data1 %浓度信息 
beij=xlsread('data','sheet3','B4:C11'); 
save beij beij %背景信息 
%************************************************ 
%程序功能:画Cu污染分布等值线图 
%建立日期:2011/9/9 
%程序员:Hec1990 
%************************************************ 
function drawcu() 
clc,clear 
load data 
load data1 
Cu=data1(:,4); 
X=data(:,1); 
Y=data(:,2); 
Cu_XY=[X Y Cu]; 
[x y]=meshgrid(0:100:3e4,0:100:2e4); 
z=griddata(Cu_XY(:,1),Cu_XY(:,2),Cu_XY(:,3),x,y,'v4'); 
mesh(x,y,z) 
%ezsurfc(z,x,y) 
figure 
[c h]=contour(x,y,z); 
clabel(c,h) 
hold on 
[c1 d1]=find(data(:,4)==1); 
x1=data(c1,1); 
y1=data(c1,2); 
plot(x1,y1,'r*'); 
[c2 d2]=find(data(:,4)==2); 
x2=data(c2,1); 
y2=data(c2,2); 
hold on 
plot(x2,y2,'k*') 
[c3 d3]=find(data(:,4)==3); 
x3=data(c3,1); 
y3=data(c3,2); 
plot(x3,y3,'c*') 
[c4 d4]=find(data(:,4)==4); 
x4=data(c4,1); 
y4=data(c4,2); 
plot(x4,y4,'y*') 
[c5 d5]=find(data(:,4)==5); 
x5=data(c5,1); 
y5=data(c5,2); 
plot(x5,y5,'g*') 
grid on 
legend('等值线','生活区','工业区','山区','交通区','绿地区');  
cu=reshape(z,301*201,1); 
a=reshape(x,301*201,1); 
b=reshape(y,301*201,1); 
save cu a b cu  %训练神经网络数据集 
save dist c1 c2 c3 c4 c5   %不同区域 
%************************************************ 
%************************************************ 
function comp() 
load data1 
load beij 
for i=1:8 
a(:,i)=(data1(:,i)-beij(i,1))/beij(i,2); 
end 
As=a(:,1);Cd=a(:,2);Cr=a(:,3);Cu=a(:,4);Hg=a(:,5);Ni=a(:,6);Pb=a(:,7);Zn=a(:,8)
 ;
 load dist 
As1=As(c1,1);Cd1=Cd(c1,1);Cr1=Cr(c1,1);Cu1=Cu(c1,1);Hg1=Hg(c1,1);Ni1=Ni(c1,1);P
 b1=Pb(c1,1);Zn1=Zn(c1,1); 
As2=As(c2,1);Cd2=Cd(c2,1);Cr2=Cr(c2,1);Cu2=Cu(c2,1);Hg2=Hg(c2,1);Ni2=Ni(c2,1);P
 b2=Pb(c2,1);Zn2=Zn(c2,1); 
As3=As(c3,1);Cd3=Cd(c3,1);Cr3=Cr(c3,1);Cu3=Cu(c3,1);Hg3=Hg(c3,1);Ni3=Ni(c3,1);P
 b3=Pb(c3,1);Zn3=Zn(c3,1); 
As4=As(c4,1);Cd4=Cd(c4,1);Cr4=Cr(c4,1);Cu4=Cu(c4,1);Hg4=Hg(c4,1);Ni4=Ni(c4,1);P
 b4=Pb(c4,1);Zn4=Zn(c4,1); 
As5=As(c5,1);Cd5=Cd(c5,1);Cr5=Cr(c5,1);Cu5=Cu(c5,1);Hg5=Hg(c5,1);Ni5=Ni(c5,1);P
 b5=Pb(c5,1);Zn5=Zn(c5,1); 
aa=[10 30 2 5 40 5 5 1]; 
w=[aa(1)/sum(aa) aa(2)/sum(aa) aa(3)/sum(aa) aa(4)/sum(aa) aa(5)/sum(aa) 
aa(6)/sum(aa) aa(7)/sum(aa) aa(8)/sum(aa)]; 
y1=[mean(As1) mean(Cd1) mean(Cr1) mean(Cu1) mean(Hg1) mean(Ni1) mean(Pb1) 
mean(Zn1)]; 
y2=[mean(As2) mean(Cd2) mean(Cr2) mean(Cu2) mean(Hg2) mean(Ni2) mean(Pb2) 
mean(Zn2)]; 
y3=[mean(As3) mean(Cd3) mean(Cr3) mean(Cu3) mean(Hg3) mean(Ni3) mean(Pb3) 
mean(Zn3)]; 
y4=[mean(As4) mean(Cd4) mean(Cr4) mean(Cu4) mean(Hg4) mean(Ni4) mean(Pb4) 
mean(Zn4)]; 
y5=[mean(As5) mean(Cd5) mean(Cr5) mean(Cu5) mean(Hg5) mean(Ni5) mean(Pb5) 
mean(Zn5)]; 
qu1=sum(w.*y1);qu2=sum(w.*y2);qu3=sum(w.*y3);qu4=sum(w.*y4);qu5=sum(w.*y5); 
全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

应用层协议 序列化

自定义应用层协议 例子:网络版本计算器 序列化反序列化 序列化:将消息,昵称,日期整合成消息-昵称-日期 反序列化:消息-昵称-日期->消息,昵称,日期 在序列化中,定义一个结构体…

【Pycharm默认解释器配置文件】怎样删除配置解释器的无效历史记录?

有时候我们希望删除无效的解释器路径&#xff0c;可以找到这个文件&#xff0c;进行删除修改。 C:\Users\你的用户名\AppData\Roaming\JetBrains\PyCharm2022.3\options\jdk.table.xml直接删除解释器名称对应的一整个<jdk version"2">节点即可&#xff01; …

2023年ICPC亚洲合肥赛区赛 C. Cyclic Substrings

题目 题解 #include<bits/stdc.h> using namespace std; // #define int long long #define ll long long const int maxn 6e6 5; const int mod 998244353; int fail[maxn];//fail[i]表示i结点代表的回文串的最大回文后缀的编号 int len[maxn]; //len[i]表示结点i代…

大模型涌现判定

什么是大模型&#xff1f; 大模型&#xff1a;是“规模足够大&#xff0c;训练足够充分&#xff0c;出现了涌现”的深度学习系统&#xff1b; 大模型技术的革命性&#xff1a;延申了人的器官的功能&#xff0c;带来了生产效率量级提升&#xff0c;展现了AGI的可行路径&#x…

UDP/TCP协议

网络层只负责将数据包送达至目标主机&#xff0c;并不负责将数据包上交给上层的哪一个应用程序&#xff0c;这是传输层需要干的事&#xff0c;传输层通过端口来区分不同的应用程序。传输层协议主要分为UDP&#xff08;用户数据报协议&#xff09;和TCP&#xff08;传输控制协议…

mongodb-7.0.14分片副本集超详细部署

mongodb介绍&#xff1a; 是最常用的nosql数据库&#xff0c;在数据库排名中已经上升到了前六。这篇文章介绍如何搭建高可用的mongodb&#xff08;分片副本&#xff09;集群。 环境准备 系统系统 BC 21.10 三台服务器&#xff1a;192.168.123.247/248/249 安装包&#xff1a…

Javaweb基础-vue

Vue.js Vue是一套用于构建用户界面的渐进式框架。 起步 引入vue <head><script src"static/js/vue2.6.12.min.js"></script> </head> 创建vue应用 <body> <div id"index"><p>{{message}}</p> </div>…

Java的walkFileTree方法用法【FileVisitor接口】

在Java旧版本中遍历文件系统只能通过File类通过递归来实现&#xff0c;但是这种方法不仅消耗资源大而且效率低。 NIO.2的Files工具类提供了两个静态工具方法walk()和walkFileTree()可用来高效并优雅地遍历文件系统。walkFileTree()功能更强&#xff0c;可自定义实现更多功能&am…

5.3章节python中字典:字典创建、元素访问、相关操作

1.字典的创建和删除 2.字典的访问和遍历 3.字典的相关操作 4.字典的生成式 一、字典的创建和删除 字典&#xff08;dictionary&#xff09;是一种用于存储键值对&#xff08;key-value pairs&#xff09;的数据结构。每个键&#xff08;key&#xff09;都映射到一个值&#xf…

基于FPGA的信号发生器verilog实现,可以输出方波,脉冲波,m序列以及正弦波,可调整输出信号频率

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 (完整程序运行后无水印) 输出方波 输出脉冲波 输出m随机序列 输出正弦波 2.算法运行软件版本 vivado2019.2 3.部分核心程序 &#xff08;完整…

顺序表算法题【不一样的解法!】

本章概述 算法题1算法题2算法题3彩蛋时刻&#xff01;&#xff01;&#xff01; 算法题1 力扣&#xff1a;移除元素 我们先来看这个题目的要求描述&#xff1a; 把与val相同数值的元素移除掉&#xff0c;忽略元素的相对位置变化&#xff0c;然后返回剩下与val值不同的元素个数…

OpenCV高级图形用户界面(10)创建一个新的窗口函数namedWindow()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 创建一个窗口。 函数 namedWindow 创建一个可以作为图像和跟踪条占位符的窗口。创建的窗口通过它们的名字来引用。 如果已经存在同名的窗口&am…

Docker搭建Cisco AnyConnect 教程

本章教程搭建一个Cisco AnyConnect 连接教程。 一、下载文件 因为是基于Docker方式进行搭建的,所以需要提前安装好Docker,本章不介绍如何安装Docker,可以自行百度解决。 通过网盘分享的文件:ocserv-docker 链接: https://pan.baidu.com/s/14-2p9jenqE0KWzMilVzV-A?pwd=4yd…

小O睡眠省电调研

摘要 AI 预测睡眠 断网 杀应用为主的策略 UI 睡眠识别 AI 识别 将亮灭屏、音频、上传下载、运动状态数据存到xml中&#xff0c;供预测分析 睡眠策略 OPPO 睡眠省电 1. sOSysNetControlManagerNewInstance&#xff1a;断网&#xff08;wifi\mobiledata&#xff09;2. S…

Windows系统部署redis自启动服务【亲测可用】

文章目录 引言I redis以本地服务运行(Windows service)使用MSI安装包配置文件,配置端口和密码II redis服务以终端命令启动缺点运行redis-server并指定端口和密码III 知识扩展确认redis-server可用性Installing the Service引言 服务器是Windows系统,所以使用Windows不是re…

【web】JDBC

项目连接数据库 右侧导航栏找到databsae 如果没有驱动&#xff0c;先下载驱动 填写数据库用户名密码 勾选对应的表即可 JDBC代码流程 1,配置信息 2,加载驱动 从MySQL Connector/J 5.1版本开始&#xff0c;推荐使用com.mysql.cj.jdbc.Driver这个新的驱动类。 3,链接数据库…

java集合(二)--set收尾+HashMap

文章目录 1.linkedhashset的介绍2.linkedhashset源码分析3.Map的基本介绍31.基本属性3.2map里面的集合以及内部数据类型 4.Map接口的常见方法5.map里面的遍历的方法5.1根据key直接遍历5.2直接拿到这个value值5.3使用这个entry遍历 6.hashmap扩容转化红黑树的模拟7.hashtable底层…

AJAX——POST 设置请求体参数

1、是在请求体 send 中来设置的 2、参数设置的形式可以以 url 设置参数的形式来设置 ① 用 &#xff1f;分隔 ② 添加参数的名字与参数值&#xff08;中间使用 &#xff09; ③ 有多个参数&#xff0c;各个参数之间用 & 分隔 3、实际上参数设置的内容可以是任意的&…

python爬虫加解密分析及实现

第一种&#xff1a; 1、找到加密的接口地址&#xff0c;通过加密的接口地址全局搜索 2、通过打断点的方式&#xff0c;操作页面&#xff0c;跑到断点处时&#xff0c;即可找到加密串&#xff0c;如图二&#xff1b; 3、找到用的是哪种加密方式&#xff0c;如&#xff1a; cr…

freertos的任务管理

任务函数 任务被实现为C函数。它们唯一特别的地方是它们的原型&#xff0c;它必须返回void并接受void指针参数。以下是函数原型。 void ATaskFunction( void *pvParameters );每个任务本身都是一个小程序。它有一个入口点&#xff0c;通常会在无限循环中永远运行&#xff0c;…