一關(guān)于國賽
此外,在學(xué)習(xí)建模的過程中多問自己幾個(gè)問題。
第一:這個(gè)模型是什么?這個(gè)問題對(duì)于初學(xué)者而言是最難的,很難用系統(tǒng)語言來描述一個(gè)模型,但這個(gè)過程是必須的,因?yàn)槟阒挥邪阉米约旱脑挶磉_(dá)出來,才能真正的理解這個(gè)模型,在比賽過程中快速與隊(duì)友、指導(dǎo)老師交流。提供一個(gè)小方法:每看完一章節(jié),給隊(duì)友講一講你對(duì)這章節(jié)內(nèi)容的看法,你學(xué)到了什么,你覺得什么有價(jià)值,它的創(chuàng)新點(diǎn)在哪里。如果你能把這一點(diǎn)表達(dá)清楚,這一步你就做的非常棒了。
第二:它能夠解決哪些問題。這個(gè)問題是最重要的,很多人學(xué)完很多資料但是看到題目后還是沒有什么思路,很可能就是因?yàn)檫@一點(diǎn)。多想、多練、多看、多做總結(jié),經(jīng)驗(yàn)是最好的老師。
第三:模型的具體操作步驟怎么實(shí)現(xiàn)?也就是操作層面上的問題,這個(gè)模型可以用什么軟件實(shí)現(xiàn)?參數(shù)怎么調(diào)?有沒有現(xiàn)成的代碼?每一步的操作是否清楚?要做到什么程度呢——我們無需記憶模型具體的步驟但是要對(duì)它很熟悉,保證在需要用到這個(gè)模型時(shí)能很快把它融入到自己的題目中。融會(huì)貫通是很難的,這個(gè)過程里會(huì)遇到很多意想不到的、紙上談兵時(shí)看不到的困難,具體的操作要受你的系統(tǒng)環(huán)境、軟件版本、時(shí)間限制等各種方面的現(xiàn)實(shí)考驗(yàn),沒有什么捷徑,只有平時(shí)多練,多做,才能臨場時(shí)最快地找到解決的辦法。
看論文,看往屆優(yōu)秀的獲獎(jiǎng)?wù)撐摹獓惗泉?jiǎng)及以上,美賽O、F獎(jiǎng)。(這里不推薦看美賽M獎(jiǎng)?wù)撐氖且驗(yàn)镸獎(jiǎng)中論文質(zhì)量參差不齊,很大概率會(huì)遇到帶有誤導(dǎo)性質(zhì)的文章,得不償失)。
拿到論文,首先看對(duì)應(yīng)的題目,時(shí)間充裕的話不妨自己先去拿著做著試試看,大概一天左右就會(huì)遇到瓶頸,發(fā)現(xiàn)這道題的難點(diǎn)在哪里,這時(shí)候再去看看別人的論文時(shí)如何解決這個(gè)問題的,就會(huì)有一種恍然大悟的感覺。
看論文一是看思路,而是看行文結(jié)構(gòu),例如圖表如何做如何數(shù)據(jù)可視化,文章邏輯如何安排,問題結(jié)論如何表示,摘要如何書寫等。
魔鬼藏在細(xì)節(jié)中,要努力使得論文盡善盡美,更好地表達(dá)自己的思想。
2、代碼要整齊易讀,寫好注釋:
除了方便自己讀和修改,也方便隊(duì)友對(duì)程序進(jìn)行了解。需要注釋的地方如:開頭可以寫一下程序的作用、所需數(shù)據(jù)格式、程序仍存在的問題等;重要的變量假設(shè)、Flag、累積量;每個(gè)模塊的作用;關(guān)鍵的步驟和函數(shù);常常要進(jìn)行修改調(diào)整的語句……變量假設(shè)、函數(shù)名稱也要易于識(shí)別。
3、利用好程序資源,在已有的程序上進(jìn)行修改可以提高效率:
常用算法的源程序是很好找的,從代碼網(wǎng)站、博客或者算法書上總能找到相關(guān)的編程案例,自己以前編寫的程序也能拿來用而且用起來更順手,所以不用執(zhí)著于一定要自己從頭到尾地編代碼。平時(shí)多看一些案例,看到好的代碼就收藏起來,分類保存好。
4、函數(shù)和工具箱的使用:
軟件中常內(nèi)置有功能豐富的函數(shù)和工具箱。有時(shí)我們會(huì)發(fā)現(xiàn)軟件中意想不到地剛好存在能實(shí)現(xiàn)所需功能的函數(shù),因此編程前可以先在網(wǎng)上搜一搜有沒有這樣的函數(shù),沒有的話再自己寫,寫好以后也能存起來以后用。工具箱的使用要看情況。有的算法不用工具箱實(shí)現(xiàn)比較好,用自己寫的代碼更靈活和利于修改,而且對(duì)于算法的原理也更清楚;依賴工具箱而對(duì)算法的解釋不清楚的話可能會(huì)讓論文失色,而且工具箱可能不利于大量數(shù)據(jù)的反復(fù)運(yùn)算;有時(shí)候用工具箱可能更好,主要是對(duì)一些算法原理比較簡單的運(yùn)算過程可以減少編程、提高效率,而且有時(shí)候用工具箱求解出的數(shù)據(jù)格式或圖表樣式也比自己編程做出來的更整齊好看、看起來更專業(yè)。
5、積累程序調(diào)試的技巧:
對(duì)于自己的程序自己要做到完全把握,清楚來龍去脈,出現(xiàn)問題時(shí)快速找出問題所在。以MATLAB為例,利用好Workspace和Debug,對(duì)于代碼節(jié)點(diǎn)和每個(gè)變量的數(shù)值變化能清楚了解。程序運(yùn)行出岔子常常是因?yàn)橐韵乱恍┰颍簲?shù)據(jù)讀取格式不對(duì);變量行列數(shù)不匹配;循環(huán)出錯(cuò),在“有些命令放在循環(huán)內(nèi)還是外?”“從什么地方開始循環(huán)?”“什么時(shí)候停止循環(huán)?”“行列式循環(huán)時(shí)數(shù)據(jù)怎么對(duì)應(yīng)?”這樣的地方出問題;調(diào)用函數(shù)時(shí)變量格式不對(duì);運(yùn)算式寫錯(cuò),如括號(hào)丟失;畫圖時(shí)數(shù)據(jù)讀取出錯(cuò),如xy搞反。
6、通過編程制作好看的圖表:
用excel能做一些圖表。編程實(shí)現(xiàn)雖然麻煩一點(diǎn),但能做出很多excel不能做的圖。有時(shí)候在編程做圖的過程中也會(huì)為了使圖表更好看而不斷調(diào)試。要熟練掌握一些通過編程畫圖的常用函數(shù),包括二維圖、三維圖。除了折線圖、直方圖、擬合曲線圖等一些常用數(shù)據(jù)統(tǒng)計(jì)圖以外,還有聚類分析圖、樹狀圖、有限元分析圖等一些和具體算法相關(guān)的圖。把代碼積累起來,方便展示數(shù)據(jù)時(shí)使用。推薦幾款繪圖軟件:R、億圖(網(wǎng)站)、Eviews等。
總的來說,編程不是很麻煩的事情,主要就是要熟悉:基本語句,數(shù)據(jù)格式、調(diào)用和輸出,基本運(yùn)算符號(hào),基本函數(shù),軟件常用視窗和命令。在此基礎(chǔ)上能不斷研究和積累新函數(shù)、新算法。關(guān)鍵還是要建好模型,在假設(shè)好變量和確定好要用的公式或算法后,編程就是用代碼語言把它重述的過程,是自然而然的后續(xù)工作,是建模和論文的中間過渡且與兩方都有重疊。
寫作
論文寫作是比賽獲獎(jiǎng)至關(guān)重要的一步,建模和編程都需要論文來表達(dá),能不能把內(nèi)容思想結(jié)論準(zhǔn)確的傳達(dá)給評(píng)委就是寫作的同學(xué)需要做的事情。
寫作中要注重兩點(diǎn)。一是要保證論文整體的邏輯性很強(qiáng),保持前后貫通:論文的各部分的應(yīng)當(dāng)是順接或相互照應(yīng)的關(guān)系,而不是毫無關(guān)聯(lián)的獨(dú)立部分。國賽題目會(huì)有幾個(gè)小問引導(dǎo)論文展開,而美賽則是一個(gè)大問題整體,要做到論文脈絡(luò)清晰,就要對(duì)題目做合理的拆解。二是令人信服,模型結(jié)果可以不理想,但是呈現(xiàn)于論文上的一定是有理有據(jù)、能夠自圓其說的建模過程與模型結(jié)果。除了寫作的這兩點(diǎn)外,論文的排版與插圖也很重要,這兩個(gè)是論文中最直觀的。排版大多數(shù)推崇用latex,但是latex的弊端就是論文只有一個(gè)人可以進(jìn)行排版,隊(duì)友只能圍觀,而word可以隊(duì)友一起做。至于是不是latex得獎(jiǎng)率更高,wps一樣拿獎(jiǎng)。(更推薦三個(gè)人都用office同一版進(jìn)行寫作排版,并且公式采用mathtype)
寫論文一定要要深入理解模型。不要因?yàn)樽约贺?fù)責(zé)寫論文就把建模和求解的任務(wù)全交給隊(duì)友來做,造成寫論文者初期很閑、后期趕時(shí)間的情況。要盡可能地解放發(fā)展生產(chǎn)力,團(tuán)隊(duì)中的每個(gè)成員都要有大局觀。
關(guān)于寫作,推薦比較好的準(zhǔn)備方式是多閱讀優(yōu)秀論文,學(xué)習(xí)別人的行文結(jié)構(gòu),然后寫作的同學(xué)一定要記得多學(xué)點(diǎn)圖表制作方面的內(nèi)容,非常重要。

? 2025. All Rights Reserved. 滬ICP備2023009024號(hào)-1