理學(xué)matlab教程_第1頁(yè)
理學(xué)matlab教程_第2頁(yè)
理學(xué)matlab教程_第3頁(yè)
理學(xué)matlab教程_第4頁(yè)
理學(xué)matlab教程_第5頁(yè)
已閱讀5頁(yè),還剩41頁(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、1.1 MATLAB使用入門 MATLAB 簡(jiǎn)介MALAB是MathWorks公司于1982年推出的一套高性能數(shù)值計(jì)算的可視化軟件,它集數(shù)值分析、矩陣計(jì)算、信號(hào)處理和圖形顯示于一體,構(gòu)成一個(gè)使用方便、界面友好的用戶環(huán)境。在這種環(huán)境下,用戶只需要簡(jiǎn)單地列出數(shù)學(xué)表達(dá)式,結(jié)果便以數(shù)值或圖形的方式顯示在計(jì)算機(jī)屏幕上,用戶也可以將結(jié)果保存在文件中。MALAB的名稱源自Matrix Laboratory,是一門計(jì)算語(yǔ)言。MALAB將計(jì)算與可視化集成到一個(gè)靈活的計(jì)算機(jī)環(huán)境中,并提供了大量的內(nèi)置函數(shù),可以在廣泛的工程問(wèn)題中直接調(diào)用這些函數(shù)獲得數(shù)值解。MALAB有許多工具箱,這些工具箱成為一些領(lǐng)域的實(shí)用工具。M

2、ALAB具如下特點(diǎn):1)易學(xué)習(xí)性MALAB語(yǔ)言不要求用戶有較高深的數(shù)學(xué)和程序語(yǔ)言知識(shí),不需要用戶深刻了解算法及編程技巧。用戶只需輸入求解問(wèn)題的數(shù)學(xué)表達(dá)式,就能得到計(jì)算結(jié)果。MALAB既是一種編程環(huán)境,又是一種程序設(shè)計(jì)語(yǔ)言。這種語(yǔ)言同高級(jí)程序語(yǔ)言(如C、Fortran)一樣,有其特定的語(yǔ)法規(guī)則,但它的規(guī)則更接近于數(shù)學(xué)表示,因而使用起來(lái)更為方便。MALAB的語(yǔ)句功能更為強(qiáng)大,一條語(yǔ)句就可以完成一個(gè)復(fù)雜的任務(wù),如inv(A)可以得到矩陣A的逆矩陣,這相當(dāng)于幾十條C語(yǔ)言語(yǔ)句的功能。2)實(shí)用方便性MALAB包含了被稱作Toolbox(工具箱)的各類問(wèn)題求解工具,它實(shí)際上是對(duì)MALAB進(jìn)行擴(kuò)展應(yīng)用的一系列

3、MALAB函數(shù)(稱作M文件)。利用工具箱可以解特定學(xué)科的問(wèn)題,如線性規(guī)劃、信號(hào)處理、小波分析等。3)易擴(kuò)展性MALAB允許用戶建立指定功能的M文件,從而可以產(chǎn)生特定功能的工具箱。用戶不僅可以使用MALAB提供的函數(shù)及基本工具箱函數(shù),而且可以方便地編寫出專用函數(shù),因此大大擴(kuò)展了MALAB的應(yīng)用范圍。4)先進(jìn)的可視化工具M(jìn)ALAB提供了強(qiáng)大的、交互式的二維和三維繪圖功能,可使用戶創(chuàng)建富有表現(xiàn)力的彩色圖形??梢暬ぞ甙ㄇ驿秩?、線框圖、光源動(dòng)畫等。 MATLAB使用入門1 啟動(dòng)與退出在Windows平臺(tái)啟動(dòng)MATLAB(以7.0版為例)可以選擇“開(kāi)始程序MATLAB7.0MATLAB7.0”命令或

4、雙擊在安裝時(shí)在操作系統(tǒng)桌面創(chuàng)建的快捷方式。啟動(dòng)后會(huì)出現(xiàn)如圖1.1.1所示的桌面,桌面上包含一些MATLAB工具。MATLAB是一種指令式語(yǔ)言,用戶可以通過(guò)界面、指令改變初始化設(shè)置。表列出了一些MATLAB桌面工具。退出MATLAB只需單擊“關(guān)閉”按鈕,也可以在命令窗鍵入quit或exit。圖MATLAB桌面表MATLAB7.0桌面工具桌面工具功 能Array Editor數(shù)組編輯器Command Window命令窗Command History命令歷史窗Current Directory Browser當(dāng)前路徑瀏覽器Editor/Debugger編輯器/調(diào)試器Figures圖形窗Help Br

5、owser幫助瀏覽器Profiter圖形界面分析M文件效率Start Button開(kāi)始按鈕Web Browser網(wǎng)頁(yè)瀏覽器Workspace Browser工作空間瀏覽器2MATLAB常用命令和技巧1)一些通用命令使用MATLAB之前,最好先了解一些通用命令。這里只給出最常用的幾個(gè)命令,見(jiàn)表。表通用命令表命令功能命令功能cd顯示或改變工作目錄hold圖形保持開(kāi)關(guān)dir顯示目錄下文件disp顯示變量或文件內(nèi)容type顯示文件內(nèi)容path顯示搜索路徑clear清理內(nèi)存變量save保存內(nèi)存變量到指定文件clf清理圖形窗口load加載指定文件的變量pack收集內(nèi)存碎片diary日志文件命令clc清理工

6、作窗quit退出MATLAB命令echo工作窗信息顯示開(kāi)關(guān)!調(diào)用DOS命令2)一些常用操作技巧在MATLAB的使用過(guò)程中經(jīng)常會(huì)用到一些輸入技巧,可以在輸入命令的過(guò)程中起到事半功倍的效果。表列出了一些常用技巧。表 鍵盤按鍵功能表鍵盤按鍵功能鍵盤按鍵功能Ctrl+p 調(diào)用上一行HomeCtrl+a 光標(biāo)置于當(dāng)前行頭Ctrl+n 調(diào)用下一行EndCtrl+e 光標(biāo)置于當(dāng)前行尾 Ctrl+b 光標(biāo)右移一字符EscCtrl+u 清除當(dāng)前輸入行Ctrl+f 光標(biāo)左移一字符DelCtrl+d 刪除光標(biāo)處的字符Ctrl+Ctrl+r光標(biāo)右移一單詞BackspaceCtrl+h 刪除光標(biāo)前的字符Ctrl+Ctr

7、l+l光標(biāo)左移一單詞Alt+Backspace恢復(fù)上一次操作3)標(biāo)點(diǎn)在MATLAB語(yǔ)言中一些標(biāo)點(diǎn)符號(hào)也被賦以特殊的意義,或代表一定的運(yùn)算,見(jiàn)表。表MATLAB語(yǔ)言的標(biāo)點(diǎn)符號(hào)名稱用 途.句點(diǎn)小數(shù)點(diǎn)、向量或矩陣的一種運(yùn)算, 逗號(hào)參數(shù)分隔符、矩陣元素分隔,表達(dá)式放在同一行時(shí)的分隔;分號(hào)表達(dá)式的末尾處,不顯示計(jì)算結(jié)果;矩陣行結(jié)束:冒號(hào)創(chuàng)建向量的表達(dá)式的分隔符;用于矩陣,如z(:,1)表示第一列( )括號(hào)算數(shù)表達(dá)式分隔;函數(shù)參數(shù)分隔;矩陣元素下標(biāo)指示 中括號(hào)用于創(chuàng)建向量、矩陣、字符串 大括號(hào)創(chuàng)建單元矩陣或結(jié)構(gòu)%百分號(hào)注釋分隔符撇號(hào)向量或矩陣轉(zhuǎn)置引號(hào)用于字符串省略號(hào)續(xù)行標(biāo)志=等號(hào)賦值標(biāo)記空格字符串語(yǔ)句的一

8、個(gè)字符;數(shù)據(jù)創(chuàng)建語(yǔ)句的分隔符例1 1)計(jì)算的值;2)求的逆矩陣。解:只需在MATLAB命令提示符“>>”下輸入>>a=sqrt(2)*sin(pi/3)/(1+exp(2.1)a= 0.1336>> b=1 3 5;2 5 8;0 0 5b= 1 3 5 2 5 8 0 0 5>> c=inv(b)c = -5.0000 3.0000 0.2000 2.0000 -1.0000 -0.4000 0 0 0.2000圖顯示了該題的操作過(guò)程。說(shuō)明:本書后面所有例子中形如“>> b=1 3 5;2 5 8;0 0 5”,只寫成“b=1 3

9、5;2 5 8;0 0 5”,即略去“>>”;輸出結(jié)果寫成形如“a=0.1336”的形式。圖 MATLAB運(yùn)算示例3 MATLAB的幫助系統(tǒng)在命令窗口輸入help命令,是獲得幫助最快捷的方法。help的用法如下:help 列出主要的幫助主題。help 幫助主題 列出指定主題下的函數(shù)。help 函數(shù)名 對(duì)指定函數(shù)的功能、調(diào)用格式及相關(guān)函數(shù)給出說(shuō)明。例>> helpHELP topicsmatlabgeneral - General purpose commands.matlabops - Operators and special characters.matlablan

10、g - Programming language constructs.matlabelmat - Elementary matrices and matrix manipulation.matlabelfun - Elementary math functions.matlabspecfun - Specialized math functions.>>help wavelet Wavelet Toolbox Version 3.0 (R14) 05-May-2004 Wavelet Toolbox GUI (Graphical User Interface). wavemenu

11、 - Start Wavelet Toolbox graphical user interface tools. Wavelets: General. biorfilt - Biorthogonal wavelet filter set. centfrq - Wavelet center frequency.>> help sin SIN Sine. SIN(X) is the sine of the elements of X. See also asin, sind. Overloaded functions or methods (ones with the same nam

12、e in other directories) help sym/sin.m Reference page in Help browser doc sin當(dāng)希望查找具有某種功能的函數(shù)但不知道該函數(shù)準(zhǔn)確名稱時(shí),help就無(wú)能為力了,這時(shí)可利用lookfor命令進(jìn)行查詢。例 >> lookfor odeISDEPLOYED tests if the code is running in deployed mode or MATLAB modePCODE Create pre-parsed pseudo-code file (P-file).SAVEAS Save Figure or m

13、odel to desired output format.BVP4C Solve boundary value problems for ODEs by collocation. DECIC Compute consistent initial conditions for ODE15I.ODE113 Solve non-stiff differential equations, variable order method.ODE15I Solve fully implicit differential equations, variable order method.ODE15S Solv

14、e stiff differential equations and DAEs, variable order method.ODE23 Solve non-stiff differential equations, low order method.4 MATLAB的演示系統(tǒng)除了幫助系統(tǒng)外,MATLAB還提供了演示系統(tǒng),該系統(tǒng)是讀者學(xué)習(xí)MATLAB的好工具,如圖。在演示系統(tǒng)中提供了大量MATLAB應(yīng)用示例,這些示例具有很強(qiáng)的代表性,是學(xué)好MATLAB的好幫手。圖MATLAB演示系統(tǒng)1.2 MATLAB的語(yǔ)言程序設(shè)計(jì)簡(jiǎn)介MATLAB的語(yǔ)言程序設(shè)計(jì)由賦值、數(shù)值運(yùn)算、關(guān)系運(yùn)算、邏輯運(yùn)算和程序流程控

15、制語(yǔ)句等部分構(gòu)成。本節(jié)重點(diǎn)介紹程序流程控制語(yǔ)句。1 關(guān)系運(yùn)算與邏輯運(yùn)算在程序設(shè)計(jì)中經(jīng)常涉及邏輯判斷和模糊推理,而在邏輯判斷和模糊推理中,都需要對(duì)一類是非問(wèn)題作“真假”的回答。為此,MATLAB提供了關(guān)系與邏輯運(yùn)算的相關(guān)函數(shù)。運(yùn)算的輸出值將判斷為真者以1表示,而判斷為否者以0表示。表列出了一些關(guān)系運(yùn)算和邏輯運(yùn)算指令。表關(guān)系運(yùn)算符及邏輯運(yùn)算符條 件數(shù)學(xué)符號(hào)MATLAB符號(hào)關(guān)系等于= =不等于 =小于<<大于>>小于等于<=大于等于>=邏輯與and&或or|非not例1 a=-1 2 4;5 4 -8;b=a>0b = 0 1 1 1 1 0x=1:

16、2:9;y=3:7;z=x<=yz = 1 1 1 0 0w=(x>4)&(y<6)w = 0 0 1 0 0E=x+(x>4)|(y<6)E =1 1 1 1 12 關(guān)系與邏輯運(yùn)算函數(shù)除了上面介紹的關(guān)系與邏輯運(yùn)算符外,MATLAB還提供了一些關(guān)系與邏輯運(yùn)算函數(shù)。表列出了一些邏輯關(guān)系運(yùn)算函數(shù)。表邏輯關(guān)系運(yùn)算函數(shù)函數(shù)說(shuō)明xor異或,不相同取1,否則為0any只要有非0就取1,否則為0all全為1取1,否則為0isnan為數(shù)NaN取1,否則為0isinf為數(shù)inf取1,否則為0isfinite有限大小元素取1,否則為0ischar是字符串取1,否則為0iseq

17、ual相等取1,否則為0ismember兩個(gè)矩陣是屬于關(guān)系取1,否則取0isempty矩陣為空取1,否則取0isletter是字母取1,取0isstudent學(xué)生版取1isprime素?cái)?shù)取1,否則取0isreal實(shí)數(shù)取1,否則取0isspace空格位置取1,否則取0例2 a=1 inf NaN;isinf(a)ans =0 1 0isletter(a)ans = 0 0 03 程序的控制語(yǔ)句MATLAB中除了按正常順序執(zhí)行程序中的命令和函數(shù)以外,還提供了一些控制程序流程的語(yǔ)句,這些語(yǔ)句包括for、while、if、switch、try、continue、break、return等。這些語(yǔ)句實(shí)現(xiàn)

18、程序的循環(huán)結(jié)構(gòu)、選擇結(jié)構(gòu)、多分支選擇結(jié)構(gòu)和程序流程控制功能。下面介紹for、while、if、switch語(yǔ)句的用法,其它語(yǔ)句讀者可通過(guò)help查閱其功能和格式。循環(huán)結(jié)構(gòu) 在實(shí)際問(wèn)題中會(huì)遇到許多有規(guī)律地重復(fù)運(yùn)算,因此在程序設(shè)計(jì)中需要將某些語(yǔ)句重復(fù)執(zhí)行。一組被重復(fù)執(zhí)行的語(yǔ)句成為循環(huán)體,每循環(huán)一次,都必須做出是否繼續(xù)重復(fù)的決定,這個(gè)決定所依據(jù)的條件成為循環(huán)的終止條件。MATLAB提供了兩種循環(huán)方式:for-end循環(huán)和while-end循環(huán)。for-end循環(huán)語(yǔ)句的格式for循環(huán)變量=初值:增量:終值初值開(kāi)始,終值結(jié)束語(yǔ)句循環(huán)體中的執(zhí)行語(yǔ)句end循環(huán)結(jié)束while-end循環(huán)語(yǔ)句的格式while條

19、件%當(dāng)條件成立時(shí)執(zhí)行下面的語(yǔ)句,否則跳過(guò)語(yǔ)句end例3簡(jiǎn)單的for循環(huán)例子。n=8;for i=1:1:nx(i)=(i+1).2;endxx = 4 9 16 25 36 49 64 81例4for循環(huán)嵌套例子。m=3;n=4;for i=1:m for j=1:n a(i,j)=1/(i+j-1);endendformat rat; aa = 1 1/2 1/3 1/4 1/2 1/3 1/4 1/5 1/3 1/4 1/5 1/6 例5利用while循環(huán),求使n!達(dá)到200位數(shù)的最小n解: n=1;while prod(1:n)<1e200n=n+1;endnn =121 條件語(yǔ)句

20、在復(fù)雜的運(yùn)算中常常需要判斷是否滿足某些條件,以選擇下一步的方法和策略。一般使用條件語(yǔ)句完成這類判斷和選擇。常用的語(yǔ)句有if-end、if-else-end、if-elseif-elseend等。if-end是最簡(jiǎn)單的條件語(yǔ)句,其格式為if表達(dá)式語(yǔ)句體end如果表達(dá)式的值為1,則執(zhí)行語(yǔ)句體,否則跳過(guò)if結(jié)構(gòu),執(zhí)行end后面的語(yǔ)句。if-else-end語(yǔ)句只是在if和end之間增加一個(gè)else選擇,其格式為if表達(dá)式語(yǔ)句體1else語(yǔ)句體2end其執(zhí)行規(guī)則為:當(dāng)表達(dá)式的值為1則執(zhí)行語(yǔ)句體1,否則,則執(zhí)行語(yǔ)句體2。在else語(yǔ)句中也可嵌套if語(yǔ)句,構(gòu)成elseif結(jié)構(gòu),elseif結(jié)構(gòu)可實(shí)現(xiàn)多重條

21、件選擇,例如if表達(dá)式1語(yǔ)句體1elseif表達(dá)式2語(yǔ)句體2else語(yǔ)句體3end例6 隨機(jī)生成100個(gè)隨機(jī)數(shù),并統(tǒng)計(jì)小于等于0.3、大于0.3而小于0.7和大于0.7的個(gè)數(shù)。解:a=rand(1,100);n1=0;n2=0;n3=0; for i=1:1:100if a(i)<=0.3n1=n1+1;elseif a(i)<=0.7n2=n2+1;elsen3=n3+1;endend n1,n2,n3n1 = 21n2 = 49n3 = 30分支語(yǔ)句分支語(yǔ)句switchcaseend通過(guò)對(duì)某個(gè)表達(dá)式的值進(jìn)行比較,根據(jù)比較結(jié)果做不同的選擇,以實(shí)現(xiàn)程序的分支功能。其格式為switc

22、h表達(dá)式(數(shù)值或字符串)case數(shù)值或字符串1語(yǔ)句體1case數(shù)值或字符串2語(yǔ)句體2otherwise 語(yǔ)句體nendswitch后面的表達(dá)式的值為數(shù)值變量或字符變量,通過(guò)這些值與case后面的值進(jìn)行比較,與哪一個(gè)case后面的值相同就執(zhí)行哪一個(gè)case下面的語(yǔ)句體,如果與所有case后面的值都不相同,則執(zhí)行otherwise下面的語(yǔ)句體。otherwise語(yǔ)句可以省略,如果省略otherwise,當(dāng)所有case都不滿足時(shí)跳出分支結(jié)構(gòu),另外,switch必須與end配對(duì)使用。例7 從鍵盤上輸入一個(gè)數(shù),檢查輸入數(shù)據(jù)的值。switch input('input_num')case

23、-1disp('negative one');case 0disp('zero');case 1disp('positive one');otherwisedisp('other value');endinput_num3other value要編寫一個(gè)應(yīng)用程序,還應(yīng)簡(jiǎn)要知道M文件與M函數(shù)調(diào)用和變量傳遞,亦應(yīng)知道一些有關(guān)程序設(shè)計(jì)方面的功能語(yǔ)句及MATLAB所提供的大量?jī)?nèi)部函數(shù),這需要讀者查閱相關(guān)資料逐步積累。1.3 特殊量與特殊函數(shù)MATLAB中預(yù)定義了一些特殊量和特殊函數(shù),本小節(jié)介紹這些特殊量和特殊函數(shù)。這些特殊量和特殊函數(shù)在今

24、后實(shí)驗(yàn)中經(jīng)常用到,這里以表格的形式給出,讀者可以通過(guò)help了解這些特殊量和特殊函數(shù)的功能和用法。表MATLAB預(yù)定義的變量變量說(shuō)明ans預(yù)設(shè)的計(jì)算結(jié)果的變量名epsMATLAB定義的正的極小值2.2204e-016pi內(nèi)建的值inf值,無(wú)窮大NaN無(wú)法定義的一個(gè)數(shù)i或j虛數(shù)單位intmax8位、16位、32位或64位整型的最大值intmin8位、16位、32位或64位整型的最小值realmax最大的正實(shí)數(shù)1.7977e+308realmin最小的正實(shí)數(shù)2.2251e-308computer計(jì)算機(jī)類型versionMATLAB版本例1a=0 1 0;b=1 0 0;c=a./bWarning:

25、 Divide by zero.c = 0 Inf NaN表 部分常用標(biāo)量函數(shù)函數(shù)說(shuō)明函數(shù)說(shuō)明fix向0方向取整mod模除求余floor向方向取整rem除后取余數(shù)ceil向方向取整sign符號(hào)函數(shù)round四舍五入取整rats有理逼近例2 a=-2.34;floor(a)ans = -3rats(sqrt(2)ans = 1393/985sign(-0.1)ans = -1rem(34,5)ans = 4 有些函數(shù)只有作用于向量時(shí)才有意義,這樣的函數(shù)稱為向量函數(shù)。常用的向量函數(shù)見(jiàn)下表。表 MATLAB部分常用向量函數(shù)函數(shù)說(shuō)明函數(shù)說(shuō)明max最大值median中位數(shù)min最小值prod總乘積len

26、gth長(zhǎng)度sort從小到大排序mean均值sum總和std標(biāo)準(zhǔn)差diff差分例3 a=3.1 4.3 3.5 3.1 4.2 3.8;b=sort(a)b =3.1000 3.1000 3.5000 3.8000 4.2000 4.3000s=sum(a)s = 22m=median(a)m = 3.6500在MATLAB最核心的內(nèi)容就是數(shù)組及數(shù)組運(yùn)算,這里只列出部分常用矩陣函數(shù)。表 MATLAB部分常用矩陣函數(shù)函數(shù)說(shuō)明函數(shù)說(shuō)明zeros全0矩陣flipud矩陣上下翻轉(zhuǎn)eye對(duì)角線為1的矩陣fliplr矩陣左右翻轉(zhuǎn)ones全1矩陣tril下三角矩陣rand均勻分布的隨機(jī)矩陣triu上三角矩陣r

27、andn正態(tài)分布隨機(jī)矩陣hilbHilbert矩陣diag對(duì)角矩陣magic魔方矩陣空矩陣norm矩陣范數(shù)例4 a=zeros(2,4)a = 0 0 0 0 0 0 0 0b=eye(2,3)b =1 0 0 0 1 0randn(3,3) ans = -0.4326 0.2877 1.1892-1.6656 -1.1465 -0.03760.1253 1.1909 0.32731.4 圖形功能MATLAB提供了很多靈活易用的二維和三維繪圖函數(shù)。這些函數(shù)可分為三類:圖形處理、曲線和曲面的創(chuàng)建、注釋和圖形的特性。表-1.4.6列出了一些常用繪圖函數(shù),讀者可通過(guò)help詳細(xì)了解這些函數(shù)的功能和用

28、法。本節(jié)簡(jiǎn)單介紹二維和三維繪圖方法,在后面的章節(jié)讀者可陸續(xù)實(shí)踐。表 部分繪圖函數(shù)管理類生成類注釋和特性類figureplotxlabelsubplotpolarylabelzoomfillzlabelholdplotyytextviewplot3text3rotate3dsurftitlesurfclegendcontourbox, setcontour3axis, axis equal,axis offcontourfgridmesh,meshzcolorbarwaterfallclabelcylindercolormap表 部分曲線色彩與線型符號(hào)選項(xiàng)說(shuō)明選項(xiàng)說(shuō)明-實(shí)線.點(diǎn):點(diǎn)線o圓-.點(diǎn)劃

29、線xx-符號(hào)-虛線+號(hào)b藍(lán)色*星號(hào)y黃色s方形m紫紅色d菱形c藍(lán)綠色v下三角r紅色上三角g綠色<左三角w白色>右三角k黑色p正五邊形表 部分繪制特殊圖形函數(shù)函數(shù)名說(shuō)明函數(shù)名說(shuō)明area填充繪圖fplot函數(shù)繪制圖bar條形圖hist直方圖barh水平條形圖paretoPareto圖comet彗星圖pie柄狀圖errorbar誤差帶圖plotmatrix分散矩陣?yán)L圖ezplot簡(jiǎn)單繪制函數(shù)圖ribbon三維圖的二維條狀顯示ezpolar簡(jiǎn)單繪制極坐標(biāo)圖scatter散射圖feather矢量圖stem離散序列柄狀圖fill多邊形填充stairs階梯圖表 圖形標(biāo)注函數(shù)函數(shù)說(shuō)明函數(shù)說(shuō)明ti

30、tle圖形標(biāo)題text任意位置加注文本xlabelx軸標(biāo)識(shí)gtext鼠標(biāo)定位加注文本ylabely軸標(biāo)識(shí)legend標(biāo)注圖例zlabelz軸標(biāo)識(shí)clabel輪廓線標(biāo)識(shí)表 坐標(biāo)軸控制命令函數(shù)函數(shù)說(shuō)明axis(xmin xmax ymin ymax)制定坐標(biāo)軸的范圍axis manual 或 (axis(axis)刻度范圍不隨數(shù)據(jù)大小變化axis tight以數(shù)據(jù)的大小為坐標(biāo)軸的范圍axis ij坐標(biāo)原點(diǎn)在左上角axis equal各坐標(biāo)軸增量相同axis square坐標(biāo)軸長(zhǎng)度相同axis normal自動(dòng)調(diào)節(jié)坐標(biāo)軸與數(shù)據(jù)的比例axis off坐標(biāo)軸隱去axis on保留坐標(biāo)軸axis auto

31、設(shè)置坐標(biāo)軸為自動(dòng)刻度axis xy使坐標(biāo)軸回到直角坐標(biāo)系表 常用樣式控制函數(shù)函數(shù)說(shuō)明linewidth線寬markersize點(diǎn)型大小fontsize圖形標(biāo)注大小1二維曲線繪圖plot 是最基本的二維繪圖命令,其調(diào)用格式如下:plot(y) 繪制以y元素為縱坐標(biāo),以相應(yīng)元素下標(biāo)為橫坐標(biāo)的連線圖。plot(x,y) 繪制以x、y元素為橫縱坐標(biāo)的連線圖。plot(x1,y1,x2,y2,) 意義同上,繪制多條曲線。plot(x,y,linespec,.) 按照l(shuí)inespec所指定的要求繪圖。plot(.,'propertyname',propertyvalue) 為plot創(chuàng)建的

32、圖形設(shè)置屬性值。例1 繪制數(shù)據(jù)點(diǎn)確定的曲線。y=0 0.2 0.8 1.9 3.6 5.8 7.0 7.5 7.6;plot(y)運(yùn)行結(jié)果為圖1.4.1。圖1.4.1例2 繪制sin(x) 和cos(x) 曲線。解: x=0:0.1:2*pi;y1=sin(x);y2=cos(x); plot(x,y1,x,y2);本題也可以這樣解答x=0:0.1:2*pi;y1=sin(x);y2=cos(x);plot(x,y1);hold on; plot(x,y2);圖1.4.2 正弦和余弦曲線例3 使用不同線型繪圖。x=0:0.5:2*pi;y1=sin(x);y2=cos(x); plot(x,y

33、1,':',x,y2,'-.')圖1.43 使用不同線型繪圖例4 使用不同標(biāo)記繪圖。x=0:0.25:2*pi;y1=sin(x);y2=cos(x);plot(x,y1,'-+',x,y2,'-d')圖1.4.4使用不同標(biāo)記繪圖例5 綜合繪圖。clear allx=0:0.25:2*pi; y=sin(x);plot(x,y,'-s','linewidth',3,'markersize',8);title('y=sin(x)','fontsize',

34、24)xlabel('x','fontsize',20);ylabel('y','fontsize',20);圖1.4.5 綜合繪圖2 三維曲線圖函數(shù) plot3用于繪制三維曲線圖,其調(diào)用格式如下:plot3(x1,y1,z1,.) 繪制由數(shù)據(jù)點(diǎn)x1,y1,z1,.確定的三維曲線。plot3(x1,y1,z1,linespec,.) 按照l(shuí)inespec所定義的內(nèi)容繪圖。plot3(.,'propertyname',propertyvalue,.) 為plo3創(chuàng)建的圖形設(shè)置屬性值。例6 繪制x、y和z均為向量時(shí)的三

35、維曲線圖。t=0:0.1:2*pi; x=exp(-t/10).*sin(t); y=exp(-t/10).*cos(t); z=2*t; plot3(x,y,z); axis square; grid on;圖1.4.6x、y和z均為向量時(shí)的三維曲線圖例7 繪制x、y和z均為矩陣時(shí)的三維曲線圖。X,Y=meshgrid(-2:0.1:2); %生成網(wǎng)格矩陣Z=X.*exp(-X.2-Y.2);plot3(X,Y,Z); grid on;圖1.4.7x、y和z均為矩陣時(shí)的三維曲線圖例8 按指定線型、標(biāo)記點(diǎn)繪制三維曲線圖。t=0:0.2:4*pi; plot3(sin(t),cos(t),t,&

36、#39;:d');圖1.4.8 指定線型、標(biāo)記點(diǎn)的三維曲線圖3 子圖在繪圖過(guò)程中,經(jīng)常需要將幾個(gè)圖形在同一個(gè)窗口顯示出來(lái),而不是簡(jiǎn)單的疊加,這就需要調(diào)用函數(shù)subplot。其調(diào)用格式如下:subplot(m,n,p) 將圖形窗口分割成個(gè)子窗口并把第個(gè)子窗口當(dāng)作當(dāng)前窗口,子窗口按從左上角行的順序排列。例9 在同一窗口繪制,。解:命令如下figure; % 新打開(kāi)一個(gè)窗口,并且默認(rèn)為當(dāng)前窗口x=0:0.1*pi:2*pi;subplot(2,2,1);plot(x,sin(x),'-*');title('sin(x)');subplot(2,2,2);plo

37、t(x,cos(x),'-o');title('cos(x)');subplot(2,2,3);plot(x,cos(x).*sin(x),'-x');title('sin(x)*cos(x)');subplot(2,2,4);plot(x,cos(x)+sin(x),'-h');title('sin(x)+cos(x)');圖1.4.9 圖形窗口分割-子圖1.5 M文件MATLAB文件可分命令文件和函數(shù)文件兩種,擴(kuò)展名為“.m”,通常稱之為M文件。M文件為純文本文件,可以用任何文本編輯器編輯,但M

38、ATLAB開(kāi)發(fā)環(huán)境中包含了專門的M文件編輯器。該編輯器不但提供了M文件的編輯功能,同時(shí)還與MATLAB開(kāi)發(fā)環(huán)境一起實(shí)現(xiàn)了MATLAB文件的運(yùn)行和調(diào)試。新建或打開(kāi)一個(gè)MATLAB文件時(shí),M文件編輯器自動(dòng)打開(kāi)(如圖)。圖1.5.1 M文件編輯器M文件編輯器的菜單欄和工具欄下面有3個(gè)區(qū)域,右側(cè)的大塊區(qū)域是程序窗口,用于編寫程序;最左邊的區(qū)域顯示行號(hào),每行均有數(shù)字,包括空行,行號(hào)是自動(dòng)出現(xiàn)的,隨行數(shù)的增加而增加;在行號(hào)和程序窗口之間有一些小橫線,這些小橫線只在可執(zhí)行行上才有,空行、注釋行、函數(shù)定義行等前面沒(méi)有,在進(jìn)行程序調(diào)試時(shí),可以直接在這些橫線上點(diǎn)擊鼠標(biāo)以設(shè)置或取消斷點(diǎn)。1 命令M-文件(scrip

39、ts)若要一次執(zhí)行大量的MATLAB命令,可將這些命令存放于一個(gè)擴(kuò)展名為m的文件中,使用時(shí)只需在MATLAB提示符下輸入此文件的文件名即可。此種包含MATLAB命令的文件都以m為擴(kuò)展名,因此通稱M文件。建立文本文件可在File菜單中選擇New,這是MATLAB將打開(kāi)一個(gè)文本編輯窗口,可在這里輸入命令和數(shù)據(jù),存盤時(shí)文件名遵循MATLAB變量命名規(guī)則,但必須以m為擴(kuò)展名,其一般形式為<M-文件名>.m如 z01.m,asd_01e.m等。編輯文件:% This is a M-file.fprintf('filename is exam01.m!n ');for i=1:

40、1:3 fprintf('i=%2d i5=%5dn',i,i5);endfprintf('End of exam01.m!n ');>> fm01filename is exam01.m!i= 1 i5= 1i= 2 i5= 32i= 3 i5= 243End of exam01.m!>>該文件第一行為注釋行,可以使程序易于被了解和管理。上面的exam01.m為命令集,其功能和將命令逐一輸入完全一樣,這類文件中的變量均為全局變量。因此這類文件可以使用工作區(qū)(又稱工作空間)中的變量,文件中的變量成為工作區(qū)中的一部分。當(dāng)文件執(zhí)行完畢后,這些

41、變量都將駐留在工作區(qū)內(nèi),這是我們不希望的,其解決方法之一是將命令M-文件改寫為函數(shù)M-文件(functions)。2 函數(shù)M-文件(functions)函數(shù)M-文件是另一種M-文件,它能像庫(kù)函數(shù)一樣方便調(diào)用,從而極大擴(kuò)展MATLAB的能力,如果對(duì)于一類特殊問(wèn)題,建立起許多M-文件,最終可形成解決該類問(wèn)題的工具箱。函數(shù)M-文件的第一行有其特定形式,它必須是function <因變量>= <函數(shù)名>(自變量)其余各行為利用自變量計(jì)算因變量的語(yǔ)句,并最終將計(jì)算結(jié)果賦予因變量。而這個(gè)文件的文件名必須是<函數(shù)名>.m,下面舉兩個(gè)簡(jiǎn)單例子。例1 計(jì)算階乘,文件名為 fa

42、ct.m。function result=fact(n) result=1; for i=1:n result=result*i; end調(diào)用:y=fact(10)輸出結(jié)果:y =3628800例2 計(jì)算階乘,文件名為 rec.m。同上例一樣,計(jì)算階乘,但是本程序采用遞歸式寫法。function result=rec(n) if n=1 result=1; return; endresult=n*rec(n-1);調(diào)用: y=rec(8)輸出結(jié)果:y = 403201.6 符號(hào)運(yùn)算與應(yīng)用1 定義符號(hào)對(duì)象在用MATLAB進(jìn)行符號(hào)運(yùn)算時(shí)必須先定義基本的符號(hào)對(duì)象,它可以是通常的數(shù)字常數(shù)、變量和表達(dá)式

43、。聲明符號(hào)對(duì)象的基本指令函數(shù)有sym和syms。下面運(yùn)用這兩個(gè)命令簡(jiǎn)單介紹如何創(chuàng)建符號(hào)變量、符號(hào)表達(dá)式、符號(hào)方程和符號(hào)函數(shù)的。sym的調(diào)用格式為sym('x') 創(chuàng)建一個(gè)符號(hào)變量x,它可以是字符、字符串、表達(dá)式或字符表達(dá)式。sym('x','real') 創(chuàng)建一個(gè)實(shí)變量sym('x','positive') 創(chuàng)建一個(gè)正變量syms函數(shù)可以方便地一次創(chuàng)建多個(gè)變量syms的調(diào)用格式為syms 變量1 變量2 . 創(chuàng)建多個(gè)變量syms 變量1 變量2 . 類型說(shuō)明 類型說(shuō)明可以是real或positive。例1 將字符x

44、x和a、b、c轉(zhuǎn)換為符號(hào)變量。解: syms('xx'); sym a b c例2 定義a為實(shí)符號(hào)變量,b為正符號(hào)變量。解: a=sym('a','real') 或 syms a realb=sym('b','positive') 或syms b positive例3 創(chuàng)建符號(hào)表達(dá)式。解:創(chuàng)建該表達(dá)式的可以用三種方式實(shí)現(xiàn)法1 f=sym('a*x2+b*x+c')法2 f= 'a*x2+b*x+c'法3 syms a b c xf= 'a*x2+b*x+c'對(duì)于上面第

45、二種創(chuàng)建方式,在當(dāng)前工作區(qū)中是作為字符串形式存在的。在符號(hào)運(yùn)算時(shí),有的函數(shù)能識(shí)別把它作為符號(hào)對(duì)象進(jìn)行操作,如int()。但有些函數(shù)則不能,如diff()。例4 創(chuàng)建符號(hào)方程。解:符號(hào)方程的創(chuàng)建與符號(hào)表達(dá)式相同,它們的區(qū)別僅在于:符號(hào)方程必須帶等號(hào)“=”,而符號(hào)表達(dá)式不包含等號(hào)。本例的解為sym(' a*x2+b*x+c=0')按照數(shù)學(xué)上的習(xí)慣,在數(shù)學(xué)表達(dá)式中,字母表中比較靠前的字母表示常量,比較靠后的字母如x、y、z表示自變量,例如表達(dá)式中,通常認(rèn)為為自變量,、是常量或參數(shù)。MATLAB中也采用了類似規(guī)定,以最接近的順序排列默認(rèn)自變量的順序,可以使用函數(shù)findsym對(duì)默認(rèn)自變

46、量進(jìn)行查詢。例5 syms a b n t xf=a*xn+b*t;findsym(f,1)ans =xfindsym(f,2)ans =x,tfindsym(f,5)ans =x,t,n,b,afindsym(f)ans =a, b, n, t, x2 符號(hào)表達(dá)式的化簡(jiǎn)和簡(jiǎn)化MATLAB符號(hào)數(shù)學(xué)工具箱提供了表達(dá)式的因式分解、展開(kāi)、合并、化簡(jiǎn)、通分等操作。因式分解 factor(S):因式分解S,如果S的所有元素為整數(shù),則計(jì)算其最佳分解。horner(f):將符號(hào)表達(dá)式f分解成嵌套形式例6對(duì)進(jìn)行因式分解。解:syms x f; f=x6-1;f=factor(f)f=(x-1)*(x+1)*(

47、x2+x+1)*(x2-x+1)例7 對(duì)整數(shù)123456789進(jìn)行因式分解。解:factor(sym('123456789')ans =(3)2*(3803)*(3607)例8 將分解成嵌套形式。解: g=sym('2*x4-3*x2+x-8');f2=horner(g)f2 =-8+(1+(-3+2*x2)*x)*x符號(hào)表達(dá)式的展開(kāi)符號(hào)表達(dá)式的展開(kāi)函數(shù)為expand,其調(diào)用格式為expand(S) 因式展開(kāi)表達(dá)式S例9 將、展開(kāi)。解:syms x a f g h;f=(x+a)3;g=cos(x+y);h=cos(3*x);f=expand(f);g=expa

48、nd(g);h=expand(h);輸出結(jié)果f =x3+3*x2*a+3*x*a2+a3g =cos(x)*cos(y)-sin(x)*sin(y)h =4*cos(x)3-3*cos(x)符號(hào)表達(dá)式的同類項(xiàng)合并符號(hào)表達(dá)式的同類項(xiàng)合并的函數(shù)為collect,其調(diào)用格式為collect(S,t)對(duì)符號(hào)表達(dá)式S中自變量t的同次冪項(xiàng)的系數(shù)合并collect(S)對(duì)符號(hào)表達(dá)式S中默認(rèn)變量(findsym(S,1))同次冪項(xiàng)的系數(shù)合并例10 將按自變量和展開(kāi)。解:syms x t f fx ft;f=x*(x*(x-t)2+12);ft=collect(f,t);fx=collect(f);輸出結(jié)果ft

49、=x2*t2-2*x3*t+x*(x3+12)fx=x4-2*x3*t+x2*t2+12*x符號(hào)表達(dá)式的化簡(jiǎn)符號(hào)表達(dá)式的化簡(jiǎn)可由函數(shù)simple 和simplify實(shí)現(xiàn),調(diào)用格式為simple(S)simplify(S)例11化簡(jiǎn) 解:syms x f f1 f2;f=cos(x)2+sin(x)2;f1=simplify(f);f2=simple(f);輸出結(jié)果f1 =1f2 =1符號(hào)表達(dá)式的通分符號(hào)表達(dá)式的通分函數(shù)為numden,其調(diào)用格式為n d=numden(S) 將符號(hào)表達(dá)式S轉(zhuǎn)換為分子和分母都是整系數(shù)的最佳多項(xiàng)式。例12 對(duì)表達(dá)式進(jìn)行通分。解:syms x y f; f=x/y+y

50、/x; n d=numden(f)輸出結(jié)果n =x2+y2d =x*y符號(hào)表達(dá)式的替換函數(shù)subs用特定符號(hào)替換表達(dá)式中的某一特定符號(hào),其調(diào)用格式為subs(S,old,new) 用新的符號(hào)變量new代替符號(hào)表達(dá)式S中的變量old。例13 syms x y z;y=sin(x);z=subs(y,x,pi)輸出結(jié)果z = 1.2246e-016符號(hào)表達(dá)式的轉(zhuǎn)換符號(hào)函數(shù)sym()可將一個(gè)數(shù)字轉(zhuǎn)換為符號(hào)表達(dá)式,而函數(shù)single()恰好相反,它能把一個(gè)常數(shù)轉(zhuǎn)換為一個(gè)數(shù)值,格式如為single(f)。例14 f=sym('1-sqrt(5.1)+4.8')f = 1-sqrt(5.1

51、)+4.8f = single(f)f = 3.54173 符號(hào)函數(shù)的運(yùn)算這里只簡(jiǎn)單介紹符號(hào)函數(shù)的復(fù)合運(yùn)算和反函數(shù)運(yùn)算,MATLAB函數(shù)分別為compose 和finverse。compose函數(shù)的調(diào)用格式為compose(f,g) 返回當(dāng)f=f(x)和g=g(y)時(shí)的復(fù)合函數(shù)f(g(y)。compose(f,g,z) 返回的復(fù)合函數(shù)以z為自變量。finverse的調(diào)用格式為g=finverse(f) 返回符號(hào)函數(shù)f的反函數(shù)。g=finverse(f,v) 返回的符號(hào)函數(shù)表達(dá)式的自變量為v。例15 syms x y z t u;f=1/(1+x2);g=sin(y); 則 fg=compose

52、(f,g)fg = 1/(1+sin(y)2)gf=compose(g,f)gf = sin(1/(1+x2)fgz=compose(f,g,t)fgz = 1/(1+sin(t)2)例16 syms x y;f=2*x-1;則g=finverse(f)g =1/2+1/2*xh=x2+y;g=finverse(h,y)g =-x2+y多項(xiàng)式在MATLAB中,使用行向量來(lái)表示多項(xiàng)式的系數(shù),行向量中各元素按多項(xiàng)式系數(shù)由高到低排列。即的系數(shù)向量為。因此,在MATLAB中,將多項(xiàng)式問(wèn)題轉(zhuǎn)化為矢量問(wèn)題。生成多項(xiàng)式的基本函數(shù)為poly,poly2sym將多項(xiàng)式轉(zhuǎn)換為矢量形式。多項(xiàng)式的創(chuàng)建主要有以下三種方法。1 系數(shù)矢量的直接輸入法例1 創(chuàng)建多項(xiàng)式。解:p=1 -4 0 2;p=poly2sym(p)p =x3-4*x2+22 特征多項(xiàng)式輸入法多項(xiàng)式也可由通過(guò)矩陣的特征多項(xiàng)式取得,為階方陣,得特征多項(xiàng)式為。的特征多項(xiàng)式創(chuàng)建的命令為:p=poly(A),p=poly2sym(poly(A)。例2 求的特征多項(xiàng)式。解:A=1 2 3;4 4 6;7 8 9;p=poly(A)p = 1.0000 -14.0000 -28.0000 -12.0000 %特征多項(xiàng)式的系數(shù)p

溫馨提示

  • 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)論