Matlab仿真軟件(改).ppt_第1頁(yè)
Matlab仿真軟件(改).ppt_第2頁(yè)
Matlab仿真軟件(改).ppt_第3頁(yè)
Matlab仿真軟件(改).ppt_第4頁(yè)
Matlab仿真軟件(改).ppt_第5頁(yè)
已閱讀5頁(yè),還剩148頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、1,第一章 仿真軟件Matlab,1.1 仿真技術(shù)簡(jiǎn)介,1.5 Matlab的符號(hào)運(yùn)算,1.7 Matlab的繪圖功能,1.2 Matlab概述,1.6 Matlab編程基礎(chǔ),1.3 Matlab界面與基本操作,1.4 Matlab的數(shù)值運(yùn)算,2,物理仿真:研制某種實(shí)體模型,使之能夠重現(xiàn)原系統(tǒng)的各種狀態(tài)。( 直觀性強(qiáng),形象化;所需費(fèi)用高,周期長(zhǎng),技術(shù)復(fù)雜。) 數(shù)學(xué)仿真:用數(shù)學(xué)模型去描述一個(gè)系統(tǒng),并編制程序在計(jì)算機(jī)上對(duì)實(shí)際系統(tǒng)進(jìn)行研究。( 速度快,較靈活,精確度高,重復(fù)性好;復(fù)雜系統(tǒng)可能很難用數(shù)學(xué)模型表達(dá)。) 混合仿真:將數(shù)學(xué)模型、物理模型和實(shí)體結(jié)合起來組成復(fù)雜的仿真系統(tǒng)。,1.1 仿真技術(shù)簡(jiǎn)介

2、,仿真 (Simulation) 利用模型來分析與研究實(shí)際系統(tǒng)(相似性原理)。,3,1) 建立系統(tǒng)的數(shù)學(xué)模型。 2) 建立仿真模型。 3) 編寫仿真程序。 4) 進(jìn)行仿真實(shí)驗(yàn) 設(shè)定合理的實(shí)驗(yàn)條件、參數(shù),進(jìn)行實(shí)驗(yàn),并記錄仿真結(jié)果。 5) 仿真結(jié)果分析。,計(jì)算機(jī)仿真的基本步驟:,4,MatrixLaboratory (矩陣實(shí)驗(yàn)室); 由美國(guó)Math Works公司于20世紀(jì)80年代推出的高性能數(shù)值計(jì)算軟件; Matlab已經(jīng)發(fā)展成為適合多學(xué)科 (線性代數(shù)、控制理論、數(shù)理統(tǒng)計(jì)、數(shù)字信號(hào)處理、動(dòng)態(tài)系統(tǒng)仿真)、功能強(qiáng)大的優(yōu)秀系統(tǒng)軟件; Matlab已經(jīng)成為工程技術(shù)人員必需掌握的基礎(chǔ)知識(shí)與基本技能。,1.

3、2 Matlab概述,5,自動(dòng)控制原理Matlab實(shí)現(xiàn)的優(yōu)勢(shì):,1) 運(yùn)算功能強(qiáng)大;,5) 庫(kù)函數(shù)豐富,函數(shù)命令簡(jiǎn)單高效;,6) 界面友好,使用方便。,4) 語(yǔ)法限制不嚴(yán)格,程序設(shè)計(jì)自由度大;,3) 專業(yè)的控制系統(tǒng)工具箱(Control Systems Toolbox);,2) 強(qiáng)大方便的繪圖功能;,6,Matlab的主要功能:,數(shù)值計(jì)算(Numeric Function) 符號(hào)計(jì)算(Symbolic Function) 工程與科學(xué)繪圖(Graphic Function) 控制系統(tǒng)工具箱 時(shí)域分析、根軌跡分析、頻域分析、系統(tǒng)設(shè)計(jì) 仿真工具SIMULINK (Simulate、 link),7,

4、Matlab是一種函數(shù)型語(yǔ)言,了解函數(shù)的功能,熟練掌握其使用方法,是使用Matlab進(jìn)行程序設(shè)計(jì)的前提; Matlab牽扯面極廣,幾乎涉及現(xiàn)代科學(xué)的所有領(lǐng)域,因此,學(xué)習(xí)Matlab必須與個(gè)人所從事的學(xué)科相結(jié)合; 結(jié)合課堂理論學(xué)習(xí)內(nèi)容,多進(jìn)行上機(jī)操作。,Matlab課程學(xué)習(xí)方法:,8,1.3 Matlab界面與基本操作,9,1、Command Window (命令窗口) 輸入各種Matlab指令、函數(shù)、表達(dá)式、變量等,并顯示除圖形外的所有運(yùn)算結(jié)果,一、四個(gè)窗口,2、Command History (歷史命令窗口) 記錄命令窗口中已經(jīng)運(yùn)行過的指令、函數(shù),3、Workspace (工作空間窗口) 顯

5、示變量名字(Name)、維數(shù)(Size)、字節(jié)數(shù)(Bytes)和類型(Class),4、Current Directory當(dāng)前目錄窗口,二、Start按鈕,可以運(yùn)行所有MATLAB軟件的工具以及訪問相關(guān)文檔。,10,MATLAB命令窗口的按鍵及其作用,11,三、功能菜單,File文件操作菜單,New 新建M文件、圖形、模型和圖形用戶界面 Open 打開.m,.fig,.mat,.mdl等文件 Close Commend Window 關(guān)閉命令窗口 Import Data 從其他文件導(dǎo)入數(shù)據(jù) Save WorkSpace As 保存工作空間數(shù)據(jù)到相應(yīng)的路徑文件中 Set Path 設(shè)置工作路徑

6、Preferences 設(shè)置命令窗口的屬性 Page Setup 頁(yè)面設(shè)置 Print 設(shè)置打印機(jī)屬性 Print Selection 選擇打印 Exit MATLAB 退出MATLAB操作界面,12,Edit編輯菜單,Undo、Redo 撤銷、重復(fù)執(zhí)行上一步操作 Cut、Copy、Paste 剪切、復(fù)制、粘貼 Paste to WorkSpace As 粘貼變量到工作空間 Select All 全部選定 Delect 刪除所選對(duì)象 Find 查找所需對(duì)象 Find Files 查找所需文件 Clear Commend Window 清除命令窗口的內(nèi)容 Clear Commend Histor

7、y 清除歷史命令窗口的內(nèi)容 Clear Workspace 清除工作區(qū)的內(nèi)容,13,Debug調(diào)試菜單,Open M-Files when Debugging 調(diào)試時(shí)打開M文件 Step 單步調(diào)試 Step In 單步調(diào)試進(jìn)入子函數(shù) Step Out 單步調(diào)試跳出子函數(shù) Continue 連續(xù)執(zhí)行到下一斷點(diǎn) Clear Breakpoints in All Files 清除所有文件中的斷點(diǎn) Stop if Errors/Warnings 出錯(cuò)或報(bào)警時(shí)停止運(yùn)行 Exit Debug Mode 退出調(diào)試模式,14,Desktop桌面菜單,Unlock Commend Window 命令窗口設(shè)為當(dāng)前

8、全屏活動(dòng)窗口 Desktop Layout 桌面設(shè)計(jì) Save Layout 保存桌面設(shè)計(jì) Organize Layout 組織桌面設(shè)計(jì) Commend Window 顯示/隱藏命令窗口 Commend History 顯示/隱藏歷史命令窗口 Current Directory 顯示/隱藏當(dāng)前工作目錄 Workspace 顯示/隱藏工作空間窗口 Help 打開幫助窗口,15,Profiler 打開輪廓圖窗口 Editor 打開編輯器 Figures 打開圖形編輯器 Web Brower 打開Web瀏覽器 Array Editor 打開矩陣編輯器 File Comparisons 文件比較 To

9、olbar 顯示/隱藏工具欄 Shortcuts Toolbar 顯示/隱藏快捷工具欄 Titles 顯示/隱藏標(biāo)題,Desktop桌面菜單,16,Window窗口菜單,Close All Documents 關(guān)閉所有文檔 Commend Window 選定命令窗口為當(dāng)前活動(dòng)窗口 Commend History 選定歷史命令窗口為當(dāng)前活動(dòng)窗口 Current Directory 選定當(dāng)前工作目錄為當(dāng)前活動(dòng)窗口 Workspace 選定工作空間窗口為當(dāng)前活動(dòng)窗口,17,Full Product Family Help 顯示全部系列產(chǎn)品幫助 MATLAB Help 顯示MATLAB系統(tǒng)幫助 Usi

10、ng the Desktop 顯示桌面命令使用幫助 Using the Command Window 顯示命令窗口使用幫助 Demos 顯示MATLAB系統(tǒng)的演示幫助窗口 About MATLAB 顯示MATLAB系統(tǒng)的標(biāo)識(shí)界面,Help幫助菜單,18,四、工具欄,19,1.4 Matlab的數(shù)值運(yùn)算,1.4.1 數(shù)值運(yùn)算基礎(chǔ),Matlab中變量使用之前,不需要指定變量的數(shù)據(jù)類型,也不必事先聲明變量。 一個(gè)程序中的變量,以其名稱在語(yǔ)句命令中的第一次合法出現(xiàn)而定義;當(dāng)用戶在Matlab工作空間中輸入一個(gè)新的變量時(shí),Matlab會(huì)自動(dòng)給該變量分配適當(dāng)?shù)膬?nèi)存,若用戶輸入的變量已經(jīng)存在,則Matlab

11、使用新輸入的變量替換原有的變量。,一、變量的賦值和命名,20,變量名=表達(dá)式,返回變量名列表=函數(shù)名(輸入變量列表),注意: 無(wú)需事先定義,Matlab系列定義的數(shù)值元素就是復(fù)數(shù),這是Matlab語(yǔ)言區(qū)別于其它高級(jí)語(yǔ)言的最大特點(diǎn)之一; 無(wú)論給Matlab中的變量賦什么值,在內(nèi)存中均以矩陣的形式表示。 Matlab數(shù)值運(yùn)算的表達(dá)式中不允許有未定義的自由變量。,21,1) 變量名必須是不包含有空格的單個(gè)詞; 2) 變量名必須以字母開頭,之后可接任意字母、數(shù)字或下劃線; 3) 組成變量名的字符長(zhǎng)度不大于31個(gè); 4) 變量名區(qū)分大小寫字母。,變量命名規(guī)則:,22,注意:MATLAB提供的標(biāo)準(zhǔn)函數(shù)和命

12、令名必須用小寫字母。,表1-1 Matlab的特殊變量和常量,23,二、Matlab運(yùn)算符,1、算術(shù)運(yùn)算符,24,2、關(guān)系運(yùn)算符,25,3、邏輯運(yùn)算符,26,4、特殊運(yùn)算符,27,方括號(hào)( )的使用,方括號(hào)可以輸入矩陣; 方括號(hào) 也可以代表空矩陣,用來刪除矩陣的行和列。,28,冒號(hào)(:)的使用,A. 使用冒號(hào)可以輸入行向量,其格式為:x=a: inc: b; 其中,a是向量的第一個(gè)元素,inc是步長(zhǎng)(即兩個(gè)元素的間隔),步長(zhǎng)可正可負(fù);若(b-a)為inc的整數(shù)倍時(shí),向量的最后一個(gè)元素等于b,否則小于b;當(dāng)inc=1時(shí)步長(zhǎng)可以省略。,B. 使用冒號(hào)能夠從向量和矩陣中選出指定的行和列元素。,C.

13、使用冒號(hào)能夠從一個(gè)大矩陣中選取小矩陣。,29,注: 單獨(dú)一個(gè)冒號(hào)可以代表所有行或所有列的元素。 方括號(hào) 也可以代表空矩陣,用來刪除矩陣的行和列。,30,分號(hào)(;)的使用,A. 分號(hào)在矩陣中用來分隔行; B. 分號(hào)在命令窗口內(nèi)用來輸入多行語(yǔ)句 在Matlab命令窗口內(nèi)輸入命令,若不加分號(hào),則每一條命令都將輸出相應(yīng)的結(jié)果;若加上分號(hào), Matlab將不輸出相應(yīng)的結(jié)果,等待用戶輸入下一條命令,直到碰到一條不帶分號(hào)的命令時(shí), Matlab輸出最后一條命令的結(jié)果。,31,Matlab的數(shù)值運(yùn)算主要是指矩陣和向量運(yùn)算; 矩陣和向量都指含有M行與N列數(shù)字的矩形結(jié)構(gòu),但兩者在Matlab中的運(yùn)算性質(zhì)不同; 一

14、行多列的矩陣是行向量,一列多行的矩陣是列向量; 只有一個(gè)元素的矩陣就是標(biāo)量。,1.4.2 矩陣運(yùn)算,32,方法:1) 直接輸入法; 2) 利用函數(shù)建立矩陣; 3) 利用M文件建立矩陣。,直接輸入法:將矩陣的元素用方括號(hào)括起來,按矩陣行的順序輸入各元素,同一行的各元素之間用空格或逗號(hào)分隔,不同行的元素之間用分號(hào)分隔 (也可以用回車鍵代替分號(hào)) 。,一、創(chuàng)建矩陣,33,a=1 2 3; 4,5,6 x=2 pi/2; sqrt(3) 3+5i,注意: 1) 不必聲明矩陣的維數(shù)和類型,Matlab會(huì)根據(jù)用戶所輸入的內(nèi)容自動(dòng)進(jìn)行配置; 2) 矩陣元素可以是Matlab表達(dá)式 ,可以是實(shí)數(shù) ,也可以是復(fù)

15、數(shù)。,例:,34,2. 利用函數(shù)建立矩陣,zeros ( size (A) )用來輸出一個(gè)與矩陣A行、列數(shù)相同的全0矩陣。,1) zeros函數(shù)創(chuàng)建元素全為0的矩陣。,2) ones函數(shù)創(chuàng)建元素全為1的矩陣。 3) eye函數(shù)創(chuàng)建單位矩陣。 4) magic函數(shù)創(chuàng)建一種特殊的N階方陣,其每行、每列和對(duì)角線上的元素之和都相等,為(1+n2)/n。,35,5) diag函數(shù)從矩陣中提取某對(duì)角線構(gòu)成一個(gè)向量; 利用一個(gè)向量構(gòu)成對(duì)角陣。,6) triu函數(shù)獲取某一矩陣的上三角矩陣。,tril函數(shù)獲取某一矩陣的下三角矩陣。,在Matlab中,還可以把小矩陣連接起來生成較大的矩陣。,36,3. 利用M文件

16、建立矩陣: 對(duì)于比較大且比較復(fù)雜的矩陣,可以為它專門建立一個(gè)M文件。(M文件實(shí)際上是一種包含Matlab命令代碼的文本文件)。,其步驟為: 1) 使用編輯程序輸入文件內(nèi)容; 2) 把輸入的內(nèi)容以純文本方式存盤(設(shè)文件名為my matrix. m); 3) 在Matlab命令窗口中輸入my matrix,就會(huì)自動(dòng)建立一個(gè)矩陣,可供以后顯示和調(diào)用。,37,二、矩陣元素的標(biāo)識(shí)、訪問、賦值,1. 一維矩陣,用矩陣名后圓括號(hào)內(nèi)的元素在矩陣中位置的順序號(hào)來標(biāo)識(shí)。,X=1*pi 2*pi 3*pi 4*pi 5*pi X=3.1416 6.2832 9.4248 12.5664 15.7080 %要查詢X矩

17、陣的第3個(gè)元素,輸入指令: X ( 3 ) %指令回車后,得到結(jié)果為: ans =9.4248,例:,38,2. 二維矩陣,采用用雙下標(biāo)格式:A ( m , n),其中m為行號(hào),n為列號(hào)。,39,1. 加減運(yùn)算(+,-),矩陣加減運(yùn)算的條件是兩矩陣必須有相同的行數(shù)和列數(shù),其運(yùn)算規(guī)則為兩矩陣對(duì)應(yīng)元素相加減。,三、矩陣運(yùn)算,2. 乘法運(yùn)算(*),兩矩陣相乘必須服從數(shù)學(xué)中矩陣叉乘的條件與規(guī)則, A矩陣的列數(shù)必須等于B矩陣的行數(shù),矩陣乘法不滿足交換律。,40,3. 除法運(yùn)算( / , ),矩陣右除A/B表示的是方程X*B=A的解:A/B=A*B-1; 矩陣左除 AB表示的是方程A*X=B的解:AB=A

18、-1*B; 矩陣與標(biāo)量間只能進(jìn)行矩陣右除標(biāo)量(即矩陣/標(biāo)量)的運(yùn)算。,41,若a為矩陣,b為標(biāo)量,矩陣的乘方a b是矩陣a的b次方。,4. 乘方運(yùn)算(),5. 轉(zhuǎn)置運(yùn)算(),把矩陣A的行換成同序數(shù)的列而生成的矩陣,稱為A的轉(zhuǎn)置矩陣;當(dāng)矩陣是一個(gè)復(fù)數(shù)矩陣時(shí),A表示它的共軛轉(zhuǎn)置矩陣。,42,1.4.3 向量運(yùn)算,1. 加減運(yùn)算(+,-),在Matlab中,標(biāo)量與向量間可進(jìn)行加減運(yùn)算,其規(guī)則是標(biāo)量與向量的每個(gè)元素進(jìn)行加減操作。,向量加減運(yùn)算的條件與規(guī)則和矩陣加減運(yùn)算相同。,2. 乘法運(yùn)算(.*),向量的乘法運(yùn)算必須在具有相同維數(shù)的向量間進(jìn)行,其結(jié)果是向量的對(duì)應(yīng)元素間相乘的結(jié)果組成的新向量。,43,3

19、. 除法運(yùn)算(./ , .),標(biāo)量與數(shù)組間可以進(jìn)行除法運(yùn)算,其規(guī)則是標(biāo)量與數(shù)組的每一個(gè)元素進(jìn)行除法操作; 數(shù)組右除A./B是將A的每一元素除以B的每一個(gè)對(duì)應(yīng)元素; 數(shù)組左除A.B是將B的每一元素除以A的每一個(gè)對(duì)應(yīng)元素。,44,4. 乘方運(yùn)算(.),向量與標(biāo)量的乘方運(yùn)算 以向量為底而以標(biāo)量為指數(shù):以向量中的每個(gè)元素為底,分別與作為指數(shù)的標(biāo)量進(jìn)行乘方運(yùn)算得到一個(gè)新的向量。,以標(biāo)量為底而以向量為指數(shù):以該標(biāo)量為底,用向量中的每個(gè)元素分別作為指數(shù)與該標(biāo)量進(jìn)行乘方運(yùn)算后得到一個(gè)新的向量。,45,向量與向量的乘方運(yùn)算:以前一個(gè)向量為底,后一個(gè)向量為指數(shù),其對(duì)應(yīng)元素分別進(jìn)行乘方運(yùn)算得到的結(jié)果。,5. 轉(zhuǎn)置運(yùn)

20、算(. ),向量轉(zhuǎn)置(A. )與實(shí)數(shù)矩陣轉(zhuǎn)置相同。,46,在Matlab中,關(guān)系運(yùn)算與邏輯運(yùn)算只適用于向量,不適用于矩陣。其運(yùn)算規(guī)則為:關(guān)系運(yùn)算的優(yōu)先級(jí)高于算術(shù)運(yùn)算,低于邏輯運(yùn)算。,a=1+2i;b=1+4i; a=b %運(yùn)算結(jié)果為:ans = 0 ab %運(yùn)算結(jié)果為: ans = 0,例:,1.4.4 關(guān)系與邏輯運(yùn)算,運(yùn)算符、=只比較二量的實(shí)部,而運(yùn)算符=與=則同時(shí)比較實(shí)部與虛部。 若兩標(biāo)量比較,其關(guān)系成立者,運(yùn)算結(jié)果為邏輯真(1),否則為邏輯假(0)。,一、向量的關(guān)系運(yùn)算,47,若一標(biāo)量與一向量比較,則將標(biāo)量與向量的每一個(gè)元素逐個(gè)比較,其運(yùn)算結(jié)果為一個(gè)與向量同維的新向量,其元素由1與0組成

21、,即關(guān)系成立者,運(yùn)算結(jié)果為邏輯真(1),否則為邏輯假(0)。,若兩向量比較,向量的維數(shù)需相同,將兩向量對(duì)應(yīng) 的每一個(gè)元素逐個(gè)比較,其運(yùn)算結(jié)果為一個(gè)與比較向量同維的新向量,其元素由1與0組成,即關(guān)系成立者,運(yùn)算結(jié)果為邏輯真(1),否則為邏輯假(0)。,48,若兩向量做邏輯運(yùn)算,向量維數(shù)需相同,將兩向量對(duì)應(yīng)的每一個(gè)元素逐個(gè)運(yùn)算,其運(yùn)算結(jié)果為一個(gè)與原向量同維的新向量,其元素由1與0組成。,Matlab除了上述的各類運(yùn)算外,還提供了許多運(yùn)算函數(shù)。,二、向量的邏輯運(yùn)算, 非0元素代表邏輯真“1”,0元素代表邏輯假 “0”;,邏輯運(yùn)算中,not的運(yùn)算優(yōu)先級(jí)最高,and和or有相同的優(yōu)先級(jí)(xor只有函數(shù)形

22、式);還可用括號(hào)改變運(yùn)算優(yōu)先權(quán)。,若一標(biāo)量與一向量比較,則將標(biāo)量與向量的每一個(gè)元素逐個(gè)比較,其運(yùn)算結(jié)果為一個(gè)與向量同維的新向量,其元素由1與0組成。,49,表1-2 MATLAB常用運(yùn)算函數(shù),50,在Matlab中,采用行向量表示多項(xiàng)式,該向量中的元素是按降冪排列的多項(xiàng)式系數(shù)。 多項(xiàng)式 P (x)=a0 x n+a1 x n-1+an-1 x +an 的系數(shù)行向量為: P=a0 a1 an-1 an ,1.4.5 多項(xiàng)式運(yùn)算,51,多項(xiàng)式求根,求解該多項(xiàng)式等于0時(shí)對(duì)應(yīng)方程的根。,由根求多項(xiàng)式,由該多項(xiàng)式等于0時(shí)對(duì)應(yīng)方程的根求其多項(xiàng)式的系數(shù)。,多項(xiàng)式乘法/除法,p = conv ( p1, p2

23、) p,r = deconv ( p1, p2),例:求多項(xiàng)式 p (x)=(x2+2x+3)( 4x2+5x+6 )的系數(shù)。,r=1 2 3; g=4 5 6; p= conv ( r, g) %運(yùn)算結(jié)果為:p = 4 13 28 27 18,即p (x) = 4x4+13x3+28x2+27x+18,s,q= deconv ( p, g),52,4. 分式多項(xiàng)式的部分分式展開,將y(x)進(jìn)行部分分式分解,即求留數(shù)計(jì)算,可以得到:,b為分子系數(shù)向量,a為分母系數(shù)向量;r為部分分式中留數(shù)向量,p為部分分式中極點(diǎn)向量,k為直接相除項(xiàng)行向量。,r, p, k=residue (b, a),53,例

24、:已知一傳遞函數(shù) ,將其分解為部分分式。,a=1 2;b=1 4 3; z, p, k=residue (a, b) %運(yùn)算結(jié)果為: z = 0.5000 0.5000 p = -3 -1 k = ,即得傳遞函數(shù)分解的部分分式為:,54,反之,用residue函數(shù)也可將部分分式展開式返回到傳遞函數(shù)多項(xiàng)式之比的形式。,a, b=residue (z, p, k) %運(yùn)算結(jié)果為: a= 1 2 b= 1 4 3,即返回原傳遞函數(shù),例:,55,5. 多項(xiàng)式求導(dǎo)數(shù)(微分) polyder (p): 求p的微分; polyder (a, b): 求多項(xiàng)式a, b乘積的微分; p, q=polyder (

25、a, b): 求多項(xiàng)式a, b商的微分,p為導(dǎo)函數(shù)的分子系數(shù)向量,q這導(dǎo)函數(shù)的分母系數(shù)向量。,p=1 2 3 4 5; b= polyder ( p ) %運(yùn)算結(jié)果為: b= 4 6 6 4,例:求多項(xiàng)式 p (x)=x4+2x3+3x2+4x+5的導(dǎo)數(shù)。,即b(x)=d p(x) /dx=4x3+6x2+6x+4,56,6. 多項(xiàng)式求值 polyval (p, x): p為多項(xiàng)式系數(shù)向量,x為輸入。,p=1 2 3 4; x=2; y= polyval ( p, x ) %運(yùn)算結(jié)果為: y= 26,例:求多項(xiàng)式 y=x3+2x2+3x+4在x=2處的值。,57,1.4.6 數(shù)值分析,58,一

26、、查找最大值,1. 求矩陣/向量的最大元素 max (A),返回一個(gè)行向量,向量的第i個(gè)元素是矩陣第i列上的最大元素; y, u=max (A),返回兩個(gè)行向量,y向量記錄A的每列的最大元素,u向量記錄每列最大元素的行號(hào)。 max (A, ,dim),dim取1或2。dim取1時(shí),該函數(shù)和max (A)完全相同。dim取2時(shí),該函數(shù)返回一個(gè)列向量,其第i個(gè)元素是A矩陣的第i行上的最大元素。,59, u=max (A,B),A、B是兩個(gè)同型的向量或矩陣。結(jié)果u是與A、B同型的向量或矩陣,并且u的每個(gè)元素等于A、B對(duì)應(yīng)元素的最大者; u=max (A,n),n是一個(gè)標(biāo)量。結(jié)果u是與A同型的向量或矩

27、陣,u的每個(gè)元素等于A中對(duì)應(yīng)元素和n相比的較大者。,2. 兩個(gè)向量或矩陣元素的比較,60,min函數(shù)用來查找最小值,其用法與命令格式與max完全相同。,A=1 9; 8 2;B=3 4; 6 5;n=5 C=max (A, B) C =3 9 8 5 D=max(A,n) D =5 9 8 5,例:,61,二、求和與求積, sum(A),返回一個(gè)行向量,其第 i個(gè)元素是矩陣 A 的第 i列的元素和。 sum(A,dim),當(dāng) dim 為 1 時(shí),該函數(shù)等同于 sum(A),當(dāng) dim 為 2 時(shí),返回一個(gè)列向量,其第 I 個(gè)元素是矩陣 A 的第 i行的各元素和。,prod函數(shù)用來求積,其用法與

28、命令格式與sum完全相同。,62,A = 1 9; 8 2 B = sum(A) B = 9 11 C=sum(A,1) %求每列的和 D = 9 11 D=sum(A,2) %求每行的和 D = 10 10,例:,63,三、求平均值和中值,中值是指在數(shù)據(jù)序列中其值的大小恰好在中間。例如,數(shù)據(jù)序列5,3,8,-6,12的中值為5 。如果為偶數(shù)個(gè)元素時(shí),則中值等于中間的兩項(xiàng)之平均值。例如,數(shù)據(jù)序列5,3,8,-6,12,4中,處于中間的數(shù)為4和5,故其中值為此兩數(shù)的平均值4.5 。,median函數(shù)用來求中值,其用法與命令格式與mean完全相同。, mean(A),返回一個(gè)行向量,其第 i個(gè)元素

29、是矩陣 A 的第 i列的算術(shù)平均值。 mean(A,dim),當(dāng) dim 為 1 時(shí),該函數(shù)等同于 mean(A),當(dāng) dim 為 2 時(shí),返回一個(gè)列向量,其第 i個(gè)元素是矩陣 A 的第 i行的算術(shù)平均值。,64,一、MATLAB的數(shù)學(xué)表達(dá)式,MATLAB的表達(dá)式有兩類: 數(shù)字表達(dá)式由數(shù)值量、數(shù)值變量、數(shù)值函數(shù)或數(shù)值矩陣用運(yùn)算符連接而成的數(shù)學(xué)關(guān)系式。它主要用來進(jìn)行數(shù)值計(jì)算。 符號(hào)表達(dá)式由符號(hào)常量、符號(hào)變量、符號(hào)函數(shù)用運(yùn)算符連接而成的符號(hào)對(duì)象,主要用來進(jìn)行符號(hào)運(yùn)算。,1.4.7 MATLAB的數(shù)學(xué)表達(dá)式及其書寫,65,數(shù)值與變量或變量與變量相乘不能連寫,必須用乘號(hào)將兩變量加以連接; 一般數(shù)學(xué)表達(dá)

30、式中可以使用大括號(hào)、中括號(hào)與小括號(hào),而Matlab表達(dá)式只能用小括號(hào); 象水平除號(hào)線、乘方運(yùn)算、開根號(hào)等純數(shù)學(xué)寫法在Matlab里不允許也是不能實(shí)現(xiàn)的; 三角函數(shù)與雙曲函數(shù)及其反函數(shù)、對(duì)數(shù)函數(shù)的自變量必須用小括號(hào)加以限定;,二、MATLAB數(shù)學(xué)表達(dá)式書寫,66,分式的書寫,注意分子分母最好都分別用小括號(hào)加以限定。特別是分母,當(dāng)省略小括號(hào)的限定時(shí),很容易出錯(cuò); 某量k的平方根表示:sqrt (k)與k(1/2)等效; 求冪運(yùn)算的指數(shù)兩側(cè)最好用小括號(hào)加以限定,否則指數(shù)為分式時(shí)極易出錯(cuò); 自然常數(shù)e的指數(shù)運(yùn)算的書寫形式為exp ( ) ,對(duì)數(shù)運(yùn)算的書寫形式為log( ); 自然常數(shù)的書寫形式為“pi

31、”;虛數(shù)單位的書寫形式為“i”或“j”;無(wú)窮大的書寫形式為“inf”或“INF”。,67,例:將以下數(shù)學(xué)表達(dá)式書寫成MATLAB表達(dá)式。,解:根據(jù)Matlab書寫規(guī)則,以上式子的Matlab表達(dá)式為:,(1) y=4*sin(2*x)*exp(-3)+8*cos(2*x)* exp(-3) (2) f=exp(5*t)*2*sqrt(t/pi) (3) 5/(3*log(7-x)+9) (4) F=z/(z-exp(T*log(8),68,符號(hào)運(yùn)算的操作對(duì)象是非數(shù)值的符號(hào)對(duì)象。 與數(shù)值運(yùn)算的區(qū)別:數(shù)值運(yùn)算中必須先對(duì)變量賦值,然后才能參與運(yùn)算。符號(hào)運(yùn)算無(wú)須事先對(duì)獨(dú)立變量賦值,運(yùn)算結(jié)果以標(biāo)準(zhǔn)的符號(hào)

32、形式表達(dá)。,1.5 Matlab符號(hào)運(yùn)算,符號(hào)運(yùn)算是Matlab的重要組成部分。應(yīng)用符號(hào)計(jì)算功能,可以直接對(duì)抽象的符號(hào)對(duì)象進(jìn)行微積分或代數(shù)計(jì)算,并獲得問題的解析結(jié)果。,69,1.5.1符號(hào)運(yùn)算基礎(chǔ),一、符號(hào)變量、符號(hào)常量的建立,(1) a=sym (x), x為創(chuàng)建的符號(hào)變量,a為輸出的變量名。 (2) syms arg1 arg2 argN,在一個(gè)語(yǔ)句中同時(shí)定義多個(gè)符號(hào)變量。,符號(hào)變量和數(shù)值變量是不同的。數(shù)值變量參與運(yùn)算前必須先進(jìn)行賦值,變量的運(yùn)算實(shí)際上是該變量所對(duì)應(yīng)的值進(jìn)行運(yùn)算,其運(yùn)算結(jié)果是一個(gè)和變量類型對(duì)應(yīng)的值。符號(hào)變量運(yùn)算前不需要賦值,其結(jié)果是一個(gè)由參與運(yùn)算的變量名組成的表達(dá)式。,70

33、,(3) 應(yīng)用sym( )函數(shù)還可以定義符號(hào)常量。符號(hào)常量進(jìn)行計(jì)算得到的是精確的數(shù)學(xué)表達(dá)式;而數(shù)值計(jì)算得到的是一個(gè)近似值。,a=sym (8);b=8; %定義1個(gè)符號(hào)常量和1個(gè)數(shù)值常量 sqrt (a); %求符號(hào)常量a的平方根 ans= 2*2(1/2) sqrt (b); %求數(shù)值常量b的平方根 ans= 2.8284,例:,71,符號(hào)表達(dá)式由符號(hào)常量、符號(hào)變量、符號(hào)函數(shù)、算術(shù)運(yùn)算符等組成。創(chuàng)建符號(hào)表達(dá)式/方程的方法有兩種:一種是直接用sym函數(shù)創(chuàng)建,二是用已經(jīng)定義的符號(hào)變量創(chuàng)建符號(hào)表達(dá)式。,二、符號(hào)表達(dá)式/方程和符號(hào)矩陣的建立,f=sym (a*x2+b*x+ c) f=a*x2+b*

34、x+ c syms x a b c f=a*x2+b*x+ c f=a*x2+b*x+ c,例:,符號(hào)表達(dá)式一定要用 (雙單引號(hào))括起來Matlab才能識(shí)別。,72,創(chuàng)建符號(hào)矩陣的方法也有兩種: 一種是直接用sym函數(shù)創(chuàng)建,命令格式:A=sym( ) ; 二是用已經(jīng)定義的符號(hào)變量創(chuàng)建。,A = sym(a , 2*b ; 3*a , 0) A = a, 2*b 3*a, 0 syms a b A=a 2*b; 3*a 0 A = a, 2*b 3*a, 0,例:,用雙單引號(hào)也可建立符號(hào)變量、符號(hào)常量和符號(hào)表達(dá)式。,73,1.5.2 符號(hào)對(duì)象的基本運(yùn)算,運(yùn)算符“+”、“-”、“*”、“”、“/”

35、與“” 用于符號(hào)對(duì)象的加、減 、乘、左除、右除與求冪運(yùn)算。運(yùn)算符“.*”、“.”、“./”、“.”分別用來實(shí)現(xiàn)符號(hào)數(shù)組的乘、左除、右除與求冪運(yùn)算。,一、算術(shù)運(yùn)算,運(yùn)算符“=”和“ =”分別對(duì)運(yùn)算符兩端的對(duì)象進(jìn)行“相等”與“不等”的比較。當(dāng)結(jié)果為真,語(yǔ)句執(zhí)行后返回“1”。否則返回“0”。,二、關(guān)系運(yùn)算,74,subs (S, old, new),將符號(hào)表達(dá)式S中的old替換為new。old為符號(hào)表達(dá)式中的符號(hào)變量,而new可以是符號(hào)變量、符號(hào)常量等。,三、基本運(yùn)算函數(shù),1. 符號(hào)替換,75,syms a b c d k n x y w t; f=a*x n+ b* y+ k; f1=subs (

36、f, a b k, sin (t) log (w) c* exp (-d*t) f2=subs (f, n k, 5 pi) f3=subs (f, k, 1:4) %程序運(yùn)行結(jié)果為: f1 = sin(t)*xn+log(w)*y+c*exp(-d*t) f2 = a*x5+b*y+pi f3 = a*xn+b*y+1, a*xn+b*y+2, a*xn+b*y+3, a*xn+b*y+4,76,syms a b c; f=a2*(b+ c)+ b2*(c+ a)+ c2*(a+ b)+2*a*b*c; factor (f) %程序運(yùn)行結(jié)果為: ans = (b+c)*(c+a)*(a+b)

37、,2. 符號(hào)表達(dá)式因式分解factor ( ),例:已知 ,試對(duì)其進(jìn)行因式分解。,77,3. 符號(hào)表達(dá)式展開函數(shù)expand ( ),syms x y; f=(2*x+3*y)*(x+1); expand (f) %程序運(yùn)行結(jié)果為: ans = 2*x2+2*x+3*x*y+3*y,expand ( )常用于多項(xiàng)式表達(dá)式、三角函數(shù)、指數(shù)函數(shù)和對(duì)數(shù)函數(shù)的展開。,例:已知 ,試對(duì)其進(jìn)行展開。,78,collect (f, v),是將符號(hào)表達(dá)式f中變量v的同冪項(xiàng)系數(shù)合并。,syms a b x y; f=x2*y+ x* y-a* x2- b*x; collect (f, x) %對(duì)f按x進(jìn)行合并同

38、類項(xiàng) %程序運(yùn)行結(jié)果為: ans = (y-a)*x2+ (y-b)*x,4. 符號(hào)表達(dá)式合并同類項(xiàng),例:已知 ,試對(duì)其同類項(xiàng)進(jìn)行合并。,79,simplify (S),應(yīng)用代數(shù)恒等式對(duì)S進(jìn)行化簡(jiǎn)。 simple (S),調(diào)用Matlab的其他函數(shù)對(duì)表達(dá)式進(jìn)行化簡(jiǎn)。,syms x c alph beta; e1=sin (x)2+cos(x)2; e10=simplify (e1) e2=exp (c* log (alph+ beta); e20=simple (e2) %程序運(yùn)行結(jié)果為: e10 = 1 e20 = (alph+beta)c,5. 符號(hào)表達(dá)式化簡(jiǎn),例:試對(duì) 和 ,進(jìn)行化簡(jiǎn)。,

39、80,1.5.3 微積分運(yùn)算,一、求極限limit( ),(1) limit (f, x, a),求當(dāng)變量x趨近于常數(shù)a時(shí),函數(shù)f(x)的極限值。 (2) limit (f, x, a, right),求符號(hào)函數(shù)f的右極限值。right表示變量x從右邊趨近于a。 (3) limit (f, x, a, left),求符號(hào)函數(shù)f的左極限值。left表示變量x從左邊趨近于a。,81,二、微分diff ( ),diff (f, v),v為自變量,對(duì)表達(dá)式f求一階導(dǎo)數(shù)或偏導(dǎo)數(shù)。 diff (f, v, n),求表達(dá)式f的高階導(dǎo)數(shù)或偏導(dǎo)數(shù),v為自變量,n為導(dǎo)數(shù)或者偏導(dǎo)數(shù)的階數(shù)。,82,Df2=diff

40、(x5*exp(x), 2) %程序運(yùn)行結(jié)果為: Df2 = 20*x3*exp(x)+10*x4*exp(x)+x5*exp(x),例:已知 ,求 。,83,三、積分int(),int (f, v),求符號(hào)函數(shù)f的不定積分,v為變量。 int (f, v, a, b),求符號(hào)函數(shù)f的定積分,v為變量。 a、b分別表示定積分的下限和上限。,R=int(x+1)*(x-2)/x,x) %程序運(yùn)行結(jié)果為: R = 1/2*x2-x-2*log(x),例:求不定積分 。,例:求定積分 。,R=int(x/sqrt(1+x) ,x,0,3) %程序運(yùn)行結(jié)果為: R = 8/3,84,在Matlab中,

41、多次使用int ( )時(shí),計(jì)算的就是重積分。,syms x y; int(int(x2/y2,y,1/x,x),x,1,2) %程序運(yùn)行結(jié)果為: ans = 9/4,例:求二重積分 ,其中D是由直線x=2,y=x以及雙曲線xy=1圍成的區(qū)域。,85,1.5.4 符號(hào)方程求解,一、符號(hào)代數(shù)方程求解,在Matlab中,利用solve函數(shù)進(jìn)行對(duì)方程組求解。其調(diào)用格式 有以下幾種:,86,solve (eq):計(jì)算單一方程,eq為輸入的方程。 solve (eq, var):計(jì)算單一方程,eq為輸入的方程,var用來指明待求變量。 solve (eq1, eq2, , eqn):計(jì)算方程組,eq1,e

42、qn為輸入的方程組。變量為默認(rèn)變量。 solve (eq1, eq2, , eqn, var1, , varn):計(jì)算方程組,eq1,eqn為輸入的方程組;var1,varn用來指明每個(gè)方程待求的變量。,87,syms x a; f=3*x2-3*a2=0; x=solve(f,x) %程序運(yùn)行結(jié)果為: x = -a a,例:求方程 的解。,88,x,y=solve(3*x+y=a,x-y=a,x,y) %程序運(yùn)行結(jié)果為: x = 1/2*a y = -1/2*a,例:求方程組 的解。,89,二、微分方程求解,dsolve (eq1, eq2, , cond1,cond2, v1, v2 ,

43、. ),求解常微分方程組eq1, eq2,在初始條件cond1, cond2, 下的特解。參數(shù)v描述方程中的自變量,默認(rèn)變量為t。若沒有給出初值條件cond,則求方程的通解。 當(dāng)y為因變量時(shí),Dny表示y的n階導(dǎo)函數(shù)。比如,初始條件,寫成:,寫成:,90,syms x y eq=Dy=(x2+y2)/(2*x2) ; y=dsolve(eq,x) %程序運(yùn)行結(jié)果為: y = x*(-2+log(x)+C1)/(log(x)+C1),例:求微分方程 的通解。,91,一、拉普拉斯變換與反變換,在Matlab軟件中,利用laplace函數(shù)和ilaplace函數(shù)求 拉普拉斯變換與反變換。 其調(diào)用格式為

44、:,F=laplace (f,t,s) F=ilaplace (F, s,t),1.5.5 重要的積分變換,其中,f表示時(shí)域函數(shù)f(t) ,t表示時(shí)間變量;F表示頻域函數(shù)F(s) ,s表示頻域變量。,92,例:,syms k t s; f=k*t; F=laplace(f,t,s) %程序運(yùn)行結(jié)果為: F = k/s2 f=ilaplace(F) %程序運(yùn)行結(jié)果為: f = k*t,93,二、Z變換與反變換,在Matlab軟件中,利用ztrans函數(shù)和iztrans函數(shù)求Z變換與 反變換。 其調(diào)用格式為:,F=ztrans (f,n,z) f=iztrans (F,z,n),其中,f表示時(shí)域函

45、數(shù)f(t)或時(shí)域序列f(n),n表示時(shí)間序列;F表示Z域函數(shù)F(z),z表示Z域變量。,94,例:,syms k t s; f=k*t; F=ztrans(f,t,z) %程序運(yùn)行結(jié)果為: F = k*z/(z-1)2 f=iztrans(F) %程序運(yùn)行結(jié)果為: f = k*n,95,1.6 MATLAB程序設(shè)計(jì),MATLAB的工作模式,指令驅(qū)動(dòng)模式:在命令窗口下輸入指令, MATLAB立即處理這些指令,并顯示結(jié)果。 M文件模式:將由MATLAB指令和函數(shù)構(gòu)成的程序存儲(chǔ)成以.m為擴(kuò)展名的文件( M文件),然后再執(zhí)行該程序文件。,96,腳本文件是由實(shí)現(xiàn)某項(xiàng)功能的一系列語(yǔ)句命令與函數(shù)組合成的M文

46、件,也稱為命令文件。腳本文件沒有輸入?yún)?shù),也沒有輸出參數(shù)。執(zhí)行腳本文件時(shí),文件中的指令或者命令按照出現(xiàn)在腳本文件中的順序依次執(zhí)行。,一、腳本文件,腳本文件主要由注釋行和代碼行組成。 注釋行需要使用%定義符;代碼行則是一些簡(jiǎn)單的MATLAB指令或命令,命令可以完成相應(yīng)的計(jì)算處理數(shù)據(jù)、繪制圖形結(jié)果的操作,也可以在腳本文件中調(diào)用其他的函數(shù)完成復(fù)雜的數(shù)學(xué)運(yùn)算。,97,二、函數(shù)文件,特定規(guī)則: 函數(shù)m文件首行必須以關(guān)鍵字function開頭,如果返回變量只有一個(gè),方括號(hào)可以省略。如果函數(shù)有多個(gè)輸入或返回變量,則多個(gè)變量之間用英文狀態(tài)下的逗號(hào)加以分隔。 函數(shù)名的命名規(guī)則與變量的命名規(guī)則相同。 m文件的文件

47、名最好是 .m。,function 返回變量 = 函數(shù)名(輸入變量) %注釋說明語(yǔ)句段 程序語(yǔ)句段 end,98,例:編寫函數(shù)文件求 的值。,%分式多項(xiàng)式的求值函數(shù) function y=pval(x) y=(2*x2+3*x-5)/(x2+x-7) end,99,腳本文件中的所有變量都是全局變量,而函數(shù)文件中的變量卻是局部變量,只在函數(shù)運(yùn)行期間有效,函數(shù)返回后,局部變量會(huì)自動(dòng)在工作空間中消除掉。,函數(shù)調(diào)用的一般格式為: 輸出變量=函數(shù)名(輸入變量),100,M-file編輯/調(diào)試器,三、M文件的創(chuàng)建與編輯,編輯/調(diào)試器通常用顏色來區(qū)分程序內(nèi)容的類別: 黑色程序主體部分; 綠色注釋部分; 紫色

48、屬性值設(shè)定或標(biāo)識(shí)部分; 藍(lán)色控制流程,比如for, ifthen等語(yǔ)句。,101,四、Matlab程序設(shè)計(jì)基本規(guī)則,% 說明 clear 定義變量 逐行執(zhí)行命令 程序控制語(yǔ)句 ,102,五、流程控制語(yǔ)句,matlab語(yǔ)言的程序結(jié)構(gòu)與其它高級(jí)語(yǔ)言一樣,分為順序,循環(huán)和選擇三大基本結(jié)構(gòu)。 順序結(jié)構(gòu) 按照從上至下的順序依次執(zhí)行程序的各條語(yǔ)句。 循環(huán)結(jié)構(gòu) 就是在程序中某一條語(yǔ)句或多條語(yǔ)句重復(fù)多次的運(yùn)行。 選擇結(jié)構(gòu) 依照不同的判斷條件進(jìn)行判斷,然后根據(jù)判斷的結(jié)果選擇某一種方法來解決某一個(gè)問題。,103,1、循環(huán)語(yǔ)句,MATLAB中有兩種循環(huán)語(yǔ)句:forend 語(yǔ)句和whileend語(yǔ)句。,forend:

49、用于循環(huán)次數(shù)已經(jīng)確定的情況,其調(diào)用格式為:,for 循環(huán)變量=表達(dá)式1:表達(dá)式2:表達(dá)式3 循環(huán)體語(yǔ)句 end,其中,表達(dá)式1的值為循環(huán)變量的初值,表達(dá)式2的值為步長(zhǎng),表達(dá)式3的值為循環(huán)變量的終值。步長(zhǎng)為1時(shí),表達(dá)式2可以省略。對(duì)于正的步長(zhǎng),當(dāng)變量大于表達(dá)式3時(shí)結(jié)束循環(huán),對(duì)于負(fù)的步長(zhǎng),當(dāng)變量小于表達(dá)式3時(shí)結(jié)束循環(huán)。,104,例:編寫函數(shù)文件求x的階乘。,%計(jì)算x的階乘的函數(shù) function p=jcheng(x) p=1; for i=1:x p=p*i; end end,105,whileend:用于循環(huán)次數(shù)不確定的情況,其調(diào)用格式為:,while 條件表達(dá)式 循環(huán)體語(yǔ)句 end,其中,條

50、件表達(dá)式一般是由邏輯運(yùn)算、關(guān)系運(yùn)算及一般運(yùn)算組成的,以判斷循環(huán)的進(jìn)行和停止;只要表達(dá)式的值非0,繼續(xù)循環(huán);直到表達(dá)式值為0,循環(huán)停止。,106,sum=0; i=1; while i=100 sum=sum+i; i=i+1; end sum,例:用while循環(huán)求1100間整數(shù)的和。,107,2、條件語(yǔ)句,單分支if語(yǔ)句:,if 條件 語(yǔ)句組 end,雙分支if語(yǔ)句:,if 條件 語(yǔ)句組1 else 語(yǔ)句組2 end,當(dāng)條件成立時(shí),執(zhí)行語(yǔ)句組1,否則執(zhí)行語(yǔ)句組2,語(yǔ)句組1或語(yǔ)句組2執(zhí)行后,再執(zhí)行end后面的語(yǔ)句。,108,x=input (x=); if x=10 y=cos(x+1)+sq

51、rt(x2+1); else y=x* sqrt (x+ sqrt (x); end disp (y);,x=input(string):以字符串“string”為信息給用戶提示,并將用戶鍵入的內(nèi)容賦值給x。 disp( ):命令窗口輸出,109,多分支if語(yǔ)句:,if 條件1 語(yǔ)句組1 elseif 條件2 語(yǔ)句組2 elseif 條件n 語(yǔ)句組n else 語(yǔ)句組n+1 end,110,x=input (x=); if x =2 y=x+(x-2); elseif x = 0 y=x-(x-2); else y=-x-(x-2); end disp (y);,例:計(jì)算函數(shù) 的值。,111,

52、switch 開關(guān)表達(dá)式 case 表達(dá)式1 語(yǔ)句組1 case 表達(dá)式2 語(yǔ)句組2 otherwise 語(yǔ)句組n end,當(dāng)開關(guān)表達(dá)式的值等于case語(yǔ)句后表達(dá)式的值時(shí),程序轉(zhuǎn)移到該語(yǔ)句去執(zhí)行,執(zhí)行完后直接跳出開關(guān)體,執(zhí)行end后的語(yǔ)句。程序的執(zhí)行結(jié)果與各個(gè)case的語(yǔ)句次序無(wú)關(guān)。當(dāng)case后所有表達(dá)式都不等于開關(guān)表達(dá)式時(shí),程序?qū)?zhí)行otherwise后的語(yǔ)句組。,3、開關(guān)語(yǔ)句,112,例:根據(jù)變量 num 的值來決定顯示的內(nèi)容。,num=input(請(qǐng)輸入一個(gè)數(shù)); switch num case -1 disp (I am a teacher.); case 0 disp (I am a

53、 student.); case 1 disp (You are a teacher.); otherwise disp (You are a student.); end,113,4、流程控制指令,break:用來終止當(dāng)前循環(huán)??梢灾袛鄁or語(yǔ)句,也可以中斷while語(yǔ)句。循環(huán)體內(nèi)設(shè)置的條件必須在break指令之前。對(duì)于嵌套的循環(huán)結(jié)構(gòu),break指令只能退出包含它的最內(nèi)層循環(huán)。 continue:用來中斷本次的循環(huán)體,將程序的流程跳轉(zhuǎn)到判斷循環(huán)條件的語(yǔ)句處,繼續(xù)下一次的循環(huán)。 return:用來終止本次函數(shù)調(diào)用,返回到上級(jí)調(diào)用函數(shù)。 pause :暫停運(yùn)行程序,按任意鍵恢復(fù)執(zhí)行。,114,六

54、、M文件調(diào)試,應(yīng)用程序的錯(cuò)誤有兩類:一類是語(yǔ)法錯(cuò)誤;另一類是邏輯錯(cuò)誤,指程序運(yùn)行過程中得到的結(jié)果不是用戶需要的結(jié)果。,與調(diào)試(Debug)有關(guān)的菜單項(xiàng)及按鈕:,Set/Clear Breakpoint:設(shè)置/清除光標(biāo)處的斷點(diǎn); Clear All Breakpoint:清除程序中的所有斷點(diǎn); Stop if Error/ Warning:運(yùn)行至結(jié)束(自動(dòng)斷點(diǎn)); Run:執(zhí)行程序至結(jié)束遇到斷點(diǎn); step:?jiǎn)尾綀?zhí)行程序; Step In:深入下層局部工作區(qū); Continue:恢復(fù)程序運(yùn)行至結(jié)束或另一個(gè)斷點(diǎn)。,1、調(diào)試器的使用,115,2、調(diào)試命令,116,dbstop:設(shè)置斷點(diǎn);調(diào)用格式有:

55、dbstop at in :在指定文件的指定行處設(shè)置斷點(diǎn); dbstop in :在指定文件的第一個(gè)可執(zhí)行處設(shè)置斷點(diǎn); dbstop if error:在任何運(yùn)行出錯(cuò)時(shí)產(chǎn)生中斷(不包括語(yǔ)法錯(cuò)誤)。出錯(cuò)中斷后用戶不能恢復(fù)程序; dbstop if naninf/infnan:當(dāng)出現(xiàn)Inf或nan值時(shí)產(chǎn)生中斷。 dbcont:用來恢復(fù)對(duì)于執(zhí)行dbstop指令而導(dǎo)致中斷的程序。一旦遇到其它已設(shè)置的斷點(diǎn)或出現(xiàn)錯(cuò)誤,就返回基本工作空間; dbstep:用于執(zhí)行一行或多行代碼。在調(diào)試模式下,dbstep允許用戶實(shí)現(xiàn)逐行跟蹤; dbstack:列出調(diào)用關(guān)系。在調(diào)試模式下,此指令顯示當(dāng)前的文件名及中斷點(diǎn)的行號(hào)

56、,其調(diào)用者的、調(diào)用者的調(diào)用者的文件名和斷點(diǎn)行號(hào),直到最外層的文件。 dbstatus:用來列出全部斷點(diǎn)。dbstatus (filename)可旬出指定文件的全部斷點(diǎn)。,117,dbtype:用來顯示帶行號(hào)的文件內(nèi)容,以協(xié)助用戶設(shè)置斷點(diǎn),它有兩種格式:dbtype (文件名):列出指定文件的全部?jī)?nèi)容,每行前帶行號(hào); dbtype :列出指定文件自起始行號(hào)到末行行號(hào)部分的內(nèi)容。 dbquit:用來退出調(diào)試模式,將控制轉(zhuǎn)向基本工作空間。此時(shí),文件執(zhí)行還沒有完成,也不產(chǎn)生返回結(jié)果。 常用警示信息: error:顯示預(yù)先設(shè)置的錯(cuò)誤信息,程序停止運(yùn)行; warning:顯示預(yù)先設(shè)置的警告信息,程序繼續(xù)運(yùn)

57、行; lasterr:顯示MATLAB自動(dòng)判斷的最新出錯(cuò)原因并終止程序運(yùn)行; lastwarn:顯示MATLAB自動(dòng)給出的最新警告提示,程序繼續(xù)運(yùn)行。,118,圖形繪制流程:,1) 調(diào)用繪圖函數(shù)繪制圖形; 2) 為繪制的圖形添加標(biāo)題、軸標(biāo)簽、注釋文本等; 3) 設(shè)置繪圖區(qū)域的屬性,如對(duì)坐標(biāo)軸調(diào)整,網(wǎng)格線設(shè)置等; 4) 保存、打印或?qū)С鰣D形。,1.7 Matlab的繪圖功能,119,一、繪圖函數(shù),plot (x, s): 當(dāng)x是實(shí)向量時(shí),則繪制出以該向量元素的下標(biāo)為橫坐標(biāo)、以該向量元素的值為縱坐標(biāo)的一條連續(xù)曲線; 當(dāng)x是實(shí)矩陣時(shí),則按列繪制出每列元素值相對(duì)其下標(biāo)的曲線。其曲線數(shù)等于x的列數(shù); 當(dāng)

58、x是復(fù)矩陣時(shí),則按列分別繪制出以元素實(shí)部為橫坐標(biāo)、以元素虛部為縱坐標(biāo)的多條曲線。,在Matlab軟件中,利用plot函數(shù)繪制二維圖形。,1.7.1 二維圖形,120,表1.7.1 曲線線型符號(hào)設(shè)置,表1.7.2 曲線色彩符號(hào)設(shè)置,s是用來設(shè)置曲線線型、色彩、數(shù)據(jù)點(diǎn)標(biāo)記的選項(xiàng)字符串。,121,表1.7.3 曲線數(shù)據(jù)點(diǎn)標(biāo)記符號(hào)設(shè)置,122,x=0 0.48 0.84 1 0.91 0.6 0.14; plot(x, b - *) y=1 2 3;4 5 6; plot(y) %每列一條曲線 a=1 0 1 30 0 1; q=roots (a) plot(q, x),例:,123,plot (x, y, s):當(dāng)x,y是同維向量時(shí),則繪制以x為橫坐標(biāo)、y為縱坐標(biāo)的曲線。,x=0:0.1:2*pi; y=sin(x); plot(x,y, *),例:,124,plot(x,

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論