文章来源:赛氪网
' E: w+ G2 R1 s1 X: @8 Z# Y6 {0 ]0 V1 S1 }2 Q& @' e6 ~
卓金武(Steven) ![]()
. M9 _: m$ p/ P3 y6 }" E + e1 y) } T' k9 } e3 H, ]; U) K
MathWorks公司中国区应用工程师。在科学计算、定量优化、数学建模和数据挖掘领域拥有8年经验。曾3次获全国大学生数学建模竞赛一等奖,2次获国际大学生数学建模竞赛二等奖,主编专著三部:《MATLAB在数学建模中的应用》(第一版和第二版),《量化投资:数据挖掘技术与实践(MATLAB版)》。 / b+ `3 a, F5 x
从数学建模开始
# K0 X2 s4 `& @% X8 Q说到Steven(卓金武)与MATLAB的故事,就不得不从数学建模开始说起了。Steven人生第一次接触MATLAB是在2002年,他读大一的时候。那年他报名参加了全国大学生数学建模大赛(CUMCM)。作为初次参赛的新手,他向一些老选手请教。老选手于是向他介绍了MATLAB和Mathematica两款软件,Steven就这两款软件都试了一下。一开始,他觉得Mathematica比较容易入手,对于初学者来说用起来比较顺手。但后来慢慢他发现要大规模开发、测试自己的算法模型的时候,还是MATLAB比较适合自己,于是就从此专攻MATLAB了。
0 [2 M6 j2 P. |MATLAB入门 每个人都有MATLAB入门的一个过程,对于Steven,这个过程其实不长。当时他接触MATLAB的时候是大一暑假,而大二一开学就要参加CUMCM大赛了,时间比较紧迫。而且对于一个大一的学生,编程经验也不多,所以快速掌握数学建模所用的软件的任务还是蛮艰巨的。当时Steven和他的两个队友,找来几本MATLAB的参考书,在学校提供的机房里,每个人把书上的所有MATLAB例子从头到尾都操作了一遍。两百多页的书,他们的专注使得只用了两天的时间就完成了这个初步接触MATLAB的过程。两天以后,Steven和他的小伙伴们就对MATLAB有了一个大致的了解,而且MATLAB的一些基本功能都算是碰了一下。 ; h$ ~5 H* t0 i, e- n# @) c; R
过了这么多年,再次说起关于MATLAB入门的经验时,Steven有自己的一些看法。“首先不要把学习MATLAB当成是一件特别难的事情,就要把它当成类似Word这样的软件,特别是在MATLAB科学计算这方面。重要的是在学习之前想好自己要用MATLAB来做什么,有了明确的目标后,接下来的问题就是怎么去做了。MATLAB本来就提供了很多教程和工具箱,一步一步慢慢学习摸索其实很快就可以上手。至于MATLAB那些基本的运算语法函数等,对于有基本数学或者计算机逻辑的同学,初步上手只需要半天就够了。上手后再慢慢完善自己的技能,不要一开始就想着变成MATLAB高手。”
) ]" n* J" c5 u7 u; G , D- d9 C. `7 ]5 `
数学建模大赛 Steven第一次参加全国大学生数学建模大赛并没有获得全国一等奖,只是获得了江苏省二等奖。虽然已经是不错的成绩了,但Steven觉得自己还有很多地方需要进步。于是他和小伙伴们开始研究那些获得全国一等奖的队伍的论文,研究别人为什么能获得好成绩。 3 j1 R/ T9 G8 P
“那个时候经常是一下课三个人就聚在一起研究,同时那也是我MATLAB数学建模水平飞速提高的最重要阶段。后来突然有一天好像豁然开朗了,终于找到自己和别人的差距在哪了。”
$ {0 l2 V5 W$ X+ _% a% a! g随着不断的研究和练习,接下来的事情就很顺利了。大三大四Steven连续拿了两次全国大学生数学建模大赛的一等奖,研究生的时候又拿了一次研究生组的一等奖。而在国际舞台上,Steven也两次获国际大学生数学建模大赛二等奖。
- L K+ c* Q* PCUMCM参赛经验分享 这么多年参加全国大学生数学建模大赛的经历,Steven对这项大赛也有着一些自己的看法,利用这个机会分享给即将参赛的同学们:
7 U# |3 d2 T; Y }最终成绩取决于论文,因此在时间安排上,一定要保证有足够的时间写论文。要靠论文说清楚模型和算法,否则建成再好的数学模型也白费了。另外,要把时间花在具体建模求解和论文上,不要浪费在选题上,当时Steven和队友选题只用了10分钟左右的时间,然后不管选的题目有多难,都一条路做下去。他们第一天就把模型建完,第二天就开始写论文了,而此时有些队伍还没有选好题了。
* y) o# A/ R( W Q$ N& t! X+ t3 P
6 _2 i/ A) e5 r! o* I5 }4 g A) ]心里不要把数学建模当成一个很难的东西,可以先从简单问题的入手,先建立一个简单的模型,然后慢慢完善。从简单的模型开始,心里就有个底,不会慌张,不要想着一下子就把所有东西想得很完善。 $ X3 }( |1 t) A7 B/ V
不要把具体数学模型想得太复杂,要“抓住三大类,灵活去应对”。其实,按照Steven的理解,数学建模大赛的题目主要有三类。一是数据类,用到拟合预测的知识。第二类是连续性问题,用积分微分偏微分等方法求解。第三类是优化问题,要找出优化目标,再把约束抽出来,一步一步来就好了。其实对于这三类问题,MATLAB都有很好用的工具箱来帮助你。
: }8 Z% W! u- b, K; x此外,Steven还建议大家观看一下MathWorks官方提供的关于全国大学生数学建模大赛的网上研讨会,并且关注一下最近赛题的发展趋势。 + z; a8 ^8 r& ~; R6 h$ O# p
《MATLAB在数学建模中的应用》 % \: {4 q: |5 \* S
![]()
8 ^& M+ r+ [ z6 f) \
# r4 Y5 s, O/ ` m# c: L _/ B* u 这本书是Steven从2009年开始写的,当时他想把这些年来用MATLAB进行数学建模的一些想法写一下,而刚好北航出版社有关于MATLAB的书籍计划,于是他就参加了。这本书写了一年,修改了一年,于2011年4月终于出版了。
1 R3 ]9 d) L' g4 y: C4 I Steven是一个非常开朗的人,平时心情好的时候还会不自觉地哼两句歌,作为书籍板块《MATLAB在数学建模中的应用》的版主,Steven祝愿大家在全国大学生数学建模大赛中获得好的成绩。
2 r2 @3 b0 l, `! K ! [8 F9 j: d/ ]
8 K$ t1 y0 n) F
2 f8 q: ]4 w8 D/ B+ ^, c/ q
! X1 o( X! z6 _, p* T% v- A 1 G8 T; e( L' o
( z: B1 B: ~$ H* Q+ x+ u$ y; S |