數(shù)學(xué)建?;A(chǔ)教程_第1頁(yè)
數(shù)學(xué)建?;A(chǔ)教程_第2頁(yè)
數(shù)學(xué)建?;A(chǔ)教程_第3頁(yè)
數(shù)學(xué)建?;A(chǔ)教程_第4頁(yè)
數(shù)學(xué)建?;A(chǔ)教程_第5頁(yè)
已閱讀5頁(yè),還剩42頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、.MATLAB軟 件 基 礎(chǔ)1 MATLAB 概述MATLAB 是MATrix LABoratory(“矩陣實(shí)驗(yàn)室”)的縮寫,是由美國(guó)MathWorks 公司開發(fā)的集數(shù)值計(jì)算、符號(hào)計(jì)算和圖形可視化三大基本功能于一體的,功能強(qiáng)大、操作簡(jiǎn)單的語(yǔ)言。是國(guó)際公認(rèn)的優(yōu)秀數(shù)學(xué)應(yīng)用軟件之一。20世紀(jì)80年代初期,Cleve Moler與John Little等利用C語(yǔ)言開發(fā)了新一代的MATLAB語(yǔ)言,此時(shí)的MATLAB語(yǔ)言已同時(shí)具備了數(shù)值計(jì)算功能和簡(jiǎn)單的圖形處理功能。1984年,Cleve Moler與John Little等正式成立了Mathworks公司,把MATLAB語(yǔ)言推向市場(chǎng),并開始了對(duì)MATLA

2、B工具箱等的開發(fā)設(shè)計(jì)。1993年,Mathworks公司推出了基于個(gè)人計(jì)算機(jī)的MATLAB 4.0版本,到了1997年又推出了MATLAB 5.X版本(Release 11),并在2000年又推出了最新的MATLAB 6版本(Release 12)?,F(xiàn)在,MATLAB已經(jīng)發(fā)展成為適合多學(xué)科的大型軟件,在世界各高校,MATLAB已經(jīng)成為線性代數(shù)、數(shù)值分析、數(shù)理統(tǒng)計(jì)、優(yōu)化方法、自動(dòng)控制、數(shù)字信號(hào)處理、動(dòng)態(tài)系統(tǒng)仿真等高級(jí)課程的基本教學(xué)工具。特別是最近幾年,MATLAB在我國(guó)大學(xué)生數(shù)學(xué)建模競(jìng)賽中的應(yīng)用,為參賽者在有限的時(shí)間內(nèi)準(zhǔn)確、有效的解決問(wèn)題提供了有力的保證。2 MATLAB的安裝與啟動(dòng)2.1 MA

3、TLAB的安裝要用MATLAB 6,首先必須在計(jì)算機(jī)上安裝MATLAB 6應(yīng)用軟件,隨著軟件功能的不斷完善,MATLAB對(duì)計(jì)算機(jī)系統(tǒng)配置的要求越來(lái)越高。下面給出安裝和運(yùn)行MATLAB 6 所需要的計(jì)算機(jī)系統(tǒng)配置。 MATLAB 6對(duì)硬件的要求CPU要求:Pentium II、Pentium III、AMD Athlon或者更高;光驅(qū):8倍速以上;內(nèi)存:至少64MB,但推薦128MB以上;硬盤:視安裝方式不同要求不統(tǒng)一,但至少留1GB用于安裝(安裝后未必有1GB);顯卡:8位; MATLAB 6對(duì)軟件的要求Windows95 、Window98、Windows NT或Windows2000;Wo

4、rd97或word2000等,用于使用MATLAB Notebook;Adobe Acrobat Reader 用于閱讀MATLAB的PDF的幫助信息。MATLAB 6的安裝和其它應(yīng)用軟件類似,可按照安裝向?qū)нM(jìn)行安裝,這里不再贅述。2.2 MATLAB的啟動(dòng)和退出與常規(guī)的應(yīng)用軟件相同,MATLAB的啟動(dòng)也有多種方式,首先常用的方法就是雙擊桌面的MATLAB圖標(biāo),也可以在開始菜單的程序選項(xiàng)中選擇MATLAB組件中的快捷方式,當(dāng)然也可以在MATLAB的安裝路徑的子目錄中選擇可執(zhí)行文件“MATLAB.exe”。 啟動(dòng)MATLAB后,將打開一個(gè)MATLAB的歡迎界面,隨后打開MATLAB的桌面系統(tǒng)(D

5、esktop)如圖2-1所示。圖2-1 MATLAB的桌面系統(tǒng)3 MATLAB的開發(fā)環(huán)境MATLAB的開發(fā)環(huán)境就是在使用MATLAB的過(guò)程中可激活的,并且為用戶使用提供支持的集成系統(tǒng)。這里介紹幾個(gè)比較重要的如:桌面平臺(tái)系統(tǒng)、幫助系統(tǒng)和數(shù)據(jù)交換系統(tǒng)。3.1 MATLAB桌面平臺(tái)桌面平臺(tái)是各桌面組件的展示平臺(tái),默認(rèn)設(shè)置情況下的桌面平臺(tái)包括6個(gè)窗口,具體如下:3.1.1 MATLAB主窗口MATLAB6比早期版本增加了一個(gè)主窗口。該窗口不能進(jìn)行任何計(jì)算任務(wù)的操作,只用來(lái)進(jìn)行一些整體的環(huán)境參數(shù)的設(shè)置。3.1.2 命令窗口(Command Window)命令窗口是對(duì)MATLAB進(jìn)行操作的主要載體,默認(rèn)的

6、情況下,啟動(dòng)MATLAB時(shí)就會(huì)打開命令窗口,顯示形式如圖1-1所示。一般來(lái)說(shuō),MATLAB的所有函數(shù)和命令都可以在命令窗口中執(zhí)行。在MATLAB命令窗口中,命令的實(shí)現(xiàn)不僅可以由菜單操作來(lái)實(shí)現(xiàn),也可以由命令行操作來(lái)執(zhí)行,下面就詳細(xì)介紹MALTAB命令行操作。實(shí)際上,掌握MALAB命令行操作是走入MATLAB世界的第一步,命令行操作實(shí)現(xiàn)了對(duì)程序設(shè)計(jì)而言簡(jiǎn)單而又重要的人機(jī)交互,通過(guò)對(duì)命令行操作,避免了編程序的麻煩,體現(xiàn)了MATLAB所特有的靈活性。1. 命令窗口的作用 命令窗口用于輸入命令和顯示計(jì)算結(jié)果。2. 命令行的輸入規(guī)則 一個(gè)命令行輸入一條命令,命令行以回車結(jié)束。 一個(gè)命令行也可以輸入若干條命

7、令,各命令之間以逗號(hào)分隔,若前一命令后帶有分號(hào),則逗號(hào)可以省略。 如果一個(gè)命令行很長(zhǎng),要加續(xù)行符(三個(gè)小黑點(diǎn))。3. 命令行的編輯4. 常用操作系統(tǒng)命令例如:在命令窗口中輸入sin(pi/5),然后單擊回車鍵,則會(huì)得到該表達(dá)式的值sin(pi/5)ans=0.5878由例可以看出,為求得表達(dá)式的值,只需按照MALAB語(yǔ)言規(guī)則將表達(dá)式輸入即可,結(jié)果會(huì)自動(dòng)返回,而不必像其他的程序設(shè)計(jì)語(yǔ)言那樣,編制冗長(zhǎng)的程序來(lái)執(zhí)行。當(dāng)需要處理相當(dāng)繁瑣的計(jì)算時(shí),可能在一行之內(nèi)無(wú)法寫完表達(dá)式,可以換行表示,此時(shí)需要使用續(xù)行符“”否則MATLAB將只計(jì)算一行的值,而不理會(huì)該行是否已輸入完畢。例如:sin(1/9*pi)+

8、sin(2/9*pi)+sin(3/9*pi)+sin(4/9*pi)+sin(5/9*pi)+sin(6/9*pi)+sin(7/9*pi)+sin(8/9*pi)+sin(9/9*pi)+ans=5.6713使用續(xù)行符之后MATLAB會(huì)自動(dòng)將前一行保留而不加以計(jì)算,并與下一行銜接,等待完整輸入后再計(jì)算整個(gè)輸入的結(jié)果。在MATLAB命令行操作中,有一些鍵盤按鍵可以提供特殊而方便的編輯操作。比如:“”可用于調(diào)出前一個(gè)命令行,“”可調(diào)出后一個(gè)命令行,避免了重新輸入的麻煩。當(dāng)然下面即將講到的歷史窗口也具有此功能。3.1.3 歷史窗口(Command History)歷史命令窗口是MATLAB6新增

9、添的一個(gè)用戶界面窗口,默認(rèn)設(shè)置下歷史命令窗口會(huì)保留自安裝時(shí)起所有命令的歷史記錄,并標(biāo)明使用時(shí)間,以方便使用者的查詢。而且雙擊某一行命令,即在命令窗口中執(zhí)行該命令。3.1.4 發(fā)行說(shuō)明書窗口(Launch Pad)發(fā)行說(shuō)明書窗口是MATLAB6所特有的,用來(lái)說(shuō)明用戶所擁有的Mathworks公司產(chǎn)品的工具包、演示以及幫助信息。當(dāng)選中該窗口中的某個(gè)組件之后,可以打開相應(yīng)的窗口工具包。3.1.5 當(dāng)前目錄窗口(Current Directory )在當(dāng)前目錄窗口中可顯示或改變當(dāng)前目錄,還可以顯示當(dāng)前目錄下的文件,包括文件名、文件類型、最后修改時(shí)間以及該文件的說(shuō)明信息等并提供搜索功能。3.1.6 工作

10、空間管理窗口(Workspace)工作空間管理窗口是MATLAB的重要組成部分。在工作空間管理窗口中將顯示所有目前保存在內(nèi)存中的MATLAB變量的變量名、數(shù)據(jù)結(jié)構(gòu)、字節(jié)數(shù)以及類型,而不同的變量類型分別對(duì)應(yīng)不同的變量名圖標(biāo)。3.2 MATLAB幫助系統(tǒng)完善的幫助系統(tǒng)是任何應(yīng)用軟件必要的組成部分。MATLAB提供了相當(dāng)豐富的幫助信息,同時(shí)也提供了獲得幫助的方法。首先,可以通過(guò)桌面平臺(tái)的【Help】菜單來(lái)獲得幫助,也可以通過(guò)工具欄的幫助選項(xiàng)獲得幫助。此外,MATLAB也提供了在命令窗口中的獲得幫助的多種方法,在命令窗口中獲得MATLAB幫助的命令。3.3 MATLAB功能演示例1.1 求解線性方程組

11、 命令如下: a=2,3,-1;8,2,3;45,3,9; b=2;4;23; x=inv(a)*b 例1.2 繪制正弦曲線和余弦曲線。 命令如下: x=0:0.5:360*pi/180; plot(x,sin(x),x,cos(x) ; 例1.3 輸入10個(gè)學(xué)生的成績(jī)并對(duì)成績(jī)按升序排序。 在MATLAB命令窗口輸入: g=input(請(qǐng)輸入學(xué)生成績(jī):); g=sort(g) 例1.4 設(shè)有常微分方程初值問(wèn)題,試求其數(shù)值解,并與精確解相比較。 (1)建立函數(shù)文件funt.m: function yp=funt(t,y) yp=(y2-t-2)/4/(t+1); (2)求解微分方程: t0=0;

12、tf=10;y0=2; t,y=ode23(funt,t0,tf,y0); y1=sqrt(t+1)+1; t4 MATLAB數(shù)值計(jì)算功能MATLAB強(qiáng)大的數(shù)值計(jì)算功能使其在諸多數(shù)學(xué)計(jì)算軟件中傲視群雄,是MATLAB軟件的基礎(chǔ)。本節(jié)將簡(jiǎn)要介紹MATLAB的數(shù)據(jù)類型、矩陣的建立及運(yùn)算。4.1 MATLAB 數(shù)據(jù)類型MATLAB數(shù)據(jù)類型v 數(shù)值數(shù)據(jù):雙精度型、單精度數(shù)、帶符號(hào)整數(shù)和無(wú)符號(hào)整數(shù)。v 字符數(shù)據(jù)。v 結(jié)構(gòu)(Structure)和單元(Cell)。多維矩陣和稀疏矩陣(Sparse)。4.1.1 變量與常量變量是任何程序設(shè)計(jì)語(yǔ)言的基本要素之一,MATLAB語(yǔ)言當(dāng)然也不例外。與常規(guī)的程序設(shè)計(jì)語(yǔ)

13、言不同的MATLAB并不要求事先對(duì)所使用的變量進(jìn)行聲明,也不需要指定變量類型,MATLAB語(yǔ)言會(huì)自動(dòng)依據(jù)所賦予變量的值或?qū)ψ兞克M(jìn)行的操作來(lái)識(shí)別變量的類型。在賦值過(guò)程中如果賦值變量已存在時(shí),MATLAB語(yǔ)言將使用新值代替舊值,并以新值類型代替舊值類型。在MATLAB語(yǔ)言中變量的命名應(yīng)遵循如下規(guī)則:(1)變量名區(qū)分大小寫。(2)變量名長(zhǎng)度不超31位,第31個(gè)字符之后的字符將被MATLAB語(yǔ)言所忽略。(3)變量名以字母開頭,可以是字母、數(shù)字、下劃線組成,但不能使用標(biāo)點(diǎn)。MATLAB語(yǔ)言本身也具有一些預(yù)定義的變量,這些特殊的變量稱為常量。表4-1給出了MATLAB語(yǔ)言中經(jīng)常使用的一些常量值。表4-1

14、 常 量 表 示 數(shù) 值 pi圓周率 eps浮點(diǎn)運(yùn)算的相對(duì)精度 inf正無(wú)窮大 NaN表示不定值 realmax最大的浮點(diǎn)數(shù) i, j虛數(shù)單位在MATLAB語(yǔ)言中,定義變量時(shí)應(yīng)避免與常量名重復(fù),以防改變這些常量的值,如果已改變了某外常量的值,可以通過(guò)“clear+常量名”命令恢復(fù)該常量的初始設(shè)定值(當(dāng)然,也可通過(guò)重新啟動(dòng)MATLAB系統(tǒng)來(lái)恢復(fù)這些常量值)。4.1.2 數(shù)字變量的運(yùn)算及顯示格式MALAB是以矩陣為基本運(yùn)算單元的,而構(gòu)成數(shù)值矩陣的基本單元是數(shù)字。為了更好地學(xué)習(xí)和掌握矩陣的運(yùn)算,首先對(duì)數(shù)字的基本知識(shí)作簡(jiǎn)單的介紹。對(duì)于簡(jiǎn)單的數(shù)字運(yùn)算,可以直接在命令窗口中以平常慣用的形式輸入,如計(jì)算2和

15、3的乘積再加1時(shí),可以直接輸入: 1+2*3ans= 7這里“ans”是指當(dāng)前的計(jì)算結(jié)果,若計(jì)算時(shí)用戶沒(méi)有對(duì)表達(dá)式設(shè)定變量,系統(tǒng)就自動(dòng)賦當(dāng)前結(jié)果給“ans”變量。用戶也可以輸入: a=1+2*3a= 7此時(shí)系統(tǒng)就把計(jì)算結(jié)果賦給指定的變量a了。數(shù)據(jù)的輸出格式MATLAB語(yǔ)言中數(shù)值有多種顯示形式,在缺省情況下,若數(shù)據(jù)為整數(shù),則就以整數(shù)表示;若數(shù)據(jù)為實(shí)數(shù),則以保留小數(shù)點(diǎn)后4位的精度近似表示。MATLAB語(yǔ)言提供了10種數(shù)據(jù)顯示格式,常用的有下述幾種格式:short 小數(shù)點(diǎn)后4位(系統(tǒng)默認(rèn)值)long 小數(shù)點(diǎn)后14位short e 5位指數(shù)形式long e 15位指數(shù)形式MATLAB語(yǔ)言還提供了復(fù)數(shù)的

16、表達(dá)和運(yùn)算功能。在MATLAB語(yǔ)言中,復(fù)數(shù)的基本單位表示為i或j。在表達(dá)簡(jiǎn)單數(shù)數(shù)值時(shí)虛部的數(shù)值與i、j之間可以不使用乘號(hào),但是如果是表達(dá)式,則必須使用乘號(hào)以識(shí)別虛部符號(hào)。4.1.3賦值語(yǔ)句MATLAB賦值語(yǔ)句有兩種格式:(1) 變量=表達(dá)式 (2) 表達(dá)式 一般地,運(yùn)算結(jié)果在命令窗口中顯示出來(lái)。如果在語(yǔ)句的最后加分號(hào),那么,MATLAB僅僅執(zhí)行賦值操作,不再顯示運(yùn)算的結(jié)果。 在MATLAB語(yǔ)句后面可以加上注釋,注釋以%開頭,后面是注釋的內(nèi)容。 例2.1 計(jì)算表達(dá)式的值,并將結(jié)果賦給變量x,然后顯示出結(jié)果。 在MATLAB命令窗口輸入命令: x=(5+cos(47*pi/180)/(1+sqrt

17、(7)-2*i) %計(jì)算表達(dá)式的值4.2 矩陣及其運(yùn)算 矩陣是MATLAB數(shù)據(jù)存儲(chǔ)的基本單元,而矩陣的運(yùn)算是MATLAB語(yǔ)言的核心,在MATLAB語(yǔ)言系統(tǒng)中幾乎一切運(yùn)算均是以對(duì)矩陣的操作為基礎(chǔ)的。下面重點(diǎn)介紹矩陣的生成、矩陣的基本運(yùn)算和矩陣的數(shù)組運(yùn)算。4.2.1 矩陣的生成1. 直接輸入法從鍵盤上直接輸入矩陣是最方便、最常用的創(chuàng)建數(shù)值矩陣的方法,尤其適合較小的簡(jiǎn)單矩陣。在用此方法創(chuàng)建矩陣時(shí),應(yīng)當(dāng)注意以下幾點(diǎn): 輸入矩陣時(shí)要以“ ”為其標(biāo)識(shí)符號(hào),矩陣的所有元素必須都在括號(hào)內(nèi)。 矩陣同行元素之間由空格或逗號(hào)分隔,行與行之間用分號(hào)或回車鍵分隔。 矩陣大小不需要預(yù)先定義。 矩陣元素可以是運(yùn)算表達(dá)式。

18、若“ ”中無(wú)元素表示空矩陣。 2. 利用M文件建立矩陣 對(duì)于比較大且比較復(fù)雜的矩陣,可以為它專門建立一個(gè)M文件。 例2.2 利用M文件建立MYMAT矩陣。 (1)啟動(dòng)有關(guān)編輯程序或MATLAB文本編輯器,并輸入待建矩陣. (2)把輸入的內(nèi)容以純文本方式存盤(設(shè)文件名為mymatrix.m)。 (3)運(yùn)行該M文件,就會(huì)自動(dòng)建立一個(gè)名為MYMAT的矩陣,可供以后使用。3. 利用MATLAB函數(shù)建立矩陣常用的有下面幾個(gè):zeros(m) 生成m階全0矩陣eye(m) 生成m階單位矩陣ones(m) 生成m階全1矩陣rand(m) 生成m階均勻分布的隨機(jī)陣 randn(m) 生成m階正態(tài)分布的隨機(jī)矩陣

19、 這幾個(gè)函數(shù)的調(diào)用格式相似,下面以產(chǎn)生零矩陣的zeros函數(shù)為例進(jìn)行說(shuō)明。其調(diào)用格式是: zeros(m) 產(chǎn)生mm零矩陣 zeros(m,n) 產(chǎn)生mn零矩陣。 zeros(size(A) 產(chǎn)生與矩陣A同樣大小的零矩陣 相關(guān)的函數(shù)有:length(A)給出行數(shù)和列數(shù)中的較大者,即length(A)=max(size(A);ndims(A)給出A的維數(shù)。例2.3 分別建立33、32和與矩陣A同樣大小的零矩陣。(1)建立一個(gè)33零矩陣:zeros(3)(2)建立一個(gè)32零矩陣:zeros(3,2)(3)建立與矩陣A同樣大小零矩陣:zeros(size(A) 此外,常用的函數(shù)還有reshape(A

20、,m,n),它在矩陣總元素保持不變的前提下,將矩陣A重新排成mn的二維矩陣。 4. 建立大矩陣 大矩陣可由方括號(hào)中的小矩陣建立起來(lái)。例如 A=1 2 3;4 5 6;7 8 9; C=A,eye(size(A); ones(size(A),A2.3.2 冒號(hào)表達(dá)式 冒號(hào)表達(dá)式的一般格式: e1:e2:e3 還可以用linspace函數(shù)產(chǎn)生行向量:linspace(a,b,n) linspace(a,b,n)與a:(b-a)/(n-1):b等價(jià)。例如: a=1:0.5:4a= Columns through 7 1 1.5 2 2.5 3 3.5 42.3.3 矩陣的拆分1. 矩陣元素 MATL

21、AB允許用戶對(duì)一個(gè)矩陣的單個(gè)元素進(jìn)行賦值和操作。例如 A(3,2)=200 也可以采用矩陣元素的序號(hào)來(lái)引用矩陣元素。矩陣元素按列編號(hào),先第一列,再第二列,依次類推。 以mn矩陣A為例,矩陣元素A(i,j)的序號(hào)為(j-1)*m+i。2. 矩陣拆分 (1)利用冒號(hào)表達(dá)式獲得子矩陣 A(:,j)表示取A矩陣的第j列全部元素;A(i,:)表示A矩陣第i行的全部元素;A(i,j)表示取A矩陣第i行、第j列的元素。 A(i:i+m,:)表示取A矩陣第ii+m行的全部元素;A(:,k:k+m)表示取A矩陣第kk+m列的全部元素,A(i:i+m,k:k+m)表示取A矩陣第ii+m行內(nèi),并在第kk+m列中的所

22、有元素。 其次,通過(guò)使用冒號(hào),可以截取指定矩陣中的部分。例如: A=1 2 3;4 5 6;7 8 9 A= 1 2 3 4 5 6 7 8 9 B=A (1:2, : )B= 1 2 3 4 5 6通過(guò)上例可以看到B是由矩陣A的1到2行和相應(yīng)的所有列的元素構(gòu)成的一個(gè)新的矩陣。在這里,冒號(hào)代替了矩陣A的所有列。 (2)利用空矩陣刪除矩陣的元素 在MATLAB中,定義為空矩陣。給變量X賦空矩陣的語(yǔ)句為X=。 注意,X=與clear X不同,clear是將X從工作空間中刪除,而空矩陣則存在于工作空間,只是維數(shù)為0。將某些元素從矩陣中刪除,采用將其置為空矩陣的方法就是一種有效的方法。4.2.2 矩陣

23、的基本數(shù)學(xué)運(yùn)算矩陣的基本數(shù)學(xué)運(yùn)算包括矩陣的四則運(yùn)算、與常數(shù)的運(yùn)算、逆運(yùn)算、行列式運(yùn)算、秩運(yùn)算、特征值運(yùn)算等基本函數(shù)運(yùn)算,這里進(jìn)行簡(jiǎn)單介紹。算術(shù)運(yùn)算 1. 基本算術(shù)運(yùn)算MATLAB的基本算術(shù)運(yùn)算有:(加)、(減)、*(乘)、/(右除)、(左除)、(乘方)。矩陣的加、減、乘運(yùn)算符分別為“+,*” ,用法與數(shù)字運(yùn)算幾乎相同,但計(jì)算時(shí)要滿足其數(shù)學(xué)要求(如:同型矩陣才可以加、減)。在MATLAB中矩陣的除法有兩種形式:左除“”和右除“/”。在傳統(tǒng)的MATLAB算法中,右除是先計(jì)算矩陣的逆再相乘,而左除則不需要計(jì)算逆矩陣直接進(jìn)行除運(yùn)算。通常右除要快一點(diǎn),但左除可避免被除矩陣的奇異性所帶來(lái)的麻煩。在MATL

24、AB6中兩者的區(qū)別不太大。 注意:運(yùn)算是在矩陣意義下進(jìn)行的,單個(gè)數(shù)據(jù)的算術(shù)運(yùn)算只是一種特例。2.與常數(shù)的運(yùn)算 常數(shù)與矩陣的運(yùn)算即是同該矩陣的每一元素進(jìn)行運(yùn)算。但需注意進(jìn)行數(shù)除時(shí),常數(shù)通常只能做除數(shù)。 3MATLAB常用數(shù)學(xué)函數(shù)矩陣的函數(shù)運(yùn)算是矩陣運(yùn)算中最實(shí)用的部分,常用的主要有以下幾個(gè):det(a) 求矩陣a的行列式eig(a) 求矩陣a的特征值inv(a)或a (-1) 求矩陣a的逆矩陣rank(a) 求矩陣a的秩trace(a) 求矩陣a的跡(對(duì)角線元素之和)例如: a=2 1 3 1; 3 1 0 7; -1 2 4 2; 1 0 1 5; a1=det(a); a2=det(inv(a

25、); a1*a2 ans= 14.2.2 矩陣的數(shù)組運(yùn)算我們?cè)谶M(jìn)行工程計(jì)算時(shí)常常遇到矩陣對(duì)應(yīng)元素之間的運(yùn)算。這種運(yùn)算不同于前面講的數(shù)學(xué)運(yùn)算,為有所區(qū)別,我們稱之為數(shù)組運(yùn)算(點(diǎn)運(yùn)算).1 基本數(shù)學(xué)運(yùn)算數(shù)組的加、減與矩陣的加、減運(yùn)算完全相同。而乘除法運(yùn)算有相當(dāng)大的區(qū)別,數(shù)組的乘除法是指兩同維數(shù)組對(duì)應(yīng)元素之間的乘除法,它們的運(yùn)算符為“.*”和“./”或“.”。前面講過(guò)常數(shù)與矩陣的除法運(yùn)算中常數(shù)只能做除數(shù)。在數(shù)組運(yùn)算中有了“對(duì)應(yīng)關(guān)系”的規(guī)定,數(shù)組與常數(shù)之間的除法運(yùn)算沒(méi)有任何限制。另外,矩陣的數(shù)組運(yùn)算中還有冪運(yùn)算(運(yùn)算符為 . )、指數(shù)運(yùn)算(exp)、對(duì)數(shù)運(yùn)算(log)、和開方運(yùn)算(sqrt)等。有了“

26、對(duì)應(yīng)元素”的規(guī)定,數(shù)組的運(yùn)算實(shí)質(zhì)上就是針對(duì)數(shù)組內(nèi)部的每個(gè)元素進(jìn)行的。點(diǎn)運(yùn)算符有.*、./、.和.。兩矩陣進(jìn)行點(diǎn)運(yùn)算是指它們的對(duì)應(yīng)元素進(jìn)行相關(guān)運(yùn)算,要求兩矩陣的維參數(shù)相同。例如: a=2 1 -3 -1; 3 1 0 7; -1 2 4 -2; 1 0 -1 5; a3 ans=32 -28 -101 3499 -12 -151 239-1 49 93 851 -17 -98 139 a .3 ans=8 1 -27 -127 1 0 343-1 8 64 -8 1 0 -1 125由上例可見矩陣的冪運(yùn)算與數(shù)組的冪運(yùn)算有很大的區(qū)別。2邏輯關(guān)系運(yùn)算 邏輯運(yùn)算是MATLAB中數(shù)組運(yùn)算所特有的一種運(yùn)算

27、形式,也是幾乎所有的高級(jí)語(yǔ)言普遍適用的一種運(yùn)算。它們的具體符號(hào)、功能及用法見表4-2。表4-2符號(hào)運(yùn)算符功 能函 數(shù) 名= =等于eq =不等于ne大于gt=大于等于ge&邏輯與and|邏輯或or邏輯非not 說(shuō)明: 在關(guān)系比較中,若比較的雙方為同維數(shù)組,則比較的結(jié)果也是同維數(shù)組。它的元素值由0和1組成。當(dāng)比較雙方對(duì)應(yīng)位置上的元素值滿足比較關(guān)系時(shí),它的對(duì)應(yīng)值為1,否則為0。 當(dāng)比較的雙方中一方為常數(shù),另一方為一數(shù)組,則比較的結(jié)果與數(shù)組同維。 在算術(shù)運(yùn)算、比較運(yùn)算和邏輯與、或、非運(yùn)算中,它們的優(yōu)先級(jí)關(guān)系先后為: 比較運(yùn)算、算術(shù)運(yùn)算、邏輯與或非運(yùn)算。 例2.4 產(chǎn)生5階隨機(jī)方陣A,其元素為10,9

28、0區(qū)間的隨機(jī)整數(shù),然后判斷A的元素是否能被3整除。 (1) 生成5階隨機(jī)方陣A。 A=fix(90-10+1)*rand(5)+10) (2) 判斷A的元素是否可以被3整除。 P=rem(A,3)=05 MATLAB圖形功能MATLAB有很強(qiáng)的圖形功能,可以方便地實(shí)現(xiàn)數(shù)據(jù)的視覺(jué)化。強(qiáng)大的計(jì)算功能與圖形功能相結(jié)合為MATLAB在科學(xué)技術(shù)和教學(xué)方面的應(yīng)用提供了更加廣闊的天地。下面著重介紹二維圖形的畫法,對(duì)三維圖形只作簡(jiǎn)單敘述。5.1 二維圖形的繪制5.1.1 基本形式二維圖形的繪制是MATLAB語(yǔ)言圖形處理的基礎(chǔ),MATLAB最常用的畫二維圖形的命令是plot,plot函數(shù)的基本調(diào)用格式為:plo

29、t(x,y) 其中x和y為長(zhǎng)度相同的向量,分別用于存儲(chǔ)x坐標(biāo)和y坐標(biāo)數(shù)據(jù)??磧蓚€(gè)簡(jiǎn)單的例子: y=0 0.58 0.70 0.95 0.83 0.25; plot(y)生成的圖形見圖5-1,是以序號(hào)為橫坐標(biāo)、數(shù)組y的數(shù)值為縱坐標(biāo)畫出的折線。 x=linspace(0,2*pi,30); % 生成一組線性等距的數(shù)值 y=sin(x); plot(x,y)生成的圖形見圖5-2,是上30個(gè)點(diǎn)連成的光滑的正弦曲線。 圖5-1 圖5-2說(shuō)明:(1)當(dāng)x,y是同維矩陣時(shí),則以x,y對(duì)應(yīng)列元素為橫、縱坐標(biāo)分別繪制曲線,曲線條數(shù)等于矩陣的列數(shù)。(2)當(dāng)x是向量,y是有一維與x同維的矩陣時(shí),則繪制出多根不同色彩

30、的曲線。曲線條數(shù)等于y矩陣的另一維數(shù),x被作為這些曲線共同的橫坐標(biāo)。(3)plot函數(shù)最簡(jiǎn)單的調(diào)用格式是只包含一個(gè)輸入?yún)?shù):plot(x)。例4.2 某工廠2000年各月總產(chǎn)值(單位:萬(wàn)元)分別為22、60、88、95、56、23、9、10、14、81、56、23,試?yán)L制折線圖以顯示出該廠總產(chǎn)值的變化情況。 程序如下: p=22,60,88,95,56,23,9,10,14,81,56,23; plot(p)5.1.2 多重線在同一個(gè)畫面上可以畫許多條曲線,只需多給出幾個(gè)數(shù)組,含多個(gè)輸入?yún)?shù)的plot函數(shù)調(diào)用格式為:plot(x1,y1,x2,y2,xn,yn)例如 x=0:pi/15:2*p

31、i; y1=sin(x); y2=cos(x); plot(x,y1,x,y2)則可以畫出圖5-3。多重線的另一種畫法是利用hold命令。在已經(jīng)畫好的圖形上,若設(shè)置hold on,MATLA將把新的plot命令產(chǎn)生的圖形畫在原來(lái)的圖形上。而命令hold off 將結(jié)束這個(gè)過(guò)程。例如: x=linspace(0,2*pi,30); y=sin(x); plot(x,y)先畫好圖5-2,然后用下述命令增加cos(x)的圖形,也可得到圖5-3。 hold on z=cos(x); plot(x,z) hold off 圖5-3 圖5-4 含選項(xiàng)的plot函數(shù)調(diào)用格式為:plot(x1,y1,選項(xiàng)1,

32、x2,y2, 選項(xiàng)2,xn,yn,選項(xiàng)n)例4.3 用不同線型和顏色在同一坐標(biāo)內(nèi)繪制曲線y=2e-0.5xsin(2x)。程序如下: x=(0:pi/100:2*pi); y1=2*exp(-0.5*x)*1,-1; y2=2*exp(-0.5*x).*sin(2*pi*x); x1=(0:12)/2; y3=2*exp(-0.5*x1).*sin(2*pi*x1); plot(x,y1,g:,x,y2,b-,x1,y3,rp); 5.1.3 線型和顏色MATLAB對(duì)曲線的線型和顏色有許多選擇,標(biāo)注的方法是在每一對(duì)數(shù)組后加一個(gè)字符串參數(shù),說(shuō)明如下:線型(LineStyle)說(shuō)明線型符號(hào)實(shí)線虛線

33、雙點(diǎn)線:點(diǎn)劃線標(biāo)識(shí)點(diǎn)(Marker)說(shuō)明標(biāo)識(shí)點(diǎn)符號(hào)說(shuō)明標(biāo)識(shí)點(diǎn)符號(hào)說(shuō)明標(biāo)識(shí)點(diǎn)符號(hào)說(shuō)明+加號(hào)s方塊右三角線的顏色(Color)說(shuō)明名稱縮寫RGB值名稱縮寫RGB值黃色Y1 1 0綠色g0 1 0紫紅色M1 0 1藍(lán)色b0 0 1蘭綠色C0 1 1白色w1 1 1紅色R1 0 0黑色k0 0 0以下面的例子說(shuō)明用法: x=0:pi/15:2*pi; y1=sin(x); y2=cos(x); plot(x,y1,b:+,x,y2,g-.*)可得圖形5-4。Plot(,PropertyName, PropertyValue,)PropertyName:線寬(LineWidth),顏色(Color),標(biāo)

34、識(shí)點(diǎn)(Marker),標(biāo)識(shí)點(diǎn)邊緣顏色(MarkerEdgeColor),標(biāo)識(shí)點(diǎn)充填顏色(MarkerFaceColor),標(biāo)識(shí)點(diǎn)大小(MarkerSize)等。例:x=0:pi/50:2*pi;y=sin(x);plot(x,y,linewidth,8,color,r)grid on例: t=0:pi/20:2*pi;plot(t,sin(t),-.r*)hold on%以后圖形繪繪制在當(dāng)前坐標(biāo)軸圖形上plot(t,sin(t-pi/2),mo,Linewidth,2);plot(t,sin(t-pi),:bs,linewidth,3,MarkerEdgeColor,k, MarkerFace

35、Color,.49 1 .63,MarkerSize,12)hold off 繪制圖形的輔助操作 1. 圖形標(biāo)注 有關(guān)圖形標(biāo)注函數(shù)的調(diào)用格式為: title(圖形名稱) xlabel(x軸說(shuō)明) ylabel(y軸說(shuō)明) text(x,y,圖形說(shuō)明)legend(圖例1,圖例2,) line(X,Y)%在當(dāng)前圖形窗口中添加以向量X和向量Y而繪制成的直線。例4.5 給圖形添加圖形標(biāo)注。程序如下: x=(0:pi/100:2*pi); y1=2*exp(-0.5*x)*1,-1; y2=2*exp(-0.5*x).*sin(2*pi*x); x1=(0:12)/2; y3=2*exp(-0.5*x

36、1).*sin(2*pi*x1); plot(x,y1,g:,x,y2,b-,x1,y3,rp); title(曲線及其包絡(luò)線); %加圖形標(biāo)題 xlabel(independent variable X); %加X(jué)軸說(shuō)明 ylabel(independent variable Y); %加Y軸說(shuō)明 text(2.8,0.5,包絡(luò)線); %在指定位置添加圖形說(shuō)明 text(0.5,0.5,曲線y); text(1.4,0.1,離散數(shù)據(jù)點(diǎn)); legend(包絡(luò)線,包絡(luò)線,曲線y,離散數(shù)據(jù)點(diǎn)) %加圖例X=0 16;Y=0 0;line(X,Y);更方便的是用鼠標(biāo)來(lái)確定字符串的位置,方法是輸入命

37、令: gtext(sinx)在圖形窗口十字線的交點(diǎn)是字符串的位置,用鼠標(biāo)點(diǎn)一下就可以將字符串放在那里。2. 坐標(biāo)控制函數(shù)的調(diào)用格式為:axis(xmin xmax ymin ymax zmin zmax)axis函數(shù)功能豐富,常用的用法還有:axis equal 縱、橫坐標(biāo)軸采用等長(zhǎng)刻度axis square 產(chǎn)生正方形坐標(biāo)系(缺省為矩形)axis auto 使用缺省設(shè)置axis off 取消坐標(biāo)軸axis on 顯示坐標(biāo)軸grid on/off命令控制是畫還是不畫網(wǎng)格線,不帶參數(shù)的grid命令在兩種狀態(tài)之間進(jìn)行切換。box on/off命令控制是加還是不加邊框線,不帶參數(shù)的box命令在兩種狀

38、態(tài)之間進(jìn)行切換。例4.6 用圖形保持功能在同一坐標(biāo)內(nèi)繪制曲線y=2e-0.5xsin(2x)及其包絡(luò)線,并加網(wǎng)格線。 程序如下: x=(0:pi/100:2*pi); y1=2*exp(-0.5*x)*1,-1;y2=2*exp(-0.5*x).*sin(2*pi*x); plot(x,y1,b:); axis(0,2*pi,-2,2); %設(shè)置坐標(biāo) hold on; %設(shè)置圖形保持狀態(tài) plot(x,y2,k); grid on; %加網(wǎng)格線 box off; %不加坐標(biāo)邊框 hold off; %關(guān)閉圖形保持3. 圖形窗口的分割 subplot函數(shù)的調(diào)用格式為: subplot(m,n,p

39、) 例4.7 在一個(gè)圖形窗口中以子圖形式同時(shí)繪制正弦、余弦、正切、余切曲線。 程序如下: x=linspace(0,2*pi,60); y=sin(x);z=cos(x); t=sin(x)./(cos(x)+eps); ct=cos(x)./(sin(x)+eps); subplot(2,2,1); plot(x,y);title(sin(x);axis (0,2*pi,-1,1); subplot(2,2,2); plot(x,z);title(cos(x);axis (0,2*pi,1,1); subplot(2,2,3); plot(x,t);title(tangent(x);axis

40、 (0,2*pi,-40,40); subplot(2,2,4); plot(x,ct);title(cotangent(x);axis (0,2*pi,-40,40);對(duì)圖形窗口靈活分割。請(qǐng)看下面的程序。 x=linspace(0,2*pi,60); y=sin(x);z=cos(x); t=sin(x)./(cos(x)+eps); ct=cos(x)./(sin(x)+eps); subplot(2,2,1); %選擇22個(gè)區(qū)中的1號(hào)區(qū) stairs(x,y);title(sin(x)-1);axis (0,2*pi,-1,1); subplot(2,1,2); %選擇21個(gè)區(qū)中的2號(hào)區(qū)

41、 stem(x,y);title(sin(x)-2);axis (0,2*pi,-1,1); subplot(4,4,3); %選擇44個(gè)區(qū)中的3號(hào)區(qū) plot(x,y);title(sin(x);axis (0,2*pi,-1,1); subplot(4,4,4); %選擇44個(gè)區(qū)中的4號(hào)區(qū) plot(x,z);title(cos(x);axis (0,2*pi,-1,1); subplot(4,4,7); %選擇44個(gè)區(qū)中的7號(hào)區(qū) plot(x,t);title(tangent(x);axis (0,2*pi,-40,40); subplot(4,4,8); %選擇44個(gè)區(qū)中的8號(hào)區(qū) pl

42、ot(x,ct);title(cotangent(x);axis (0,2*pi,-40,40);繪制二維圖形的其他函數(shù)其他形式的線性直角坐標(biāo)圖在線性直角坐標(biāo)系中,其他形式的圖形有條形圖、階梯圖、桿圖和填充圖等,所采用的函數(shù)分別是:bar(x,y,選項(xiàng))stairs(x,y,選項(xiàng))stem(x,y,選項(xiàng))fill(x1,y1,選項(xiàng)1,x2,y2,選項(xiàng)2,)例4.8 分別以條形圖、填充圖、階梯圖和桿圖形式繪制曲線y=2e-0.5x。 程序如下: x=0:0.35:7; y=2*exp(-0.5*x); subplot(2,2,1);bar(x,y,g); title(bar(x,y,g);axi

43、s(0,7,0,2); subplot(2,2,2);fill(x,y,r); title(fill(x,y,r);axis(0,7,0,2); subplot(2,2,3);stairs(x,y,b); title(stairs(x,y,b);axis(0,7,0,2); subplot(2,2,4);stem(x,y,k); title(stem(x,y,k);axis(0,7,0,2);條形圖在Matlab中,函數(shù)bar用于繪制二維垂直條形圖,函數(shù)barh用于繪制二維水平條形圖,兩個(gè)函數(shù)的用法基本相同,差別在繪制圖形的方向上。下面給出bar函數(shù)的調(diào)用格式:bar(Y)bar(X,Y)ba

44、r(,width)bar(style)bar(,LineSpec)bar(Y)繪制Y每個(gè)元素的條形圖,如果Y是矩陣,繪制Y行數(shù)個(gè)條形組。條形的高度對(duì)應(yīng)于Y的值。bar(X,Y)用法和bar(Y)一樣,但不是對(duì)應(yīng)Y下標(biāo)而是對(duì)應(yīng)X來(lái)繪制條形圖,這里的X向量必須具有單調(diào)性。參數(shù)width來(lái)設(shè)定條形的寬度,默認(rèn)的寬度是0.8,如果寬度大于1,則條形圖間就會(huì)出現(xiàn)交疊。參數(shù)style對(duì)應(yīng)條形圖的兩種格式,可選grouped或者stacked,這里grouped為垂直排列組的條形圖,stacked為垂直堆形的條形圖,其中g(shù)rouped是默認(rèn)值。參數(shù)LineSpec和前面用法一樣,用來(lái)設(shè)置線型,色彩及點(diǎn)型等。

45、例:二維條形圖示例:Y=round(rand(5,3)*10);Subplot(221);bar(Y,group);title(Group);subplot(222);bar(Y,stack);title(Stack);subplot(223);barh(Y,stack);title(Stack);subplot(224);bar(Y,1.5);title(Width=1.5);餅圖為了顯示數(shù)據(jù)元素在總體中所占的百分比的情況,我們常需要餅圖。在Matlab中繪制餅圖的函數(shù)有兩個(gè),即pie和pie3函數(shù),分別用于二維和三維餅圖的繪制。二維餅圖:pie函數(shù)的調(diào)用格式:pie(X)pie(X,exp

46、lode)pie(X) 中,X既可以是向量也可以是矩陣。如果X中各個(gè)元素的和大于等于1,則繪制出來(lái)的餅圖中每個(gè)切片占整個(gè)餅圖的百分比為這個(gè)元素值占X的元素值和的百分比。如果X中各個(gè)元素的各小于1,則繪制的是一個(gè)不完整的餅圖,每個(gè)切片占整個(gè)餅圖的百分比就對(duì)應(yīng)于這個(gè)元素的值。參數(shù)explode用于設(shè)定餅圖中切片的分離情況,參數(shù)explode的大小必須和X的大小一致,explode中非零元素對(duì)應(yīng)的切片就是分離的切片。這里我們還可以加上自定義的標(biāo)注,如pie(x,labels),參數(shù)labels的大小必須和X大小相同。例:x=1 3 0.5 2.5 2;subplot(221);pie(x)subpl

47、ot(222);explode=0 1 0 0 0;pie(x,explode) %加上分離的切片subplot(223)label=一班,二班,三班,四班,五班;pie(x,label);subplot(224);pie(x,explode,label)%具有分離和自定義標(biāo)注的功能三維餅圖pie3的調(diào)用格式:pie3(X);pie3(X,explode)這里的各項(xiàng)參數(shù)的含義和pie的函數(shù)中參數(shù)相同。例子: x=5 10 7 8 1.3; explode=0 1 0 0 0;pie3(x,explode);title(三維餅圖)5.3 圖形的輸出在數(shù)學(xué)建模中,往往需要將產(chǎn)生的圖形輸出到Word

48、文檔中。通常可采用下述方法:首先,在MATLAB圖形窗口中選擇【File】菜單中的【Export】選項(xiàng),將打開圖形輸出對(duì)話框,在該對(duì)話框中可以把圖形以emf、bmp、jpg、pgm等格式保存。然后,再打開相應(yīng)的文檔,并在該文檔中選擇【插入】菜單中的【圖片】選項(xiàng)插入相應(yīng)的圖片即可。6 程序設(shè)計(jì) MATLAB作為一種高級(jí)語(yǔ)言,它不僅可以如前幾節(jié)所介紹的那樣,以一種人機(jī)交互式的命令行的方式工作,還可以像BASIC、FORTRAN、C等其他高級(jí)計(jì)算機(jī)語(yǔ)言一樣進(jìn)行控制流的程序設(shè)計(jì),即編制一種以 . m為擴(kuò)展名的MATLAB程序(簡(jiǎn)稱M文件)。而且,由于MATLAB本身的一些特點(diǎn),M文件的編制同上述幾種高級(jí)語(yǔ)言比較起來(lái),有許多無(wú)法比擬的優(yōu)點(diǎn)。6.1 M文件所謂M文件就是由MATLAB語(yǔ)言編寫的可在MATLAB語(yǔ)言環(huán)境下運(yùn)行程序源代碼文件。由于商用的MATLAB軟件是用C語(yǔ)言編寫而成。因此,M

溫馨提示

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

評(píng)論

0/150

提交評(píng)論