2011全国大学生数模竞赛A题三维立体绘图MATLAB代码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2011全国大学生数模竞赛A题
三维立体绘图MATLAB代码及图像
下载两个数据文件保存到MATLAB工作目录中,同时将下面的程序拷贝到一个M文件里面运行即可。
MATLAB代码和数据文件请到这里下载:/thread-19793-1-1.html
A题城市表层土壤重金属污染分析
随着城市经济的快速发展和城市人口的不断增加,人类活动对城市环境质量的影响日显突出。对城市土壤地质环境异常的查证,以及如何应用查证获得的海量数据资料开展城市环境质量评价,研究人类活动影响下城市地质环境的演变模式,日益成为人们关注的焦点。
按照功能划分,城区一般可分为生活区、工业区、山区、主干道路区及公园绿地区等,分别记为1类区、2类区、……、5类区,不同的区域环境受人类活动影响的程度不同。
现对某城市城区土壤地质环境进行调查。为此,将所考察的城区划分为间距1公里左右的网格子区域,按照每平方公里1个采样点对表层土(0~10 厘米深度)进行取样、编号,并用GPS记录采样点的位置。应用专门仪器测试分析,获得了每个样本所含的多种化学元素的浓度数据。另一方面,按照2公里的间距在那些远离人群及工业活动的自然区取样,将其作为该城区表层土壤中元素的背景值。
附件1列出了采样点的位置、海拔高度及其所属功能区等信息,附件2列出了8种主要重金属元素在采样点处的浓度,附件3列出了8种主要重金属元素的背景值。
现要求你们通过数学建模来完成以下任务:
(1) 给出8种主要重金属元素在该城区的空间分布,并分析该城区内不同区域重金属的污染程度。
(2) 通过数据分析,说明重金属污染的主要原因。
(3) 分析重金属污染物的传播特征,由此建立模型,确定污染源的位置。
(4) 分析你所建立模型的优缺点,为更好地研究城市地质环境的演变模式,还应收集什么信息?有了这些信息,如何建立模型解决问题?
程序代码:
clc
clear
close all
D=load('ZuoBiao.dat');
M=load('JinShu.dat');
x=D(:,2);
y=D(:,3);
z=D(:,4);
c=D(:,5);
xi=linspace(min(x),max(x),100);
yi=linspace(min(y),max(y),100);
[xi,yi]=meshgrid(xi,yi);
zi=griddata(x,y,z,xi,yi);
ci=griddata(x,y,c,xi,yi);
marker={'*','o','s','^','p'};
color={'k','r','y','c','b'};
mat={'As','Cd','Cr','Cu','Hg','Ni','Pb','Zn'};
str={'等高线','生活区','工业区','山林区','交通区','绿地区'};
for j=1:8
% 等高线图形
figure
contourf(xi,yi,zi,0:10:500);
% set(h,'ShowText','on','TextStep',get(h,'LevelStep')*2)
% clabel(C,h,[0:10:50,50:50:300,300:100:500]);
title(['金属 ',mat{j}, ' 二维等高线分布图'])
xlabel('X')
ylabel('Y')
colormap summer
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
legend(str,'location','best')
for k=1:length(x)
text(x(k)-200,y(k)+200,num2str(M(k,j+1)),'fontsize',8);
end
end
% 三维体图
figure
h=surf(xi,yi,zi);
set(h,'cdata',ci);
colormap hsv
title('三维图立体(颜色条表示分类)')
xlabel('X')
ylabel('Y')
colorbar
hidden off
hold on
for i=1:5
loc=c==i;
plot3(x(loc),y(loc),z(loc),marker{i},'markerfacecolor',color{i });
end
str{1}='三维图';
legend(str,'location','best')
图像如下: