成為數學建模「高手」的八大奧秘

2021-09-24 19:03:26 字數 5750 閱讀 6082

馬壯世界上並沒有成為「高手」的捷徑,但一些基本原則是可以遵循的。

1、紮實的基礎

這裡所謂的基礎並不是單獨指的數學的基礎,而是指的一些基礎的知識也許就是一些常識,包括數學、物理、化學、生物、地理等方面。當然這些知識並不一定都是課堂上學到的,有些來自於生活。建模也許人人都會,但是不是人人都能建立出優秀的模型,當你發現你對一些現實生活中的小問題都沒有思路的時候,不是你沒有數學的天賦,而是你缺少對於生活中知識的積累。

不要一開始就去問學微積分有什麼用,

你要做的就是先把它學了,就算是記下來了也行,這樣你就不會在遇到類似「用最少的錢辦最多的事」這樣最常見的問題時感到無從下手。因此我們要做的就是盡可能多的涉獵知識,不要僅僅拘泥於自己的專業。

2、豐富的想像力

不要拘泥於固定的思維方式,遇到問題的時候要多想幾種解決問題的方案,試試別人從沒想過的方法。不要一拿到問題就首先將問題分類,好多人願意一上來就先將問題分類,例如分為優化問題,組合問題,方程問題等等。然後用與該分類相關的一些方法去解決問題。

現實的問題很多都是非常複雜的,單純的分類有時候是沒有任何意義的。這樣做不但侷限了你的思想,而且會使你變得更加固執。豐富的想像力會把你和問題拉得更近,開闊的思維可以讓你看到問題的各個方面。

當然豐富的想像力是建立在豐富的知識基礎之上的。

3、最簡單的是最好的

這也許是所有科學都遵循的一條準則,複雜的質能轉換原理在愛因斯坦眼裡不過是乙個簡單得不能再簡單的公式:e=mc2。簡單的方法更容易被人理解,更容易實現,也更容易維護。

遇到問題時要優先考慮最簡單的方案,只有簡單方案不能滿足要求時再考慮複雜的方案。當然即使要應用複雜的方案,也要採用循序漸進的思想,逐步地改進前乙個方案,不要一開始就嘗試非常複雜的方案。

4、不鑽牛角尖

當你遇到障礙的時候,不妨暫時遠離問題,看看窗外的風景,聽聽輕**,和朋友聊聊天,或者可以看幾本**。當我遇到難題的時候我通常會去找朋友聊天,朋友的一些善意的小建議甚至是鼓勵都會使我的大腦得到充分的休息。當重新開始工作的時候,我會發現那些難題現在竟然可以迎刃而解了。

5、對答案的渴求

人類自然科學的發展史就是乙個渴求得到答案的過程,即使只能知道答案的一小部分也值得我們去付出。只要你堅定信念,一定要找到問題的答案,你才會付出精力去探索,即使最後沒有得到答案,在過程中你也會學到很多東西。

6、多與別人交流

三人行必有我師,也許在一次和別人不經意的談話中,就可以迸出靈感的火花。多上上網,看看別人對同一問題的看法,會給你很大的啟發。當然不要把和別人交流的目的就看作是去獲取問題的答案,即使是學習方法的交流對你來說都是有益的。

7、良好的程式設計素養

隨著科學的不斷進步,越來越多的學科已經和計算機密不可分了,作為解決現實問題的主要手段之一的數學建模當然是離不開計算機了。有的人可能會認為搞數學建模的只要可以編寫一些簡單的程式就可以了,我對這一點持否定態度。對於程式設計來說,不管程式量的大小都是乙個工程,既然是工程就要按照質量標準來做,不是有iso9000質量標準嗎?

那個標準對於程式設計同樣適用。只有程式設計的質量得到了保證,計算機這個工具才能真正成為建模的有利**。

8、韌性和毅力

這也許是「高手」和一般人最大的區別。高手們並不是天才,他們是在無數個日日夜夜中磨鍊出來的。成功能給我們帶來無比的喜悅,但過程卻是無比的枯燥乏味。

你不妨做個測試,堅持每天去圖書館看1個小時的和數學建模相關的書或資料,堅持半年,如果能夠不間斷地完成這一工作,你就可以滿足這一條。

數學建模**寫作結構解析

(一家之言,僅供參考)

題目 題目是給評委的第一印象,建議將**所有模型或者演算法加入題目中,例如《用遺傳演算法解決***x問題》。

摘要 摘要無疑是**中最重要的部分。摘要應該最後書寫。再重申一遍:

在**的其它部分還沒有完成之前,你不應該書寫摘要。乙個理想的時間安排是把交卷前4個小時時間拿出來書寫摘要。

摘要應該使用簡練的語言敘述**的核心觀點和主要思想。如果你有一些創新的地方,一定要在摘要中說明。進一步,你必須把一些數值的結果放在摘要裡面,例如:

「我們的最終演算法執行效率較乙個簡單的貪婪演算法提高67.5 %,較隨機選擇演算法提高123.3 %」 。

理想的摘要長度是很難確定的。你必須把所有的核心觀點包含在摘要裡面,但是簡潔是非常重要的。一般情況下半頁左右比較合適,絕對不要超過2/3頁 。

摘要(甚至是整篇文章),應該由整個團隊合作完成。一種實現方式是,每個隊員單獨地花乙個小時(至少)時間寫乙個他們認為最好的摘要。然後,大家聚到一起,相互閱讀這些摘要。

摘要一般分三個部分。

1、 概述:用三句話表述整篇**中心。不要超過5行內容。

第一句,用什麼模型,解決什麼問題。

第二句,通過怎樣的程式設計思路來解決問題。

第三句,通過怎樣的模型檢驗來驗證結果的精度。說白了就是給個結果。

2、 分問題表述:

一般國內的競賽的題目,分3-4個問題。而第乙個問題建立的模型基本上是整篇**的精髓。下面的問題是對第一問題的檢驗及深入。

所以在分問題表述上第一問最好寫一下解題的思考過程,比如「我們通過大量不同模型的刷選,發現xx模型很好的解決改問題……云云」。這些表述會增加評委對**的好感度。下面的幾個問題,主要簡單寫一下解題過程及結果即可。

3、最後總結:「我們對此模型在***的驗證過程中發現了一些不足之後,並在模型評價上提出了n點建議。(n,不要超過4個哈)

問題重述(引言)

在引言中,你可以按照你自己的理解重述問題。從乙個建模問題中,幾乎每乙個參賽隊都可以找到乙個不同的「模型」來進行解決。賽後當你閱讀其他參賽隊的**的時候,你會驚訝地發現你們解決問題的方法非常不一樣,甚至,有的時候你會發現你們解決的問題也是截然不同!

因此你在引言中要將你對問題的理解以及你的工作所要解決的問題表述清楚。在這裡你也可以闡述一些問題的背景,或者展示一些你在研究問題過程中學到的東西。 引言通常應該在星期五下午首先書寫。

它可以幫助確保團隊所有成員的工作同步。

模型 這是**中的第乙個大的段落。 每乙個問題,都可細分為三個部分:模型,解決方案和驗證方法。模型可以用來生成資料,基於這些資料你可以測試你的解決方案。

一般來說,模型將出現在電腦中,所以我們面臨的挑戰是將程式**翻譯成文字,使得每一步都能自圓其說。 對於一些連續問題的建模,建議要對如何求解微分方程有乙個清楚的理解。別忘了,這是數學建模競賽,所以對於這個部分不要文過飾非。

它應該是簡單的——對於等級膨脹問題,本段將只涉及模擬一類中的一些實際等級,然後用一些方法,來扭曲它們,源自膨脹。 一般來說,對於離散問題,你需要熟悉如何產生具有不同性質的隨機數集合——這對於構建用於檢測你的演算法的測試資料集很有幫助。隊員應該在周五下午選擇構建這些模型,所以這一部分的草稿應該星期六完成。

解決方案

**的第二個大段落。在這個部分,我們描述資料處理方法,用於處理由第一部分產生的資料。這一部分實際上說明了我們是如何解決問題。

你必須有乙個以上的解決方案。再提醒一遍:乙個以上的解決方案。

為了證明你有乙個漂亮演算法,你需要有乙個底線,一些可以與你的解決方案相比較。你可以先從最簡單,最常見的演算法入手,然後逐步提煉,完善它,直到得到你的最好的解決方案。

一般情況下,對於離散的問題,最簡單的解決方案可能就是隨機選擇。在這一部分中,你需要證明你已經對問題進行了徹底的**,並且你已經嘗試了許多不同的解決方案。 即使你一開始就使用了最佳解決方案,然後嘗試了一些其它的方案,在**的書寫中,你仍然應該表示從最根本的解決方案入手,然後逐步細化,最終達到你的最佳解決方案。

如果你嘗試了更先進的演算法,但它的效率並不理想? 也要把它放在**中! 用來表示你已經從不同的角度進行了嘗試,即使你最好的解決方案並不是最複雜、最有趣的乙個。

在現實生活中,情況往往就是這樣

模型驗證

有的時候,問題中會清楚地描述目標要求,以便於你構建演算法的驗證方法。 對於很多問題來說,會有很多方法來比較不同的演算法,最好用多種方法來評價它們。評價方法應該由大家一起自由討論,可以持續整個星期天。

結果 在這裡,你需要表述測試結果。這一部分應該被特別關注,因為你已經將**的其它部分表述完成了。如果可能的話,你可以提供大量的資料來支援你的結論。

你的模型是不是將不同型別的資料集進行了整合?你的演算法是如何做的? 一般來說,這一部分將會以一些用到的引數結尾,這些引數出現在模型、演算法和測試方法中。

你應該嘗試盡可能大的引數空間。在這一部分你要證明你已經採用了乙個成熟的演算法來處理問題,並且你已經盡可能地考查了問題的所有方面。

具體資料的展示是比較困難的。提供一些圖表是最好的手段。 但最終如果你徹底**了模型,演算法和測試方法**現的每乙個引數,你將會有大量的資料需要羅列。

你應該以**的形式來羅列資料,但不要指望評委會看這些**。你需要在**下面寫一段解釋性的文字,指出資料的總的發展趨勢,異常情況和整體結果。

重要提示:許多參賽隊僅僅建立了乙個模型,提出了一種解決方案,執行了乙個檢測方法,給出了結果後就結束了。你必須要進行多次地測試!

你必須要確定你的解決方案是穩定的!它可以適應一些微小的環境變化,你可以給引數乙個微小的變化,除錯你的**,使它依然能返回正確的結果。讓評委看到你的解決方案是靈活和穩定的,或者誠實地承認你的演算法在一些特殊的情況下不能使用。

這樣你的**會顯得非常的全面。

結論——模型評價——改進方案

首先,提出你的基本結論,即使你已經在上乙個部分中提出過。 如:「從整體上看,演算法a的執行效率優於演算法b 34%,優於演算法c 67%」。

你需要用一些數字來概括所有的事情,可以平均化資料和用幾個提煉出的數字來對演算法進行排名。如果在結果部分裡,你已經提到「演算法a整體上看優於演算法b,而演算法b也有自己的一些優點。」在結論部分中,你要摒棄前面的說法, 直接說「a是最好的」,這也需要放在摘要當中,表明你已經得到了具體、全面的結論。

模型評價這一部分是解釋演算法好的地方和需要改進的地方的乙個比較好的途徑。推薦用乙個公告式的列表。除了概括性的文字以外,不用過多的解釋優缺點,結果部分中的主要觀點也要在這裡提及,同時提到缺點,以及任何限制性的假設。

為了證明你處理問題的方法是成熟的,提出改進方案的工作是必需的。是不是還有一些你想到的演算法,由於比較巨大,還沒有來得及在計算機上實現?競賽是有時間限制,所以這個地方可以顯示你對問題的乙個整體的把握。

總的建議:

我們已經談過了摘要(文章最重要的部分),略讀又是怎樣的? 比較容易得到評委注意的部分包括標題、公告式列表、**、圖形和數字。不要出現大的、不間斷的文字,它們會使得文章變得枯燥無味,而且可能永遠都不能被完全讀完。

你應該使得文字清楚、易讀,文字應該被規則性地斷開,通過標題,列表,數字,圖表,以及任何你能想到的,可以使得**變得有趣的東西。

標題:標題是非常重要的。如果你去掉文章中的所有正文,標題讀起來就像乙個大綱。

評委是會詳細看標題的,通過它評委可以了解到文章的流程(它應該和摘要中提到的整體思路相一致)。你至少應該安排兩層的標題(標題,子標題,二級標題),這會很容易把你的文章分成很多小塊,每一塊都會有明確的作用和目標。盡量不要出現一段或者兩段沒有標題的情況。

它不僅可以使你的**適合略讀,還有利於文章主題集中,防止走題。例如以下內容:公告列表:

(在問題分析中)

「為了建立這個模型,我們需要包括4個主要觀點」

第乙個觀點

第二個觀點

第三個觀點

第四個觀點

這些型別的列表,不管編號與否,都有三個非常重要的用途。

1. 打破了大塊文字,減少了閱讀的乏味感。

2. 強調重要的思想。

3. 當略讀的時候,容易得到關注。

資料**

如果你編寫了乙個能夠正常執行的電腦程式,不要浪費它! 執行它幾百次,每次輸入不同的引數值。然後以圖表(如果你能)或者**的形式組織資料。

對於它們,即使評委不加以細讀,也能留下深刻的印象。它們可以證明你有大量的資料來支援你的結論,你已經對問題**現的引數進行了徹底的**。

圖表和圖形

圖表可以勝過千言萬語。圖表在建模部分非常有用,可以展示你是如何處理問題的,圖形永遠是顯示資料的最好方式。

成為數學建模「高手」的八大奧秘

馬壯世界上並沒有成為 高手 的捷徑,但一些基本原則是可以遵循的。1 紮實的基礎 這裡所謂的基礎並不是單獨指的數學的基礎,而是指的一些基礎的知識也許就是一些常識,包括數學 物理 化學 生物 地理等方面。當然這些知識並不一定都是課堂上學到的,有些來自於生活。建模也許人人都會,但是不是人人都能建立出優秀的...

成為程式設計高手的八大奧秘

發布 白星海 中國電腦教育報 時間 2003 12 810 53 17點選 今日 1總計 7227 不知不覺做軟體已經做了十年,有成功的喜悅,也有失敗的痛苦,但總不敢稱自己是高手,因為和我心目中真正的高手們比起來,還差得太遠。世界上並沒有成為高手的捷徑,但一些基本原則是可以遵循的。1 紮實的基礎 資...

高手必知的商務談判與推銷八大技巧

摘要 銷售員們,你們服務的公司可以從以下三個方面提高利潤 1 銷售人員賣出更多的產品 2 不斷降低產品製造成本和其它營運成本包括營銷成本 3 以出色的談判技巧使同樣產品賣出更高的 很明顯相比 銷售員們,你們服務的公司可以從以下三個方面提高利潤 1 銷售人員賣出更多的產品 2 不斷降低產品製造成本和其...