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




