摘要:文章首先介紹了建立數(shù)學(xué)模型的基本步驟與方法,通過具體實例討論了Matlab在數(shù)學(xué)建模中的應(yīng)用。將Matlab應(yīng)用在數(shù)學(xué)建模中,可以非常方便地求解模型,從而提高了數(shù)學(xué)建模的效率與質(zhì)量。
關(guān)鍵詞:數(shù)學(xué)建模;Matlab
近幾十年來,數(shù)學(xué)科學(xué)迅速向自然科學(xué)、工程、經(jīng)濟、管理和社會科學(xué)等各個領(lǐng)域滲透,在許多方面發(fā)揮著越來越重要的作用,在很多情況下起著舉足輕重、甚至決定性的作用;數(shù)學(xué)建模和與之相伴的計算正在成為工程設(shè)計中的關(guān)鍵工具,數(shù)學(xué)科學(xué)與計算機技術(shù)結(jié)合,形成了一種普遍的、可以實現(xiàn)的關(guān)鍵技術(shù)——數(shù)學(xué)技術(shù),并已經(jīng)成為當(dāng)代高新技術(shù)的一個重要的組成部分?!案呒夹g(shù)本質(zhì)上是一種數(shù)學(xué)技術(shù)”已為越來越多的人們所認(rèn)同。用數(shù)學(xué)方法解決各類問題或?qū)嵤?shù)學(xué)技術(shù),首先要求將所考慮的問題數(shù)學(xué)化,即建立數(shù)學(xué)模型,這就使數(shù)學(xué)建模日益顯示其關(guān)鍵作用,成為現(xiàn)代應(yīng)用數(shù)學(xué)的一個重要領(lǐng)域。Matlab這一數(shù)學(xué)軟件能夠非常方便、快捷、高效的解決數(shù)學(xué)建模所涉及的眾多實際問題,其功能和規(guī)模比其他數(shù)學(xué)軟件強大的多。本文主要通過具體實例討論Matlab在數(shù)學(xué)建模中的應(yīng)用,增強解決實際問題的能力。
一、數(shù)學(xué)建模的一般步驟
數(shù)學(xué)建模并不是新東西,粗略地說,數(shù)學(xué)建模是一個多次迭代的過程,每一次迭代大體上包括:實際問題的抽象、簡化,做出假設(shè),明確變量和參數(shù);形成明確的數(shù)學(xué)問題;以解析形式或者數(shù)值形式求解該數(shù)學(xué)模型;對結(jié)果進行解釋、分析以及驗證;若符合實際即可,不符合實際則要進行修改,進入下一個迭代。其一般過程如圖1所示。
第一,模型準(zhǔn)備。了解實際背景,明確建模目的,搜集有關(guān)信息,掌握對象特征,形成一個比較清晰的“問題”。第二,模型假設(shè)。針對問題特點和建模目的,做出合理的、簡化的假設(shè)。在合理與簡化之間作出折中。對數(shù)據(jù)資料進行分析計算,找出起主要作用的因素,經(jīng)過必要的精煉、簡化,提出若干符合客觀實際的假設(shè)。第三,模型構(gòu)成。用數(shù)學(xué)的語言、符號描述問題。發(fā)揮想象力,使用類比法。盡量采用簡單的、適當(dāng)?shù)臄?shù)學(xué)工具表達各變量之間的關(guān)系,建立相應(yīng)的數(shù)學(xué)結(jié)構(gòu),即建立數(shù)學(xué)模型。第四,模型求解。利用各種數(shù)學(xué)方法、數(shù)學(xué)軟件和計算機技術(shù)。在難以得出解析解時,借助計算機求出數(shù)值解。第五,模型分析。結(jié)果的誤差分析、模型對數(shù)據(jù)的穩(wěn)定性分析。第六,模型檢驗。與實際現(xiàn)象、數(shù)據(jù)比較,檢驗?zāi)P偷暮侠硇?、適用性。第七,模型應(yīng)用。通過檢驗,模型與實際相符后,投入實際應(yīng)用,解決實際問題。
二、Matlab的功能與特點
Matlab是美國MathWorks公司自20世紀(jì)80年代中期推出的數(shù)學(xué)軟件,優(yōu)秀的數(shù)值計算能力和卓越的數(shù)據(jù)可視化能力使其很快在數(shù)學(xué)軟件中脫穎而出。隨著數(shù)值運算的演變,它逐漸發(fā)展成為各種系統(tǒng)仿真、數(shù)字信號處理、科學(xué)可視化的通用標(biāo)準(zhǔn)語言。在科學(xué)研究和工程應(yīng)用的過程中,往往需要大量的數(shù)學(xué)計算,傳統(tǒng)的紙筆和計算機已經(jīng)不能從根本上滿足海量計算的要求,一些技術(shù)人員嘗試使用Basic、Fortran、C、C++等語言編寫程序來減輕工作量。但編程不僅僅需要掌握所用語言的語法,還需要對相關(guān)算法進行深入分析,這對大多數(shù)科學(xué)工作者而言有一定的難度。與這些語言相比,Matlab的語法更簡單,更貼近人的思維方式。用Matlab編寫程序,猶如在一張演算紙上排列公式和求解問題一樣,因此被稱為“科學(xué)便箋式”的科學(xué)工程計算語言。Matlab是集數(shù)值計算、符號運算、圖形處理及程序設(shè)計等強大功能于一體的,已經(jīng)發(fā)展成為多學(xué)科、多種工作平臺的科學(xué)和工程計算軟件。
Matlab的主要特點是:有高性能數(shù)值計算的高級算法,特別適合矩陣代數(shù)領(lǐng)域;有大量事先定義的數(shù)學(xué)函數(shù),并且有很強的用戶自定義函數(shù)功能;有強大的繪圖功能以及具有教育、科學(xué)和藝術(shù)學(xué)的圖解和可視化的二維、三維;基于HTML的完整的幫助功能;適合個人應(yīng)用的強有力的面向矩陣(向量)的高級程序設(shè)計語言;能與其它語言編寫的程序結(jié)合,輸入、輸出格式化數(shù)據(jù);有在多個應(yīng)用領(lǐng)域解決難題的工具箱。
三、Matlab在數(shù)學(xué)建模中的應(yīng)用舉例
正因為Matlab這一數(shù)學(xué)軟件能夠非常方便、快捷、高效地解決數(shù)學(xué)建模所涉及的眾多實際問題,因此,Matlab在數(shù)學(xué)建模中為許多建模工作者重視。
例1:(包含無風(fēng)險證券的投資組合問題)
金融市場上有兩種證券:風(fēng)險證券和無風(fēng)險證券。我們一般稱風(fēng)險證券為股票,其收益率不確定;無風(fēng)險證券稱為債券,其收益率是確定的。通常情況下,無風(fēng)險利率也可以認(rèn)為是國有銀行的存貨款利率。
設(shè)金融市場上有兩種風(fēng)險證券A和B,它們的期望收益率分別為 A=12%、 B=12% ,方差分別為σ2A=10 ,σ2B=10,協(xié)方差σ2AB=0。同時,市場上還有一種無風(fēng)險債券,利率為rf=6%,試構(gòu)造一種投資組合,使得風(fēng)險最小。
解:分析與假設(shè):假設(shè)市場上有N種風(fēng)險證券和一種無風(fēng)險證券,以x=(x1,x2,…,xN)T表示N種風(fēng)險證券上的投資比例,則1-xTI就是在債券上的投資比例。
模型的建立:對給定的N種風(fēng)險證券的期望收益率 i和風(fēng)險σi2及協(xié)方差σij(i,j=1,2,…N,i≠j),無風(fēng)險債券的期望收益率 rf,如果給定投資組合的期望收益率 p,則可以求出投資比例x,使得投資收益率的協(xié)方差σp2最小,可以轉(zhuǎn)化為求解如下規(guī)劃問題:
其中v為協(xié)方差矩陣,I為N維單位向量。
設(shè)總資本單位為1,分別以比例x1購買股票A,x2購買股票B,x3購買無風(fēng)險債券,則可以建立如下的規(guī)劃問題:
其中
因為債券無風(fēng)險,所以方差、協(xié)方差都為0, rp為投資組合的期望收益率。
根據(jù)兩基金分離定理,任意指定一個期望收益率rp如令rp=10%目標(biāo)函數(shù)為二次的,約束條件為一次的。應(yīng)用Lagrange數(shù)乘法,得到
x1=6/19,x2=20/19,x3=-7/19
也就是說,為了獲得10%的期望收益率,應(yīng)以無風(fēng)險利率從銀行貸款7/19單位,將貸款和手中已有的1單位現(xiàn)金的總和的6/19購買A股票,20/19購買B股票。
由于這并不是標(biāo)準(zhǔn)的線性規(guī)劃問題,需要用到Lagrange數(shù)乘法,進而求解線性方程組。
例2:(極大似然估計的原理:關(guān)于廢品率的問題)
廠家每生產(chǎn)一批產(chǎn)品,總有正品或廢品的區(qū)分,那么我們自然關(guān)心每批產(chǎn)品的廢品率的問題。例如,某質(zhì)檢員在某批產(chǎn)品中抽取50件產(chǎn)品進行檢驗,根據(jù)以往經(jīng)驗將產(chǎn)品質(zhì)量分為6個檔次,對應(yīng)廢品率分別為0.01、0.02、0.03、0.04、0.05、0.06。現(xiàn)在質(zhì)檢員要對50件產(chǎn)品檢查的結(jié)果,決定該批產(chǎn)品檔次,我們?yōu)樗峁┮环N合理方案。
解:分析與假設(shè):模擬抽樣數(shù)據(jù)。設(shè)想有一批產(chǎn)品,可以設(shè)定它們的檔次,例如設(shè)廢品率為p=0.04。隨機抽取n=50個樣品檢驗。
一件產(chǎn)品非正即廢,用統(tǒng)計術(shù)語以隨機變量X表示這一事實,則有X=10 ,其中1表示產(chǎn)品為廢品,反之為正品,顯然X服從兩點分布,即p(x=1)=p,p(x=0)=q=1-p ,稱X為總體,它的分布為總體分布??傮w分布決定了產(chǎn)品的檔次,p的取值范圍是0.01、0.02、0.03、0.04、0.05、0.06。
質(zhì)檢員對產(chǎn)品n次抽樣相當(dāng)于對總體X復(fù)制了n次,得到了n 個獨立同分布的隨機變量X1,X2ΛXn。X1,X2ΛXn稱為容量為n的簡單樣本,n次抽樣就相當(dāng)于對總體X作n次模擬。模擬的結(jié)果相當(dāng)于得到了簡單樣本的一組樣本觀察值x1,x2Λxn。
似然函數(shù)L(p)的定義如下:
要注意的是,因xi僅取0或1的值,故P(Xi=xi)=pxiq1-xi=p xi=11-pxi=0所以pxiq1-xi是兩點分布的另一種表示。
當(dāng)質(zhì)檢員獲得一批樣本,需要根據(jù)樣本推斷p的哪一個值更接近真實總體。顯然,應(yīng)該有一個度量指標(biāo)來衡量未知參數(shù)和總體的相似性,似然函數(shù)正是這樣的相似指標(biāo),由上式得知:L(p)是簡單樣本X1,X2…Xn取值于某個特定觀察值x1,x2…xn的聯(lián)合概率,而x1,x2…xn反映了真實總體X的某些特征。因此,對于p的兩個可能取到的值p1,p2,如果有L(p1)<L(p2),則p2更像總體,因此,如果某個p0使L(p)達到了最大值,則它最像真實總體,我們把這個p0 作為真實廢品率的估計,這就是極大似然估計。六個似然函數(shù)的最大值為L(0.04)=max L(p)=0.0002255, 即似然函數(shù)的最大值恰好在該產(chǎn)品的真實廢品率為0.04時達到。
四、結(jié)論
從以上優(yōu)化問題和高等統(tǒng)計學(xué)問題這兩個實例中,可以看出Matlab在數(shù)學(xué)建模中的巨大優(yōu)勢,充分顯現(xiàn)出了其強大的數(shù)值計算、數(shù)據(jù)處理和圖形處理功能,無論是在建立模型的哪個階段,Matlab都有其他語言無法比擬的高效、快捷、方便的功能,大大提高了數(shù)學(xué)建模的效率,豐富了數(shù)學(xué)建模的方法和手段,有力地促進了問題的解決。另外,將Matlab應(yīng)用于實際的教學(xué)過程中,可以激發(fā)學(xué)員學(xué)習(xí)數(shù)學(xué)的興趣和熱情,從而提高學(xué)員運用所學(xué)數(shù)學(xué)知識分析、解決實際問題的能力。
參考文獻:
1、姜啟源.數(shù)學(xué)模型[M].高等教育出版社,1993.
2、飛思科技產(chǎn)品研發(fā)中心.Matlab7基礎(chǔ)與提高[M].電子工業(yè)出版社,2005.
(作者單位:武漢軍事經(jīng)濟學(xué)院基礎(chǔ)部)
注:“本文中所涉及到的圖表、注解、公式等內(nèi)容請以PDF格式閱讀原文?!?/p>