沙元霞,郭 爽
(大慶師范學院數(shù)學科學學院,黑龍江大慶 163712)
近幾十年來,數(shù)學科學在各領域扮演著越來越重要的角色。數(shù)學建模以及相關計算逐漸成為各工程領域中的關鍵工具,數(shù)學技術作為數(shù)學與計算機的結合,已經(jīng)成為現(xiàn)代高新技術的一個重要組成部分[1]。Matlab作為一款功能和規(guī)模都比其他數(shù)學軟件強大的數(shù)學軟件,能夠非常方便、快捷、高效地解決數(shù)學建模中所涉及的眾多實際問題[2]。本文針對數(shù)學建模過程中常出現(xiàn)的一些難點問題,提出了使用Matlab軟件進行難點處理的一些對策和方法。
數(shù)學建模主要步驟:(1)根據(jù)研究對象的特點,確定建模的方法;(2)對資料進行分析,提出合理的必要的假設;(3)根據(jù)假設以及題目目的,建立數(shù)學模型;(4)求解模型并進行誤差分析和最優(yōu)化決策。
通過多年的數(shù)學建模課程教學和建模競賽輔導,我們看到在建模過程中,存在很多采用傳統(tǒng)數(shù)學方法無法解決的難點問題。總結為以下四個方面:
難點1:在模型求解步驟中,很多時候需要求出模型的數(shù)值解或近似解,這是困擾絕大多數(shù)建模者的真正難點所在。因為事實上,對具體的生產(chǎn)實際問題建模時,構造的數(shù)學關系式經(jīng)常是十分復雜的,如“求高階的微分方程的數(shù)值解”,若采用傳統(tǒng)的“龍格-庫塔算法”手工求解,其計算過程是極其復雜的,并且難以求出較為準確的數(shù)值解,更何況這些算法即使是數(shù)學專業(yè)的高年級的學生才接觸一些皮毛。若是數(shù)學計算能力稍弱一點的學生,在模型求解這一塊將很難進行下去。試想,若數(shù)值解無法求得,又怎么得到數(shù)據(jù)點?又怎么作圖分析呢?
難點2:有時模型所求的并非是一個解析解,而是要求建模者對問題發(fā)展趨勢進行預測。建模過程中經(jīng)常需要建立若干變量之間的關系,往往無法通過合理的假設,或無法通過定理、原理,經(jīng)過有機分析而得到,只能借助于所得的數(shù)據(jù)和數(shù)據(jù)所含信息,選擇適當數(shù)學形式擬合變量之間的關系,從而揭示變量的內在聯(lián)系,這一過程不得不依靠Matlab一類數(shù)學軟件。
難點3:面對優(yōu)化問題時,簡單優(yōu)化問題是容易解決的,但對于復雜的優(yōu)化問題、大規(guī)模的計算、一般情形的推廣卻是棘手的。例如:求兩點間的最短路可算,但92個點中求任意兩點的最短路再進行比較卻是不可算的。這正是2011年全國建模競賽B題所需求解的部分內容,短短的建模競賽三天時間都不夠計算所用。對于這種一般情形的、大規(guī)模的、復雜的優(yōu)化問題,除了借助于數(shù)學軟件編程解決之外別無他法。
難點4:有的建模問題中數(shù)據(jù)多,并且雜亂無章,以致于對數(shù)據(jù)資料分析時無法快速高效地撥絲抽繭,觀察和研究出實際對象的固有特征和內在規(guī)律,抓住問題的主要矛盾,建立起反映實際問題的數(shù)量關系。例如2011年5月的全國大學生數(shù)學建模夏令營的A題。
Matlab包含計算矩陣、分析數(shù)值、可視化科學數(shù)據(jù)以及非線性動態(tài)系統(tǒng)的建模和仿真等諸多強大功能,它能為其他工程領域必須進行有效數(shù)值計算提供了一種全面的解決方案,代表了當今國際科學計算軟件的先進水平。
計算是數(shù)學活動(包括數(shù)學建模)的一個重要組成部分,能借助計算機來解決較為復雜的數(shù)學計算問題可以為建模者節(jié)省許多寶貴的時間,將其從繁雜的計算中解放出來,以便能夠探究計算背后更為深奧的數(shù)學規(guī)律。例如求微分方程近似解,在技術上求解有一定困難或者在初等數(shù)學范圍內解不存在,此時應用MATLAB軟件求出的近似解或許是一種有效的辦法。
當建模時需要進行涉及微積分計算、矩陣計算、微分方程計算、概率統(tǒng)計計算和處理這四方面科學計算時,建議建模者首先考慮采用Matlab軟件的強大計算功能。
例1求解微分方程組(Lorenz模型)[4]
細胞與細胞外基質形成動態(tài)力學環(huán)境,細胞內肌動-肌球蛋白收縮產(chǎn)生力,通過黏著斑傳遞給細胞外基質,在黏著斑處產(chǎn)生細胞牽引力[1-3]。細胞與細胞外基質之間的力學作用被認為是影響細胞黏附、遷移、增殖和凋亡等生物過程的關鍵因素[4-10]。研究細胞在彈性基底上產(chǎn)生的動態(tài)牽引力對于了解細胞如何感知周圍環(huán)境力學性能變化具有重要的意義,因此,測量細胞牽引力是定量研究細胞遷移、收縮和分裂的重要方法。細胞牽引力非常小,大約為皮牛頓到納牛頓量級,發(fā)生在納米到微米尺度上[11]。

該方程是非線性微分方程,所以不存在解析解,只能用數(shù)值解法求解。設其中參數(shù)的值分別為,,初值設為,MATLAB程序如下:

運行該方程數(shù)值解如圖1,2所示:

圖1 狀態(tài)變量時間圖

圖2 相空間三維圖
實際建模時,絕大多數(shù)情況下并不需要求出某個具體的數(shù)值解,而是想看看隨著時間的變化,事情的發(fā)展趨勢是怎樣的,即對實際問題作預測。此時作圖分析是最好的手段。而Matlab恰恰具有強大的圖形處理能力,它提供了豐富的對二維和三維圖形進行處理的函數(shù),尤其是其擁有大量的能夠對繁雜數(shù)據(jù)進行綜合分析并實現(xiàn)數(shù)據(jù)可視化的函數(shù),從而擴充了Matlab語言在數(shù)學建模的應用,使得問題更加確,也更易揭示問題的本質。
例2 07年華中數(shù)學建模競賽[3]中就有用曲面圖表現(xiàn)函數(shù)z=x^2+y^2,若用Matlab便可輕松編寫程序:

得到圖3:

圖3 曲面圖
通過例2可以看到,應用Matlab軟件不僅可以繪制直觀、形象、有利于模型分析的圖形,而且調用命令格式簡單,易于掌握。
例3:為迎接2008年奧運會,滿足公眾查詢公交線路的選擇問題,某公司準備研制開發(fā)一個計算機系統(tǒng)解決公交線路選擇問題。
例3為2007年的高教杯數(shù)學建模競賽試題,這個模型的主要目的是線路選擇的模型與算法。需要解決的問題是:對任意給出的兩公交汽車站點之間線路(只考慮公交汽車線路),選擇問題的一般數(shù)學模型與算法。求出以下6對起始站到終到站最佳路線。
這種規(guī)劃模型雖可用單純型法、匈牙利法手工求解,但較為繁瑣,計算量巨大而且耗費大量時間。而Matlab各種工具箱(TOOLBOX)就可以方便、快捷地使用復雜的理論公式,免除了自己編寫復雜而龐大的算法程序的困擾。尤其是在做數(shù)學推導和理論驗證時,有了這些功能豐富的工具箱,問題就變得十分簡單。
無論是從事數(shù)據(jù)整理與計算結果分析的科研人員還是參加建模競賽的大學生,都要面對難點4。面對一大堆離散數(shù)據(jù),為了獲得更為豐富的信息,找到數(shù)據(jù)的內在關系,就必須對數(shù)據(jù)進行插值。數(shù)學建模者能快速而輕易地從中提取有意義的特征和結果,探索、發(fā)現(xiàn)規(guī)律,進而較快地找到數(shù)學建模的方法。在建立數(shù)學模型的過程中,變量間未必都有線性關系,如服藥后血藥濃度與時間的關系;疾病療效與療程長短的關系;毒物劑量與致死率的關系等等常呈非線性曲線關系。即使建模者手中有大量的數(shù)據(jù),也很難從中抽象出具體函數(shù)關系。這種關系的表現(xiàn),莫過于圖形手段,所以再使用擬合的方法,尋找出滿足數(shù)據(jù)點上擬合值與數(shù)據(jù)值差的平方和最小的那條曲線。Matlab中的曲線擬合(curve fitting)就是指選擇適當?shù)那€類型來擬合觀測數(shù)據(jù),并用擬合的曲線方程分析兩變量間的關系。可見,Matlab軟件恰恰有很強的解決常見擬合問題的能力。
例4:2009年全國數(shù)學建模競賽題:混凝土的抗壓強度隨養(yǎng)護時間的延長而增加,現(xiàn)將一批混凝土作成12個試塊,記錄了養(yǎng)護日期x(日)及抗壓強度y(kg/cm2)的數(shù)據(jù):

對于這種情況,我們需要用Matlab作輔助建立非線性回歸模型,并對得到的模型和系數(shù)進行檢驗。(注明:此題中的+r代表加上一個[-0.5,0.5]之間的隨機數(shù))
模型程序為:

運行并輸出結果:

有了這些參數(shù),就可以得到非線性函數(shù):

這樣的非線性函數(shù)不僅精確,而且求解更加容易。如果能有圖像加以輔助就更好了,應用Matlab軟件得到下面圖形:

圖4 輔助圖
由上述四方面可以看出Matlab在處理數(shù)學建模中難點的巨大優(yōu)勢,無論是數(shù)學模型的建立階段,還是模型的求解、分析階段,Matlab都有其他語言無法比擬的方便、快捷、高效的運用,能使數(shù)學建模者將主要精力放在問題的分析、模型的建立、算法研究等方面,既節(jié)約了時間,大大提高了數(shù)學建模的效率,又有利于提高數(shù)學建模的質量和解決實際問題的能力,豐富了數(shù)學建模的方法和手段,有力地促進了問題的解決。
[1]姜啟源.數(shù)學模型[M].2版,北京:高等教育出版社,1993.
[2]蕭樹鐵,姜啟源.數(shù)學實驗[M].北京:高等教育出版社,1993.
[3]王沫然.MATLAB6.0與科學計算[M].北京:電子工業(yè)出版社,2001.
[4]薛定宇,陳陽泉.高等應用數(shù)學問題的MATLAB求解[M].北京:清華大學出版社,2004.