八.模型的优缺点
一.优点:
1.本文中有一些新的思想,如将三个模型在时间和空间上结合和了起来(也是合理解决此题的关键所在)。更准确和客观地找出了污染源的位置。
2.文中采用的平均数法和加权平均数法比较简单,使读者可以正确体会其中的意思,并且,可以用初等数学的方法就可以解决。
3.对于重金属的传播问题,通过建立三个模型,进行结合与比较,综合考虑传播的快慢和多少,准确找出污染源的位置。
4.研究城市地质环境的模型中,考虑的因素比较多,更客观全面地描绘了地质环境的演变模式。
二.缺点:
1.本题中有些重金属在水中还是有微弱的反应的,故模型的建立和求解出来的答案与实际有一定的差距。
2.由于题中没有说明各个区域中的主要工商业,故在确定污染源的来源时不能准确定位。
九.参考文献
[1] 杨启航,数学建模,北京:高等教育出版社,2003.
[2] 韩中庚,数学建模方法及其应用,北京:高等教育出版社,.2005.
[3] 实用计算器4.50版软件, http://johnbill.yeah.net/, 2011年9月9日 [4] 重金属权数的确定,http://wenku.http://www.35331.cn//view/c4d1b dff04a1b0717fd5dd3a. [5] 解可新,最优化方法, 天津:天津大学出版社,1996 [6] 实用MATLAB 软件
十、附件
采样点三维空间坐标图绘制程序
d=data; % 只需从excel输入三列数据,格式为:[xi yi zi],i表示行数 x=d(:,1) % 采样点坐标x值
y=d(:,2); % 采样点坐标y值z=d(:,3); % 采样点坐标z(海拔)值
21
nx=linspace(min(x),max(x),100); ny=linspace(min(y),max(y),100); [xx,yy]=meshgrid(nx,ny); zz=griddata(x,y,z,xx,yy,'v4'); surfl(xx,yy,zz); shading interp colormap(gray); hold on for i=1:319 for i=1:44
plot3(d(i,1),d(i,2),d(i,3),'ys'); end hold on for i=45:80
plot3(d(i,1),d(i,2),d(i,3),'y+'); end hold on for i=81:146
plot3(d(i,1),d(i,2),d(i,3),'bp'); end hold on for i=147:284
plot3(d(i,1),d(i,2),d(i,3),'ko'); end hold on for i=285:319
plot3(d(i,1),d(i,2),d(i,3),'r<'); end end
22
各重金属分布浓度等高线及采样点坐标综合分布图绘制程序:
d=data; % 只需从excel输入三列数据,格式为:[xi yi zi],i表示行数,xi为采样点坐标x值,yi为采样点坐标y值,zi为某重金属浓度值(此程序需将第三列的值更换8次运行8次得到论文中8幅各重金属浓度等高线及采样点坐标综合分布图)。 x=d(:,1); % 采样点坐标x值 y=d(:,2); % 采样点坐标y值 z=d(:,3); % 重金属浓度值 nx=linspace(min(x),max(x),40); ny=linspace(min(y),max(y),40); [xx,yy]=meshgrid(nx,ny); zz=griddata(x,y,z,xx,yy,'v4'); contourf(xx,yy,zz,10); hold on for i=1:319 for i=1:44
plot(d(i,1),d(i,2),'bs'); end hold on for i=45:80
plot(d(i,1),d(i,2),'b+'); end hold on for i=81:146
plot(d(i,1),d(i,2),'bp'); end hold on
23
for i=147:284
plot(d(i,1),d(i,2),'ko'); end hold on for i=285:319
plot(d(i,1),d(i,2),'r<'); end end
8种重金属的浓度等高线在该地区三维地形图曲面的投影图程序:
d=data; % 只需从excel输入三列数据,格式为:[xi yi zi],i表示行数,xi为采样点坐标x值,yi为采样点坐标y值,zi为某重金属浓度值(此程序需将第三列的值更换8次运行8次得到论文中8幅各重金属浓度等高线在该地区三维地形图曲面的投影图)。
x=d(:,1); y=d(:,2); z=d(:,3);
nx=linspace(min(x),max(x),100); ny=linspace(min(y),max(y),100); [xx,yy]=meshgrid(nx,ny);
zz=griddata(x,y,z,xx,yy,'v4'); surfl(xx,yy,zz); shading interp colormap(gray); hold on
d=data; x=d(:,1); y=d(:,2); z=d(:,3);
nx=linspace(min(x),max(x),100); ny=linspace(min(y),max(y),100); [xx,yy]=meshgrid(nx,ny);
zz=griddata(x,y,z,xx,yy,'v4'); [cc,hh]=contour(xx,yy,zz,10);
24
p=clabel(cc,hh) for n=p'
set(n,'string',sprintf('%.0f',get(n,'userdata'))) end
25