理學(xué)matlab教程_第1頁
理學(xué)matlab教程_第2頁
理學(xué)matlab教程_第3頁
理學(xué)matlab教程_第4頁
理學(xué)matlab教程_第5頁
已閱讀5頁,還剩41頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

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

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

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

4、雙擊在安裝時在操作系統(tǒng)桌面創(chuàng)建的快捷方式。啟動后會出現(xiàn)如圖1.1.1所示的桌面,桌面上包含一些MATLAB工具。MATLAB是一種指令式語言,用戶可以通過界面、指令改變初始化設(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開始按鈕Web Browser網(wǎng)頁瀏覽器Workspace Browser工作空間瀏覽器2MATLAB常用命令和技巧1)一些通用命令使用MATLAB之前,最好先了解一些通用命令。這里只給出最常用的幾個命令,見表。表通用命令表命令功能命令功能cd顯示或改變工作目錄hold圖形保持開關(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工作窗信息顯示開關(guān)!調(diào)用DOS命令2)一些常用操作技巧在MATLAB的使用過程中經(jīng)常會用到一些輸入技巧,可以在輸入命令的過程中起到事半功倍的效果。表列出了一些常用技巧。表 鍵盤按鍵功能表鍵盤按鍵功能鍵盤按鍵功能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)點在MATLAB語言中一些標(biāo)點符號也被賦以特殊的意義,或代表一定的運算,見表。表MATLAB語言的標(biāo)點符號名稱用 途.句點小數(shù)點、向量或矩陣的一種運算, 逗號參數(shù)分隔符、矩陣元素分隔,表達(dá)式放在同一行時的分隔;分號表達(dá)式的末尾處,不顯示計算結(jié)果;矩陣行結(jié)束:冒號創(chuàng)建向量的表達(dá)式的分隔符;用于矩陣,如z(:,1)表示第一列( )括號算數(shù)表達(dá)式分隔;函數(shù)參數(shù)分隔;矩陣元素下標(biāo)指示 中括號用于創(chuàng)建向量、矩陣、字符串 大括號創(chuàng)建單元矩陣或結(jié)構(gòu)%百分號注釋分隔符撇號向量或矩陣轉(zhuǎn)置引號用于字符串省略號續(xù)行標(biāo)志=等號賦值標(biāo)記空格字符串語句的一

8、個字符;數(shù)據(jù)創(chuàng)建語句的分隔符例1 1)計算的值;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圖顯示了該題的操作過程。說明:本書后面所有例子中形如“>> 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運算示例3 MATLAB的幫助系統(tǒng)在命令窗口輸入help命令,是獲得幫助最快捷的方法。help的用法如下:help 列出主要的幫助主題。help 幫助主題 列出指定主題下的函數(shù)。help 函數(shù)名 對指定函數(shù)的功能、調(diào)用格式及相關(guān)函數(shù)給出說明。例>> 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)確名稱時,help就無能為力了,這時可利用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)用示例,這些示例具有很強的代表性,是學(xué)好MATLAB的好幫手。圖MATLAB演示系統(tǒng)1.2 MATLAB的語言程序設(shè)計簡介MATLAB的語言程序設(shè)計由賦值、數(shù)值運算、關(guān)系運算、邏輯運算和程序流程控

15、制語句等部分構(gòu)成。本節(jié)重點介紹程序流程控制語句。1 關(guān)系運算與邏輯運算在程序設(shè)計中經(jīng)常涉及邏輯判斷和模糊推理,而在邏輯判斷和模糊推理中,都需要對一類是非問題作“真假”的回答。為此,MATLAB提供了關(guān)系與邏輯運算的相關(guān)函數(shù)。運算的輸出值將判斷為真者以1表示,而判斷為否者以0表示。表列出了一些關(guān)系運算和邏輯運算指令。表關(guān)系運算符及邏輯運算符條 件數(shù)學(xué)符號MATLAB符號關(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)系與邏輯運算函數(shù)除了上面介紹的關(guān)系與邏輯運算符外,MATLAB還提供了一些關(guān)系與邏輯運算函數(shù)。表列出了一些邏輯關(guān)系運算函數(shù)。表邏輯關(guān)系運算函數(shù)函數(shù)說明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兩個矩陣是屬于關(guān)系取1,否則取0isempty矩陣為空取1,否則取0isletter是字母取1,取0isstudent學(xué)生版取1isprime素數(shù)取1,否則取0isreal實數(shù)取1,否則取0isspace空格位置取1,否則取0例2 a=1 inf NaN;isinf(a)ans =0 1 0isletter(a)ans = 0 0 03 程序的控制語句MATLAB中除了按正常順序執(zhí)行程序中的命令和函數(shù)以外,還提供了一些控制程序流程的語句,這些語句包括for、while、if、switch、try、continue、break、return等。這些語句實現(xiàn)

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

19、件%當(dāng)條件成立時執(zhí)行下面的語句,否則跳過語句end例3簡單的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 條件語句

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

21、件選擇,例如if表達(dá)式1語句體1elseif表達(dá)式2語句體2else語句體3end例6 隨機生成100個隨機數(shù),并統(tǒng)計小于等于0.3、大于0.3而小于0.7和大于0.7的個數(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分支語句分支語句switchcaseend通過對某個表達(dá)式的值進(jìn)行比較,根據(jù)比較結(jié)果做不同的選擇,以實現(xiàn)程序的分支功能。其格式為switc

22、h表達(dá)式(數(shù)值或字符串)case數(shù)值或字符串1語句體1case數(shù)值或字符串2語句體2otherwise 語句體nendswitch后面的表達(dá)式的值為數(shù)值變量或字符變量,通過這些值與case后面的值進(jìn)行比較,與哪一個case后面的值相同就執(zhí)行哪一個case下面的語句體,如果與所有case后面的值都不相同,則執(zhí)行otherwise下面的語句體。otherwise語句可以省略,如果省略otherwise,當(dāng)所有case都不滿足時跳出分支結(jié)構(gòu),另外,switch必須與end配對使用。例7 從鍵盤上輸入一個數(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要編寫一個應(yīng)用程序,還應(yīng)簡要知道M文件與M函數(shù)調(diào)用和變量傳遞,亦應(yīng)知道一些有關(guān)程序設(shè)計方面的功能語句及MATLAB所提供的大量內(nèi)部函數(shù),這需要讀者查閱相關(guān)資料逐步積累。1.3 特殊量與特殊函數(shù)MATLAB中預(yù)定義了一些特殊量和特殊函數(shù),本小節(jié)介紹這些特殊量和特殊函數(shù)。這些特殊量和特殊函數(shù)在今

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

25、 Divide by zero.c = 0 Inf NaN表 部分常用標(biāo)量函數(shù)函數(shù)說明函數(shù)說明fix向0方向取整mod模除求余floor向方向取整rem除后取余數(shù)ceil向方向取整sign符號函數(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ù)見下表。表 MATLAB部分常用向量函數(shù)函數(shù)說明函數(shù)說明max最大值median中位數(shù)min最小值prod總乘積len

26、gth長度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ù)組運算,這里只列出部分常用矩陣函數(shù)。表 MATLAB部分常用矩陣函數(shù)函數(shù)說明函數(shù)說明zeros全0矩陣flipud矩陣上下翻轉(zhuǎn)eye對角線為1的矩陣fliplr矩陣左右翻轉(zhuǎn)ones全1矩陣tril下三角矩陣rand均勻分布的隨機矩陣triu上三角矩陣r

27、andn正態(tài)分布隨機矩陣hilbHilbert矩陣diag對角矩陣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ù),讀者可通過help詳細(xì)了解這些函數(shù)的功能和用

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

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

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

31、設(shè)置坐標(biāo)軸為自動刻度axis xy使坐標(biāo)軸回到直角坐標(biāo)系表 常用樣式控制函數(shù)函數(shù)說明linewidth線寬markersize點型大小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,.) 按照linespec所指定的要求繪圖。plot(.,'propertyname',propertyvalue) 為plot創(chuàng)建的

32、圖形設(shè)置屬性值。例1 繪制數(shù)據(jù)點確定的曲線。y=0 0.2 0.8 1.9 3.6 5.8 7.0 7.5 7.6;plot(y)運行結(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ù)點x1,y1,z1,.確定的三維曲線。plot3(x1,y1,z1,linespec,.) 按照linespec所定義的內(nèi)容繪圖。plot3(.,'propertyname',propertyvalue,.) 為plo3創(chuàng)建的圖形設(shè)置屬性值。例6 繪制x、y和z均為向量時的三

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均為向量時的三維曲線圖例7 繪制x、y和z均為矩陣時的三維曲線圖。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均為矩陣時的三維曲線圖例8 按指定線型、標(biāo)記點繪制三維曲線圖。t=0:0.2:4*pi; plot3(sin(t),cos(t),t,&

36、#39;:d');圖1.4.8 指定線型、標(biāo)記點的三維曲線圖3 子圖在繪圖過程中,經(jīng)常需要將幾個圖形在同一個窗口顯示出來,而不是簡單的疊加,這就需要調(diào)用函數(shù)subplot。其調(diào)用格式如下:subplot(m,n,p) 將圖形窗口分割成個子窗口并把第個子窗口當(dāng)作當(dāng)前窗口,子窗口按從左上角行的順序排列。例9 在同一窗口繪制,。解:命令如下figure; % 新打開一個窗口,并且默認(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ù)文件兩種,擴展名為“.m”,通常稱之為M文件。M文件為純文本文件,可以用任何文本編輯器編輯,但M

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

39、ts)若要一次執(zhí)行大量的MATLAB命令,可將這些命令存放于一個擴展名為m的文件中,使用時只需在MATLAB提示符下輸入此文件的文件名即可。此種包含MATLAB命令的文件都以m為擴展名,因此通稱M文件。建立文本文件可在File菜單中選擇New,這是MATLAB將打開一個文本編輯窗口,可在這里輸入命令和數(shù)據(jù),存盤時文件名遵循MATLAB變量命名規(guī)則,但必須以m為擴展名,其一般形式為<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-文件,它能像庫函數(shù)一樣方便調(diào)用,從而極大擴展MATLAB的能力,如果對于一類特殊問題,建立起許多M-文件,最終可形成解決該類問題的工具箱。函數(shù)M-文件的第一行有其特定形式,它必須是function <因變量>= <函數(shù)名>(自變量)其余各行為利用自變量計算因變量的語句,并最終將計算結(jié)果賦予因變量。而這個文件的文件名必須是<函數(shù)名>.m,下面舉兩個簡單例子。例1 計算階乘,文件名為 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 計算階乘,文件名為 rec.m。同上例一樣,計算階乘,但是本程序采用遞歸式寫法。function result=rec(n) if n=1 result=1; return; endresult=n*rec(n-1);調(diào)用: y=rec(8)輸出結(jié)果:y = 403201.6 符號運算與應(yīng)用1 定義符號對象在用MATLAB進(jìn)行符號運算時必須先定義基本的符號對象,它可以是通常的數(shù)字常數(shù)、變量和表達(dá)式

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

44、x和a、b、c轉(zhuǎn)換為符號變量。解: syms('xx'); sym a b c例2 定義a為實符號變量,b為正符號變量。解: a=sym('a','real') 或 syms a realb=sym('b','positive') 或syms b positive例3 創(chuàng)建符號表達(dá)式。解:創(chuàng)建該表達(dá)式的可以用三種方式實現(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'對于上面第

45、二種創(chuàng)建方式,在當(dāng)前工作區(qū)中是作為字符串形式存在的。在符號運算時,有的函數(shù)能識別把它作為符號對象進(jìn)行操作,如int()。但有些函數(shù)則不能,如diff()。例4 創(chuàng)建符號方程。解:符號方程的創(chuàng)建與符號表達(dá)式相同,它們的區(qū)別僅在于:符號方程必須帶等號“=”,而符號表達(dá)式不包含等號。本例的解為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對默認(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 符號表達(dá)式的化簡和簡化MATLAB符號數(shù)學(xué)工具箱提供了表達(dá)式的因式分解、展開、合并、化簡、通分等操作。因式分解 factor(S):因式分解S,如果S的所有元素為整數(shù),則計算其最佳分解。horner(f):將符號表達(dá)式f分解成嵌套形式例6對進(jìn)行因式分解。解:syms x f; f=x6-1;f=factor(f)f=(x-1)*(x+1)*(

47、x2+x+1)*(x2-x+1)例7 對整數(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符號表達(dá)式的展開符號表達(dá)式的展開函數(shù)為expand,其調(diào)用格式為expand(S) 因式展開表達(dá)式S例9 將、展開。解: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)符號表達(dá)式的同類項合并符號表達(dá)式的同類項合并的函數(shù)為collect,其調(diào)用格式為collect(S,t)對符號表達(dá)式S中自變量t的同次冪項的系數(shù)合并collect(S)對符號表達(dá)式S中默認(rèn)變量(findsym(S,1))同次冪項的系數(shù)合并例10 將按自變量和展開。解: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符號表達(dá)式的化簡符號表達(dá)式的化簡可由函數(shù)simple 和simplify實現(xiàn),調(diào)用格式為simple(S)simplify(S)例11化簡 解:syms x f f1 f2;f=cos(x)2+sin(x)2;f1=simplify(f);f2=simple(f);輸出結(jié)果f1 =1f2 =1符號表達(dá)式的通分符號表達(dá)式的通分函數(shù)為numden,其調(diào)用格式為n d=numden(S) 將符號表達(dá)式S轉(zhuǎn)換為分子和分母都是整系數(shù)的最佳多項式。例12 對表達(dá)式進(jìn)行通分。解:syms x y f; f=x/y+y

50、/x; n d=numden(f)輸出結(jié)果n =x2+y2d =x*y符號表達(dá)式的替換函數(shù)subs用特定符號替換表達(dá)式中的某一特定符號,其調(diào)用格式為subs(S,old,new) 用新的符號變量new代替符號表達(dá)式S中的變量old。例13 syms x y z;y=sin(x);z=subs(y,x,pi)輸出結(jié)果z = 1.2246e-016符號表達(dá)式的轉(zhuǎn)換符號函數(shù)sym()可將一個數(shù)字轉(zhuǎn)換為符號表達(dá)式,而函數(shù)single()恰好相反,它能把一個常數(shù)轉(zhuǎn)換為一個數(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 符號函數(shù)的運算這里只簡單介紹符號函數(shù)的復(fù)合運算和反函數(shù)運算,MATLAB函數(shù)分別為compose 和finverse。compose函數(shù)的調(diào)用格式為compose(f,g) 返回當(dāng)f=f(x)和g=g(y)時的復(fù)合函數(shù)f(g(y)。compose(f,g,z) 返回的復(fù)合函數(shù)以z為自變量。finverse的調(diào)用格式為g=finverse(f) 返回符號函數(shù)f的反函數(shù)。g=finverse(f,v) 返回的符號函數(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多項式在MATLAB中,使用行向量來表示多項式的系數(shù),行向量中各元素按多項式系數(shù)由高到低排列。即的系數(shù)向量為。因此,在MATLAB中,將多項式問題轉(zhuǎn)化為矢量問題。生成多項式的基本函數(shù)為poly,poly2sym將多項式轉(zhuǎn)換為矢量形式。多項式的創(chuàng)建主要有以下三種方法。1 系數(shù)矢量的直接輸入法例1 創(chuàng)建多項式。解:p=1 -4 0 2;p=poly2sym(p)p =x3-4*x2+22 特征多項式輸入法多項式也可由通過矩陣的特征多項式取得,為階方陣,得特征多項式為。的特征多項式創(chuàng)建的命令為:p=poly(A),p=poly2sym(poly(A)。例2 求的特征多項式。解:A=1 2 3;4 4 6;7 8 9;p=poly(A)p = 1.0000 -14.0000 -28.0000 -12.0000 %特征多項式的系數(shù)p

溫馨提示

  • 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

提交評論