一关于国赛
此外,在学习建模的过程中多问自己几个问题。
第一:这个模型是什么?这个问题对于初学者而言是最难的,很难用系统语言来描述一个模型,但这个过程是必须的,因为你只有把它用自己的话表达出来,才能真正的理解这个模型,在比赛过程中快速与队友、指导老师交流。提供一个小方法:每看完一章节,给队友讲一讲你对这章节内容的看法,你学到了什么,你觉得什么有价值,它的创新点在哪里。如果你能把这一点表达清楚,这一步你就做的非常棒了。
第二:它能够解决哪些问题。这个问题是最重要的,很多人学完很多资料但是看到题目后还是没有什么思路,很可能就是因为这一点。多想、多练、多看、多做总结,经验是最好的老师。
第三:模型的具体操作步骤怎么实现?也就是操作层面上的问题,这个模型可以用什么软件实现?参数怎么调?有没有现成的代码?每一步的操作是否清楚?要做到什么程度呢——我们无需记忆模型具体的步骤但是要对它很熟悉,保证在需要用到这个模型时能很快把它融入到自己的题目中。融会贯通是很难的,这个过程里会遇到很多意想不到的、纸上谈兵时看不到的困难,具体的操作要受你的系统环境、软件版本、时间限制等各种方面的现实考验,没有什么捷径,只有平时多练,多做,才能临场时最快地找到解决的办法。
看论文,看往届优秀的获奖论文——国赛二等奖及以上,美赛O、F奖。(这里不推荐看美赛M奖论文是因为M奖中论文质量参差不齐,很大概率会遇到带有误导性质的文章,得不偿失)。
拿到论文,首先看对应的题目,时间充裕的话不妨自己先去拿着做着试试看,大概一天左右就会遇到瓶颈,发现这道题的难点在哪里,这时候再去看看别人的论文时如何解决这个问题的,就会有一种恍然大悟的感觉。
看论文一是看思路,而是看行文结构,例如图表如何做如何数据可视化,文章逻辑如何安排,问题结论如何表示,摘要如何书写等。
魔鬼藏在细节中,要努力使得论文尽善尽美,更好地表达自己的思想。
2、代码要整齐易读,写好注释:
除了方便自己读和修改,也方便队友对程序进行了解。需要注释的地方如:开头可以写一下程序的作用、所需数据格式、程序仍存在的问题等;重要的变量假设、Flag、累积量;每个模块的作用;关键的步骤和函数;常常要进行修改调整的语句……变量假设、函数名称也要易于识别。
3、利用好程序资源,在已有的程序上进行修改可以提高效率:
常用算法的源程序是很好找的,从代码网站、博客或者算法书上总能找到相关的编程案例,自己以前编写的程序也能拿来用而且用起来更顺手,所以不用执着于一定要自己从头到尾地编代码。平时多看一些案例,看到好的代码就收藏起来,分类保存好。
4、函数和工具箱的使用:
软件中常内置有功能丰富的函数和工具箱。有时我们会发现软件中意想不到地刚好存在能实现所需功能的函数,因此编程前可以先在网上搜一搜有没有这样的函数,没有的话再自己写,写好以后也能存起来以后用。工具箱的使用要看情况。有的算法不用工具箱实现比较好,用自己写的代码更灵活和利于修改,而且对于算法的原理也更清楚;依赖工具箱而对算法的解释不清楚的话可能会让论文失色,而且工具箱可能不利于大量数据的反复运算;有时候用工具箱可能更好,主要是对一些算法原理比较简单的运算过程可以减少编程、提高效率,而且有时候用工具箱求解出的数据格式或图表样式也比自己编程做出来的更整齐好看、看起来更专业。
5、积累程序调试的技巧:
对于自己的程序自己要做到完全把握,清楚来龙去脉,出现问题时快速找出问题所在。以MATLAB为例,利用好Workspace和Debug,对于代码节点和每个变量的数值变化能清楚了解。程序运行出岔子常常是因为以下一些原因:数据读取格式不对;变量行列数不匹配;循环出错,在“有些命令放在循环内还是外?”“从什么地方开始循环?”“什么时候停止循环?”“行列式循环时数据怎么对应?”这样的地方出问题;调用函数时变量格式不对;运算式写错,如括号丢失;画图时数据读取出错,如xy搞反。
6、通过编程制作好看的图表:
用excel能做一些图表。编程实现虽然麻烦一点,但能做出很多excel不能做的图。有时候在编程做图的过程中也会为了使图表更好看而不断调试。要熟练掌握一些通过编程画图的常用函数,包括二维图、三维图。除了折线图、直方图、拟合曲线图等一些常用数据统计图以外,还有聚类分析图、树状图、有限元分析图等一些和具体算法相关的图。把代码积累起来,方便展示数据时使用。推荐几款绘图软件:R、亿图(网站)、Eviews等。
总的来说,编程不是很麻烦的事情,主要就是要熟悉:基本语句,数据格式、调用和输出,基本运算符号,基本函数,软件常用视窗和命令。在此基础上能不断研究和积累新函数、新算法。关键还是要建好模型,在假设好变量和确定好要用的公式或算法后,编程就是用代码语言把它重述的过程,是自然而然的后续工作,是建模和论文的中间过渡且与两方都有重叠。
写作
论文写作是比赛获奖至关重要的一步,建模和编程都需要论文来表达,能不能把内容思想结论准确的传达给评委就是写作的同学需要做的事情。
写作中要注重两点。一是要保证论文整体的逻辑性很强,保持前后贯通:论文的各部分的应当是顺接或相互照应的关系,而不是毫无关联的独立部分。国赛题目会有几个小问引导论文展开,而美赛则是一个大问题整体,要做到论文脉络清晰,就要对题目做合理的拆解。二是令人信服,模型结果可以不理想,但是呈现于论文上的一定是有理有据、能够自圆其说的建模过程与模型结果。除了写作的这两点外,论文的排版与插图也很重要,这两个是论文中最直观的。排版大多数推崇用latex,但是latex的弊端就是论文只有一个人可以进行排版,队友只能围观,而word可以队友一起做。至于是不是latex得奖率更高,wps一样拿奖。(更推荐三个人都用office同一版进行写作排版,并且公式采用mathtype)
写论文一定要要深入理解模型。不要因为自己负责写论文就把建模和求解的任务全交给队友来做,造成写论文者初期很闲、后期赶时间的情况。要尽可能地解放发展生产力,团队中的每个成员都要有大局观。
关于写作,推荐比较好的准备方式是多阅读优秀论文,学习别人的行文结构,然后写作的同学一定要记得多学点图表制作方面的内容,非常重要。
© 2024. All Rights Reserved. 沪ICP备2023009024号-1