北京时间2019年1月29号上午9时,数模美赛结束。美赛结束已经10多天了,我在这次竞赛中负责建模和编程,趁现在记忆还比较清晰,写下这篇博客记录第一次参加数学建模美赛的经历。 ' b: e3 `; Y/ U$ | 2 h' J" }" j9 [3 i% \- G# z& [7 ^ 补更:2019年4月20日公布成绩,笔者最终获得了美赛一等奖 2 a) E5 E" ]% X! s5 @$ j; j $ p; D2 z% n b3 p) ?7 f. t% g9 F目录! \! r7 C* {/ G e
" j( U! G( [# @4 c: [. s
1、基本情况 & c! k' s: l8 v9 K. b, \ ?, _# R# m9 [) V
2、选题 ! V6 ~1 s7 e) b+ ^, l$ l7 x' \2 D K
3、分工合作 , G- P7 S* h3 E4 n# O2 i. L7 |5 Q. K- k
4、论文写作2 N1 f" g! P0 Q/ D9 }* Y* \1 C
3 Y% [ T( x' b2 U3 g( o5、建模 " t* T$ K, ^( P6 \8 s, f* H, t ! y1 V. V$ ~2 `8 f6、编程 , @& z, k/ a ]8 r. y8 s. `! V3 P% ]) }" Z
7、入门资源 3 }0 Q) V& d: q% ^; L . ~, ^9 j: T# C! S. r6 L$ X v$ I5 u# N4 R
+ V% R/ q8 s8 Q
1、基本情况( l6 _* S7 x, u& q1 {/ S* F5 ~
5 v3 V z' |/ ?2019年美赛时间:北京时间2019年1月25日上午6点---1月29日上午9点,每年的数模美赛一般都是寒假期间。在美赛期间,每天7点起床,晚上11点多睡觉,不睡午觉,最后一个晚上是通宵的。 * A+ {2 D8 i) F1 m5 O2 Q & G* h; ~8 g2 n# d9 g9 n; g成绩公布时间:2019年4月30号左右 3 b% @, E4 ^& j( J3 s Q3 p' ^4 ]$ G7 Z4 h9 f
队伍:笔者和两位师姐,男女搭配,干活不累。 * e% u4 p! c- Y$ ?4 `- K) f( C0 B* p( U3 M, m
实力:队长家瑜师姐在2018年数模美赛中夺得了一等奖;观子师姐有参加过数学建模竞赛的经历;笔者:菜鸟一个,在参加本次竞赛之前根本不知数学建模为何物,纯粹是抱师姐大腿。 0 T& }$ g k1 l: w e8 \/ B& L, g) c5 f1 w' h7 i6 r5 Z
竞赛地点:某间男生宿舍内,美赛四天时间,与两位漂亮师姐共处一间宿舍,嘻嘻嘻。 . _( y2 A/ l: ^. O' X+ _5 z7 H0 j 6 P7 A+ K2 x, L# h8 v* P5 q2、选题 - q4 v7 w p& h0 ^, s' ~" {6 c" ?2 W* T5 f0 k. l2 y- D9 @' e
美国大学生数学建模竞赛目前分为两种类型,MCM(Mathematical Contest In Modeling)和ICM(Interdisciplinary Contest In Modeling),两种类型竞赛采用统一标准进行,竞赛题目出来之后,参数队伍通过美赛官网进行选题,一共分为下面6种题型。 ! U, u/ L0 N1 S ! D8 |, ]7 x1 j% y5 _! A+ r c2 {% a1 @9 x" C
0 w( }3 o# P& g, j, Y0 `6 _ 在上面六种题型里,本人觉得连续型最好做,应该优先选择。连续型题目找数据及相关资料比较容易,编程能力要求不是很高,要写的代码也不是很多,最重要的是,选择该题的队伍也不是很多,不用担心竞争过于激烈的问题。事实上,我觉得数模美赛的选题,不应该等题目发布后才开始选,应该在竞赛开始前的一个月就对美赛的题型进行研究,看一看这六种题型往年的O奖论文,分析一下这六种题型如何建模和编程,找到最适合自己的题型。不同的题型,建立的模型和编程所需要的算法还是有比较大差别的。在美赛开始前就确定自己要做哪类题目,然后多看多研究该类题型的O奖论文,事先有了准备,在美赛中才能做到胸有成竹、游刃有余。+ ~/ o% t) W% V. w
) t% y' U( o* ]* A3、分工合作 / a& z& |; [" B. D# M0 ?: n/ w/ g: m# {
美赛是3人一支队伍,如何在短短的四天三夜里完成论文、建模和编程这三部分,分工合作很重要。在美赛开始前4个月,我们的计划是每个人负责一部分,即小A负责论文写作,小B负责建模,小C负责编程。但是在美赛过程中,我们发现论文写作的工作量比较大;建模的工作量也很大,要建立的模型有6、7个;编程的工作量相对少很多,比较轻松;所以实际上我们最终的分工是:小A负责论文写作,小B负责建模和编程,小C也负责建模和编程,小B和小C的工作结束后,就去帮助小A写论文中比较简单和不是很重要的部分,比如Strengths and Weaknesses、Conclusion and Future Work等。1 W b' B1 X0 L9 ^3 I( e1 k
# a; p- g+ S! ^4 m7 a 总之,在这次美赛过程中,我最大的体会是,编程这块比较简单轻松,工作量很少,没必要专门分出一个人来负责这块。论文写作和建模这两块工作量比较大。我觉得比较好的分工是:小A负责论文写作,小B负责建模和编程,小C也负责建模编程,小B和小C的工作结束后,就去帮助小A写论文中比较简单和不是很重要的部分。如果可以的话,最好在竞赛前进行一次演习,让队友之间的分工合作磨合得更协调。 5 R% U! Z: J: e/ D- j7 e! Z N/ j" \0 h" h3 L- u6 e4、论文写作3 m( a( E I7 n0 g6 X9 l6 }9 A
+ a2 h' O$ W+ R( A
论文写作在数学建模竞赛中至关重要,因为我们最终提交的就是论文,衡量我们获奖与否的依据是提交论文的质量。笔者在这次竞赛中并不负责论文写作,下面我把我们队长家瑜姐在本次美赛中的论文写作经验奉上:https://blog.csdn.net/qq_40481843/article/details/86692343* ]# y, \" p1 }9 v, o. ]
( n; f8 n. E$ \- _, P
5、建模4 p% e D3 b' f, e
( p! q6 R0 G1 i 笔者在竞赛前以为我只需负责编程部分,所以在建模这块事先并没有接受系统的训练,只是在考前几天看了几篇O奖论文,对建模只有个大概的了解。在美赛过程中,发现建模这块工作量比较大,一个人根本忙不过来,笔者只能仓促上马,临急磨枪,学习建模,协助师姐。下面我把我们队伍的建模体会与大家分享:0 m# |. y, F4 Y6 f( V2 X
- z0 j: U% y$ y
拿到英文题目后,我们对其进行翻译,然后深入讨论研究题目,我们用红色对题目作了批注和补充,确定了思路和建模的大致框架。" x. ~3 i+ y5 V' B& d$ x! }( W+ B
5 S2 Q5 ^$ D/ m+ a. C5 K! g
6 `0 C: L) T P. ]9 U/ z' b) r: z3 o/ ]: i- u+ g& p
在建模过程中,我觉得搜索资料非常重要。 数学建模,我觉得并不是完全靠自己绞尽脑汁去空想一个模型出来,而是借用已有的模型去修改或补充,使其能为自己所用。比如:在这次竞赛中,龙的生态影响模型构建我就参考了两篇别人数学建模论文中的模型。龙的生态影响模型可以由两个小模型组成,分别是龙对其它生物的影响模型、龙对环境的影响模型。龙对其它生物的影响模型中,龙与其它生物的关系主要是捕食关系,然后我就在百度上搜索有没有数学建模论文是涉及捕食关系的,结果真让我找到了一篇关于狐狸与兔的捕食关系数学建模论文,然后我参考该论文,对其进行修改使其符合龙对其它生物的影响。在龙对环境的影响模型中,我参考了这篇论文:http://www.doc88.com/p-7768622967088.html,学习它是如何使用层次分析法来衡量对生态系统的影响程度。总而言之,我们要善于查找、大量地查找网上是否有符合我们需要的资料。 # ^! }' H9 e$ v2 X' \, J; ^9 ~9 _( M) i2 H+ s/ v6 H+ E) p
如果在网上找不到类似的模型怎么办呢?那我们只能靠自己构建模型了。比如:养三条龙需要多少面积?在这个问题中,我找不到类似的模型。我只能退而求其次,寻找一些与其比较密切的研究资料:动物的栖息面积与什么有关等,最终我们找到了动物的种群密度与体重存在一定的关系。这个关系是什么呢?这就需要我们去构造公式。请记住:要大胆地构造公式,只要该公式大致符合常理、曲线趋势符合生活实际即可。请记住:不要想着我们构造的公式能够经得起科学家的检验,不要想着我们构造的公式能像万有引力定律公式那么严密。在短短的四天三夜里,你想创造出经得起世人检验的公式,想成为名垂千古的科学家?想多了!!!请记住:所有数学建模论文构造的模型看起来合情合理即可,不要妄想它们能完完全全应用于生活实际。 ! l, \5 P' U8 Z! E5 ], M9 p1 N6 f" W1 k; _' o3 `
在建模过程中,常常要查找资料,常用的查找资料的网站:百度、百度文库、知网、维普、谷歌学术等。0 N) W h( W M( _; C
1 D/ ]7 U. ?& G" N" V
6、编程 9 Q3 c1 a4 [! r( c; [ 2 d( Y- J$ e# n, W0 M; k" x+ G 数学建模使用的编程语言一般是Matlab。本人觉得,在数模美赛A题中,对编程能力的要求不是很高,只需掌握Matlab基本语法体系和数学建模中常用的Matlab算法即可。要掌握的Matlab知识如下: + w$ l. o( w0 \/ \# D! E; L% l6 l" v) ~3 Z
' f' S' P/ \. i% q X/ q7 o
, z7 M1 Y4 M, v# F 注意:" Q# u7 ], |! R% A) `
0 }" D# d. e W5 Z/ y" p. R" X
(1)在竞赛开始前,最好先准备好Matlab的各种常用算法模板,比如:二、三维作图、层次分析法等。竞赛时,可以直接套用准备好的代码,大大地减少了编程的时间。( H" k, n. C# S: a7 O( K5 `! z
n+ ^+ _. W9 i9 u
(2)二、三维作图在数学建模竞赛中肯定会用到的。为了让贴到论文中的图更漂亮,要学会通过代码来控制图片的大小(通过figure来设置图片大小为320x320或500x500)、设置坐标轴的粗细、字母上下标、线条颜色等细节。二、三维作图的参考链接:https://blog.csdn.net/qq_41149269/article/details/86603943; J3 F5 D; o. k# ^- t8 q' H- U
+ l- L7 N! i" t8 B' T
(3)要有良好的代码风格,不然写出的代码真的有点难看。 0 _. f& l& \) A8 T- |: t / v# t g. z: n; N7、入门资源. Q* {9 e4 g: }8 `
4 z( D. ~+ W! [7 s' s n% P: I 上面说了那么多,对于还没接触过数学建模的同学来说可能是一脸懵逼。哈哈哈,我贴心地为大家准备了建模、编程、往年O奖论文讲解这三部分的视频教程,相信对大家入门数学建模会有很大的帮助。 3 F9 J, A* i5 r2 l6 \9 e! a # [ r8 q) g9 V) s4 Z5 ]( p' \建模:https://www.icourse163.org/course/cumcm-1001674011 0 w' X1 ]: m8 {1 D- J7 l8 X% z$ `+ i0 C# Y9 i) a
编程:https://www.bilibili.com/video/av39752280/?p=16 r3 G) X9 [4 v" O% H( }
- n$ V7 K6 ~" R L
论文写作:https://blog.csdn.net/qq_40481843/article/details/86692343 * K+ Z5 u% L1 b$ i/ P& x7 g1 X7 C2 \# `, @) b! Q+ c
往年真题视频讲解链接:https://pan.baidu.com/s/130lwterZvM4DbaimCSRQxg 提取码: k9td 9 r6 I3 W- I* F7 S
1 J+ ~ f/ ^+ f% k本队伍2019年美赛的培训课件、论文、代码:https://github.com/xiexupang/2019MCM-A( e) v- f' s- i b o3 s
———————————————— ) Z- C& b, z6 C m1 J版权声明:本文为CSDN博主「谢旭庞」的原创文章。 l0 {8 y; I* F7 b: r& G原文链接:https://blog.csdn.net/qq_41149269/article/details/86881902) F- {/ e; u* ~% \5 h" w! H0 m
$ ~2 g9 [! I: [0 e# I5 o P6 y7 C
3 x4 `# u/ q8 S% z% g, r