2017數(shù)學(xué)建模b題優(yōu)秀論文(2)
2017數(shù)學(xué)建模b題優(yōu)秀論文篇3
淺析MATLAB軟件在數(shù)學(xué)建模中的應(yīng)用
摘要: 本文首先介紹了MATLAB軟件的相關(guān)特點(diǎn),然后對(duì)數(shù)學(xué)建模的概念及其建模過(guò)程做出介紹,其次以一個(gè)全國(guó)數(shù)學(xué)建模比賽的實(shí)例介紹了開發(fā)基于MATLAB的數(shù)學(xué)建模詳細(xì)步驟。實(shí)踐證明將MATLAB軟件用于數(shù)學(xué)建??梢蕴岣邤?shù)學(xué)建模的效率和質(zhì)量,豐富了數(shù)學(xué)建模的方法和手段,同時(shí)對(duì)數(shù)學(xué)課程的運(yùn)用具有重要的教學(xué)意義。
關(guān)鍵詞: MATLAB軟件;數(shù)學(xué)建模;數(shù)學(xué)模型
0 引言
數(shù)學(xué)軟件就是專門用來(lái)進(jìn)行數(shù)學(xué)運(yùn)算、數(shù)學(xué)規(guī)劃、統(tǒng)計(jì)運(yùn)算、工程運(yùn)算、繪制數(shù)學(xué)圖形或制作數(shù)學(xué)動(dòng)畫的軟件。其中常用的數(shù)學(xué)軟件有:MATLAB、Mathematica、Maple、SAGE等;目前在科技和工程界中使用的比較多的數(shù)學(xué)軟件主要是MATLAB,其應(yīng)用的非常廣泛。MATLAB是1984年由美國(guó)MathWorks公司推出的數(shù)學(xué)軟件,其優(yōu)秀的數(shù)值計(jì)算能力和數(shù)據(jù)可視化能力使它很快在數(shù)學(xué)軟件中脫穎而出,歷經(jīng)十幾年發(fā)展和競(jìng)爭(zhēng),MATLAB現(xiàn)已成為適合多學(xué)科、多種工作平臺(tái)的功能強(qiáng)大的大型科技應(yīng)用軟件。
MATLAB主要面對(duì)科學(xué)計(jì)算、可視化及交互式程序設(shè)計(jì)的高科技計(jì)算環(huán)境。它將數(shù)值分析、矩陣計(jì)算、科學(xué)數(shù)據(jù)可視化及非線性動(dòng)態(tài)系統(tǒng)的建模和仿真等諸多強(qiáng)大功能集成在一個(gè)易于使用的視窗環(huán)境中,為科學(xué)研究、工程設(shè)計(jì)及必須進(jìn)行有效數(shù)值計(jì)算的眾多科學(xué)領(lǐng)域提供了一種全面的解決方案,并在很大程度上擺脫了傳統(tǒng)的非交互式程序設(shè)計(jì)語(yǔ)言,代表了當(dāng)今國(guó)際科學(xué)計(jì)算軟件的先進(jìn)水平。MATLAB經(jīng)過(guò)三十多年的研究和不斷完善,現(xiàn)已成為國(guó)際上最流行的科學(xué)計(jì)算與工程計(jì)算軟件工具之一,現(xiàn)在MATLAB已經(jīng)不僅僅是最初“矩陣實(shí)驗(yàn)室”了,它已發(fā)展成為一種具有廣泛應(yīng)用前景的、全新的計(jì)算機(jī)高級(jí)編程語(yǔ)言。
1 MATLAB的語(yǔ)言特點(diǎn)
1.1 語(yǔ)言簡(jiǎn)潔緊湊,程序設(shè)計(jì)自由度大,可移植性好
MATLAB是一個(gè)高級(jí)的矩陣列語(yǔ)言,它包含控制語(yǔ)句、函數(shù)、數(shù)據(jù)結(jié)構(gòu)、輸入輸出和面向?qū)ο缶幊烫攸c(diǎn)。MATLAB以矩陣為基礎(chǔ),不需要預(yù)先定義變量矩陣(包括數(shù)組)的維數(shù),可以方便地進(jìn)行矩陣的算術(shù)運(yùn)算、關(guān)系運(yùn)算和邏輯運(yùn)算等。而且MATLAB有特殊矩陣專門的庫(kù)函數(shù),可以高效地進(jìn)行信號(hào)處理、圖像處理、控制處理等問(wèn)題。
1.2 用戶使用方便 MATLAB中以復(fù)數(shù)矩陣或數(shù)組作為基本編程單元,使得矩陣操作變得輕而易舉。另外MATLAB語(yǔ)句功能強(qiáng)大,一條語(yǔ)句往往相當(dāng)于其他高級(jí)語(yǔ)言中的幾十條、幾百條甚至幾千語(yǔ)句,而且MATLAB中提供了非常多的功能函數(shù),從而使得用戶使用起來(lái)非常方便。
1.3 方便的繪圖功能 MATLAB的繪圖是十分方便的,它有一系列繪圖函數(shù),例如線性坐標(biāo)、對(duì)數(shù)坐標(biāo)、半對(duì)數(shù)坐標(biāo)及極坐標(biāo),均只需要調(diào)用不同的繪圖函數(shù),在圖上標(biāo)出圖題、XY軸標(biāo)注,網(wǎng)絡(luò)線的繪制也只需要調(diào)用相應(yīng)的命令,簡(jiǎn)單易行。另外,在調(diào)用繪圖函數(shù)時(shí)調(diào)整自變量可繪出不變顏色的點(diǎn)、線、復(fù)線或多重線。這種為科學(xué)研究著想的設(shè)計(jì)是通用的編程語(yǔ)言所不能及的。
1.4 擴(kuò)充能力強(qiáng),交互性好 高版本的MATLAB語(yǔ)言有豐富的庫(kù)函數(shù),在進(jìn)行復(fù)雜的數(shù)序運(yùn)算時(shí)可以直接調(diào)用,而且MATLAB的庫(kù)函數(shù)同用戶文件在形成上一樣,所以用戶文件也可作為MATLAB的庫(kù)函數(shù)來(lái)調(diào)。因而,用戶可以根據(jù)自己的需要方便地建立和擴(kuò)充新的庫(kù)函數(shù),以便提高M(jìn)ATLAB的使用效率和擴(kuò)充它的功能。另外,為了充分利用FORTRAN、C等語(yǔ)言的資源,用戶可以通過(guò)混合編程,方便地調(diào)用有關(guān)的FORTRAN、C語(yǔ)言的子程序,還可以在FORTRAN、C語(yǔ)言中方便地使用MATLAB的數(shù)值計(jì)算功能。這樣良好的交互性使用程序使用以前編寫過(guò)的程序,減少重復(fù)性工作,也使現(xiàn)在編寫的程序具有重復(fù)利用的價(jià)值。
1.5 編程效率高 MATLAB是一種面向科學(xué)與工程計(jì)算的高級(jí)語(yǔ)言,允許使用數(shù)學(xué)形式的語(yǔ)言編程序,而且比BASIC、FORTRAN等語(yǔ)言更加接近我們書寫計(jì)算公式的思維方式。用MATLAB編寫程序猶如在演算紙上排列出公式與求解問(wèn)題。因此,MATLAB語(yǔ)言也可通俗地稱為演算紙式科學(xué)算法語(yǔ)言。由于它編寫簡(jiǎn)單,所以編程效率高,易學(xué)易懂。
2 數(shù)學(xué)建模簡(jiǎn)介
2.1 數(shù)學(xué)模型與數(shù)學(xué)建模 當(dāng)我們研究一個(gè)問(wèn)題時(shí)需要從定量的角度分析和研究,人們就要在深入調(diào)查研究、了解對(duì)象信息、作出簡(jiǎn)化假設(shè)、分析內(nèi)在規(guī)律等工作的基礎(chǔ)上,用數(shù)學(xué)符號(hào)和語(yǔ)言,把它表述為數(shù)學(xué)式子,也是數(shù)學(xué)模型,所以數(shù)學(xué)模型是對(duì)于一個(gè)特定的對(duì)象為了一個(gè)特定的目標(biāo),根據(jù)特有的內(nèi)在規(guī)律,做出一些必要的簡(jiǎn)化假設(shè),運(yùn)用適當(dāng)?shù)臄?shù)學(xué)工具,得到一個(gè)數(shù)學(xué)結(jié)構(gòu)。數(shù)學(xué)結(jié)構(gòu)可以是數(shù)學(xué)公式、算法、表格、圖示等。數(shù)學(xué)建模就是建立數(shù)學(xué)模型,建立數(shù)學(xué)模型的過(guò)程就是數(shù)學(xué)建模的過(guò)程。數(shù)學(xué)建模的語(yǔ)言和方法,通過(guò)抽象、簡(jiǎn)化建立能近似刻化并“解決”實(shí)際問(wèn)題的一種強(qiáng)有力的數(shù)學(xué)手段。 建立數(shù)學(xué)模型的過(guò)程是把錯(cuò)綜復(fù)雜的實(shí)際問(wèn)題簡(jiǎn)化、抽象為合理的數(shù)學(xué)模型的過(guò)程。要通過(guò)調(diào)查、收集原始信息,觀察和研究實(shí)際對(duì)象的固有特征和內(nèi)在規(guī)律,抓住問(wèn)題的主要矛盾,建立起反映實(shí)際問(wèn)題的數(shù)量關(guān)系,然后利用數(shù)學(xué)的理論和方法去分析和解決問(wèn)題。這需要深厚扎實(shí)的數(shù)學(xué)基礎(chǔ),敏銳的想象力和洞察力,對(duì)實(shí)際問(wèn)題的濃厚興趣和廣博的知識(shí)面。數(shù)學(xué)建模是聯(lián)系實(shí)際問(wèn)題與數(shù)學(xué)的橋梁,是數(shù)學(xué)在各個(gè)領(lǐng)域應(yīng)用的媒介,數(shù)學(xué)建模的作用越來(lái)越受到數(shù)學(xué)工程界的普遍重視,它已成為現(xiàn)代科技工作者必備的重要能力之一。
2.2 數(shù)學(xué)建模的一般步驟 下面結(jié)合數(shù)學(xué)建模的幾個(gè)環(huán)節(jié)和數(shù)學(xué)建模實(shí)例,介紹MATLAB在數(shù)學(xué)建模中的應(yīng)用。數(shù)學(xué)建模的過(guò)程分成如下幾個(gè)階段:①模型準(zhǔn)備:了解所研究的問(wèn)題的實(shí)際背景,明確其實(shí)際意義,掌握對(duì)象的各種信息,從而確定使用何種數(shù)學(xué)方法與建立何種數(shù)學(xué)模型,然后用數(shù)學(xué)的語(yǔ)言來(lái)描述問(wèn)題。②模型假設(shè):為了利用數(shù)學(xué)方法,通常要對(duì)問(wèn)題做必要的、合理的假設(shè),即根據(jù)實(shí)際對(duì)象的特征和建模的目的,對(duì)問(wèn)題進(jìn)行必要的簡(jiǎn)化,并用精確語(yǔ)言提出一些當(dāng)前的假設(shè)。③模型建立:根據(jù)所做的假設(shè)以及事物之間的聯(lián)系,在假設(shè)基礎(chǔ)上,利用適當(dāng)?shù)臄?shù)學(xué)工具來(lái)刻畫各變量之間的數(shù)學(xué)關(guān)系,建立相應(yīng)的數(shù)學(xué)結(jié)構(gòu)。④模型求解:利用已知的數(shù)學(xué)方法來(lái)求解上一步所得到的數(shù)學(xué)問(wèn)題,即利用獲取的數(shù)據(jù)資料,對(duì)模型的所有參數(shù)做出計(jì)算。⑤模型分析:對(duì)所得的結(jié)果進(jìn)行數(shù)學(xué)上的分析,特別要注意數(shù)據(jù)變化時(shí)所得結(jié)果是否穩(wěn)定。⑥模型檢驗(yàn):將模型分析結(jié)果與實(shí)際情形進(jìn)行比較,然后可根據(jù)情況對(duì)模型進(jìn)行修正,使其符合程度更高,具有更好的合理性和適用性。⑦模型應(yīng)用:應(yīng)用方式因問(wèn)題的性質(zhì)和建模的目的而異。
3 建模實(shí)例
2009年全國(guó)大學(xué)生數(shù)學(xué)建模競(jìng)賽A題為某服務(wù)公司承辦了一次全國(guó)性的會(huì)議,會(huì)議籌備組要為與會(huì)代表預(yù)訂客館客房,租借會(huì)議室,并租用客車接送代表?;I備組經(jīng)過(guò)實(shí)地考察,篩選出10家賓館作為備選,題目給出客房及會(huì)議室的規(guī)格、間數(shù)、價(jià)格等數(shù)據(jù),需要先預(yù)測(cè)與會(huì)代表的人數(shù)。預(yù)測(cè)的依據(jù)是代表回執(zhí)數(shù)量及往屆的與會(huì)人員數(shù)據(jù)。已知本屆會(huì)議的回執(zhí)情況(見表1)及以往幾屆會(huì)議代表回執(zhí)和與會(huì)情況(見表2)要解決的問(wèn)題是:根據(jù)這些數(shù)據(jù)預(yù)測(cè)本屆與會(huì)代表人數(shù)。
首先根據(jù)題目給出的數(shù)據(jù)我們知道本屆發(fā)來(lái)回執(zhí)的代表人數(shù)為x=75,由于發(fā)來(lái)回執(zhí)但未與會(huì)的代表人數(shù)x1與發(fā)來(lái)回執(zhí)的代表人數(shù)x之間存有一定的關(guān)系,所以我們通過(guò)題目給出的以往數(shù)據(jù)利用最小二乘法擬合出相應(yīng)曲線,然后得到發(fā)來(lái)回執(zhí)但未與會(huì)的代表人數(shù)。給出MATLAB
程序:
x=[315 356 408 711];
y=[89 115 121 213];
p2=polyfit(x,y,2)
poly2str(p2,'x')
x1=300:800;
y2=polyval(p2,x1);
plot(x,y,'rp',x1,y2)
z=polyval(a,755)
二次擬合曲線為:y=-0.1 x^2+446.3x-33870.4,可得今年發(fā)了回執(zhí)但未與會(huì)的代表人數(shù)為225(人)。
其次由于未發(fā)來(lái)回執(zhí)而與會(huì)的代表人數(shù)x2與發(fā)來(lái)回執(zhí)的代表人數(shù)之間的影響關(guān)系不大,需要使用題目給出的數(shù)據(jù)單獨(dú)進(jìn)行預(yù)測(cè),由于題目給出的數(shù)據(jù)不多,我們采用對(duì)數(shù)據(jù)量要求不大但精度較高的灰色預(yù)測(cè)模型GM(1,1)來(lái)進(jìn)行預(yù)測(cè)。根據(jù)GM(1,1)模型編寫出的MATLAB程序如下:
function [ px0,ab,rel ] =gm11( x0_number )
if nargin==1
number=max(size(x0));
end
n=max(size(x0));
x1=zeros(size(x0));
for k=1:n
for i=1:k
x1(k)=x1(k)+x0(i);
end
end
z=zeros(size(x0));
for k=2:n
z(k)=0.5*(x1(k)+x1(k-1));
end
y=x0';y(1)=[];b(;,1)=-z';b(;,2)=1;b(1,:)=[];
ab=inv(b'*b)*b'*y;
a=ab(1); b=ab(2);px0(1)=x0(1);
for k=1:number-1
px0(k+1)=(1-exp(a))*(x0(1)-b/a)*exp(-a*k);
end
temp=px0(1:n);
x0;
temp=(temp-x0)./x0;
temp(1)=[];
temp=abs(temp);
rel=sum(temp)/(n-1)*100;
由以上過(guò)程我們可以得到本屆大會(huì)代表到會(huì)情況如表3。
4 結(jié)論
通過(guò)以上模型的求解過(guò)程可以看出,MATLAB軟件在解決復(fù)雜的數(shù)學(xué)建模問(wèn)題時(shí)具有方便、快捷、易學(xué)易用的特點(diǎn),它的強(qiáng)大功能在許多領(lǐng)域有著其它軟件無(wú)法比擬的優(yōu)勢(shì)。將其應(yīng)用于數(shù)學(xué)建模的分析和求解計(jì)算過(guò)程必將大大推進(jìn)建模的進(jìn)程,起到事半功倍的效果。
參考文獻(xiàn):
[1]徐秀華.Matlab軟件在數(shù)學(xué)建模中的應(yīng)用[J].科技與生活,2010(13).
[2]于潤(rùn)偉.Matlab基礎(chǔ)及應(yīng)用[M].機(jī)械工業(yè)出版社,2010.
[3]吳新華.Matlab軟件在數(shù)學(xué)中的應(yīng)用[J].萍鄉(xiāng)高等??茖W(xué)校學(xué)報(bào),2012(6).
猜你喜歡:
1.2017年數(shù)學(xué)建模優(yōu)秀論文