数学建模的小小总结

       9月9日到9月12日早8:00,我跟两位同学参加了高教社杯全国大学生数学建模竞赛,选择了A 题。

       A题是要对城市表层土壤重金属污染分析,题目中交代了城市的采样点的功能划分,还有地势重金属含量的信息,主要分析

重金属的空间分布和传播模型。

针对空间分布只需要使用Matlab或是Octave对采样点绘图或者差值出来就好了,具体做法看自己的理解了。

解决A 题中的重点难点:重金属的传播模型,有点难度。Google、Baidu、Ask、……查阅过了资料依旧茫然……这个时候突然想起了前几天跟丕子学长探讨用NLP(自然语言处理 Natural Language Processing)方式对人的肢体动作识别后的归纳命名问题的情况,虽然最后证明我的想法的确有点不太现实,但是期间查阅资料时顺便看了下ANN(人工神经网络 Artificial neural network)的一点点东西。发现其实不必自己去处理传播过程中的每个细节,只需要对其训练后就可以了,抱着试试看的心态尝试使用了ANN,但是发现传统的ANN并不是特别适用,因为传播的过程中可能出现必要的回馈问题,因此决定采用BPANN(Back Propagation Artificial Neural Network,不知道怎么翻译,大概可以翻译成反向传播的神经网络,不过也不是都反向,误差反向,-— — 中文解释不清楚)整体上能够做到根据已有的相当一部分的数据的学习,通过输入层和输出层得到的正向信息和反馈误差,一直调整权值直到误差到一个较低水平。

在适用Matlab设置和编程的过程中,大体上时照着北大的一篇论文依葫芦画瓢,整体上没什么难度,但是发现一个特别无语的问题,学习的时间实在是太长了,直接不能忍。后来经过一个学长的点拨,发现让其自适应的学习速率果然快了灰常多,Happy!

另外还发现了一个重大发现,这也是我上大学若干年以来第一次发现写程序中用到高等数学较深内容,即权值可能收敛很小但是它不是整体上的最小值,因为采用梯度下降,可能局部最小导致,然后继续查资料画瓢,用了附加动量的方式解决。

至于采用的层数……实在时不知道多少才好,用了3层,不知道是否科学……

虽然问题时解决的差不多了,但是我发现自己依旧没学会BPANN,也自是学会了依葫芦画瓢,没有从基本的原理上掌握,因此在使用的过程中发现了很多问题,只有当解决的差不多了的时候才发现这个早就被前人已经解决过了……

通过数学建模,发现自己跟学长的差距依旧很大,自己的基础也不是特别扎实,不过,我却发现一个道理,高等数学学了还是能够用在编程中的,起码改掉了我之前对于高等数学学了用不上的认识。

Work  Harder,Play Harder!

 

附竞赛A题:

2011高教社杯全国大学生数学建模竞赛题目

(请先阅读“全国大学生数学建模竞赛论文格式规范”)

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

 

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

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

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

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

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

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

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

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

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

 

数据文件

8 Comments

iHenry says:

高等数学就是微积分吗?那我们现在学的线性代数是什么?国内高校是什么时候什么人要学的?

* 笑得海潮 says:

高等数学的主要内容是微积分,它主要内容是函数,线性代数也是高等数学的一部分,主要研究对象是向量。但国内的称呼是单独独立出来的,国内的高校一般大一就学完了吧,不过还要看专业,有的可能要学到大三。

iHenry says:

原来如此。在国外都没有高等数学的概念。不过让我们这群本该高三的学生学线性代数也有够难的了==

* 笑得海潮 says:

– – 按照中国的教育速度和计划来说,奥数都快提到学前班了……高数搞数学竞赛的在高一也开始学了…………,不过话说回来,学完以后去其他美洲国家看看他们的数学课你会很有成就感的。

Earthwind says:

I feel so much hapiper now I understand all this. Thanks!

* 笑得海潮 says:

Congratulations! Glad to hear that.

Vespa says:

根据我对这道题没印象。。。我应该是参加的10年的那一次。。【当年搞了一整年数模,现在不敢再碰了。。。】

* 笑得海潮 says:

呃……难道是因为太浪费时间?

Leave a Reply to 笑得海潮 Cancel Reply

Your email address will not be published.

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax