參加數(shù)學(xué)建模競(jìng)賽為什么一定要學(xué) MATLAB?前無(wú)古人的 Best-Concise 反問(wèn):
不學(xué)好 MATLAB,還敢建數(shù)學(xué)模型嗎?
是啊,如果 MATLAB 編程不夠強(qiáng),就會(huì)擔(dān)心建出的模型求解不出來(lái),就會(huì)導(dǎo)致不敢放開思路建模,那么就不會(huì)建出好模型, 后面的論文什么的就都是浮云了。所以模型的求解必須重視, 而 MATLAB 是模型最有力的求解工具,因此 MATLAB 的編程水平對(duì)備戰(zhàn)全國(guó)賽的模友來(lái)說(shuō)是至關(guān)重要的。
如何不考慮時(shí)間, 只要掌握 MATLAB 編程技巧和理念,對(duì)于建模中的問(wèn)題, 總會(huì)可以用 MATLAB 可以解決的,但是畢竟是比賽,是有時(shí)間限制的,所以還要提高速度、效率。所以為了備戰(zhàn)數(shù)模比賽,在模型的求解環(huán)節(jié), 除了要掌握基本的 MATLAB 編程技巧, 還要積累一些常用的算法、函數(shù), 這樣比賽的時(shí)候不用花太多的時(shí)間去消化算法,也不用花太多時(shí)間去摸索函數(shù)用法,這樣求解效率就會(huì)提高不少。
如何提高 MATLAB 編程水平
MATLAB 本身很簡(jiǎn)單,不存在壁壘,最大的問(wèn)題是在沒(méi)有樹立正確的 MATLAB 使用理念,沒(méi)有樹立對(duì) MATLAB 使用的信心。這是因?yàn)樵趯W(xué)習(xí) MATLAB 的時(shí)候,一直機(jī)械地、被動(dòng)地學(xué)習(xí)知識(shí), 而沒(méi)有掌握技巧去搜索知識(shí)、運(yùn)用知識(shí)。如果掌握正確的 MATLAB 使用方法, 只要掌握些小技巧, 在半小時(shí)內(nèi)就可以很快地變成 MATLAB 高手了,高手的區(qū)別就只在一點(diǎn),就是一直有自己的編程思路, 需要什么知識(shí)就是學(xué)習(xí)什么知識(shí), 然后繼續(xù)按照自己的思路編程,雖然在過(guò)程中, 要不斷學(xué)習(xí), 但最高效,也最容易建立的對(duì) MATLAB 的使用信心。
正確且高效的 MATLAB 編程理念就是以問(wèn)題為中心的主動(dòng)編程。我們傳統(tǒng)學(xué)習(xí)編程的方法是學(xué)習(xí)變量類型、語(yǔ)法結(jié)構(gòu)、算法以及編程的其他知識(shí),既費(fèi)勁又沒(méi)效果, 因?yàn)閷W(xué)習(xí)時(shí)候是沒(méi)有目標(biāo)的, 也不知道學(xué)的知識(shí)什么時(shí)候能用到,而等到能用到的時(shí)候,早就忘掉了,又要重新學(xué)習(xí)。
而以問(wèn)題為中心的主動(dòng)編程,則是先找到問(wèn)題的解決步驟,然后在 MATLAB 中一步一步地去實(shí)現(xiàn), 在每步實(shí)現(xiàn)的過(guò)程中,遇到問(wèn)題后,如果是需要知識(shí)就是查詢知識(shí)(互聯(lián)網(wǎng)時(shí)代查詢知識(shí)還是很容易的), 然后定位到方法,再根據(jù)方法,查詢到 MATLAB 中的對(duì)應(yīng)函數(shù),查看函數(shù)的用法后,回到程序繼續(xù)解決問(wèn)題。 通過(guò)這樣的方式,逐步解決整個(gè)問(wèn)題。在這個(gè)過(guò)程中, 知識(shí)的獲取都是為了解決問(wèn)題的,也就是說(shuō)每次學(xué)習(xí)的目標(biāo)都是非常明確的, 學(xué)完之后的應(yīng)用更會(huì)強(qiáng)化對(duì)知識(shí)的理解和掌握, 這樣即學(xué)即用的學(xué)習(xí)方式是最有效的。
最重要的是,這種主動(dòng)的編程方式會(huì)讓學(xué)習(xí)者體驗(yàn)到學(xué)習(xí)的成就感,有成就感,自然就強(qiáng)化對(duì)編程的信心了。這種內(nèi)心的自信和強(qiáng)大在建模中會(huì)發(fā)揮意想不到的力量,所為信念的力量。
如何快速提高 MATLAB 數(shù)學(xué)建模實(shí)戰(zhàn)水平
既然是實(shí)戰(zhàn), 就要首先了解數(shù)模建模中常見的模型和求解算法??v觀數(shù)學(xué)建模中的種種問(wèn)題, 可以將這些問(wèn)題劃分為 5 類:
各類也都有常用的方法,只要將這些常用的方法都訓(xùn)練到, 那么在實(shí)際比賽中, 再遇到類似的方法, 那么再使用起來(lái)就會(huì)順手多了, 甚至有些程序框架拿過(guò)來(lái)直接用就可以, 關(guān)鍵平時(shí)還要積累這些常用方法的 MATLAB 程序段, 一定要自己總結(jié), 不能拿來(lái)主義。
數(shù)學(xué)建模是非常開放的問(wèn)題,對(duì)于 5 類問(wèn)題, 只要找 1 個(gè)題目, 然后將這類問(wèn)題的常用方法都用一遍,一是拓展建模思路, 二是將所有方法都用 MALTAB 實(shí)現(xiàn)一遍,這樣對(duì)所寫的程序的印象就更深刻, 這些程序自然也就變成自己日后的程序庫(kù)了。
再看這 5 類題型, 第二類和第四類, 方法相對(duì)單一,所花的時(shí)間不用太多;第一、三類, 是建模競(jìng)賽中的主力題型, 方法很多, 需要花的時(shí)間也就多點(diǎn); 第五類題型, 是最近幾年興起的新題型, 沒(méi)有固定套路, 也不要期望直接套用經(jīng)典模型了,而要認(rèn)真分析問(wèn)題, 從解決問(wèn)題的角度, 去客觀地解決問(wèn)題。這類題型,往往機(jī)理建模方法比較有效。
機(jī)理建模是從事物內(nèi)部發(fā)展的規(guī)律入手, 模擬事物的發(fā)展過(guò)程, 在這過(guò)程中建立模型,并用程序去實(shí)現(xiàn)。筆者認(rèn)為機(jī)理建模和求解是數(shù)學(xué)建模的最高水平,已經(jīng)達(dá)到心中無(wú)模型而勝有模型的境界了。所用的 MATLAB 編程也是最基本的程序編寫技巧, 關(guān)鍵是思想。
如何訓(xùn)練 MATLAB 數(shù)學(xué)建模技能
結(jié)合這 5 類題型, 可以參考如下步驟進(jìn)行訓(xùn)練:
第一部分: 了解MATLAB的基本用法, 包括幾個(gè)常用的命令, 如何獲取幫助, 腳本結(jié)構(gòu), 程序的分節(jié)與注釋, 矩陣的基本操作, 快捷繪圖方式;熟悉MATLAB的程序結(jié)構(gòu),編程模式,能自由地創(chuàng)建和引用函數(shù)(包括匿名函數(shù))。
聯(lián)系客服