11年全国大学生数学建模A题相关代码:

这篇博客探讨了全国大学生数学建模竞赛A题,涉及城市表层土壤重金属污染的分析。博主通过数学建模展示了8种重金属元素的空间分布,分析了不同区域的污染程度,并尝试找出污染源。此外,还讨论了模型的优缺点,提出了需要额外数据来改进模型的建议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【本博文为查阅网络资料之后根据自己所想略作改动后所做笔记,全题答案参见链接:https://wenku.baidu.com/view/8172a6b265ce050876321315.html

原题回顾:

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

随着城市经济的快速发展和城市人口的不断增加,人类活动对城市环境质量的影响日显突出。对城市土壤地质环境异常的查证,以及如何应用查证获得的海量数据资料开展城市环境质量评价,研究人类活动影响下城市地质环境的演变模式,日益成为人们关注的焦点。

按照功能划分,城区一般可分为生活区、工业区、山区、主干道路区及公园绿地区等,分别记为1类区、2类区、……、5类区,不同的区域环境受人类活动影响的程度不同。

现对某城市城区土壤地质环境进行调查。为此,将所考察的城区划分为间距1公里左右的网格子区域,按照每平方公里1个采样点对表层土(0~10 厘米深度)进行取样、编号,并用GPS记录采样点的位置。应用专门仪器测试分析,获得了每个样本所含的多种化学元素的浓度数据。另一方面,按照2公里的间距在那些远离人群及工业活动的自然区取样,将其作为该城区表层土壤中元素的背景值。

附件1列出了采样点的位置、海拔高度及其所属功能区等信息,附件2列出了8种主要重金属元素在采样点处的浓度,附件3列出了8种主要重金属元素的背景值。

现要求你们通过数学建模来完成以下任务:

(1) 给出8种主要重金属元素在该城区的空间分布,并分析该城区内不同区域重金属的污染程度。

(2) 通过数据分析,说明重金属污染的主要原因。

(3) 分析重金属污染物的传播特征,由此建立模型,确定污染源的位置。

(4) 分析你所建立模型的优缺点,为更好地研究城市地质环境的演变模式,还应收集什么信息?有了这些信息,如何建立模型解决问题?

其中我将附件中的数据集中处理得到这样的excel表格:

(为方便后面的分区处理,我事先按照城区分类排序了)

 首先我想先画出地形图:

地形图:

matlab代码如下:(参见了参考答案中的代码)

clear;
clc;
M = xlsread('E:\\1.xlsx');
x = M(:,2);
y =  M(:,3);
z = M(:,4);
c = M(:,5);
 xi = linspace(min(x),max(x));
yi = linspace(min(y),max(y));
Zi = griddata(x,y,z,xi,yi','v4');
h = surf(xi,yi,Zi);
set(h,'EdgeAlpha',0.3);
colormap;
axis tight;
xlabel('X');
ylabel('Y');
zlabel('海拔高度');
title('地形图')
colorbar;
set(gcf,'Color',[1 1 1]);

得到:

等高线及城区功能分布图

clear;
clc;
M = xlsread('E:\\1.xlsx');
x = M(:,2);
y =  M(:,3);
z = M(:,4);
c = M(:,5);
 xi = linspace(min(x),max(x));
yi = linspace(min(y),max(y));
Zi = griddata(x,y,z,xi,yi','v4');
marker = {'d','o','^','s','p'};
color = {'m','k','c','b','g'};

str = {'等高线','生活区','工业区','山林区','交通区','绿地区'};
str1 = {'等值线','生活区','工业区','山林区','交通区','绿地区'};
figure;
contour(xi,yi,Zi,-150:20:300,'LineWidth',1);
xlabel('X');
ylabel('Y');
title('地形等高线及城区功能分布图');
axis tight;
axis image;
colorbar;
grid on;
hold on;
for i = 1:5
    loc = c == i;
    plot(x(loc),y(loc),marker{i},'markerfacecolor',color{i},'MarkerEdgeColor',color{i});
end
set(gcf,'Color',[1 1 1]);
legend(str,'location','SouthEast')

元素分布等值线图:

元素丰度 = 所测浓度/浓度背景值(平均值)

clear;
clc;
mat ={ 'As', 'Cd', 'Cr', 'Cu', 'Hg', 'Ni','Pb','Zn'};
M = xlsread('E:\\1.xlsx');
x = M(:,2);
y =  M(:,3);
z = M(:,4);
c = M(:,5);
xi = linspace(min(x),max(x));
yi = linspace(min(y),max(y));
Zi = griddata(x,y,z,xi,yi','v4');
marker = {'d','o','^','s','p'};
color = {'m','k','c','b','g'};

str1 = {'生活区','工业区','山林区','交通区','绿地区','等值线'};
M2 = xlsread('E://1.xlsx','sheet2','N2:U320');
for j= 1:8
    figure; 
    hold on;
    for i = 1:5
        loc = c == i;
        plot(x(loc),y(loc),marker{i},'markerfacecolor',color{i},'MarkerEdgeColor',color{i});
    end
    Zj = griddata(x,y,M2(:,j),xi,yi','v4');
    contour(xi,yi,Zj,'LineWidth',1);
    xlabel('X');
    ylabel('Y');
    title([mat{j},'元素丰度等值线']);
    axis tight;
    axis image;
    colormap('jet');
    colorbar;
    grid on;
    legend(str1,'location','SouthEast');
    set(gcf,'Color',[1 1 1]);
    hold off;
end
    

 

clear;
clc;
mat ={ 'As', 'Cd', 'Cr', 'Cu', 'Hg', 'Ni','Pb','Zn'};
str = {'(μg/g)','(ng/g)','(μg/g)','(μg/g)','(ng/g)','(μg/g)','(μg/g)','(μg/g)'}
M = xlsread('E:\\1.xlsx');
x = M(:,2);
y =  M(:,3);
z = M(:,4);
c = M(:,5);
xi = linspace(min(x),max(x));
yi = linspace(min(y),max(y));
for i = 6:13
    zz = M(:,i);
    Zi = griddata(x,y,zz,xi,yi','v4');
    %Zi = griddata(x,y,z,xi,yi','v4');
    %
    figure;
    h = surf(xi,yi,Zi);
   % h = image(xi,yi,Zi);
    colormap('jet');
    axis tight;
    set(h,'EdgeAlpha',0.3);
    xlabel('X');
    ylabel('Y');
    %zlabel('As元素含量(μg/g)');
    title([mat{i-5} '元素分布图' str{i-5}])
    colorbar;
    set(gcf,'Color',[1 1 1]);
end

 

灰度图

clear;
clc;
mat ={ 'As', 'Cd', 'Cr', 'Cu', 'Hg', 'Ni','Pb','Zn'};
str = {'(μg/g)','(ng/g)','(μg/g)','(μg/g)','(ng/g)','(μg/g)','(μg/g)','(μg/g)'}
M = xlsread('E:\\1.xlsx');
x = M(:,2);
y =  M(:,3);
z = M(:,4);
c = M(:,5);
xi = linspace(min(x),max(x));
yi = linspace(min(y),max(y));
for i = 6:13
    zz = M(:,i);
    Zi = griddata(x,y,zz,xi,yi','v4');
    %Zi = griddata(x,y,z,xi,yi','v4');
    
    figure;
   % h = surf(xi,yi,Zi);
   h = imagesc(xi,yi,Zi);
    colormap('jet');
    axis tight;
    xlabel('X');
    ylabel('Y');
    %zlabel('As元素含量(μg/g)');
    title([mat{i-5} '元素分布图' str{i-5}])
    colorbar;
    set(gcf,'Color',[1 1 1]);
end

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值