* }7 T9 v2 ]0 n' R5 K+ Q1 X3 a4 F `2 S6 t5 l
本文写给那些正在或正纠结要不要入坑数学建模,以及初入大学不知如何规划未来四年的小白萌新们,希望能或多或少给大家带来一些启发# B$ V3 W% o8 A0 @7 F
1 b8 q* N; u" E% R+ `/ U* O0 E+ ~4 e5 Z
《一些想和你分享的故事》( G% ~7 X# ]0 R+ @& x, u
1.《相遇篇》——为什么想建模? + F3 m& C7 `/ e/ p. f8 M% U y2.《碰壁篇》——建模是不可能建出来的。) }5 `1 D9 w$ v4 I4 T) d9 X+ a
3.《成长篇》——偶然的发现、突然的醒悟! ! t8 H2 G L: y1 j; H$ @- ?3.1 模型:找对资源,明确导向 3 A( c# L# A2 V: U* s& r3.2 编程:君子性非异也善假于物也1 m; V% P1 M# O: T9 J* |& Y* l3 Y
3.3 论文:文笔排版好,一美遮百丑! E7 J( l+ C$ m. b9 Z# x
《相伴篇》——建模好队友,一生好朋友!' t: d9 v1 n1 s1 h8 t( [
《干货篇》——愿你少走弯路,多取得些成绩 O% ^! L, T J1 m: f S- M, v《废话篇》——聊一聊大学 5 i% P5 |( |9 Z* L1.《相遇篇》——为什么想建模? $ x7 u k0 V9 H为什么想建模?不知道大家是否思考过这个问题。我当初想建模的理由很简单,就是觉得“数学建模”这个词听起来很酷!很man!利用数学工具去刻画、去描绘世界的运行规律,岂不是太牛了?!+ y( G N: `" U I: V. o
( J: n4 P" Y' i9 c1 a' B: M" D+ N' k5 w$ j7 h
那时的我正在读大一下学期,一方面是主观地想去建模,另一方面客观地认为自己数学还不错(数学分析考的不错,满绩)。 . d9 D) D5 ^7 ? ) u: S$ L, N" v J$ |1 V( X! y0 ^' K9 l/ e
于是,我没有任何纠结,找了两个同样有兴趣的同学,参加了学校五月份的建模校赛 9 x( e. G) M# `) P J/ f2 h3 s6 P. v+ H, p0 R: H7 s
; R; i/ i& V; o* T$ d1 B. R8 F/ j5 a
(当然第一次参赛的结果那是相当惨烈,但无论如何,我的大学建模之旅就此开始。)8 G: a* G; ^/ {" t1 x& X% o& x& U
! J1 v- y6 T: c9 R% E' U" W& V
! S7 J; u$ }" ?: c' \; t: E每一个入坑数学建模的人,各有各的理由与想法:或是一时兴起,或是想提高能力,又或是出于功利的目的。+ y& \# `* H- k- n2 S
! o# d$ d5 d0 c& ]& o: [5 k- Y/ @$ }/ d) V4 N( i& R3 C
每一个纠结要不要入坑数学建模的人,理由似乎出奇的一致,我总结为以下三点: h% k+ g- {, U& S; x# g1 O 3 i3 X0 ~/ V4 r7 d4 I4 t " H/ ?9 @$ A3 r% `3 ^5 I7 p; g我数学不好能去建模吗?/ z3 T `( z8 _) i7 Q' i
我才大一,我还小,我现在去岂不是只能当分母?$ m' S" x5 `- m/ W
建模太难了,我能学会吗? I$ E! N$ S, d$ B
但是,无论如何,有一些客观的事实务必要与各位小白交代清楚。 + e# w5 {6 r O& |9 q# I5 N- W1 B/ `' [/ F5 {9 G4 P( s
7 }/ [: N3 I3 C3 S. ?7 o7 X
1.数学好不好和数学建模搞不搞的好是完完全全两回事!况且很多人所谓的数学好只是分数考得高而已,而数学建模考察的是你的综合能力,并非你的应试能力。 9 O* r- F# m' `( g$ O: ~2 ?1 Y ; z6 j( a% E% x- e6 l8 _2 ?' L2 a$ r0 K! m. I+ b3 @/ O# n, T
2. 这个理由很不应该了。诚然,低年级的知识储备和各项能力确实与高年级的同学没法比。但事实确实这样子的:很多人觉得低年级开始搞比赛太早了,自己“啥也不会”,等学完一年的课再去也不迟,但当他们升到高年级仍然发现:面对赛题依然“啥也不会”。其实,不论是建模还是其他很多竞赛,学没学和你做不做的好没啥联系——本科课上教的内容都太浅了,根本不够你比赛的时候用的,现学现用的能力才是最重要的。不妨趁着大一有时间,多去积累积累经验,走一遍流程都是很好的,如果你不去尝试,到头来将没有任何结果。 5 K/ P, s) b# q0 |4 o9 _+ d q! `7 x: Q# w
i$ e9 F E8 V; \1 f
3. 建模说难也难,说不难也不难。树立起科学的“建模观与方法论”是第一步,更重要的是全身心的投入。% L6 ?" L& q9 `1 n
/ m/ o" y2 E. N* g) U& W5 K
, z2 C$ S8 j/ X! S: u
4. 曾几何时,数学建模似乎不再是一种课外的、兴趣使然的活动,而是逐渐成了一种“无形且必要的附加分”。社会越来越卷了,大学越来越卷了,就连数学建模比赛也越来越卷了。卷到底是不是一件好事我不得而知,但是它所导致的现象却是不争的事实:大家越来越累,好好相处越来越难。后来我才意识到,数学建模得奖了可以保研加分啊!一加还加好多啊!我总觉得竞赛已经失去了原本的味道,但是没办法啊,中国学生就是需要各种各样的奖啊,就是需要参加社团当学生干部啊。一个能够证明我观点的事实是:美国大学生数学建模竞赛中超过98%的参赛队来自中国(你细品)。 / O% {# ^( O6 c1 G1 x! Y5 h' b5 z4 ~. z! t
4 X4 G N. T& [/ f2 S
2.《碰壁篇》——建模是不可能建出来的。5 U/ ]" \/ _( s$ E; u- L$ w3 }" m
在上一篇的部分,我讲述了我入坑建模的理由,以及我对入坑建模的相关看法。决定入坑是建模之旅的第一步,这条路并不平坦,波折很多,付出而没有回报是常有的事情。如果你无法接受以上事实,建议更要参加,建模说不定可以帮你调整心态。毕竟,人生很长,困难很多,有很多怪要打,如果连眼前建模失败的失落都无法承受,未来那么长的路又该怎么办呢?5 ?' m) w Z4 G1 O
4 A5 N, d0 }- I7 b5 X- l/ p
4 g4 y2 s7 R& |1 e1 }% Q) M/ @: Z
我第一次建模的经历可谓惨烈无比。 ; x, t+ @4 d+ g" q" T! l9 D! H# @. J& C Z9 b
) k& m4 q A. m( W+ l
首先折磨我的是读也读不懂的题目。数学建模的题目往往很长,有时候比较难理解。因此,才比赛中,认真细致的审题是关键,你必须知道题目到底想让你干什么。% t8 \* V+ z% p( Q4 o; S! W
/ G& [% e8 d' o# x' I
) C3 ~, |% ~( h3 j) T9 N, v3 S# E
接着让我抓狂的是数据咋找也找不到。我记得但是的题目要建立一个能够刻画、解决北京立交桥堵车问题的模型,因此,找到立交桥的车流量数据非常重要。找数据并没有什么特别好的办法,除了一些常规的数据之外,更多的取决于你们的信息检索与资料搜索能力如何了,当然,耐心和细心也很重要。但是很遗憾,当时的我们既没有耐心,也很不细心,而且找资料的能力比较差,到头来啥都没找到。, G0 A" v0 m5 ? O
2 @( |* X: O: O. K+ y) T' P [- D u6 C1 k3 j
数据找不到,模型建出来了也用不了。(当然,我们也从知网上找到了几个相关的模型,但是不知道怎么用,不知道怎么改编,外加数据找不到,就没怎么建)& I8 d$ J. b1 B7 X
2 b, A& \3 n' l0 x9 s& s
+ j3 c$ n8 a9 V7 ]两天后,三个人感觉都无望,打了退党鼓,第一次比赛连一篇完成了论文成果都没有,就这么结束了。就像是一段十分失败的感情:开始轰轰烈烈,中间逐渐冷淡,最后不了了之。7 N6 j. z7 s p
& V) _2 `: ]% j" o( L % T- l! P6 a3 d9 h: F4 Z5 `这次比赛很失败,因为他改变了我对数学建模的认知,并且让我怀疑自己的能力:我在功课上明明学的不错呀,为啥建不来模型呢?也正是这次糟糕的经历,给了我很多的启示,让我日后在课程学习与参加其他竞赛时都很受用。) J6 R) ]/ t/ E9 S
% J% \9 D! C; }) b. O. n9 c
" p8 O# v* G }, g$ {3.《成长篇》——偶然的发现、突然的醒悟!) q% s1 V4 q2 o" y: F) h
那么,从第一次的经历中,我学到了什么呢?我总结为以下3点: , m9 P% m; h4 ?, P' m3 X3 g 2 o' C0 ]: |2 p) h' x6 \! n7 J $ V# }, `$ p) y' B7 v9 \不打无准备之仗。在建模前要做好充足的准备,首先要了解比赛的流程与规则,其次要去学习一些必要的建模软件、掌握一些常规的模型与算法,最后就是要找好队友,分工明确。 S% v, |3 x* o* Q& q4 _
既来之,则安之。自己的模型就要由自己来建好,不要轻言放弃。放弃这个词的杀伤力可太大了,这是一种消极的态度。放弃,意味着不可能会取得成绩。而且,一个在建模比赛中就轻言放弃的人,大概率也会放弃其他的事情,这就是所谓的不靠谱。所以,如果你打算入坑建模,就一定要逼迫自己在比赛结束之前交上一件完整的作品。 t* G, d& q; d& x
找队友要精心,选对人很重要。第一次建模时,我找队友没想那么多,就是都有兴趣而已。但是这中做法是非理性的,也是不合理的。建模的队伍由三个人组成,一般划分为三个岗位:建模岗、编程岗和论文岗。这个岗位划分是有其内在逻辑的:在比赛中,首先要通过模型与假设对问题都一个理论性的分析与解答,然后通过编程软件将模型进行应用,得出结果后,再通过论文的形式将成果进行包装,最终呈现出一个完整的作品。 6 i# B: U6 M/ g' F/ b/ R0 S: l反思之后,我首先找到了合适的队友,然后在大一的暑假期间进行准备。前期的准备中,我也遇到了各种各样的问题,走了很多弯路,最后误打误撞地走上了正轨。这个过程中,我觉得最容易走弯路。下面我想从模型、编程、论文三个方面以此介绍 & e/ b6 j/ e5 `/ o% l4 l, |- v3 K# E, a$ |1 F; K
" c" ]: Z. V7 @5 k+ i( W |
3.1 模型:找对资源,明确导向 $ {' G3 @5 K e我想相信大部分小白在学习模型的过程中,都有这样的经历(至少我周围的同学和我都遇到过):# P, @. ]4 H( l4 T
: c, l% F+ @0 N e) X
1 K5 p* }& p8 J3 B+ N9 S第一步:从淘宝上买建模教材: q+ e. H- B+ K1 [1 e6 P: u
第二步:翻开第一章,开始逐字逐句地认真“学习”,先学模型的历史发展,再学模型的理论原理 4 n7 a) g* j* `第三步:哎呀,这个原理看不懂啊,我再换一章看看 + A6 B$ K) S J7 m8 G/ _第四步:换到新的一章,开始逐字逐句地认真“学习”,先学模型的历史发展,再学模型的理论原理 : g8 B8 x: [$ i第五步:这什么玩意,看不懂,学不会,不学了) A1 k$ N n4 B1 ^# p2 X
当你不断重复以上经历,OK,那么你从入坑到退坑估计就不远了吧。究其原因,是当时的我们没有形成一套科学的“建模观与方法论”。 & x+ E; \8 u" r( k# E4 H+ h4 \3 t Q6 p' S' u$ q
# a8 @9 I% p7 l" D! O4 k* R. v/ I' S
首先说学习模型的方式,不外乎三种,从学习效率上来说依次为:找个建模高手手把手取经→在网上学习视频课程→购买实体教材自学。对于第一个方式,它在现实中是很难实现的,一是我们不容易辨别一个人到底是不是建模高手,二是即便找到了人家愿不愿意教。对于第二个与第三个方式,基于效率与效果考虑,我倾向于第二个。 ! G% @2 Y# O" q3 O ; F4 E3 [0 L" g- D/ o4 k; \' @3 J. O% U. E4 K) t
当我把姜起源老师的《数学建模(第五版)》翻来翻去,到头来一点没看进去的时候,我意识到自己看书并不是一个好办法。效率低不说,关键是碰到看不懂的地方,没有人给你答疑。 * Y- A3 S: ?/ J( n; q; X5 [/ v+ A$ v, |
" _$ H j5 R9 X" b% \# N! x
就在我怀疑人生的时候,我果断去B站(以前就听不少人说B站是一个爱学习的网站)搜了一搜,结果真的捡到了宝!9 q8 M9 h, m7 h- Y# t2 _
$ R: U# I K% w5 m; _/ n _ / V8 i6 S: w1 w- h' {在对比了很多数学建模的网络培训课程,在这里我要强烈推荐两个课程资源: 2 z M( C* P: S& f/ O7 _- g7 c: P6 S& h7 h
! F) \! f2 h, a/ F \* n一是清风老师的数模系列课程 , ?7 y6 Q2 H" T# y2 _! H. J; n; l* k ]6 C. v7 J
9 Z' \ Q- o. T) k1 e9 w9 L二是科研交流的数模公开课程9 O* L3 o1 b, ^; y
! |1 m( p3 X$ n! T7 j$ U, L
4 O+ U0 X% ^/ ~+ E/ S' q
这两个课程推荐给各位小白们,他们帮我少走了很多弯路,让我真正理解了数学建模比赛究竟是怎么回事。1 g; Q* D! l3 `
- F* m) W& S% D
2 G8 k. k# |+ H1 s' H' ?4 B在学习建模的过程中,我比较赞成的是以应用作为学习导向,也就是会用模型解决问题。例如,在学习灰色预测模型时,我们应侧重于掌握以下两个方面: - u& g& @$ l7 Z6 I$ G5 p# N & T% I2 b9 b4 `- u3 W. s* r; b) M' ^, H/ l) t3 E
灰色预测模型的应用场景(它是用来做什么的,在什么时候需要使用)?+ I$ _/ ~7 j4 P! N) a3 U& l
如何进行灰色预测?(可以用SPSSAU点击操作,或者用MATLAB编程处理). z* F5 Z) J$ G9 N5 w( V: \" h
我们不必深究模型原理细节,而是要熟练掌握模型的应用场景与技术手段。 ' r2 |3 O; w! c: v9 h& ?3 H1 i8 a* M5 r9 {+ ]9 s# z/ J+ E
3 p) \, y. a: |
3.2 编程:君子性非异也善假于物也 - e: j, y5 G4 g3 q5 M编程是数学建模中重要环节之一。我对于编程的观点是,能用操作式软件(如Excel,SPSS等)解决的不要自己编程,如果一定要编程的,先去寻找是否有现成的开源代码,如果以上都没有,那么才去自己编程。3 v) v4 v$ x3 a5 E* [( i
" Q6 ?9 [8 P/ c1 O9 g W
. x" [1 C" i! J7 L! S w; k) b
软件也好、各种编程语言也好,它们只是解决问题的手段,而非目的,只要能顺利应用模型,那就是好办法。我认识很多同学,他们自认为学了点东西,希望独立自主地完成编写花里胡哨的代码求解模型。其实,如果水平真的达到这个层次,自然是可行的,但是绝大部分同学达不到这个水平,因此,善于利用身边的资源来提高模型求解效率,远比自己研究半天,从零开始要高效很多。( e( b) w6 G% B4 n( r
7 L9 I+ b6 A% `9 l. X9 B8 [3 V