MATLAB是強(qiáng)大的科學(xué)計(jì)算軟件,下面介紹一下這款軟件強(qiáng)大而有特色的用途。
矩陣運(yùn)算
MTALAB最強(qiáng)的項(xiàng)目就是矩陣運(yùn)算,計(jì)算效率遠(yuǎn)遠(yuǎn)高于C/C++,是常用的工程計(jì)算線性方程組的計(jì)算軟件。
MTALB強(qiáng)大的作圖功能
MTALAB具有強(qiáng)大的3D繪圖功能,函數(shù)調(diào)用簡(jiǎn)單,并且很多功能都以工具箱的方式可供應(yīng)用,即使是沒(méi)有接觸過(guò)MATLAB,學(xué)會(huì)繪制3D圖,也很容易
數(shù)據(jù)擬合功能
MATLAB具有強(qiáng)大數(shù)據(jù)分析擬合能力,常用的擬合工具箱CFTOOL
數(shù)值積分微分運(yùn)算
MATLAB內(nèi)部有現(xiàn)成的一些常用的數(shù)值計(jì)算方法,例如牛頓法、高斯法等,同時(shí)MATLAB也可以進(jìn)行符號(hào)運(yùn)算,進(jìn)行符號(hào)積分以及微分運(yùn)算,這是讓人振奮的功能!
MATLAB還可以進(jìn)行仿真實(shí)驗(yàn),以及圖像處理等等專(zhuān)業(yè)功能,希望以上經(jīng)驗(yàn)?zāi)軌蛴兄谀懔私鈱W(xué)習(xí)MATLAB 。
Matlab數(shù)學(xué)建模應(yīng)用例題
僅舉一些運(yùn)用MATLAB的例子,這些問(wèn)題在數(shù)學(xué)建模中時(shí)常遇到,希望能幫助同學(xué)們?cè)诙虝r(shí)間內(nèi)方便、快捷的使用MATLAB 解決數(shù)學(xué)建模中的問(wèn)題,并善用這一工具。 常用控制命令:
clc:%清屏; clear:%清變量; save:%保存變量; load:%導(dǎo)入變量
一、利用公式直接進(jìn)行賦值計(jì)算
本金P以每年n次,每次i%的增值率(n與i的乘積為每年增值額的百分比)增加,當(dāng)增加到r×P 時(shí)所花費(fèi)的時(shí)間T為:(利用復(fù)利計(jì)息公式可得到下式)
)
01.01ln(ln)01.01(inr
TiPPrnT??
(12,5.0,2???nir)
MATLAB 的表達(dá)形式及結(jié)果如下: 》》 r=2;i=0.5;n=12; %變量賦值 》》 T=log(r)/(n*log(1+0.01*i)) 計(jì)算結(jié)果顯示為:
T = 11.5813
即所花費(fèi)的時(shí)間為T(mén)=11.5813 年。
分析:上面的問(wèn)題是一個(gè)利用公式直接進(jìn)行賦值計(jì)算問(wèn)題,實(shí)際中若變量在某個(gè)范圍變化取很多值時(shí),使用MATLAB,將倍感方便,輕松得到結(jié)果,其繪圖功能還能將結(jié)果輕松的顯示出來(lái),變量之間的變化規(guī)律將一目了然。
若r在[1,9]變化,i在[0.5,3.5]變化;我們將MATLAB的表達(dá)式作如下改動(dòng),結(jié)果如圖1。 r=1:0.5:9; i=0.5:0.5:3.5; n=12;
p=1./(n*log(1+0.01*i)); T=log(r‘)*p; plot(r,T)
xlabel(’r‘) %給x軸加標(biāo)題 ylabel(’T‘) %給y軸加標(biāo)題
q=ones(1,length(i));
text(7*q-0.2,[T(14,1:5)+0.5,T(14,6)-0.1,T(14,7)-0.9],num2str(i’))
從圖1中既可以看到T隨r的變化規(guī)律,而且還能看到i的不同取值對(duì)T—r曲線的影響(圖中的六條曲線分別代表i的不同取值)。
二、方程組的求解
求解下面的方程組:??????????????12
29447535
.768321
321321xxxxxxxxx
分析:對(duì)于線性方程組求解,常用線性代數(shù)的方法,把方程組轉(zhuǎn)化為矩陣進(jìn)行計(jì)算。
bax?bax1
???bax??
MATLAB 的表達(dá)形式及結(jié)果如下: 》》 a=[8 1 6;3 5 7;4 9 2]; %建立系數(shù)矩陣 》》 b=[7.5;4;12]; %建立常數(shù)項(xiàng)矩陣 》》 x=a %求方程組的解 計(jì)算結(jié)果顯示為: x =
1.2931 0.8972 -0.6236
三、數(shù)據(jù)擬合與二維繪圖
在數(shù)學(xué)建模競(jìng)賽中,我們常會(huì)遇到這種數(shù)據(jù)表格問(wèn)題,如果我們僅憑眼睛觀察,很難看到其中的規(guī)律,也就更難寫(xiě)出有效的數(shù)學(xué)表達(dá)式從而建立數(shù)學(xué)模型。因此可以利用MATLAB的擬合函數(shù), 即polyfit() 函數(shù),并結(jié)合MATLAB的繪圖功能(利用plot()函數(shù)),得到直觀的表示。
例:在化學(xué)反應(yīng)中,為研究某化合物的濃度隨時(shí)間的變化規(guī)律,測(cè)得一組數(shù)據(jù)如下表:
分析:
MATLAB 的表達(dá)形式如下:
t=[1:16]; %數(shù)據(jù)輸入
y=[4 6.4 8 8.4 9.28 9.5 9.7 9.86 10 10.2 10.32 10.42 10.5 10.55 10.58 10.6]; plot(t,y,‘o’) %畫(huà)散點(diǎn)圖 p=polyfit(t,y,2) %二次多項(xiàng)式擬合 hold on
xi=linspace(0,16,160); %在[0,16]等間距取160 個(gè)點(diǎn) yi=polyval(p,xi); %由擬合得到的多項(xiàng)式及xi,確定yi plot(xi,yi) %畫(huà)擬合曲線圖 執(zhí)行程序得到圖2
顯示的結(jié)果為 p=
-0.0445 1.0711 4.3252
p的值表示二階擬合得到的多項(xiàng)式為:y= -0.0445t2
+1.0711t+ 4.3252
下面是用lsqcurvefit()函數(shù),即最小二乘擬合方法的Matlab表達(dá): t=[1:16];
y=[4 6.4 8 8.4 9.28 9.5 9.7 9.86 10 10.2 10.32 10.42 10.5 10.55 10.58 10.6]; x0=[0.1,0.1,0.1];
zuixiao=inline(‘x(1)*t.^2+x(2)*t+x(3)’,‘x’,‘t’); x=lsqcurvefit(zuixiao,x0,t,y) %利用最小二乘擬合 其顯示的結(jié)果為: x =
-0.0445 1.0711 4.3252
可以看出其得到的結(jié)果與polyfit函數(shù)的結(jié)果相同。這說(shuō)明在多項(xiàng)式擬合問(wèn)題上這兩個(gè)函數(shù)的效果是相同的。
下面的一個(gè)例子將體現(xiàn)lsqcurvefit()函數(shù)的優(yōu)勢(shì)。
例2: 在物理學(xué)中,為研究某種材料應(yīng)力與應(yīng)變的關(guān)系,測(cè)得一組數(shù)據(jù)如下表:
如果假定應(yīng)力與應(yīng)變有如下關(guān)系(σ為應(yīng)力值,ε為應(yīng)變值):ε=a+blnσ 試計(jì)算a 、b 的值。 MATLAB 的表達(dá)形式如下:
x=[925,1125,1625,2125,2625,3125,3625]; y=[0.11,0.16,0.35,0.48,0.61,0.71,0.85]; plot(x,y,‘o’)
[p,resid1]=polyfit(x,y,2) hold on
xi=linspace(700,3700,3000); yi=polyval(p,xi); plot(xi,yi) x0=[0.1,0.1];
fff=inline(‘a(chǎn)(1)+a(2)*log(x)’,‘a(chǎn)’,‘x’); [a,resid2]=lsqcurvefit(fff,x0,x,y) plot(xi,fff(a,xi),‘r’)
執(zhí)行程序得到圖3,圖中藍(lán)色曲線為利用polyfit()函數(shù)得到的曲線,紅色曲線為利用lsqcurvefit()函數(shù)得到的曲線;
其顯示的結(jié)果為: p =
-0.0000 0.0004 -0.2266 resid1 =
R: [3x3 double] df: 4 normr: 0.0331 a =
-3.5810 0.5344 resid2 = 0.0064
其中a的值代表利用lsqcurvefit()函數(shù)得到的關(guān)系為:ε=-3.5810+0.5344σ
resid1、resid2 分別代表運(yùn)用polyfit()函數(shù)、lsqcurvefit()函數(shù)得到的殘差。可以看出利用lsqcurvefit()函數(shù)殘差更小,即得到了更好的擬合效果。
在數(shù)學(xué)建模的實(shí)際問(wèn)題中,如果問(wèn)題的機(jī)理不明,我們只能采用polyfit()函數(shù),即多項(xiàng)式擬合的方法,以獲得近似的數(shù)據(jù)描述函數(shù);但如果通過(guò)分析,可以得到一些機(jī)理,那么采用最小二乘的方法將得到更好的效果,而且得到的擬合函數(shù)也更有意義。
四、隱函數(shù)的圖形繪制
plot()只能繪制顯函數(shù)圖形,對(duì)于形如
0)sin()1ln(ln1
???????xxyyy
的復(fù)雜隱函數(shù),很難轉(zhuǎn)化為顯函數(shù)并利用plot()函數(shù)繪制圖形,這時(shí)就可以用ezplot()函數(shù)直接繪制其曲線。 MATLAB的表達(dá)形式如下:
》》 ezplot(‘1/y-log(y)+log(-1+y)+x-sin(x)’) 執(zhí)行程序得到圖5
如果是形如下面的參數(shù)方程),0(,sin3sin,cos3sin????tttyttx,同樣可以利用ezplot()函數(shù)繪制其曲線。MATLAB的表達(dá)形式如下:
》》 ezplot(‘sin(3*t)*cos(t)’,‘sin(3*t)*sin(t)’,[0,pi]) 執(zhí)行程序得到圖6。
評(píng)論
查看更多