溫一新, 王 濤
(昆明學院數(shù)學系,云南昆明650214)
高等教育改革不斷深化,實施創(chuàng)新人才培養(yǎng)方案,要求高校培養(yǎng)的本科生既要掌握專業(yè)的基本理論和基礎(chǔ)方法,又要具備一定的科學研究和創(chuàng)新能力.1992年首屆全國大學生數(shù)學建模競賽(CUMCM)開賽.一方面,蓬勃發(fā)展的競賽每年吸引著大批大學生積極參與,推動了各級高校數(shù)學專業(yè)課程設(shè)置產(chǎn)生變革,增設(shè)《數(shù)學建模》和《數(shù)學實驗》兩門課程,以適應(yīng)教育對象和教育環(huán)境的變化. 在數(shù)學專業(yè)教師年復(fù)一年教給學生的基礎(chǔ)知識體系中,提高廣大專業(yè)和非專業(yè)數(shù)學學生學習數(shù)學知識的興趣,加深了知識的理解和實際運用,投身科學研究的熱情;另一方面互聯(lián)網(wǎng)與數(shù)學軟件的快速發(fā)展在規(guī)模逐年擴大的競賽中所發(fā)揮的作用越來越顯著,促使大學生掌握和使用現(xiàn)代化的計算工具和手段,提高熟練運用計算機、互聯(lián)網(wǎng)和數(shù)學軟件參與科技探索的能力.
本文對綜合類數(shù)學軟件MATLAB矩陣實驗室和Mathematica符號系統(tǒng)計算軟件在《數(shù)學實驗》和《數(shù)學建模》兩門課的教學中輔助計算積分的不同使用方式進行討論分析,闡述了數(shù)學軟件在現(xiàn)代數(shù)學應(yīng)用中的不可或缺性和靈活選懌的必要性.在數(shù)學實驗課中我們運用軟件是以基礎(chǔ)知識基本算法與軟件編程相結(jié)合進行驗證為重點,目的是提高學生理解掌握數(shù)學知識的實際應(yīng)用能力.在數(shù)學建模課中突出基本知識的實際應(yīng)用,需要針對不同問題的計算要求靈活使用軟件編程.
1905年由經(jīng)濟學家馬克斯·勞倫茨所提出了表示收入分配的曲線,意大利經(jīng)濟學家基尼在此基礎(chǔ)上定義了基尼系數(shù)(Gini coefficient),用以判斷社會收入分配公平程度的指標.
對某個收入級別,根據(jù)一年的收入多少將所有家庭收入者按收入從低到高排列,按人數(shù)均分為五份,如下表1所示.一種非常直觀的方法度量收入分布不均衡是考慮累積收入數(shù)據(jù),如表2所示.
表1 總和收入的百分比分布
表2 總和收入的累積百分比分布
圖1 不均衡與完全均衡累積數(shù)據(jù)圖
計算SC可以提示學生,調(diào)動主觀能動性,聯(lián)系《數(shù)學分析》課中的定積分計算部分的相關(guān)基礎(chǔ)知識.結(jié)合表2的數(shù)據(jù),首先嘗試使用數(shù)值積分的梯形法
學生可以在這個公式的引導(dǎo)下,計算SC的近似值.本問題中有5個數(shù)據(jù)點.令
y0=0,y1=i5,y2=i4+i5,y3=i3+i4+i5,y4=i2+i3+i4+i5,y5=1,h=0.2,
獲知某年統(tǒng)計數(shù)據(jù)顯示,i1=0.413,i2=0.242,i3=0.17,i4=0.129,i5=0.046.經(jīng)數(shù)據(jù)擬合得其勞倫茲曲線是y=0.9416x1.8761.兩款數(shù)學軟件的程序如下:
MATLAB計算命令:
①應(yīng)用trapz( )命令: chx1=0∶0.05∶1;chy1=0.9416*chx1.∧1.8761;squa2=trapz(chx1,chy1); 結(jié)果:0.3278.
②應(yīng)用int( )命令: syms chx2;squa3=int(0.9416*chx2.∧1.8761,0,1); 結(jié)果:0.3274.
③Mathematica計算命令:Integrate[y[x],{x,0,1}];結(jié)果:0.3274.
在這個《數(shù)學實驗》課的實例中強調(diào)一元定積分的基本概念、幾何意義和計算方法在實際問題中的變化,強調(diào)教材基礎(chǔ)知識在實際問題中的靈活表現(xiàn),突出具體應(yīng)用中的數(shù)學邏輯思維的運用.這是對基礎(chǔ)知識的更深入認識,強化理解,提升數(shù)學能力.了解數(shù)學軟件做為計算工具的作用,熟悉數(shù)學知識和與之對應(yīng)的軟件命令,并熟練運用命令進行計算.我們還需要向?qū)W生們指出,定積分數(shù)值計算方法上還能使用拋物線法,矩形法等,當然這些方法的缺陷是明顯的,可以請同學結(jié)合定積分定義思考產(chǎn)生這缺陷的根源.在尋找勞倫茲曲線的方法上也是有不同的選擇,可以進一步與學生探討利用數(shù)據(jù)進行曲線擬合的問題,比如,多項式擬合,回歸分析等.通過數(shù)學實驗方法不斷地激發(fā)同學們研究數(shù)學的興趣和熱情.
2010年A題是近年來我國建模競賽中不可多得的優(yōu)秀賽題[3],它來自研究課題的加工而成.2009年末命題專家組與命題人到我國最大的生產(chǎn)加油站設(shè)備與管理系統(tǒng)的高新技術(shù)企業(yè)——正星科技有限公司(鄭州)調(diào)研實際問題,與技術(shù)負責人進行深入討論,用實驗罐體做試驗,對某加油站進行實時監(jiān)測,獲取大量數(shù)據(jù)資料(見賽題附件),經(jīng)過對題目的返復(fù)加工和完善,使賽題和參考解答最終于2010年8月專家組會定稿完成.本題的建模和求解需要很強的數(shù)學知識(數(shù)學分析、空間解析幾何、多重積分、優(yōu)化方法等)和計算能力(數(shù)值積分、誤差估計、軟件編程等).這道賽題體現(xiàn)了近年命題的思路:實際課題的簡化,社會熱點問題,有較強實際背景的問題.
原賽題中第一問是對實驗橢圓柱型油罐的測試數(shù)據(jù)誤差做修正,問題簡述如下:由于地基變形等原因,罐體的位置會發(fā)生些微變位,圖2(a)是罐體縱向傾斜變位示意圖,(b)是罐體橫截面示意圖.這樣的結(jié)果實際導(dǎo)致罐容表發(fā)生改變.按照有關(guān)規(guī)定,需要對罐容表進行重新標定.
解決問題的核心是計算傾斜變位橢圓柱型油罐內(nèi)任意高度液面下液體的體積.引導(dǎo)學生們聯(lián)系定積分應(yīng)用知識的內(nèi)容,可以通過二次定積分計算求出體積.建立模型
其中第一個積分計算罐體橫截面中的液體面積Sx,見圖2(b),這是變上限積分函數(shù),可得到Sx關(guān)于hx的函數(shù);第二個積分將Sx對x在[-l,L-l]做定積分,見圖2(a),計算出油罐中液體的體積V.
圖2 實驗橢圓柱罐示意圖
在競賽中學生們依靠學習過的定積分知識能運用積分公式推導(dǎo),努力得出液體體積V的解析表達式,然后進行數(shù)據(jù)計算.這樣做耗費掉了大量寶貴的競賽時間,我們應(yīng)該借助計算機和數(shù)學軟件的輔助進行更高效的數(shù)值計算.
基于上述的數(shù)學模型,同時編寫MATLAB軟件和Mathematica軟件程序,在Intel Pentium D (2.8GHz), DDR2 800MHz 4GB的硬件上計算相同的數(shù)據(jù)量.
以MATLAB為運算平臺的主要程序段:
tic;
f=2*a*sqrt(1-y∧2/b∧2);
h=(20∶10∶100)/100;alp=(4∶0.1∶4.5)*pi/180;
for i=1∶length(alp)
for j=1∶length(h)
oh=inline(int(f,y,-b,h(j)-l1*tan(alp(i))-b));
vh(i,j)=quad(oh,l1,-smal,bigl-smal);
end
end
toc;
運算時間平均為101.13836秒.
以Mathematica v5.0為運算平臺的主要程序部分與計算結(jié)果:
tim1=TimeUsed[ ];
oh[h_]∶=2(Integrate[a Sqrt[1-y2/b2],{y,-b,h-b}]
oa[α_,h_ ]∶=NIntegrate[oh[h-l1 Tan[α]],{l1,-l,L-l}]
liqV=Table[oa[(4+0.1((i-1))(Pi/180,0.2+0.1((j-1)], {i,1,n}, {j,1,m}];
tim2=TimeUsed[ ];
tim2-tim1
運算時間平均為69.7063秒.
圖 3 兩個程序的計算結(jié)果
兩個程序可以得出相同的計算結(jié)果,如圖2示,但也存在一些區(qū)別. 由于數(shù)學模型中需要做變上限積分函數(shù)計算,因此Mathematica程序更精練,編寫的程序也與數(shù)學邏輯過程相當吻合,較快速.這是因為Mathematica系統(tǒng)提供了最優(yōu)的符號運算構(gòu)架.但隨著計算量的增大,運行時間會延長.在同樣機器性能情況下,MATLAB雖然優(yōu)化了符號計算,用內(nèi)聯(lián)函數(shù)(inline())構(gòu)造函數(shù)對象代替編寫M文件進行調(diào)用,但在符號計算方面不占優(yōu)勢,計算效率劣于Mathematica程序.
在建模實踐中我們可以充分利用兩款軟件的特性,處理不同的計算要求.從這個建模實例,我們應(yīng)該向?qū)W生展示的是數(shù)學軟件的靈活運用,對于基礎(chǔ)知識和基本計算方法應(yīng)該盡量簡化,點到為止.數(shù)學建模是本科生一次“真刀真槍”的科研訓練,在運用數(shù)學軟件進行數(shù)學計算時更多的是進行綜合運用,多重比較,互相檢驗.
綜合上述的分析數(shù)學建模教學中對數(shù)學軟件的使用有著更高的要求,認為某一種軟件便可解決所有數(shù)學問題的態(tài)度是要不得的,在強調(diào)創(chuàng)新和實踐的課程中需要通過多種軟件的互相配合使用,能夠高效快速的解決建模問題.
[參 考 文 獻]
[1] 飛思科技產(chǎn)品研發(fā)中心. MATLAB基礎(chǔ)與提高[M]. 北京: 電子工業(yè)出版社, 2005.
[2] Martha L Abell, Jamens P Braselton. MATHEMATICA by EXAMPLE[M].3rdEdition. NewYork: Elsevier Academic Press, 2004: 147-148.
[3] 韓中庚.儲油罐的變位識別與罐容標定[C]∥2010高教社杯全國大學生數(shù)學建模競賽題A題.北京:全國大學生數(shù)學建模競賽組委會,2010:1-3.