北京时间2019年1月29号上午9时,数模美赛结束。美赛结束已经10多天了,我在这次竞赛中负责建模和编程,趁现在记忆还比较清晰,写下这篇博客记录第一次参加数学建模美赛的经历。 / L0 |$ ]/ X9 |0 q; Y! {: v" ^, P) ~: a( X2 }5 n
补更:2019年4月20日公布成绩,笔者最终获得了美赛一等奖 ! O+ Y( g% w( \7 u; W7 g3 x4 F, v! g
目录0 r0 |) N" L3 C `3 W
, f9 V/ J' [: S' f" R1、基本情况 + X3 H2 z# ~1 h - \3 L5 Z/ \& @" B( i2、选题 * ^1 {) c' p- }2 O
" q% ^/ b: r( B3 q9 r& `3、分工合作 5 b8 i* u( o! j: h& J7 i; B: [4 I ) e, ? Y Q2 o2 u$ l" t" V4、论文写作 0 N7 m: L0 _" n; M8 k, h2 [ 6 H: x) v+ `" @ g5、建模 3 Q; y; g% Z' q& _0 ]- w. H; H4 `4 x. y# v# P# X
6、编程 ~9 ?1 T& v( U1 A. d1 W 3 c) _$ A9 R2 P- O% F7、入门资源 ( t& t! F* c+ P# ?( H. ^% d 4 I, `: f4 a* R6 Z $ `9 x3 A. o1 m) ~# ?- Y4 d @8 q. E+ D+ c& ] {# K+ c
1、基本情况 3 F% B7 U. c9 |' U L 1 K$ w% a6 k0 ]) }" B2019年美赛时间:北京时间2019年1月25日上午6点---1月29日上午9点,每年的数模美赛一般都是寒假期间。在美赛期间,每天7点起床,晚上11点多睡觉,不睡午觉,最后一个晚上是通宵的。; i# s& k4 d9 B6 a' g2 y# L
# W% ^3 q; G3 t" L5 x
成绩公布时间:2019年4月30号左右3 z( \# k" j8 O3 `/ i- A% [. X8 c
! v! \- e4 n6 x# A队伍:笔者和两位师姐,男女搭配,干活不累。 9 e: X1 @* z% s, Z ; ?) d! @% Q- |实力:队长家瑜师姐在2018年数模美赛中夺得了一等奖;观子师姐有参加过数学建模竞赛的经历;笔者:菜鸟一个,在参加本次竞赛之前根本不知数学建模为何物,纯粹是抱师姐大腿。 " j& ], H- h) X% V/ \ F2 Y7 A9 k/ p. h' o3 z# [
竞赛地点:某间男生宿舍内,美赛四天时间,与两位漂亮师姐共处一间宿舍,嘻嘻嘻。 # m' R( J: C' j8 b1 D8 B( K5 S$ Y+ @( ?% n* z' n) n
2、选题 . E5 a8 m _) ]0 z. Y" {4 v( Z % s% n" `& r8 o) R1 I# ? 美国大学生数学建模竞赛目前分为两种类型,MCM(Mathematical Contest In Modeling)和ICM(Interdisciplinary Contest In Modeling),两种类型竞赛采用统一标准进行,竞赛题目出来之后,参数队伍通过美赛官网进行选题,一共分为下面6种题型。 , _- h& H/ j# o* J7 } 2 I6 g8 P1 S2 Q" f, [: n4 n+ d2 I, q& Z( e6 X& U
/ h: @3 N: K- f( h) F# w7 H U 在上面六种题型里,本人觉得连续型最好做,应该优先选择。连续型题目找数据及相关资料比较容易,编程能力要求不是很高,要写的代码也不是很多,最重要的是,选择该题的队伍也不是很多,不用担心竞争过于激烈的问题。事实上,我觉得数模美赛的选题,不应该等题目发布后才开始选,应该在竞赛开始前的一个月就对美赛的题型进行研究,看一看这六种题型往年的O奖论文,分析一下这六种题型如何建模和编程,找到最适合自己的题型。不同的题型,建立的模型和编程所需要的算法还是有比较大差别的。在美赛开始前就确定自己要做哪类题目,然后多看多研究该类题型的O奖论文,事先有了准备,在美赛中才能做到胸有成竹、游刃有余。8 y+ N0 |" y, H/ s
1 l/ g& `8 J8 N3、分工合作 + w `$ K6 k* f( ?$ t2 R , n2 E3 z$ |& F! p 美赛是3人一支队伍,如何在短短的四天三夜里完成论文、建模和编程这三部分,分工合作很重要。在美赛开始前4个月,我们的计划是每个人负责一部分,即小A负责论文写作,小B负责建模,小C负责编程。但是在美赛过程中,我们发现论文写作的工作量比较大;建模的工作量也很大,要建立的模型有6、7个;编程的工作量相对少很多,比较轻松;所以实际上我们最终的分工是:小A负责论文写作,小B负责建模和编程,小C也负责建模和编程,小B和小C的工作结束后,就去帮助小A写论文中比较简单和不是很重要的部分,比如Strengths and Weaknesses、Conclusion and Future Work等。 2 |* Y+ g1 r8 @$ [& a 2 ~. o5 y1 B8 Z2 R4 A7 W1 K 总之,在这次美赛过程中,我最大的体会是,编程这块比较简单轻松,工作量很少,没必要专门分出一个人来负责这块。论文写作和建模这两块工作量比较大。我觉得比较好的分工是:小A负责论文写作,小B负责建模和编程,小C也负责建模编程,小B和小C的工作结束后,就去帮助小A写论文中比较简单和不是很重要的部分。如果可以的话,最好在竞赛前进行一次演习,让队友之间的分工合作磨合得更协调。 S2 F) f4 E) ]/ m& y! x
h; f$ N6 D" O8 [; a9 T' \# r
4、论文写作 8 P/ t: n t$ {# E1 a$ G9 q o, G$ K" L G# {) r 论文写作在数学建模竞赛中至关重要,因为我们最终提交的就是论文,衡量我们获奖与否的依据是提交论文的质量。笔者在这次竞赛中并不负责论文写作,下面我把我们队长家瑜姐在本次美赛中的论文写作经验奉上:https://blog.csdn.net/qq_40481843/article/details/86692343+ l7 x+ ]4 A( t9 G5 z: i$ K4 D/ D/ M1 c t
# ^4 L! r S" B) ~) q
5、建模3 o) j; S9 [ I! z& } _4 G1 N
5 A* t5 \+ X4 h. k) J3 r
笔者在竞赛前以为我只需负责编程部分,所以在建模这块事先并没有接受系统的训练,只是在考前几天看了几篇O奖论文,对建模只有个大概的了解。在美赛过程中,发现建模这块工作量比较大,一个人根本忙不过来,笔者只能仓促上马,临急磨枪,学习建模,协助师姐。下面我把我们队伍的建模体会与大家分享:! j+ P& C4 H* g; I6 i$ K
: @( N: l! I8 G
拿到英文题目后,我们对其进行翻译,然后深入讨论研究题目,我们用红色对题目作了批注和补充,确定了思路和建模的大致框架。. ?3 g% d( q- ^! w4 l8 }; P
+ l# U& j5 s+ W( L3 R( d
9 P9 G* K, l4 a! x2 T2 p * U( W: Z7 ~4 y/ S7 A- R 在建模过程中,我觉得搜索资料非常重要。 数学建模,我觉得并不是完全靠自己绞尽脑汁去空想一个模型出来,而是借用已有的模型去修改或补充,使其能为自己所用。比如:在这次竞赛中,龙的生态影响模型构建我就参考了两篇别人数学建模论文中的模型。龙的生态影响模型可以由两个小模型组成,分别是龙对其它生物的影响模型、龙对环境的影响模型。龙对其它生物的影响模型中,龙与其它生物的关系主要是捕食关系,然后我就在百度上搜索有没有数学建模论文是涉及捕食关系的,结果真让我找到了一篇关于狐狸与兔的捕食关系数学建模论文,然后我参考该论文,对其进行修改使其符合龙对其它生物的影响。在龙对环境的影响模型中,我参考了这篇论文:http://www.doc88.com/p-7768622967088.html,学习它是如何使用层次分析法来衡量对生态系统的影响程度。总而言之,我们要善于查找、大量地查找网上是否有符合我们需要的资料。 $ R5 `! Y- G8 A! j5 x& S4 n) x " n+ h& d6 {; |( D8 | 如果在网上找不到类似的模型怎么办呢?那我们只能靠自己构建模型了。比如:养三条龙需要多少面积?在这个问题中,我找不到类似的模型。我只能退而求其次,寻找一些与其比较密切的研究资料:动物的栖息面积与什么有关等,最终我们找到了动物的种群密度与体重存在一定的关系。这个关系是什么呢?这就需要我们去构造公式。请记住:要大胆地构造公式,只要该公式大致符合常理、曲线趋势符合生活实际即可。请记住:不要想着我们构造的公式能够经得起科学家的检验,不要想着我们构造的公式能像万有引力定律公式那么严密。在短短的四天三夜里,你想创造出经得起世人检验的公式,想成为名垂千古的科学家?想多了!!!请记住:所有数学建模论文构造的模型看起来合情合理即可,不要妄想它们能完完全全应用于生活实际。 / s+ `; A) q' v( M; W9 f 7 @$ k& B( r$ U( U! [ 在建模过程中,常常要查找资料,常用的查找资料的网站:百度、百度文库、知网、维普、谷歌学术等。7 w w2 G' k8 u5 D% O
, @4 q% K8 _$ z6、编程 % K: g( k% u, c" y4 z8 S $ f) C$ |2 f9 I4 R6 k L 数学建模使用的编程语言一般是Matlab。本人觉得,在数模美赛A题中,对编程能力的要求不是很高,只需掌握Matlab基本语法体系和数学建模中常用的Matlab算法即可。要掌握的Matlab知识如下:- z( W9 h0 a$ O8 K5 o
1 v) T2 r: d+ H) W7 |; q; H3 } b- S6 V+ `% O
5 W" N) x$ h; y- a6 w% r4 _8 D! |: h
注意: - K; x1 k, ]1 I3 X 1 z8 b9 E# U" U0 b A5 M a (1)在竞赛开始前,最好先准备好Matlab的各种常用算法模板,比如:二、三维作图、层次分析法等。竞赛时,可以直接套用准备好的代码,大大地减少了编程的时间。. ]" C7 `6 ~2 Y- j6 p( I/ ~0 A* B, M
, G( d6 P' c( j+ |( R/ @ (2)二、三维作图在数学建模竞赛中肯定会用到的。为了让贴到论文中的图更漂亮,要学会通过代码来控制图片的大小(通过figure来设置图片大小为320x320或500x500)、设置坐标轴的粗细、字母上下标、线条颜色等细节。二、三维作图的参考链接:https://blog.csdn.net/qq_41149269/article/details/86603943 " h p3 D- `' W6 F2 O9 n3 u) V ~. k/ z( m. w. o; `
(3)要有良好的代码风格,不然写出的代码真的有点难看。 + c7 X5 X- ^7 Y/ ~& C, v5 _, x9 D- M4 O) N: e/ U
7、入门资源 3 l3 k: v: {- j; w# z! F- R1 M4 V3 K6 W- ]. O' i$ \( e
上面说了那么多,对于还没接触过数学建模的同学来说可能是一脸懵逼。哈哈哈,我贴心地为大家准备了建模、编程、往年O奖论文讲解这三部分的视频教程,相信对大家入门数学建模会有很大的帮助。 ! \% Y3 t/ d# K! e3 t& Y 5 x9 R" k# Y2 w2 \0 S' j! N建模:https://www.icourse163.org/course/cumcm-1001674011 " S$ a$ b8 Z4 @$ D. F6 o$ M( A* A, u+ u2 [0 ~# F
编程:https://www.bilibili.com/video/av39752280/?p=1 ' m+ b; b) f' d! R) J3 u6 v+ P h; b ! w5 U% D+ p+ g( [论文写作:https://blog.csdn.net/qq_40481843/article/details/86692343$ Z5 T' D6 G& a9 j0 Y
: T# g1 C) D& A- R8 ]
往年真题视频讲解链接:https://pan.baidu.com/s/130lwterZvM4DbaimCSRQxg 提取码: k9td " K; O; `+ u8 r! c4 o9 f5 r! W/ O3 {6 a9 r
本队伍2019年美赛的培训课件、论文、代码:https://github.com/xiexupang/2019MCM-A ! F4 Y! R) L' g, r2 y———————————————— ]+ `2 m! u: H. G: j- G版权声明:本文为CSDN博主「谢旭庞」的原创文章。0 ]6 P5 g; V5 W4 J# v, K, ]: q1 O
原文链接:https://blog.csdn.net/qq_41149269/article/details/86881902' _+ p @9 J- i) C7 n' k, V" z
3 P7 d1 ^/ L! S; f