Matlab的使用matlabppt課件_第1頁
Matlab的使用matlabppt課件_第2頁
Matlab的使用matlabppt課件_第3頁
Matlab的使用matlabppt課件_第4頁
Matlab的使用matlabppt課件_第5頁
已閱讀5頁,還剩75頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、Matlab的使用的使用l Matlab的歷史回顧的歷史回顧一、一、Matlab 簡介簡介 Matlab全稱全稱Matrix Laboratory, 該語言是美國該語言是美國New Mexico大學(xué)計算機(jī)系主任大學(xué)計算機(jī)系主任Cleve Moler在在79年代后年代后期首先設(shè)計的期首先設(shè)計的. 并于并于80年代初開發(fā)了第二代專業(yè)版年代初開發(fā)了第二代專業(yè)版. 1984年年, Cleve Moler和和John Litter成立了成立了Math works公司公司, 并開始把并開始把Matlab推向市場推向市場. Math Works公司在公司在90年代陸續(xù)推出了年代陸續(xù)推出了Matlab4.x和

2、和5.x版版. 尤其是尤其是5.x版版, 在幫助信息上采用了超文本格式和在幫助信息上采用了超文本格式和PDF格式格式. 時至今日時至今日, Matlab以達(dá)到了以達(dá)到了7.0版版. 可以說可以說, Matlab已經(jīng)發(fā)展成為適合多學(xué)科已經(jīng)發(fā)展成為適合多學(xué)科, 多種工作平多種工作平臺的功能強(qiáng)大的大型軟件臺的功能強(qiáng)大的大型軟件. l Matlab的語言特點(diǎn)的語言特點(diǎn) 語言簡潔緊湊語言簡潔緊湊, 使用方便靈活使用方便靈活, 庫函數(shù)豐富庫函數(shù)豐富. 用用C, Fortran語言編寫一個程序去解決一個實(shí)際問題語言編寫一個程序去解決一個實(shí)際問題, 少則幾十行少則幾十行, 多則幾百行多則幾百行. 要調(diào)試這樣的

3、程序有時是相當(dāng)要調(diào)試這樣的程序有時是相當(dāng)困難的困難的. 而而 Matlab提供了相當(dāng)多的庫函數(shù)和工具來解決提供了相當(dāng)多的庫函數(shù)和工具來解決此類問題此類問題. 我們以下面的問題為例我們以下面的問題為例: 設(shè)設(shè)321345671237985122,432354653983471354Ab 求解矩陣方程求解矩陣方程.Axb 在在Matlab的的Command窗口中窗口中, 先建立矩陣和列向量先建立矩陣和列向量, 然后執(zhí)行命令然后執(zhí)行命令 即得問題的解即得問題的解 ,xA b0.18090.51820.53330.1862.Tx 運(yùn)算豐富運(yùn)算豐富 在在Matlab中中, 軟件提供了幾乎和軟件提供了幾乎

4、和C語言一樣多的運(yùn)算語言一樣多的運(yùn)算符符, 靈活使用靈活使用Matlab的運(yùn)算符將使得程序極為簡單的運(yùn)算符將使得程序極為簡單. 結(jié)構(gòu)化的編程方法結(jié)構(gòu)化的編程方法 如同其它編程語言如同其它編程語言, Matlab既提供了具有結(jié)構(gòu)化的控既提供了具有結(jié)構(gòu)化的控制語句如制語句如for while if break 等)等),又具有面向?qū)ο缶幱志哂忻嫦驅(qū)ο缶幊痰奶匦猿痰奶匦? 圖形功能強(qiáng)大圖形功能強(qiáng)大 Matlab提供了功能強(qiáng)大的繪圖功能提供了功能強(qiáng)大的繪圖功能, 利用此功能利用此功能, 使得使得數(shù)據(jù)的可視化更為簡單數(shù)據(jù)的可視化更為簡單. 在下面的問題中在下面的問題中, 我們針對人口我們針對人口增長模型

5、增長模型, 采用指數(shù)二次曲線擬合采用指數(shù)二次曲線擬合, 觀察實(shí)際數(shù)據(jù)與計算觀察實(shí)際數(shù)據(jù)與計算曲線的接近程度曲線的接近程度, 從而檢驗(yàn)?zāi)P偷膶?shí)際意義從而檢驗(yàn)?zāi)P偷膶?shí)際意義. 在上圖中可以看到在上圖中可以看到, 指數(shù)的二次曲線擬合與實(shí)際數(shù)據(jù)指數(shù)的二次曲線擬合與實(shí)際數(shù)據(jù)擬合得是相當(dāng)好的擬合得是相當(dāng)好的. 不足之處不足之處 與其它高級語言相比與其它高級語言相比, Matlab的一個顯著缺點(diǎn)是運(yùn)行的一個顯著缺點(diǎn)是運(yùn)行的速度較慢的速度較慢, 其原因是其原因是Matlab并不產(chǎn)生編譯程序和可執(zhí)并不產(chǎn)生編譯程序和可執(zhí)行文件行文件,而是邊解釋邊運(yùn)行而是邊解釋邊運(yùn)行, 因而速度較低因而速度較低.二、二、Matla

6、b的基本計算的基本計算 1.矩陣計算矩陣計算 在在Matlab下下, 矩陣的運(yùn)算極為簡便矩陣的運(yùn)算極為簡便. 定義矩陣定義矩陣 矩陣的運(yùn)算矩陣的運(yùn)算 求解矩陣方程求解矩陣方程 由于矩陣乘法的不可換性由于矩陣乘法的不可換性, 故求解矩陣方程時要注意故求解矩陣方程時要注意和右乘的差別和右乘的差別, 因而求解矩陣方程的命令也是不相同的因而求解矩陣方程的命令也是不相同的.對矩陣方程對矩陣方程 求解命令為求解命令為 而對矩陣方而對矩陣方程程 則求解命令為則求解命令為,Axb .xA b,xAb/ .xA b 求特征和特征向量求特征和特征向量 求解矩陣特征值的命令為求解矩陣特征值的命令為( ).deig

7、A 例如對前面的矩陣?yán)鐚η懊娴木仃? 命令命令 則可得到特征值則可得到特征值向量向量( )deig A193.447556.690548.19191.9461.T 2.函數(shù)的定義與函數(shù)值的計算函數(shù)的定義與函數(shù)值的計算 與其它編程語言不同的是與其它編程語言不同的是, Matlab中對用戶自定義的中對用戶自定義的函數(shù)必須存放在特定的文件中函數(shù)必須存放在特定的文件中M文件中文件中, 使用十調(diào)使用十調(diào)用該函數(shù)用該函數(shù). 在程序文件中使用的函數(shù)也必須加以調(diào)用在程序文件中使用的函數(shù)也必須加以調(diào)用. 例如自定義函數(shù)例如自定義函數(shù) 及計算函及計算函數(shù)值數(shù)值 先建立函數(shù)文件先建立函數(shù)文件 再在再在Comman

8、d窗口窗口中中執(zhí)行命令執(zhí)行命令 要作出函數(shù)在區(qū)間要作出函數(shù)在區(qū)間 中的圖形中的圖形, 可可執(zhí)行命令執(zhí)行命令 2132,yfxxx 13 .f1. ,f m 13 .f6,66:1/100:6;1( );( , , ).tyftplot t y r 同樣可以執(zhí)行命令同樣可以執(zhí)行命令( 1, 6,6).fplotf 3.多項式的定義及計算多項式的定義及計算 多項式的定義命令為多項式的定義命令為 對應(yīng)的對應(yīng)的次多項式為次多項式為012 .npa a aan 12012.nnnnnpxa xa xa xa在前例中在前例中, 對函數(shù)對函數(shù) 可定義多項可定義多項式為式為 求多項式的值的命令為求多項式的值的

9、命令為 2132,yfxxx1 3 2.p ( , ).polyval p x 多項式求根命令多項式求根命令.roots 在上例中在上例中, 求多項式的根求多項式的根: 得根為得根為( ),rroots p3.5616, 0.5616.表表1 基本函數(shù)及功能表基本函數(shù)及功能表函數(shù)名函數(shù)名功功 能能Max求向量或矩陣列的最大值求向量或矩陣列的最大值Min求向量或矩陣列的最小值求向量或矩陣列的最小值Mean求向量或矩陣列的平均值求向量或矩陣列的平均值Median求向量或矩陣列的中間值求向量或矩陣列的中間值Std求標(biāo)準(zhǔn)差求標(biāo)準(zhǔn)差Sum 求和求和Cov 求協(xié)方差求協(xié)方差函數(shù)名函數(shù)名功功 能能Cumpr

10、od 累計積累計積Cumtrapz 累計數(shù)值積分累計數(shù)值積分Gradient 求數(shù)值偏導(dǎo)數(shù)求數(shù)值偏導(dǎo)數(shù) 4.曲線擬合曲線擬合 曲線擬合是數(shù)據(jù)分析中的一項重要內(nèi)容曲線擬合是數(shù)據(jù)分析中的一項重要內(nèi)容. 下面的例子下面的例子說明對已知的數(shù)據(jù)如何使用曲線擬合的方法說明對已知的數(shù)據(jù)如何使用曲線擬合的方法.例例 使用使用3次多項式來擬合次多項式來擬合5個數(shù)據(jù)點(diǎn)個數(shù)據(jù)點(diǎn) 1,5.5 , 2,43.1 , 3,128 , 4,290.75,498.4 .在在Matlab下分別執(zhí)行命令下分別執(zhí)行命令, 并得到曲線并得到曲線例例 已知某城市已知某城市20年的人口數(shù)據(jù)為年的人口數(shù)據(jù)為1979198019811982

11、1989.612.91984198519861987198838.650.2表表2 人口數(shù)據(jù)表人口數(shù)據(jù)表 但是對于一些較為復(fù)雜的問題但是對于一些較為復(fù)雜的問題, 直接計算可能會造成直接計算可能會造成數(shù)據(jù)上較大的誤差數(shù)據(jù)上較大的誤差, 故要對數(shù)據(jù)進(jìn)行預(yù)處理故要對數(shù)據(jù)進(jìn)行預(yù)處理, 下面的例下面的例子說明了對該類問題的解決方法子說明了對該類問題的解決方法.1989199019911992199362.976.092.0105.7122.819942019201920192019131.7150.7179.0205.0226.0在在Matlab下分別執(zhí)行命令

12、下分別執(zhí)行命令, 并得到曲線并得到曲線一次和二次多項式的曲線擬合一次和二次多項式的曲線擬合一次一次, 二次和四多項式的曲線擬合二次和四多項式的曲線擬合 5.雙重函數(shù)雙重函數(shù) 雙重函數(shù)是雙重函數(shù)是Matlab的一個特征的一個特征, 主要應(yīng)用于求函數(shù)的主要應(yīng)用于求函數(shù)的極值極值, 函數(shù)的極限函數(shù)的極限, 數(shù)值積分等數(shù)值積分等.類別類別函數(shù)名函數(shù)名功功 能能求極值和根求極值和根 Fminbnd求單變量函數(shù)的極小值求單變量函數(shù)的極小值Fmins求多變量函數(shù)的極小值求多變量函數(shù)的極小值Fzero求單變量函數(shù)的根求單變量函數(shù)的根數(shù)值積分?jǐn)?shù)值積分Quadl低階數(shù)值積分低階數(shù)值積分Quads高階數(shù)值積分高階數(shù)

13、值積分dblquad雙重數(shù)值積分雙重數(shù)值積分繪制曲線繪制曲線 Ezplot繪制字符串形式的函數(shù)繪制字符串形式的函數(shù)Fplot 繪制函數(shù)曲線繪制函數(shù)曲線 求函數(shù)的極值求函數(shù)的極值 格式格式12fmin(Fun,options).x x 其中的其中的 應(yīng)是一個應(yīng)是一個Matlab的內(nèi)部庫函數(shù)或者用戶的內(nèi)部庫函數(shù)或者用戶自己定義的函數(shù)自己定義的函數(shù).Fun例例 求函數(shù)求函數(shù) 在區(qū)間在區(qū)間 中的最小值和最大值中的最小值和最大值, 則需要經(jīng)過下面的過程則需要經(jīng)過下面的過程: 32392f xxxx2,41.建立一個建立一個m文件文件, 在文件中定義函數(shù)在文件中定義函數(shù) 32392,f xxxx2.使用命

14、令使用命令fminbnd, 求出函數(shù)的極值點(diǎn)求出函數(shù)的極值點(diǎn);3.求出函數(shù)值求出函數(shù)值. 求定積分求定積分 求所給函數(shù)的定積分的命令為求所給函數(shù)的定積分的命令為Quad1.例例 求函數(shù)求函數(shù) 在區(qū)間在區(qū)間 中中的定積分的定積分. 32392f xxxx1,3 在在Matlab下執(zhí)行命令下執(zhí)行命令 得積分值得積分值quadl(f2,1,3).38. 二重積分的相應(yīng)命令為二重積分的相應(yīng)命令為 dblquad.例例 求函數(shù)求函數(shù) 在區(qū)域在區(qū)域 上上的二重積分的二重積分.sincosyxxy ,20,dblquad(integrnd, pi, 2*pi, 0, pi), 首先建立函數(shù)文件首先建立函數(shù)文

15、件 該文件定義了二元該文件定義了二元函數(shù)函數(shù) 再執(zhí)行命令再執(zhí)行命令integrnd.msincos ,yxxy得積分值得積分值9.8696.平行地平行地: 三重積分的命令為三重積分的命令為triplequad.三、繪制圖形三、繪制圖形 1.plot Plot命令是對給出的二維點(diǎn)集描繪相應(yīng)的曲線命令是對給出的二維點(diǎn)集描繪相應(yīng)的曲線. 或用點(diǎn)或用點(diǎn)來表示來表示.基本格式基本格式 plot(a,b,options).其中其中 為兩個同維數(shù)的向量為兩個同維數(shù)的向量, 可選參數(shù)主要有可選參數(shù)主要有a,b Linespec 指定所描繪曲線的外部特征指定所描繪曲線的外部特征: 線型線型; 顏色顏色sin,s

16、in 2tt線寬等線寬等.例例 在同一個區(qū)域中分別畫出函數(shù)在同一個區(qū)域中分別畫出函數(shù)sin ,sin,2tt 的圖形的圖形. 2.fplot 基本格式基本格式fplot(function,limits,LineSpec). 例例 在同一坐標(biāo)系統(tǒng)做出函數(shù)在同一坐標(biāo)系統(tǒng)做出函數(shù)2sin,200 xyxyx的圖形的圖形. 建立函數(shù)文件建立函數(shù)文件 并在命令窗口執(zhí)行命令并在命令窗口執(zhí)行命令myfun,fplot(myfun,-20 20)即得到曲線的圖形即得到曲線的圖形.四、四、Matlab的編程的編程 Matlab的程序文件分為兩類的程序文件分為兩類: 函數(shù)文件與命令執(zhí)行文函數(shù)文件與命令執(zhí)行文件件,

17、 這兩類文件的擴(kuò)展名均為這兩類文件的擴(kuò)展名均為.m. 在函數(shù)文件中在函數(shù)文件中, 定義了定義了用戶所需要的函數(shù)用戶所需要的函數(shù), 當(dāng)某些程序使用該函數(shù)時即可調(diào)用當(dāng)某些程序使用該函數(shù)時即可調(diào)用該函數(shù)該函數(shù). 另一類是程序執(zhí)行文件另一類是程序執(zhí)行文件, 在該類文件中賦予了一在該類文件中賦予了一些命令些命令, 通過對這些命令的執(zhí)行通過對這些命令的執(zhí)行, 用戶能完成某些計算用戶能完成某些計算. 1.函數(shù)文件函數(shù)文件 函數(shù)文件的基本格式是函數(shù)文件的基本格式是function fname( )expr.yxy例例 定義函數(shù)定義函數(shù) 32423.yfxxx操作操作 在在Matlab命令窗口中單擊新建文件圖標(biāo)

18、命令窗口中單擊新建文件圖標(biāo), 并輸入并輸入下面語句下面語句function 4( )32*3yfxyxx輸入完畢后輸入完畢后, 以文件名以文件名 存盤存盤. 默認(rèn)擴(kuò)展名為默認(rèn)擴(kuò)展名為 使使用時直接調(diào)用該文件名即可用時直接調(diào)用該文件名即可. 例如在命令窗口中輸入例如在命令窗口中輸入 即得到相應(yīng)的函數(shù)值即得到相應(yīng)的函數(shù)值9. 輸入命令輸入命令4f.m 4 2 ,froots(4)f可得到函數(shù)的零點(diǎn)可得到函數(shù)的零點(diǎn)-0.5098fplot(f4,-4 5)執(zhí)行命令執(zhí)行命令可得到函數(shù)的圖形可得到函數(shù)的圖形. 多元函數(shù)的定義多元函數(shù)的定義例例 定義函數(shù)定義函數(shù)22.zxy操作操作 在文件編輯窗口中輸入在

19、文件編輯窗口中輸入function ztwo_varf( )(1);(2);z 2 2vxvyvxy執(zhí)行命令執(zhí)行命令 2 3;two_varf vv 輸出結(jié)果輸出結(jié)果13. 2.程序文件的建立與運(yùn)行程序文件的建立與運(yùn)行 由于高版本的由于高版本的Matlab是用是用C語言編寫的語言編寫的, 因而其語言因而其語言風(fēng)格類似于風(fēng)格類似于C語言的風(fēng)格語言的風(fēng)格, 但比但比C語言更為寬松語言更為寬松. 例如為例如為求數(shù)求數(shù)1到到50的和的和, 可以通過下面的程序來完成可以通過下面的程序來完成:sum1=0;k=1;while k=100 sum1=sum1+k; k=k+1;endsum1k輸入完成后以文

20、件名輸入完成后以文件名 存盤存盤. 若要運(yùn)行此程序若要運(yùn)行此程序, 只只需在命令窗口中輸入需在命令窗口中輸入 即可即可, 運(yùn)行結(jié)束后在命令窗運(yùn)行結(jié)束后在命令窗sum1sum1口中顯示相應(yīng)的輸出結(jié)果口中顯示相應(yīng)的輸出結(jié)果:k=101,sum1=5050. 循環(huán)控制循環(huán)控制 循環(huán)控制是任何一種程序設(shè)計中的一個重要組成部分循環(huán)控制是任何一種程序設(shè)計中的一個重要組成部分. 在在Matlab中的循環(huán)控制語句有中的循環(huán)控制語句有for,if,while. for 的基本格式是的基本格式是forfor n1 n2 n3 命令語句命令語句end表達(dá)式中的表達(dá)式中的 為循環(huán)的初始值為循環(huán)的初始值, 為步長為步長

21、, 為循環(huán)的終為循環(huán)的終值值. 如只有兩個值如只有兩個值, 則取步長為則取步長為1. 看下面的一段程序看下面的一段程序n1n2n3for n=1:5 for m=1:n r(n,m)=n*m; endendr計算結(jié)果輸出了一個計算結(jié)果輸出了一個5階方陣階方陣:r =1 0 0 0 0 2 4 0 0 0 3 6 9 0 0 4 8 12 16 0 5 10 15 20 25 while 一般用于不能確定循環(huán)次數(shù)的情況一般用于不能確定循環(huán)次數(shù)的情況.while例例 求積不超過求積不超過100000的階乘的階乘.n1;while prod(1:n)100000 nn+1; aprod(1:n);程

22、序如下程序如下:endaa/n,nn-1運(yùn)行結(jié)果運(yùn)行結(jié)果n8,n!40320. 邏輯表達(dá)式邏輯表達(dá)式2 邏輯表達(dá)式邏輯表達(dá)式1 if 基本格式基本格式 if 語句體語句體1elseif 語句體語句體2 else 語句體語句體end例例 看下面一段程序看下面一段程序clearfor k=1:6for m = 1:k for n = 1:k if m = n a(m,n) = 2; elseif abs(m-n) = 2 a(m,n) = 1; else a(m,n) = 0; end endendaend想象一下想象一下, 程序運(yùn)行的結(jié)果如何程序運(yùn)行的結(jié)果如何?該程序產(chǎn)生了該程序產(chǎn)生了6個方陣個

23、方陣, 5階的和階的和6階的分別為階的分別為2 0 1 0 0 0 2 0 1 0 1 0 2 0 1 0 1 0 2 0 0 0 1 0 22 0 1 0 0 00 2 0 1 0 01 0 2 0 1 00 1 0 2 0 10 0 1 0 2 00 0 0 1 0 2 switch 如果在一段程序中有多個判定條件如果在一段程序中有多個判定條件, 則使用則使用比比 要簡單得多要簡單得多.switchif 在在 中中, 可以使用可以使用 來中斷循環(huán)來中斷循環(huán). 請看下請看下面的求根程序面的求根程序.if whichbreaka0;b3;k1while k100 c(a+b)/2+eps*b;

24、 fcc3+2*c-3; faa3+2*a-3; if fc0 break elseif sign(fc)sign(fa) ac; else bc; end kk+1;endk,c,fc五、在微積分中的應(yīng)用五、在微積分中的應(yīng)用 1.求極限求極限 基本格式基本格式0limit(f, ,).x x 由于由于Matlab偏重于數(shù)值計算偏重于數(shù)值計算, 而求極限是一個符號運(yùn)而求極限是一個符號運(yùn)算的過程算的過程, 因此在此之前要賦予命令因此在此之前要賦予命令syms.例例 求極限求極限0sinlim.xxx 在命令窗口執(zhí)行命令在命令窗口執(zhí)行命令syms limit(sin( )/ , ,0)xxx x輸出結(jié)果為輸出結(jié)果為1.例例 求極限求極限0sinsinlim.hxhxh 執(zhí)行命令執(zhí)行命令syms h;limit(sin( +h)-sin( )/h,h,0)xxx從而得到極限從而得到極限0sinlimcos .xxxx 2.求導(dǎo)數(shù)求導(dǎo)數(shù) 基本格式基本格式 diff ( f ).例例 求函數(shù)求函數(shù) 的導(dǎo)數(shù)的導(dǎo)數(shù).sinyax 執(zhí)行命令執(zhí)行命令: syms a x f = sin(a*x)diff(f)輸出

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論