版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、1,第一章 仿真軟件Matlab,1.1 仿真技術(shù)簡介,1.5 Matlab的符號運算,1.7 Matlab的繪圖功能,1.2 Matlab概述,1.6 Matlab編程基礎,1.3 Matlab界面與基本操作,1.4 Matlab的數(shù)值運算,2,物理仿真:研制某種實體模型,使之能夠重現(xiàn)原系統(tǒng)的各種狀態(tài)。( 直觀性強,形象化;所需費用高,周期長,技術(shù)復雜。) 數(shù)學仿真:用數(shù)學模型去描述一個系統(tǒng),并編制程序在計算機上對實際系統(tǒng)進行研究。( 速度快,較靈活,精確度高,重復性好;復雜系統(tǒng)可能很難用數(shù)學模型表達。) 混合仿真:將數(shù)學模型、物理模型和實體結(jié)合起來組成復雜的仿真系統(tǒng)。,1.1 仿真技術(shù)簡介
2、,仿真 (Simulation) 利用模型來分析與研究實際系統(tǒng)(相似性原理)。,3,1) 建立系統(tǒng)的數(shù)學模型。 2) 建立仿真模型。 3) 編寫仿真程序。 4) 進行仿真實驗 設定合理的實驗條件、參數(shù),進行實驗,并記錄仿真結(jié)果。 5) 仿真結(jié)果分析。,計算機仿真的基本步驟:,4,MatrixLaboratory (矩陣實驗室); 由美國Math Works公司于20世紀80年代推出的高性能數(shù)值計算軟件; Matlab已經(jīng)發(fā)展成為適合多學科 (線性代數(shù)、控制理論、數(shù)理統(tǒng)計、數(shù)字信號處理、動態(tài)系統(tǒng)仿真)、功能強大的優(yōu)秀系統(tǒng)軟件; Matlab已經(jīng)成為工程技術(shù)人員必需掌握的基礎知識與基本技能。,1.
3、2 Matlab概述,5,自動控制原理Matlab實現(xiàn)的優(yōu)勢:,1) 運算功能強大;,5) 庫函數(shù)豐富,函數(shù)命令簡單高效;,6) 界面友好,使用方便。,4) 語法限制不嚴格,程序設計自由度大;,3) 專業(yè)的控制系統(tǒng)工具箱(Control Systems Toolbox);,2) 強大方便的繪圖功能;,6,Matlab的主要功能:,數(shù)值計算(Numeric Function) 符號計算(Symbolic Function) 工程與科學繪圖(Graphic Function) 控制系統(tǒng)工具箱 時域分析、根軌跡分析、頻域分析、系統(tǒng)設計 仿真工具SIMULINK (Simulate、 link),7,
4、Matlab是一種函數(shù)型語言,了解函數(shù)的功能,熟練掌握其使用方法,是使用Matlab進行程序設計的前提; Matlab牽扯面極廣,幾乎涉及現(xiàn)代科學的所有領域,因此,學習Matlab必須與個人所從事的學科相結(jié)合; 結(jié)合課堂理論學習內(nèi)容,多進行上機操作。,Matlab課程學習方法:,8,1.3 Matlab界面與基本操作,9,1、Command Window (命令窗口) 輸入各種Matlab指令、函數(shù)、表達式、變量等,并顯示除圖形外的所有運算結(jié)果,一、四個窗口,2、Command History (歷史命令窗口) 記錄命令窗口中已經(jīng)運行過的指令、函數(shù),3、Workspace (工作空間窗口) 顯
5、示變量名字(Name)、維數(shù)(Size)、字節(jié)數(shù)(Bytes)和類型(Class),4、Current Directory當前目錄窗口,二、Start按鈕,可以運行所有MATLAB軟件的工具以及訪問相關文檔。,10,MATLAB命令窗口的按鍵及其作用,11,三、功能菜單,File文件操作菜單,New 新建M文件、圖形、模型和圖形用戶界面 Open 打開.m,.fig,.mat,.mdl等文件 Close Commend Window 關閉命令窗口 Import Data 從其他文件導入數(shù)據(jù) Save WorkSpace As 保存工作空間數(shù)據(jù)到相應的路徑文件中 Set Path 設置工作路徑
6、Preferences 設置命令窗口的屬性 Page Setup 頁面設置 Print 設置打印機屬性 Print Selection 選擇打印 Exit MATLAB 退出MATLAB操作界面,12,Edit編輯菜單,Undo、Redo 撤銷、重復執(zhí)行上一步操作 Cut、Copy、Paste 剪切、復制、粘貼 Paste to WorkSpace As 粘貼變量到工作空間 Select All 全部選定 Delect 刪除所選對象 Find 查找所需對象 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)試時打開M文件 Step 單步調(diào)試 Step In 單步調(diào)試進入子函數(shù) Step Out 單步調(diào)試跳出子函數(shù) Continue 連續(xù)執(zhí)行到下一斷點 Clear Breakpoints in All Files 清除所有文件中的斷點 Stop if Errors/Warnings 出錯或報警時停止運行 Exit Debug Mode 退出調(diào)試模式,14,Desktop桌面菜單,Unlock Commend Window 命令窗口設為當前
8、全屏活動窗口 Desktop Layout 桌面設計 Save Layout 保存桌面設計 Organize Layout 組織桌面設計 Commend Window 顯示/隱藏命令窗口 Commend History 顯示/隱藏歷史命令窗口 Current Directory 顯示/隱藏當前工作目錄 Workspace 顯示/隱藏工作空間窗口 Help 打開幫助窗口,15,Profiler 打開輪廓圖窗口 Editor 打開編輯器 Figures 打開圖形編輯器 Web Brower 打開Web瀏覽器 Array Editor 打開矩陣編輯器 File Comparisons 文件比較 To
9、olbar 顯示/隱藏工具欄 Shortcuts Toolbar 顯示/隱藏快捷工具欄 Titles 顯示/隱藏標題,Desktop桌面菜單,16,Window窗口菜單,Close All Documents 關閉所有文檔 Commend Window 選定命令窗口為當前活動窗口 Commend History 選定歷史命令窗口為當前活動窗口 Current Directory 選定當前工作目錄為當前活動窗口 Workspace 選定工作空間窗口為當前活動窗口,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)的標識界面,Help幫助菜單,18,四、工具欄,19,1.4 Matlab的數(shù)值運算,1.4.1 數(shù)值運算基礎,Matlab中變量使用之前,不需要指定變量的數(shù)據(jù)類型,也不必事先聲明變量。 一個程序中的變量,以其名稱在語句命令中的第一次合法出現(xiàn)而定義;當用戶在Matlab工作空間中輸入一個新的變量時,Matlab會自動給該變量分配適當?shù)膬?nèi)存,若用戶輸入的變量已經(jīng)存在,則Matlab
11、使用新輸入的變量替換原有的變量。,一、變量的賦值和命名,20,變量名=表達式,返回變量名列表=函數(shù)名(輸入變量列表),注意: 無需事先定義,Matlab系列定義的數(shù)值元素就是復數(shù),這是Matlab語言區(qū)別于其它高級語言的最大特點之一; 無論給Matlab中的變量賦什么值,在內(nèi)存中均以矩陣的形式表示。 Matlab數(shù)值運算的表達式中不允許有未定義的自由變量。,21,1) 變量名必須是不包含有空格的單個詞; 2) 變量名必須以字母開頭,之后可接任意字母、數(shù)字或下劃線; 3) 組成變量名的字符長度不大于31個; 4) 變量名區(qū)分大小寫字母。,變量命名規(guī)則:,22,注意:MATLAB提供的標準函數(shù)和命
12、令名必須用小寫字母。,表1-1 Matlab的特殊變量和常量,23,二、Matlab運算符,1、算術(shù)運算符,24,2、關系運算符,25,3、邏輯運算符,26,4、特殊運算符,27,方括號( )的使用,方括號可以輸入矩陣; 方括號 也可以代表空矩陣,用來刪除矩陣的行和列。,28,冒號(:)的使用,A. 使用冒號可以輸入行向量,其格式為:x=a: inc: b; 其中,a是向量的第一個元素,inc是步長(即兩個元素的間隔),步長可正可負;若(b-a)為inc的整數(shù)倍時,向量的最后一個元素等于b,否則小于b;當inc=1時步長可以省略。,B. 使用冒號能夠從向量和矩陣中選出指定的行和列元素。,C.
13、使用冒號能夠從一個大矩陣中選取小矩陣。,29,注: 單獨一個冒號可以代表所有行或所有列的元素。 方括號 也可以代表空矩陣,用來刪除矩陣的行和列。,30,分號(;)的使用,A. 分號在矩陣中用來分隔行; B. 分號在命令窗口內(nèi)用來輸入多行語句 在Matlab命令窗口內(nèi)輸入命令,若不加分號,則每一條命令都將輸出相應的結(jié)果;若加上分號, Matlab將不輸出相應的結(jié)果,等待用戶輸入下一條命令,直到碰到一條不帶分號的命令時, Matlab輸出最后一條命令的結(jié)果。,31,Matlab的數(shù)值運算主要是指矩陣和向量運算; 矩陣和向量都指含有M行與N列數(shù)字的矩形結(jié)構(gòu),但兩者在Matlab中的運算性質(zhì)不同; 一
14、行多列的矩陣是行向量,一列多行的矩陣是列向量; 只有一個元素的矩陣就是標量。,1.4.2 矩陣運算,32,方法:1) 直接輸入法; 2) 利用函數(shù)建立矩陣; 3) 利用M文件建立矩陣。,直接輸入法:將矩陣的元素用方括號括起來,按矩陣行的順序輸入各元素,同一行的各元素之間用空格或逗號分隔,不同行的元素之間用分號分隔 (也可以用回車鍵代替分號) 。,一、創(chuàng)建矩陣,33,a=1 2 3; 4,5,6 x=2 pi/2; sqrt(3) 3+5i,注意: 1) 不必聲明矩陣的維數(shù)和類型,Matlab會根據(jù)用戶所輸入的內(nèi)容自動進行配置; 2) 矩陣元素可以是Matlab表達式 ,可以是實數(shù) ,也可以是復
15、數(shù)。,例:,34,2. 利用函數(shù)建立矩陣,zeros ( size (A) )用來輸出一個與矩陣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階方陣,其每行、每列和對角線上的元素之和都相等,為(1+n2)/n。,35,5) diag函數(shù)從矩陣中提取某對角線構(gòu)成一個向量; 利用一個向量構(gòu)成對角陣。,6) triu函數(shù)獲取某一矩陣的上三角矩陣。,tril函數(shù)獲取某一矩陣的下三角矩陣。,在Matlab中,還可以把小矩陣連接起來生成較大的矩陣。,36,3. 利用M文件
16、建立矩陣: 對于比較大且比較復雜的矩陣,可以為它專門建立一個M文件。(M文件實際上是一種包含Matlab命令代碼的文本文件)。,其步驟為: 1) 使用編輯程序輸入文件內(nèi)容; 2) 把輸入的內(nèi)容以純文本方式存盤(設文件名為my matrix. m); 3) 在Matlab命令窗口中輸入my matrix,就會自動建立一個矩陣,可供以后顯示和調(diào)用。,37,二、矩陣元素的標識、訪問、賦值,1. 一維矩陣,用矩陣名后圓括號內(nèi)的元素在矩陣中位置的順序號來標識。,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個元素,輸入指令: X ( 3 ) %指令回車后,得到結(jié)果為: ans =9.4248,例:,38,2. 二維矩陣,采用用雙下標格式:A ( m , n),其中m為行號,n為列號。,39,1. 加減運算(+,-),矩陣加減運算的條件是兩矩陣必須有相同的行數(shù)和列數(shù),其運算規(guī)則為兩矩陣對應元素相加減。,三、矩陣運算,2. 乘法運算(*),兩矩陣相乘必須服從數(shù)學中矩陣叉乘的條件與規(guī)則, A矩陣的列數(shù)必須等于B矩陣的行數(shù),矩陣乘法不滿足交換律。,40,3. 除法運算( / , ),矩陣右除A/B表示的是方程X*B=A的解:A/B=A*B-1; 矩陣左除 AB表示的是方程A*X=B的解:AB=A
18、-1*B; 矩陣與標量間只能進行矩陣右除標量(即矩陣/標量)的運算。,41,若a為矩陣,b為標量,矩陣的乘方a b是矩陣a的b次方。,4. 乘方運算(),5. 轉(zhuǎn)置運算(),把矩陣A的行換成同序數(shù)的列而生成的矩陣,稱為A的轉(zhuǎn)置矩陣;當矩陣是一個復數(shù)矩陣時,A表示它的共軛轉(zhuǎn)置矩陣。,42,1.4.3 向量運算,1. 加減運算(+,-),在Matlab中,標量與向量間可進行加減運算,其規(guī)則是標量與向量的每個元素進行加減操作。,向量加減運算的條件與規(guī)則和矩陣加減運算相同。,2. 乘法運算(.*),向量的乘法運算必須在具有相同維數(shù)的向量間進行,其結(jié)果是向量的對應元素間相乘的結(jié)果組成的新向量。,43,3
19、. 除法運算(./ , .),標量與數(shù)組間可以進行除法運算,其規(guī)則是標量與數(shù)組的每一個元素進行除法操作; 數(shù)組右除A./B是將A的每一元素除以B的每一個對應元素; 數(shù)組左除A.B是將B的每一元素除以A的每一個對應元素。,44,4. 乘方運算(.),向量與標量的乘方運算 以向量為底而以標量為指數(shù):以向量中的每個元素為底,分別與作為指數(shù)的標量進行乘方運算得到一個新的向量。,以標量為底而以向量為指數(shù):以該標量為底,用向量中的每個元素分別作為指數(shù)與該標量進行乘方運算后得到一個新的向量。,45,向量與向量的乘方運算:以前一個向量為底,后一個向量為指數(shù),其對應元素分別進行乘方運算得到的結(jié)果。,5. 轉(zhuǎn)置運
20、算(. ),向量轉(zhuǎn)置(A. )與實數(shù)矩陣轉(zhuǎn)置相同。,46,在Matlab中,關系運算與邏輯運算只適用于向量,不適用于矩陣。其運算規(guī)則為:關系運算的優(yōu)先級高于算術(shù)運算,低于邏輯運算。,a=1+2i;b=1+4i; a=b %運算結(jié)果為:ans = 0 ab %運算結(jié)果為: ans = 0,例:,1.4.4 關系與邏輯運算,運算符、=只比較二量的實部,而運算符=與=則同時比較實部與虛部。 若兩標量比較,其關系成立者,運算結(jié)果為邏輯真(1),否則為邏輯假(0)。,一、向量的關系運算,47,若一標量與一向量比較,則將標量與向量的每一個元素逐個比較,其運算結(jié)果為一個與向量同維的新向量,其元素由1與0組成
21、,即關系成立者,運算結(jié)果為邏輯真(1),否則為邏輯假(0)。,若兩向量比較,向量的維數(shù)需相同,將兩向量對應 的每一個元素逐個比較,其運算結(jié)果為一個與比較向量同維的新向量,其元素由1與0組成,即關系成立者,運算結(jié)果為邏輯真(1),否則為邏輯假(0)。,48,若兩向量做邏輯運算,向量維數(shù)需相同,將兩向量對應的每一個元素逐個運算,其運算結(jié)果為一個與原向量同維的新向量,其元素由1與0組成。,Matlab除了上述的各類運算外,還提供了許多運算函數(shù)。,二、向量的邏輯運算, 非0元素代表邏輯真“1”,0元素代表邏輯假 “0”;,邏輯運算中,not的運算優(yōu)先級最高,and和or有相同的優(yōu)先級(xor只有函數(shù)形
22、式);還可用括號改變運算優(yōu)先權(quán)。,若一標量與一向量比較,則將標量與向量的每一個元素逐個比較,其運算結(jié)果為一個與向量同維的新向量,其元素由1與0組成。,49,表1-2 MATLAB常用運算函數(shù),50,在Matlab中,采用行向量表示多項式,該向量中的元素是按降冪排列的多項式系數(shù)。 多項式 P (x)=a0 x n+a1 x n-1+an-1 x +an 的系數(shù)行向量為: P=a0 a1 an-1 an ,1.4.5 多項式運算,51,多項式求根,求解該多項式等于0時對應方程的根。,由根求多項式,由該多項式等于0時對應方程的根求其多項式的系數(shù)。,多項式乘法/除法,p = conv ( p1, p2
23、) p,r = deconv ( p1, p2),例:求多項式 p (x)=(x2+2x+3)( 4x2+5x+6 )的系數(shù)。,r=1 2 3; g=4 5 6; p= conv ( r, g) %運算結(jié)果為:p = 4 13 28 27 18,即p (x) = 4x4+13x3+28x2+27x+18,s,q= deconv ( p, g),52,4. 分式多項式的部分分式展開,將y(x)進行部分分式分解,即求留數(shù)計算,可以得到:,b為分子系數(shù)向量,a為分母系數(shù)向量;r為部分分式中留數(shù)向量,p為部分分式中極點向量,k為直接相除項行向量。,r, p, k=residue (b, a),53,例
24、:已知一傳遞函數(shù) ,將其分解為部分分式。,a=1 2;b=1 4 3; z, p, k=residue (a, b) %運算結(jié)果為: z = 0.5000 0.5000 p = -3 -1 k = ,即得傳遞函數(shù)分解的部分分式為:,54,反之,用residue函數(shù)也可將部分分式展開式返回到傳遞函數(shù)多項式之比的形式。,a, b=residue (z, p, k) %運算結(jié)果為: a= 1 2 b= 1 4 3,即返回原傳遞函數(shù),例:,55,5. 多項式求導數(shù)(微分) polyder (p): 求p的微分; polyder (a, b): 求多項式a, b乘積的微分; p, q=polyder (
25、a, b): 求多項式a, b商的微分,p為導函數(shù)的分子系數(shù)向量,q這導函數(shù)的分母系數(shù)向量。,p=1 2 3 4 5; b= polyder ( p ) %運算結(jié)果為: b= 4 6 6 4,例:求多項式 p (x)=x4+2x3+3x2+4x+5的導數(shù)。,即b(x)=d p(x) /dx=4x3+6x2+6x+4,56,6. 多項式求值 polyval (p, x): p為多項式系數(shù)向量,x為輸入。,p=1 2 3 4; x=2; y= polyval ( p, x ) %運算結(jié)果為: y= 26,例:求多項式 y=x3+2x2+3x+4在x=2處的值。,57,1.4.6 數(shù)值分析,58,一
26、、查找最大值,1. 求矩陣/向量的最大元素 max (A),返回一個行向量,向量的第i個元素是矩陣第i列上的最大元素; y, u=max (A),返回兩個行向量,y向量記錄A的每列的最大元素,u向量記錄每列最大元素的行號。 max (A, ,dim),dim取1或2。dim取1時,該函數(shù)和max (A)完全相同。dim取2時,該函數(shù)返回一個列向量,其第i個元素是A矩陣的第i行上的最大元素。,59, u=max (A,B),A、B是兩個同型的向量或矩陣。結(jié)果u是與A、B同型的向量或矩陣,并且u的每個元素等于A、B對應元素的最大者; u=max (A,n),n是一個標量。結(jié)果u是與A同型的向量或矩
27、陣,u的每個元素等于A中對應元素和n相比的較大者。,2. 兩個向量或矩陣元素的比較,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),返回一個行向量,其第 i個元素是矩陣 A 的第 i列的元素和。 sum(A,dim),當 dim 為 1 時,該函數(shù)等同于 sum(A),當 dim 為 2 時,返回一個列向量,其第 I 個元素是矩陣 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ù)個元素時,則中值等于中間的兩項之平均值。例如,數(shù)據(jù)序列5,3,8,-6,12,4中,處于中間的數(shù)為4和5,故其中值為此兩數(shù)的平均值4.5 。,median函數(shù)用來求中值,其用法與命令格式與mean完全相同。, mean(A),返回一個行向量,其第 i個元素
29、是矩陣 A 的第 i列的算術(shù)平均值。 mean(A,dim),當 dim 為 1 時,該函數(shù)等同于 mean(A),當 dim 為 2 時,返回一個列向量,其第 i個元素是矩陣 A 的第 i行的算術(shù)平均值。,64,一、MATLAB的數(shù)學表達式,MATLAB的表達式有兩類: 數(shù)字表達式由數(shù)值量、數(shù)值變量、數(shù)值函數(shù)或數(shù)值矩陣用運算符連接而成的數(shù)學關系式。它主要用來進行數(shù)值計算。 符號表達式由符號常量、符號變量、符號函數(shù)用運算符連接而成的符號對象,主要用來進行符號運算。,1.4.7 MATLAB的數(shù)學表達式及其書寫,65,數(shù)值與變量或變量與變量相乘不能連寫,必須用乘號將兩變量加以連接; 一般數(shù)學表達
30、式中可以使用大括號、中括號與小括號,而Matlab表達式只能用小括號; 象水平除號線、乘方運算、開根號等純數(shù)學寫法在Matlab里不允許也是不能實現(xiàn)的; 三角函數(shù)與雙曲函數(shù)及其反函數(shù)、對數(shù)函數(shù)的自變量必須用小括號加以限定;,二、MATLAB數(shù)學表達式書寫,66,分式的書寫,注意分子分母最好都分別用小括號加以限定。特別是分母,當省略小括號的限定時,很容易出錯; 某量k的平方根表示:sqrt (k)與k(1/2)等效; 求冪運算的指數(shù)兩側(cè)最好用小括號加以限定,否則指數(shù)為分式時極易出錯; 自然常數(shù)e的指數(shù)運算的書寫形式為exp ( ) ,對數(shù)運算的書寫形式為log( ); 自然常數(shù)的書寫形式為“pi
31、”;虛數(shù)單位的書寫形式為“i”或“j”;無窮大的書寫形式為“inf”或“INF”。,67,例:將以下數(shù)學表達式書寫成MATLAB表達式。,解:根據(jù)Matlab書寫規(guī)則,以上式子的Matlab表達式為:,(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,符號運算的操作對象是非數(shù)值的符號對象。 與數(shù)值運算的區(qū)別:數(shù)值運算中必須先對變量賦值,然后才能參與運算。符號運算無須事先對獨立變量賦值,運算結(jié)果以標準的符號
32、形式表達。,1.5 Matlab符號運算,符號運算是Matlab的重要組成部分。應用符號計算功能,可以直接對抽象的符號對象進行微積分或代數(shù)計算,并獲得問題的解析結(jié)果。,69,1.5.1符號運算基礎,一、符號變量、符號常量的建立,(1) a=sym (x), x為創(chuàng)建的符號變量,a為輸出的變量名。 (2) syms arg1 arg2 argN,在一個語句中同時定義多個符號變量。,符號變量和數(shù)值變量是不同的。數(shù)值變量參與運算前必須先進行賦值,變量的運算實際上是該變量所對應的值進行運算,其運算結(jié)果是一個和變量類型對應的值。符號變量運算前不需要賦值,其結(jié)果是一個由參與運算的變量名組成的表達式。,70
33、,(3) 應用sym( )函數(shù)還可以定義符號常量。符號常量進行計算得到的是精確的數(shù)學表達式;而數(shù)值計算得到的是一個近似值。,a=sym (8);b=8; %定義1個符號常量和1個數(shù)值常量 sqrt (a); %求符號常量a的平方根 ans= 2*2(1/2) sqrt (b); %求數(shù)值常量b的平方根 ans= 2.8284,例:,71,符號表達式由符號常量、符號變量、符號函數(shù)、算術(shù)運算符等組成。創(chuàng)建符號表達式/方程的方法有兩種:一種是直接用sym函數(shù)創(chuàng)建,二是用已經(jīng)定義的符號變量創(chuàng)建符號表達式。,二、符號表達式/方程和符號矩陣的建立,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,例:,符號表達式一定要用 (雙單引號)括起來Matlab才能識別。,72,創(chuàng)建符號矩陣的方法也有兩種: 一種是直接用sym函數(shù)創(chuàng)建,命令格式:A=sym( ) ; 二是用已經(jīng)定義的符號變量創(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,例:,用雙單引號也可建立符號變量、符號常量和符號表達式。,73,1.5.2 符號對象的基本運算,運算符“+”、“-”、“*”、“”、“/”
35、與“” 用于符號對象的加、減 、乘、左除、右除與求冪運算。運算符“.*”、“.”、“./”、“.”分別用來實現(xiàn)符號數(shù)組的乘、左除、右除與求冪運算。,一、算術(shù)運算,運算符“=”和“ =”分別對運算符兩端的對象進行“相等”與“不等”的比較。當結(jié)果為真,語句執(zhí)行后返回“1”。否則返回“0”。,二、關系運算,74,subs (S, old, new),將符號表達式S中的old替換為new。old為符號表達式中的符號變量,而new可以是符號變量、符號常量等。,三、基本運算函數(shù),1. 符號替換,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) %程序運行結(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) %程序運行結(jié)果為: ans = (b+c)*(c+a)*(a+b)
37、,2. 符號表達式因式分解factor ( ),例:已知 ,試對其進行因式分解。,77,3. 符號表達式展開函數(shù)expand ( ),syms x y; f=(2*x+3*y)*(x+1); expand (f) %程序運行結(jié)果為: ans = 2*x2+2*x+3*x*y+3*y,expand ( )常用于多項式表達式、三角函數(shù)、指數(shù)函數(shù)和對數(shù)函數(shù)的展開。,例:已知 ,試對其進行展開。,78,collect (f, v),是將符號表達式f中變量v的同冪項系數(shù)合并。,syms a b x y; f=x2*y+ x* y-a* x2- b*x; collect (f, x) %對f按x進行合并同
38、類項 %程序運行結(jié)果為: ans = (y-a)*x2+ (y-b)*x,4. 符號表達式合并同類項,例:已知 ,試對其同類項進行合并。,79,simplify (S),應用代數(shù)恒等式對S進行化簡。 simple (S),調(diào)用Matlab的其他函數(shù)對表達式進行化簡。,syms x c alph beta; e1=sin (x)2+cos(x)2; e10=simplify (e1) e2=exp (c* log (alph+ beta); e20=simple (e2) %程序運行結(jié)果為: e10 = 1 e20 = (alph+beta)c,5. 符號表達式化簡,例:試對 和 ,進行化簡。,
39、80,1.5.3 微積分運算,一、求極限limit( ),(1) limit (f, x, a),求當變量x趨近于常數(shù)a時,函數(shù)f(x)的極限值。 (2) limit (f, x, a, right),求符號函數(shù)f的右極限值。right表示變量x從右邊趨近于a。 (3) limit (f, x, a, left),求符號函數(shù)f的左極限值。left表示變量x從左邊趨近于a。,81,二、微分diff ( ),diff (f, v),v為自變量,對表達式f求一階導數(shù)或偏導數(shù)。 diff (f, v, n),求表達式f的高階導數(shù)或偏導數(shù),v為自變量,n為導數(shù)或者偏導數(shù)的階數(shù)。,82,Df2=diff
40、(x5*exp(x), 2) %程序運行結(jié)果為: Df2 = 20*x3*exp(x)+10*x4*exp(x)+x5*exp(x),例:已知 ,求 。,83,三、積分int(),int (f, v),求符號函數(shù)f的不定積分,v為變量。 int (f, v, a, b),求符號函數(shù)f的定積分,v為變量。 a、b分別表示定積分的下限和上限。,R=int(x+1)*(x-2)/x,x) %程序運行結(jié)果為: R = 1/2*x2-x-2*log(x),例:求不定積分 。,例:求定積分 。,R=int(x/sqrt(1+x) ,x,0,3) %程序運行結(jié)果為: R = 8/3,84,在Matlab中,
41、多次使用int ( )時,計算的就是重積分。,syms x y; int(int(x2/y2,y,1/x,x),x,1,2) %程序運行結(jié)果為: ans = 9/4,例:求二重積分 ,其中D是由直線x=2,y=x以及雙曲線xy=1圍成的區(qū)域。,85,1.5.4 符號方程求解,一、符號代數(shù)方程求解,在Matlab中,利用solve函數(shù)進行對方程組求解。其調(diào)用格式 有以下幾種:,86,solve (eq):計算單一方程,eq為輸入的方程。 solve (eq, var):計算單一方程,eq為輸入的方程,var用來指明待求變量。 solve (eq1, eq2, , eqn):計算方程組,eq1,e
42、qn為輸入的方程組。變量為默認變量。 solve (eq1, eq2, , eqn, var1, , varn):計算方程組,eq1,eqn為輸入的方程組;var1,varn用來指明每個方程待求的變量。,87,syms x a; f=3*x2-3*a2=0; x=solve(f,x) %程序運行結(jié)果為: x = -a a,例:求方程 的解。,88,x,y=solve(3*x+y=a,x-y=a,x,y) %程序運行結(jié)果為: x = 1/2*a y = -1/2*a,例:求方程組 的解。,89,二、微分方程求解,dsolve (eq1, eq2, , cond1,cond2, v1, v2 ,
43、. ),求解常微分方程組eq1, eq2,在初始條件cond1, cond2, 下的特解。參數(shù)v描述方程中的自變量,默認變量為t。若沒有給出初值條件cond,則求方程的通解。 當y為因變量時,Dny表示y的n階導函數(shù)。比如,初始條件,寫成:,寫成:,90,syms x y eq=Dy=(x2+y2)/(2*x2) ; y=dsolve(eq,x) %程序運行結(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ù)f(t) ,t表示時間變量;F表示頻域函數(shù)F(s) ,s表示頻域變量。,92,例:,syms k t s; f=k*t; F=laplace(f,t,s) %程序運行結(jié)果為: F = k/s2 f=ilaplace(F) %程序運行結(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表示時域函
45、數(shù)f(t)或時域序列f(n),n表示時間序列;F表示Z域函數(shù)F(z),z表示Z域變量。,94,例:,syms k t s; f=k*t; F=ztrans(f,t,z) %程序運行結(jié)果為: F = k*z/(z-1)2 f=iztrans(F) %程序運行結(jié)果為: f = k*n,95,1.6 MATLAB程序設計,MATLAB的工作模式,指令驅(qū)動模式:在命令窗口下輸入指令, MATLAB立即處理這些指令,并顯示結(jié)果。 M文件模式:將由MATLAB指令和函數(shù)構(gòu)成的程序存儲成以.m為擴展名的文件( M文件),然后再執(zhí)行該程序文件。,96,腳本文件是由實現(xiàn)某項功能的一系列語句命令與函數(shù)組合成的M文
46、件,也稱為命令文件。腳本文件沒有輸入?yún)?shù),也沒有輸出參數(shù)。執(zhí)行腳本文件時,文件中的指令或者命令按照出現(xiàn)在腳本文件中的順序依次執(zhí)行。,一、腳本文件,腳本文件主要由注釋行和代碼行組成。 注釋行需要使用%定義符;代碼行則是一些簡單的MATLAB指令或命令,命令可以完成相應的計算處理數(shù)據(jù)、繪制圖形結(jié)果的操作,也可以在腳本文件中調(diào)用其他的函數(shù)完成復雜的數(shù)學運算。,97,二、函數(shù)文件,特定規(guī)則: 函數(shù)m文件首行必須以關鍵字function開頭,如果返回變量只有一個,方括號可以省略。如果函數(shù)有多個輸入或返回變量,則多個變量之間用英文狀態(tài)下的逗號加以分隔。 函數(shù)名的命名規(guī)則與變量的命名規(guī)則相同。 m文件的文件
47、名最好是 .m。,function 返回變量 = 函數(shù)名(輸入變量) %注釋說明語句段 程序語句段 end,98,例:編寫函數(shù)文件求 的值。,%分式多項式的求值函數(shù) function y=pval(x) y=(2*x2+3*x-5)/(x2+x-7) end,99,腳本文件中的所有變量都是全局變量,而函數(shù)文件中的變量卻是局部變量,只在函數(shù)運行期間有效,函數(shù)返回后,局部變量會自動在工作空間中消除掉。,函數(shù)調(diào)用的一般格式為: 輸出變量=函數(shù)名(輸入變量),100,M-file編輯/調(diào)試器,三、M文件的創(chuàng)建與編輯,編輯/調(diào)試器通常用顏色來區(qū)分程序內(nèi)容的類別: 黑色程序主體部分; 綠色注釋部分; 紫色
48、屬性值設定或標識部分; 藍色控制流程,比如for, ifthen等語句。,101,四、Matlab程序設計基本規(guī)則,% 說明 clear 定義變量 逐行執(zhí)行命令 程序控制語句 ,102,五、流程控制語句,matlab語言的程序結(jié)構(gòu)與其它高級語言一樣,分為順序,循環(huán)和選擇三大基本結(jié)構(gòu)。 順序結(jié)構(gòu) 按照從上至下的順序依次執(zhí)行程序的各條語句。 循環(huán)結(jié)構(gòu) 就是在程序中某一條語句或多條語句重復多次的運行。 選擇結(jié)構(gòu) 依照不同的判斷條件進行判斷,然后根據(jù)判斷的結(jié)果選擇某一種方法來解決某一個問題。,103,1、循環(huán)語句,MATLAB中有兩種循環(huán)語句:forend 語句和whileend語句。,forend:
49、用于循環(huán)次數(shù)已經(jīng)確定的情況,其調(diào)用格式為:,for 循環(huán)變量=表達式1:表達式2:表達式3 循環(huán)體語句 end,其中,表達式1的值為循環(huán)變量的初值,表達式2的值為步長,表達式3的值為循環(huán)變量的終值。步長為1時,表達式2可以省略。對于正的步長,當變量大于表達式3時結(jié)束循環(huán),對于負的步長,當變量小于表達式3時結(jié)束循環(huán)。,104,例:編寫函數(shù)文件求x的階乘。,%計算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 條件表達式 循環(huán)體語句 end,其中,條
50、件表達式一般是由邏輯運算、關系運算及一般運算組成的,以判斷循環(huán)的進行和停止;只要表達式的值非0,繼續(xù)循環(huán);直到表達式值為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、條件語句,單分支if語句:,if 條件 語句組 end,雙分支if語句:,if 條件 語句組1 else 語句組2 end,當條件成立時,執(zhí)行語句組1,否則執(zhí)行語句組2,語句組1或語句組2執(zhí)行后,再執(zhí)行end后面的語句。,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語句:,if 條件1 語句組1 elseif 條件2 語句組2 elseif 條件n 語句組n else 語句組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);,例:計算函數(shù) 的值。,111,
52、switch 開關表達式 case 表達式1 語句組1 case 表達式2 語句組2 otherwise 語句組n end,當開關表達式的值等于case語句后表達式的值時,程序轉(zhuǎn)移到該語句去執(zhí)行,執(zhí)行完后直接跳出開關體,執(zhí)行end后的語句。程序的執(zhí)行結(jié)果與各個case的語句次序無關。當case后所有表達式都不等于開關表達式時,程序?qū)?zhí)行otherwise后的語句組。,3、開關語句,112,例:根據(jù)變量 num 的值來決定顯示的內(nèi)容。,num=input(請輸入一個數(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:用來終止當前循環(huán)??梢灾袛鄁or語句,也可以中斷while語句。循環(huán)體內(nèi)設置的條件必須在break指令之前。對于嵌套的循環(huán)結(jié)構(gòu),break指令只能退出包含它的最內(nèi)層循環(huán)。 continue:用來中斷本次的循環(huán)體,將程序的流程跳轉(zhuǎn)到判斷循環(huán)條件的語句處,繼續(xù)下一次的循環(huán)。 return:用來終止本次函數(shù)調(diào)用,返回到上級調(diào)用函數(shù)。 pause :暫停運行程序,按任意鍵恢復執(zhí)行。,114,六
54、、M文件調(diào)試,應用程序的錯誤有兩類:一類是語法錯誤;另一類是邏輯錯誤,指程序運行過程中得到的結(jié)果不是用戶需要的結(jié)果。,與調(diào)試(Debug)有關的菜單項及按鈕:,Set/Clear Breakpoint:設置/清除光標處的斷點; Clear All Breakpoint:清除程序中的所有斷點; Stop if Error/ Warning:運行至結(jié)束(自動斷點); Run:執(zhí)行程序至結(jié)束遇到斷點; step:單步執(zhí)行程序; Step In:深入下層局部工作區(qū); Continue:恢復程序運行至結(jié)束或另一個斷點。,1、調(diào)試器的使用,115,2、調(diào)試命令,116,dbstop:設置斷點;調(diào)用格式有:
55、dbstop at in :在指定文件的指定行處設置斷點; dbstop in :在指定文件的第一個可執(zhí)行處設置斷點; dbstop if error:在任何運行出錯時產(chǎn)生中斷(不包括語法錯誤)。出錯中斷后用戶不能恢復程序; dbstop if naninf/infnan:當出現(xiàn)Inf或nan值時產(chǎn)生中斷。 dbcont:用來恢復對于執(zhí)行dbstop指令而導致中斷的程序。一旦遇到其它已設置的斷點或出現(xiàn)錯誤,就返回基本工作空間; dbstep:用于執(zhí)行一行或多行代碼。在調(diào)試模式下,dbstep允許用戶實現(xiàn)逐行跟蹤; dbstack:列出調(diào)用關系。在調(diào)試模式下,此指令顯示當前的文件名及中斷點的行號
56、,其調(diào)用者的、調(diào)用者的調(diào)用者的文件名和斷點行號,直到最外層的文件。 dbstatus:用來列出全部斷點。dbstatus (filename)可旬出指定文件的全部斷點。,117,dbtype:用來顯示帶行號的文件內(nèi)容,以協(xié)助用戶設置斷點,它有兩種格式:dbtype (文件名):列出指定文件的全部內(nèi)容,每行前帶行號; dbtype :列出指定文件自起始行號到末行行號部分的內(nèi)容。 dbquit:用來退出調(diào)試模式,將控制轉(zhuǎn)向基本工作空間。此時,文件執(zhí)行還沒有完成,也不產(chǎn)生返回結(jié)果。 常用警示信息: error:顯示預先設置的錯誤信息,程序停止運行; warning:顯示預先設置的警告信息,程序繼續(xù)運
57、行; lasterr:顯示MATLAB自動判斷的最新出錯原因并終止程序運行; lastwarn:顯示MATLAB自動給出的最新警告提示,程序繼續(xù)運行。,118,圖形繪制流程:,1) 調(diào)用繪圖函數(shù)繪制圖形; 2) 為繪制的圖形添加標題、軸標簽、注釋文本等; 3) 設置繪圖區(qū)域的屬性,如對坐標軸調(diào)整,網(wǎng)格線設置等; 4) 保存、打印或?qū)С鰣D形。,1.7 Matlab的繪圖功能,119,一、繪圖函數(shù),plot (x, s): 當x是實向量時,則繪制出以該向量元素的下標為橫坐標、以該向量元素的值為縱坐標的一條連續(xù)曲線; 當x是實矩陣時,則按列繪制出每列元素值相對其下標的曲線。其曲線數(shù)等于x的列數(shù); 當
58、x是復矩陣時,則按列分別繪制出以元素實部為橫坐標、以元素虛部為縱坐標的多條曲線。,在Matlab軟件中,利用plot函數(shù)繪制二維圖形。,1.7.1 二維圖形,120,表1.7.1 曲線線型符號設置,表1.7.2 曲線色彩符號設置,s是用來設置曲線線型、色彩、數(shù)據(jù)點標記的選項字符串。,121,表1.7.3 曲線數(shù)據(jù)點標記符號設置,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):當x,y是同維向量時,則繪制以x為橫坐標、y為縱坐標的曲線。,x=0:0.1:2*pi; y=sin(x); plot(x,y, *),例:,124,plot(x,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版企業(yè)人力資源總監(jiān)職責與權(quán)益合同3篇
- 武漢體育學院《地下水數(shù)值模擬基礎與應用》2023-2024學年第一學期期末試卷
- 武漢傳媒學院《現(xiàn)代分析檢驗技術(shù)應用》2023-2024學年第一學期期末試卷
- 二零二五年度建筑工地安全文明施工評估合同3篇
- 二零二五版兒童樂園開業(yè)慶典承包合同范本3篇
- 2024陶瓷廠勞務外派工作合同模板3篇
- 2025版大型工程船舶租賃合同6篇
- 威海職業(yè)學院《數(shù)值計算與仿真》2023-2024學年第一學期期末試卷
- 二零二五年度酒店會議場地預訂與策劃服務合同3篇
- 天津城市職業(yè)學院《工程光學》2023-2024學年第一學期期末試卷
- 南充化工碼頭管網(wǎng)施工方案(初稿)
- 2023年消防接警員崗位理論知識考試參考題庫(濃縮500題)
- GB/T 30285-2013信息安全技術(shù)災難恢復中心建設與運維管理規(guī)范
- 魯濱遜漂流記閱讀任務單
- 第一章 運營管理概論1
- 《創(chuàng)意繪畫在小學美術(shù)教育中的應用(論文)6000字》
- 主體結(jié)構(gòu)驗收匯報材料T圖文并茂
- 管理學原理(南大馬工程)
- 過一個有意義的寒假課件
- 施工現(xiàn)場裝配式集裝箱活動板房驗收表
- 電力業(yè)擴工程竣工驗收單
評論
0/150
提交評論