摘 要: 數學建模是用數學方法來解決實際問題的一項實踐活動。在這過程中所遇到的問題極少是純數學方面的問題,基本上都是交叉學科的問題。文章討論了在不同學科中遇到的數學建模問題時如何設計程序,運用實例研究了綜合運用概率統計、運籌學、圖論、數論等知識的程序設計。
關鍵詞: 數學建模 程序設計 交叉學科
1.引言
數學建模就是通過對實際問題的分析、抽象和簡化,明確實際問題中最重要的變量和參數,并應用某些規律建立起變量、參數間的確定的數學問題(也可以稱為一個數學模型),再用精確的或者近似的數學方法求解之,解釋驗證所得到的解,從而確定能否用于解決實際問題的多次循環、不斷深化和完善的過程。[1]數學建模是實踐教學,而實踐教學是培養學生創新精神和實踐能力的重要手段,是提高學生綜合素質的關鍵環節,是當前高校教學改革的重要內容。[2],[3]數學建模在一定程度上是一個學校大學生創造性思維及解決實際問題能力的一個指標。它正在全國乃至世界各大中專院校中受到教育機構的重視,也受到學生的青睞。就我國而言,教育部高等教育司已經在2002年確立了“新世紀高等教育教學改革工程本科教育教學改革立項項目”,即“將數學建模思想和方法融入大學數學主干課程教學中的研究與試驗”。
數學建模是用數學方法來解決實際問題的一項實踐活動。在這過程中所遇到的問題極少是純數學方面的問題,基本上都是交叉學科的問題。在數學建模的教學過程中,要求教師傳授的是數學建模的思維方法,如優化原理,評價方法,假設與現實的矛盾,等等,而不是某一具體問題的解決方案。
2.對稱原理在有約束條件下對稱方程極值中的運用
2.1連續問題建模與元胞自動機程序設計
許多學科中的問題都屬于連續問題。建模時如果用與連續性相關的學科,如微分方程、微積分、偏微分方程等去解決,則需要較深厚的理論基礎,這是我們學校學生的弱項。但有些連續問題可通過離散化處理為離散問題,如交通流、經濟時間序列、動態規劃等問題,這就可以考慮用元胞自動機來進行程序設計。但在具體實施時,因學科不同而導致程序設計方法不同。例如會出現元胞移動不按整數元胞格運行的情況。在2005年國際數學建模比賽的試題中即遇到了這樣的問題,見問題1。處理的方法可以將非整數元胞格轉化為元胞按概率移動的規則,這時就把概率知識應用于其中,不僅避免了復雜的理論證明過程,而且十分符合事理邏輯。這種方法是把交通、概率統計、程序設計等三個學科方面的問題綜合到一起來考慮的,使得十分棘手的問題得到很好的解決。
問題1:設一批旅客在飛機過道上非勻速行進,如何用元胞自動機來描述他的運動?
圖1(a)元胞在l軸上不勻速運動;(b)元胞在l軸上以概率p停止、以概率1-p行進
這顯然可用一維元胞自動機來描述。但問題是元胞C并非按勻速運動,而一般情況下元胞都是按勻速運動來說明它的規律的。為了解決這個問題,可引入概率知識。如圖1(b)中,元胞C以概率p停止、以概率1-p行進,則可方便用程序來執行。
2.2符號動力學建模與程序設計
混沌動力系統中尋找短周期軌道往往是非常耗時的,如文獻為了尋找周期為10的軌道,編制的程序所耗計算機機時達半小時以上。這個模型可表示為問題2。其它學科中也有通過計算機枚舉再篩選的問題,如果編制的程序不合適,則會導致計算機無法執行。這時利用數學原理事先作一些證明或推理會給程序設計帶來很大的便利[4]。
問題2.設有兩個符號時間序列C和D,其中
我們規定“1”比“0”大,若序列與的前個字符相同,而S的第n+1個字符比S的大,則順序準則為S>S。任意可行序列S必須滿足允字條件,即S中任意0的后繼序列比D小,任意1的后繼序列比C大。那么如何檢測出周期為15以內的所有符號序列?
我在文獻中,先證明了一個較簡單的命題,即對于任意兩個互素的正整數a,b∈Z,a,b>1存在非負整數m、n,使得任意不小于ab的整數c,都可以表示為am+bn=c(am+bn稱作a、b的非負線性組合);再提出了單調1—基本字節和單調0—基本字節的概念并指出了它們的作用,克服了Sarkovskii關于連續整數周期點對于函數連續性的限制,而所討論的Lorenz映射也沒有作每個單調支為線性的要求。給出了一些例子中連續整數周期軌道的符號序列的算法與表達形式,所提出的算法效率高,并可在作相應變化后推廣到其它動力系統中。這樣編制的程序比國內外獲得同樣結果的時間縮短60%以上。
2.3圖論中的網絡問題與程序設計
網絡問題是圖論中重要的組成部分。但往往因為其路徑與點的復雜關系而使程序設計變得很難。如問題3。
問題3.設一個無向圖如圖2。八個點彼此之間或者路徑連通或者不連通(指直接關系)。請問從到有多少條路徑?
圖2中,邊的一個數組表示兩個點之間的連通關系,如邊上的(0,1)表示從到是通的,反之則不通。
這個問題如果用不完全歸納法去編制程序,則計算量非常大,樣本量是8之大。但我們可以將線性代數知識運用進去。首先我們可以編制一個矩陣V。V中表示到的連通情況。我們定義=0,是考慮到程序計算的方便。
我們注意到一個事實,即從到的一個路徑應是以第一行中的1作為左上角數字、以第八列的1作為右下角數字的一個滿秩子矩陣。有了這個線性代數的知識,我們編程就可以大大節省時間了。所得結果為: 3.結語
數學建模是一門綜合性的、交叉性的實踐科學,合理的程序設計會大大有利于問題的解決。而合理的程序往往需要多門學科的綜合運用,才能使程序的運行變得可行。在數學建模程序設計的教學中要傳授這種技巧,讓學生養成綜合運用各科知識來解決問題的習慣。
參考文獻:
[1]文玉嬋.數學建模競賽與學生綜合素質的提高[J].高教論壇,2006,(4):32.
[2]李大潛.數學建模與素質教育[J].中國大學教育,2002,(10):41.
[3]張英彥.實踐教學的理論基礎探析[J].中國大學教學,2006,(6):50.
[4]Z.Galias,P.Zglicqynski.Computer assisted proof of chaos in the Lorenz equations[J].Physica D.,1998,115,(3):165.
[5]王福來,達慶利.Lorenz映射系統中連續整數周期軌道的存在性[J]. 東南大學學報(自然科學版),2008,38,(5):923.