曲慶國 孟艷雙 王建英
摘要:本文闡述了數(shù)學建模這門學科的特點,探討了Matlab在教學中的應(yīng)用及數(shù)學建模教學中存在的問題。將MatIab用于數(shù)學建模教學,能夠大大提高學生學習數(shù)學建模的積極性,從而能夠提高數(shù)學建模教學的教學質(zhì)量和教學效果。
關(guān)鍵詞:數(shù)學建模;Matlab;插值
中圖分類號:G642.0 文獻標志碼:A 文章編號:1674-9324(2016)21-0262-02
一、引言
數(shù)學建模運用數(shù)學的思想方法、數(shù)學的語言去近似刻畫一個實際研究對象,構(gòu)建一座溝通現(xiàn)實世界與數(shù)學世界的橋梁,并以計算機為工具,應(yīng)用現(xiàn)代計算技術(shù),達到解決各種實際問題的目的。Matlab是一種應(yīng)用于科學計算領(lǐng)域的高級語言,其產(chǎn)生是與數(shù)學計算緊密聯(lián)系在一起的,主要功能包括數(shù)值計算、符號計算、繪圖、編程以及應(yīng)用工具箱。近年來,隨著實際問題的數(shù)據(jù)規(guī)模越來越大,Matlab在數(shù)學建模中占據(jù)越來越重要的地位。
本文對Matlab在數(shù)學建模課中的應(yīng)用進行討論分析,闡述了數(shù)學建模這門學科的特點及數(shù)學建模教學中存在的問題。在數(shù)學建模課中突出基本知識的實際應(yīng)用,需要針對不同問題的計算要求靈活使用Matlab編程。
二、數(shù)學建模的特點及教學中的問題
數(shù)學建模是一個實踐性很強的學科具有以下特點:
(一)涉及廣泛的應(yīng)用領(lǐng)域
在涉及廣泛的應(yīng)用領(lǐng)域,如物理學、力學、工程學、生物學、醫(yī)學、經(jīng)濟學、軍事學、體育運動學等。完全不同的實際問題,在一定的簡化假設(shè)下,它們的模型是相同或近似的。這就要求學生培養(yǎng)廣泛的興趣,拓寬知識面,從而發(fā)展聯(lián)想力,通過對各種問題的分析、研究和比較,逐步達到觸類旁通的境界。
(二)需要靈活運用各種數(shù)學知識
在數(shù)學建模過程中,數(shù)學始終是一種工具。要根據(jù)實際問題的需要,靈活運用各種數(shù)學知識如微分方程、運籌學、概率統(tǒng)計、數(shù)值分析、圖論、層次分析、變分法等,去描述和解決實際問題。這就要求學生既要加深數(shù)學知識的學習,更要培養(yǎng)應(yīng)用已學到的數(shù)學方法及思想進行綜合應(yīng)用和分析,并進行合理地抽象和簡化的能力。
(三)技術(shù)手段的配合
需要各種技術(shù)手段的配合,如查閱文獻資料、使用計算機和各種數(shù)學軟件如Matlab、lingo等。
(四)建立一個數(shù)學模型與求解一道數(shù)學題目差別極大
求解數(shù)學題目往往有唯一正確的答案,但數(shù)學建模沒有唯一正確的答案。對同一個實際問題可能建立若干個不同的模型,模型無所謂對與錯,評價模型優(yōu)劣的標準是實踐。
(五)建立的數(shù)學模型與建模的目的有密切關(guān)系
對同一個實際對象,建模目的的不同導(dǎo)致建模的側(cè)重點和出發(fā)點不同。因此,對一個世界問題,數(shù)學建模沒有確定的模式,它與問題的性質(zhì)、建模的目的、建模者自身的數(shù)學素質(zhì)有關(guān),甚至還與建模者的靈性有關(guān),經(jīng)驗、想象力、洞察力、判斷及直覺、靈感在建模過程中起著與數(shù)學知識同樣重要的作用。
數(shù)學建模是一門科學,一門藝術(shù),要成為一名出色的藝術(shù)家,需要大量的觀摩和前輩的指導(dǎo),最重要的是要親身的實踐。同樣要掌握數(shù)學建模這門藝術(shù),既要學習、分析、評價、改進前人做過的模型,更要親自動手做一些實際題目。
幾年的“數(shù)學建?!苯虒W實踐告訴我們,大學生參加數(shù)學建模活動,不但要求學生必須了解現(xiàn)代數(shù)學各門學科知識和各種數(shù)學方法,把所掌握的數(shù)學工具創(chuàng)造性地應(yīng)用于具體的實際問題,構(gòu)建其數(shù)學結(jié)構(gòu),還要求學生熟悉Matlab、lingo等數(shù)學軟件,熟練地把現(xiàn)代計算機技術(shù)應(yīng)用于解決當前實際問題,最后還要具有把自己的實踐過程和結(jié)果敘述成文字的寫作能力。目前,數(shù)學建模教學中的主要問題是兩個“脫節(jié)”,一是實際問題與理論知識脫節(jié),二是理論教學與數(shù)學軟件的應(yīng)用脫節(jié)。結(jié)合Matlab進行數(shù)學建模教學能夠有效地解決理論教學與應(yīng)用數(shù)學軟件的脫節(jié)。
三、結(jié)合Matlab進行數(shù)學建模教學
數(shù)學建模競賽能否取得好成績不僅取決于模型的精妙與合理,還取決于模型的求解。Matlab在模型的求解方面占有關(guān)鍵的地位[1]。因此,結(jié)合Matlab進行數(shù)學建模教學將起到事半功倍的效果。下面以講解插值方法為例,說明Matlab在數(shù)學建模教學中的重要性和必要性。
在插值方法教學中,首先需要講解插值法的定義,然后簡單講解拉格朗日插值、分段線性插值和樣條插值,最后重點講解Matlab插值工具箱及其應(yīng)用。在Matlab插值工具箱中,插值函數(shù)分為一維插值函數(shù)和二維插值函數(shù)兩類。Matlab中一維插值函數(shù)是interp1[2],語法為:y=interp1(x0,y0,x,'method')。其中:method指定插值的方法,默認為分段線性插值,其值可為nearest、linear、spline和cubic。所有的插值方法要求x0是單調(diào)的。
例1:(機床加工)待加工零件的外形根據(jù)工藝要求由一組數(shù)據(jù)(x,y)給出(在平面情況下),用程控銑床加工時每一刀只能沿x方向和y方向走非常小的一步,這就需要從已知數(shù)據(jù)得到加工所要求的步長很小的(x,y)坐標。給出的(x,y)數(shù)據(jù)(程序中的x0,y0)位于機翼斷面的下輪廓線上,假設(shè)需要得到x坐標每改變0.1時的y坐標。試完成加工所需數(shù)據(jù),畫出曲線。
解:編寫程序如下:
x0=[0 3 5 7 9 11 12 13 14 15];y0=[0 1.2 1.7 2.0 2.1 2.0 1.8 1.2 1.0 1.6];x=0:0.1:15;y1=interp1(x0,y0,x,'nearest');y2=interp1(x0,y0,x,'linear');y3=interp1(x0,y0,x,'spline');plot(x0,y0,'*',x,y1,'r',x,y2,'b',x,y3);
通過運行結(jié)果可以看出,三次樣條插值的結(jié)果最好,建議選用三次樣條插值的結(jié)果。
Matlab中二維插值函數(shù)之一是interp2,語法為:z=interp2(x0,y0,z0,x,y,'method')。其中:x0,y0分別為m維和n維向量,表示節(jié)點;z0為n×m矩陣,表示節(jié)點值;x,y為一維數(shù)組,表示插值點。
例2:(地貌圖形的繪制)下表所列為某次地貌測量所得的結(jié)果,對一方形區(qū)域(x,y方向均為從1-10),選測某些地點測量其相對于某水平面高度的數(shù)據(jù),要求用這些數(shù)據(jù)(程序中的h)盡量準確地繪制出該地區(qū)的地形。
解:此題的關(guān)鍵是將未測量地點的高度用插值方法求出來。程序如下:
[x,y]=meshgrid(1:10);
h=[0 0.02 -0.12 0 -2.09 0 -0.58 -0.08 0 0;0.02 0 0 -2.38 0 -4.96 0 0 0 -0.1;0 0.1 1 0 -3.04 0 -0.53 0 0.1 0;0 0 0 3.52 0 0 0 0 0 0;-0.43 -1.98 0 0 0 0.77 0 2.17 0 0;0 0 -2.29 0 0.69 0 2.59 0 0.3 0;-0.09 -0.31 0 0 0 4.27 0 0 0 -0.01;0 0 0 5.13 7.4 0 1.89 0 0.4 0;0.1 0 0.58 0 0 1.75 0 -0.11 0 0;0 -0.01 0 0 0.3 0 0 0 0 0.01];[xi,yi]=meshgrid(1:0.15:10);
hi=interp2(x,y,h,xi,yi,'spline');surf(xi,yi,hi);
通過運行結(jié)果可以看出,利用樣條插值得到的數(shù)據(jù)繪制出了效果較好的地貌形態(tài)圖。
在數(shù)學建模的插值法教學中,重點不是講解插值法的理論,而是講解插值法的應(yīng)用,即如何應(yīng)用插值法解決實際問題。在這個教學過程中MATLAB占有重要的地位。因為MATLAB能夠利用其內(nèi)部插值函數(shù)及有限的數(shù)據(jù)產(chǎn)生所需的足夠的數(shù)據(jù),并能夠繪制出相應(yīng)的圖形。關(guān)鍵是這一過程的實現(xiàn)MATLAB比其他軟件容易得多。[3]有了MATLAB的幫助,數(shù)學建模的教學不會像以前那樣將重點放在理論講解上,從而使得大學生有更大的興趣學習數(shù)學建模,并利用學到的知識探索解決實際問題。
四、結(jié)論
結(jié)合MATLAB進行數(shù)學建模教學,能夠大大提高學生學習數(shù)學建模的積極性,能夠有效地解決理論教學與應(yīng)用數(shù)學軟件的脫節(jié),能夠大大提高教學質(zhì)量和教學效果。因此,結(jié)合MATLAB進行數(shù)學建模教學是重要的,也是必要的。
參考文獻:
[1]溫一新,王濤.數(shù)學實驗和數(shù)學建模教學中數(shù)學軟件應(yīng)用的實例分析[J].大學數(shù)學,2014,30(5):26-30.
[2]Holly Moore.MATLAB實用教程(第二版)[M].高會生,劉童娜,李聰聰,譯.北京:電子工業(yè)出版社,2010.1.
[3]司守奎,孫兆亮.數(shù)學建模算法與應(yīng)用(第二版)[M].北京:國防工業(yè)出版社,2015.4.