西工大電氣系統(tǒng)仿真matlab的第一章課件_第1頁(yè)
西工大電氣系統(tǒng)仿真matlab的第一章課件_第2頁(yè)
西工大電氣系統(tǒng)仿真matlab的第一章課件_第3頁(yè)
西工大電氣系統(tǒng)仿真matlab的第一章課件_第4頁(yè)
西工大電氣系統(tǒng)仿真matlab的第一章課件_第5頁(yè)
已閱讀5頁(yè),還剩121頁(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、電氣系統(tǒng)仿真2016.10仿真 仿真是通過(guò)對(duì)系統(tǒng)模型的實(shí)驗(yàn)去研究一個(gè)存在或設(shè)計(jì)中的系統(tǒng)。系統(tǒng) A system is an object or collection of objects whose properties we want to study. _ 電氣系統(tǒng) _ 獨(dú)立電氣系統(tǒng) 電氣系統(tǒng)仿真計(jì)算機(jī)軟件 _MATLAB _Saber : Mast 語(yǔ)言 _ANSYS : Maxwell 2D/3D, Simplorer PExprt, RMxprt _Dymola: Modelica語(yǔ)言 課程性質(zhì):專業(yè)課 MATLAB簡(jiǎn)介1. MATLAB的發(fā)展史2. MATLAB語(yǔ)言的主要特點(diǎn)3.

2、MATLAB與仿真4.教學(xué)與參考資料1. MATLAB的發(fā)展史MATLAB名字由MATrix和 LABoratory 兩詞的前三個(gè)字母組合而成。那是20世紀(jì)七十年代,時(shí)任美國(guó)新墨西哥大學(xué)計(jì)算機(jī)科學(xué)系主任的Cleve Moler出于減輕學(xué)生編程負(fù)擔(dān)的動(dòng)機(jī),編寫了一個(gè)為線性代數(shù)的矩陣計(jì)算提供運(yùn)算工具的軟件,此即用FORTRAN語(yǔ)言編寫的萌芽狀態(tài)的MATLAB。1984年由Little、Moler、Steve Bangert合作成立MathWorks公司,并把MATLAB正式推向市場(chǎng)。從這時(shí)起,MATLAB的內(nèi)核采用C語(yǔ)言編寫,而且除原有的數(shù)值計(jì)算能力外,還新增了數(shù)據(jù)圖視功能。2. MATLAB語(yǔ)言

3、的主要特點(diǎn)(1)具有豐富的數(shù)學(xué)功能包括矩陣各種運(yùn)算。如:正交變換、三角分解、特征值、常見(jiàn)的特殊矩陣等。包括各種特殊函數(shù)。如:貝塞爾函數(shù)、勒讓德函數(shù)、伽碼函數(shù)、貝塔函數(shù)、橢圓函數(shù)等。包括各種數(shù)學(xué)運(yùn)算功能。如:數(shù)值微分、數(shù)值積分、插值、求極值、方程求根、FFT 、常微分方程的數(shù)值解等。(2)具有很好的圖視系統(tǒng)(3)可以直接處理聲音和圖形文件。(4)具有若干功能強(qiáng)大的應(yīng)用工具箱。 Mathworks公司先后開(kāi)發(fā)了許多工具包,世界上很多從事自動(dòng)控制的專家在自己擅長(zhǎng)的領(lǐng)域里編寫了具有特殊功能的工具包,諸如:控制系統(tǒng)工具箱(control system toolbox);信號(hào)處理工具箱(signal pr

4、ocessing toolbox);系統(tǒng)識(shí)別工具箱(system identification toolbox);魯棒控制工具箱(robust control toolbox);神經(jīng)網(wǎng)絡(luò)工具箱(neural network toolbox)等等。 還在不斷擴(kuò)充、豐富和完善。每一個(gè)工具箱都是該領(lǐng)域里的最權(quán)威、最先進(jìn)的計(jì)算與仿真軟件程序。2. MATLAB語(yǔ)言的主要特點(diǎn)3.教學(xué)與參考資料講課與上機(jī)試驗(yàn)。相關(guān)網(wǎng)絡(luò)資源: 參考文獻(xiàn):MATLAB基礎(chǔ)與應(yīng)用簡(jiǎn)明教程,教材?,F(xiàn)代控制工程(第4版),電子工業(yè)出版社,參考書。軟件的隨機(jī)幫助第1章 MATLAB入門 與基本運(yùn)算第1章 MATLAB入門與基本運(yùn)算1

5、.1 MATLAB環(huán)境默認(rèn)界面命令窗口:是MATLAB的重要組成部分,MATLAB系統(tǒng)在計(jì)算機(jī)里的存在,主要是以命令窗口形式體現(xiàn)的。在MATLAB命令窗口,使用者輸入命令、程序、點(diǎn)擊菜單項(xiàng)或工具欄按鈕,指揮MATLAB計(jì)算、仿真,其結(jié)果也都在命令窗口顯示。命令窗口是使用者和MATLAB 交互的地方。當(dāng)前目錄窗口:顯示MATLAB打開(kāi)到當(dāng)前目錄,系統(tǒng)默認(rèn)目錄是MATLAB6p5work,即默認(rèn)存儲(chǔ)文件的地方。命令歷史窗口:在命令窗口用過(guò)的命令語(yǔ)句都會(huì)存儲(chǔ)在該窗口。 1.2 變量管理與工作空間1.2.1 建立數(shù)據(jù) MATLAB里的變量無(wú)需事先定義,一個(gè)程序的變量,以其名稱在語(yǔ)句命令中第一次合法出現(xiàn)

6、而定義。MATLAB變量名稱的命名規(guī)則: 變量名可以由英文字母、數(shù)字和下劃線組成。應(yīng)以英文字母開(kāi)頭; 組成變量名的字符長(zhǎng)度不大于31個(gè),字母間不可留空格 ; MATLAB區(qū)分大小寫英語(yǔ)字母。 1.2 變量管理與工作空間MATLAB中 設(shè)置了一些特殊的變量與常量: ans或(ANS):缺省變量名,以應(yīng)答最近一次操作運(yùn)算 結(jié)果; i或j:基本虛數(shù)單位 pi:圓周率 p(= 3.1415926.) eps:系統(tǒng)的浮點(diǎn)的相對(duì)誤差 inf(或INF):無(wú)窮大 nan(或NaN):代表不定值,例如0/0 realmax:系統(tǒng)所能表示的最大正實(shí)數(shù) realmin:系統(tǒng)所能表示的最小正實(shí)數(shù) nargin: 函

7、數(shù)的實(shí)際輸入?yún)?shù)個(gè)數(shù) nargout:函數(shù)的實(shí)際輸出參數(shù)個(gè)數(shù) 1.2 變量管理與工作空間 1.2.3 數(shù)據(jù) 類型 18integer types Array of signed and unsigned integers. Requires less storage space than single or double. All integer types except for int64 and uint64 can be used in mathematical operations.1.2 變量管理與工作空間 1.2.3 數(shù)據(jù) 類型19Creating Integer Data To

8、store data as an integer, use one of the conversion functions shown in the table right: 1.2 變量管理與工作空間 1.2.3 數(shù)據(jù) 類型20Creating Integer Data To store data as an integer, use one of the conversion functions : x = int16(32501);You can use the whos function to show the dimensions, byte count, and data type

9、 of an array represented by a variableOr you can use the class function if you want to assign the output as shown here: xType = class(x) You can use the intmax or intmin function to Return Largest or Smallest possible value of specified integer type intmax(CLASSNAME) is the largest positive value in

10、 the integer class CLASSNAME. Valid values of CLASSNAME are int8, uint8, int16, uint16, int32, uint32, int64 and uint64.1.2 變量管理與工作空間 1.2.3 數(shù)據(jù) 類型21When you convert a number to one of the integer data types, MATLAB rounds the result to the nearest integer. For example, a=2.7 b=int8(a) also b=int8(2.7

11、)1.2 變量管理與工作空間 1.2.3 數(shù)據(jù) 類型22Creating Double-Precision Data Since the default numeric type for MATLAB is double, you can create a double with a simple assignment statement. x = 25.783; Any value stored as a double requires 64 bits.You can use the double function to convert other numeric data, charact

12、ers or strings, and logical data to double-precision floating point: y = int64(-589324077574); % Create a 64-bit integer x = double(y) % Convert to double whos x y1.2 變量管理與工作空間 1.2.3 數(shù)據(jù) 類型24Creating Single-Precision Data Because MATLAB stores numeric data as a double by default, you need to use the

13、single conversion function to create a single-precision number: x = single(25.783); whos x Any value stored as a single requires 32 bits. Storing a number as type single require only half as much memory as storing it as type double. You can compare how many bytes of memory are used to store a mumber

14、 as type single versus type double using the whos command. (use format long to see the difference between single & double)1.2 變量管理與工作空間 1.2.3 數(shù)據(jù) 類型25Logical Types The logical data type represents a logical true or false state using the numbers 1 and 0, respectively. Certain MATLAB functions and oper

15、ators return logical true or false to indicate whether a certain condition was found to be true or not. 1.2 變量管理與工作空間 1.2.3 數(shù)據(jù) 類型27Characters and Strings In MATLAB, the term string refers to an array of Unicode characters. MATLAB represents each character internally as its corresponding numeric valu

16、e. Unless you want to access these values, however, you can simply work with the characters as they display on screen.1.2 變量管理與工作空間 1.2.3 數(shù)據(jù) 類型28Creating Character Arrays Specify character data by placing characters inside a pair of single quotes. For example, this line creates a 1-by-13 character a

17、rray called name: name = Thomas R. Lee; In the workspace, the output of whos shows Name Size Bytes Class name 1x13 26 char array You can see that each character uses two bytes of storage internally. The class functions show names identity as a character array: class(name)1.2 變量管理與工作空間 1.2.3 數(shù)據(jù) 類型29C

18、reating Two-Dimensional Character Arrays A simpler way to create string arrays is to use the char function. char automatically pads all strings to the length of the longest input string. name = char(Thomas R. Lee,Senior Developer) char pads the 13-character input string Thomas R. Lee with three trai

19、ling blanks so that it will be as long as the second string. 1.2 變量管理與工作空間 1.2.3 數(shù)據(jù) 類型30cell array Cell arrays is a special array, You can store arrays of different types and/or sizes within the cells of a cell array. This illustration shows a cell array that contains arrays of: unsigned integers (c

20、ell 1,1), strings (cell 1,2), complex numbers (cell 1,3), floating-point numbers (cell 2,1), signed integers (cell 2,2), and another cell array (cell 2,3). 1.2 變量管理與工作空間 1.2.3 數(shù)據(jù) 類型311.2 變量管理與工作空間 1.2.3 數(shù)據(jù) 類型32creating cell arrays Cell arrays use braces instead of parentheses () for selecting and di

21、splaying the contents of cells. You can build a cell array by assigning data to individual cells, one cell at a time. There are two ways to assign data to cells:Content indexingCell indexing1.2 變量管理與工作空間 1.2.3 數(shù)據(jù) 類型33creating cell arraysContent indexing Enclose the cell subscripts in parentheses usi

22、ng standard array notation. Enclose the cell contents on the right side of the assignment statement in curly braces . For example, create a 2-by-2 cell array A: A(1,1) = 1 4 3; 0 5 8; 7 2 9; A(1,2) = Anne Smith; A(2,1) = 3+7i; A(2,2) = -pi:pi/10:pi;1.2 變量管理與工作空間 1.2.3 數(shù)據(jù) 類型34creating cell arrays Cel

23、l indexingEnclose the cell subscripts in curly braces using standard array notation. Specify the cell contents on the right side of the assignment statement: A1,1 = 1 4 3; 0 5 8; 7 2 9;A1,2 = Anne Smith;A2,1 = 3+7i;A2,2 = -pi:pi/10:pi;1.2 變量管理與工作空間 1.2.3 數(shù)據(jù) 類型35using the cell functionThe cell functi

24、on allows you to reallocate empty cell arrays of the specified size.a = cell(2,2)Then you can use assignment statements to fill values in the cellsusing braces as cell constructors b=1 2, 17, 2;4; 3-4*i,Hello, eye(3)1.2 變量管理與工作空間 1.2.3 數(shù)據(jù) 類型36A structureEach individual element is given a name, known

25、 as fieldsEach field in a structure may have a different typeThe individual fields are addressed by combining the name of the structure with the name of the field, separated by a period.1.2 變量管理與工作空間 1.2.3 數(shù)據(jù) 類型37Structures can be creaed in two ways.A field at a time using assignment statements.All

26、at once using the struct function.Using assignment statements =John Doe; student.addr1=123 Main Street; student.city=Anytown; student.zip=71211;A second student can be added to the structure by adding a subscript to the structure name (before the period).student(2).name=Jane Q. Public1.2 變量管理與工作空間 1

27、.2.3 數(shù)據(jù) 類型38using the struct function struct Create or convert to structure array. S = STRUCT(field1,VALUES1,field2,VALUES2,.) creates a structure array with the specified fields and values. s = struct(strings,hello,yes,lengths,5 3)Removing fields from structuresstruct2=rmfield(struct_array,field)st

28、u2=rmfield(student,zip)1.2 變量管理與工作空間 1.2.3 數(shù)據(jù) 類型1.3 MATLAB的在線幫助 MATLAB的命令繁多,為了幫助用戶找到命令,MATLAB提供了廣泛的在線幫助功能。help命令 如果知道函數(shù)和命令的名稱,可以利用MATLAB的help命令,它可以直接給出要查詢的函數(shù)的功能和調(diào)用方法等信息。lookfor 命令 lookfor命令根據(jù)關(guān)鍵詞提供幫助,關(guān)鍵詞不必為函數(shù)名和命令名,其搜索范圍是所有的MATLAB help 標(biāo)題,以及搜索路徑中m文件的第一行,返回結(jié)果是包含指定關(guān)鍵詞的哪些項(xiàng)。菜單驅(qū)動(dòng)的幫助 可以直接從菜單欄獲得菜單驅(qū)動(dòng)的幫助。MATLA

29、B的搜索路徑 which命令可找出函數(shù)和文件所在的目錄。1.4 MATLAB的標(biāo)點(diǎn)百分號(hào)%之后的任何文字都被注解,注解是由%起頭,注解的功能是簡(jiǎn)要的說(shuō)明程序的內(nèi)容,注釋語(yǔ)句不能執(zhí)行。多條語(yǔ)句放在同一行,以逗號(hào), 或是分號(hào); 分開(kāi)。例如 r=2, area=pi*r2, r=2; area=pi*r2;請(qǐng)注意上述二式的差異,前者有計(jì)算值顯示,而后者則無(wú)。如果一個(gè)指令過(guò)長(zhǎng)可以在結(jié)尾加上.(代表此行指 令與下一行連續(xù)),例如 r=2; area = pi . *r2圓括號(hào)( )指出在算術(shù)表達(dá)式中的先后次序,方括號(hào) 用于構(gòu)成向量和矩陣,大括號(hào)用于構(gòu)成單元數(shù)組。1.4 MATLAB的標(biāo)點(diǎn)冒號(hào):在MATL

30、AB中非常重要(1)使用冒號(hào)可以輸入行向量,其格式為 ,其中a是數(shù)組的第一個(gè)元素,inc是步長(zhǎng),步長(zhǎng)可正可負(fù),步長(zhǎng)為1時(shí)可以省略。(2)使用冒號(hào)能夠從向量、矩陣和數(shù)組中選出指定元素、行和列,A(:,j) 是A矩陣的第j列,A(i,:)是A矩陣的第i行,A(j:k)是 A(j), A(j+1),.,A(k),A(:,j:k)是A(:,j), (:,j+1) ,., A(:,k)。(3)冒號(hào)與方括號(hào)連用可以刪除矩陣的行和列。 A(:,j) = ,可以刪除A矩陣的第j列。1.5 MATLAB數(shù)據(jù)的輸入與輸出 MATLAB可以通過(guò)計(jì)算機(jī)文件來(lái)保存或加載工作空間數(shù)據(jù)File 菜單的save worksp

31、ace as菜單命令打開(kāi)一個(gè)標(biāo)準(zhǔn)的文件對(duì)話框來(lái)保存所有當(dāng)前工作空間數(shù)據(jù),保存為擴(kuò)展名為.mat的文件。保存變量并不會(huì)將其從工作空間中刪除。利用Import data可將保存的數(shù)據(jù)重新加載至工作空間。save命令可將當(dāng)前工作空間數(shù)據(jù)以matlab.mat為文件名存于當(dāng)前目錄下,利用load 命令可將以matlab.mat為文件名保存的數(shù)據(jù)重新加載至工作空間。save data命令可將當(dāng)前工作空間數(shù)據(jù)以data.mat為文件名存于當(dāng)前目錄下,利用load data可將所保存的數(shù)據(jù)重新加載至工作空間。save data x y z命令將當(dāng)前工作空間變量x y z存入data.mat文件中,利用loa

32、d data可將其重新加載至工作空間??捎胐elete data.mat命令將data文件從當(dāng)前目錄下刪除。1.6 MATLAB的數(shù)值運(yùn)算基礎(chǔ)1.6.1 MATLAB算術(shù)運(yùn)算符及常用的數(shù)學(xué)函數(shù)MATLAB提供基本的算術(shù)運(yùn)算有: 加 (+)、減 (-)、乘 (*)、除 (/)、冪次方 (),范例為:5+3, 5-3, 5*3, 5/3, 53常用的數(shù)學(xué)函數(shù)abs(x) 求x的絕對(duì)值或者復(fù)數(shù)的幅值 angle(x) 四象限內(nèi)取復(fù)數(shù)的相角sqrt(x) 求x值的平方根 real(x) 復(fù)數(shù)實(shí)部imag(x) 復(fù)數(shù)虛部sign(x) 如果x 0傳回值為 1 rem(x,y) 傳回x/y的余數(shù),例如re

33、m(25,4)的值為1 exp(x) 指數(shù)函數(shù) e的x次方log(x) 以2.718282為底的對(duì)數(shù)函數(shù),即自然對(duì)數(shù) log10(x) 以10為底的對(duì)數(shù)函數(shù)1.6.1 MATLAB算術(shù)運(yùn)算符及常用的數(shù)學(xué)函數(shù)要計(jì)算一角度的sine值,過(guò)程如下: angle1=pi/2; b=sin(angle1); %注意angle1為弧度,sin函數(shù)計(jì)算值需以弧度表示 angle2=90; %注意angle2為角度 b=sin(angle2*pi/180); %也可在函數(shù)內(nèi)作角度與弧度轉(zhuǎn)換 要計(jì)算一數(shù)值的asin值,并將弧度轉(zhuǎn)換為角度,過(guò)程如下: x=sqrt(2)/2; y=asin(x); y_deg=y

34、*180/pi 使用函數(shù)須注意幾點(diǎn)。首先函數(shù)一定出現(xiàn)在計(jì)算等式的右邊,等式左邊是代表這個(gè)函數(shù)的計(jì)算值。此外,一 個(gè)函數(shù)可以被當(dāng)做另一個(gè)函數(shù)的引數(shù)(argument)。例如:log_x=log(abs(x)其中abs和log皆為內(nèi)建函數(shù),其意思是 先計(jì)算abs(x),所得值再代入log函數(shù)。1.6.2 MATLAB的復(fù)數(shù)表示例1 復(fù)數(shù)表達(dá),及計(jì)算。(1)經(jīng)典教科書的直角坐標(biāo)表示法 z1= 3 + 4i (2)采用運(yùn)算符構(gòu)成的直角坐標(biāo)表示法和極坐標(biāo)表示法 z2 = 1 + 2 * i z3=2*exp(i*pi/6) z=z1*z2/z3 例2 復(fù)數(shù)矩陣的生成及運(yùn)算 A=1,3;2,4-5,8;6

35、,9*i B=1+5i,2+6i;3+8*i,4+9*i C=A*B例3 求上例復(fù)數(shù)矩陣C的實(shí)部、虛部、模和相角。 C_real=real(C) C_imag=imag(C) C_magnitude=abs(C) C_phase=angle(C)*180/pi 1.6.3 矩陣、數(shù)組及其算術(shù)運(yùn)算1、數(shù)組或矩陣元素的標(biāo)識(shí)一維數(shù)組元素 的標(biāo)識(shí)、訪問(wèn)與賦值 一維數(shù)組是使用方括號(hào)以及在括號(hào)內(nèi)列出以空格或逗號(hào)分割其元素的表。一維數(shù)組的元素是以數(shù)組名后圓括號(hào)內(nèi)元素在數(shù)組中位置的序號(hào)來(lái)標(biāo)識(shí)的。數(shù)組元素的訪問(wèn)與賦值就是根據(jù)數(shù)組元素的標(biāo)識(shí)進(jìn)行。例1 在命令窗口輸入 x=1 2 3 4 5 6 7 回車x = 1

36、 2 3 4 5 6 7查詢x數(shù)組的第3個(gè)元素可輸入 x(3) 回車ans = 3查詢x數(shù)組的第4到最后一個(gè)元素可輸入 x(4:end) 回車ans = 4 5 6 71.6.3 矩陣、數(shù)組及其算術(shù)運(yùn)算查詢x數(shù)組中小于5的元素可輸入 x(find(x a=1 2;3 4;a1=a*2;a2=a+10;a3=a1+10; A=a a1;a2 a3 回車可得 A = 1 2 2 4 3 4 6 8 11 12 12 14 13 14 16 181.6.3 矩陣、數(shù)組及其算術(shù)運(yùn)算3、矩陣的操作和運(yùn)算(1) 矩陣的操作flipud命令可以將矩陣a作上下翻轉(zhuǎn),將a的行按照n1的順序重新排列,a的列保持不

37、變。例如在窗口鍵入a=1 2 3;4 5 6,可得 a = 1 2 3 4 5 6 鍵入 b=flipud(a) 可得 b = 4 5 6 1 2 31.6.3 矩陣、數(shù)組及其算術(shù)運(yùn)算fliplr命令可以將m列矩陣a作左右翻轉(zhuǎn),將a的列按照m1的順序重新排列,a的行保持不變。在窗口鍵入c=fliplr(a) 可得 c = 3 2 1 6 5 4rot90命令將矩陣逆時(shí)針轉(zhuǎn)90。在窗口鍵入rot90(a) 可得 ans = 3 6 2 5 1 4相關(guān)矩陣操作的函數(shù)還有 diag(a) 提取矩陣a的對(duì)角元素,返回列向量; diag(v) 以列向量v作對(duì)角元素創(chuàng)建對(duì)角矩陣; tril(a) 提取a的

38、下三角矩陣; triu(a) 提取a的上三角矩陣。1.6.3 矩陣、數(shù)組及其算術(shù)運(yùn)算(2)矩陣的運(yùn)算矩陣的加減運(yùn)算 矩陣的加減運(yùn)算的條件是兩個(gè)矩陣的行數(shù)和列數(shù)分別相同,運(yùn)算的規(guī)則是矩陣相應(yīng)元素的加減運(yùn)算。 在MATLAB里,維數(shù)為1*1的數(shù)組叫做標(biāo)量。標(biāo)量與數(shù)組間加減運(yùn)算的規(guī)則是標(biāo)量與數(shù)組每一個(gè)元素進(jìn)行加減操作。 在窗口鍵入s=5;a=1 2 3; 4 5 6;7 8 9;s+a 回車 可得 ans = 6 7 8 9 10 11 12 13 141.6.3 矩陣、數(shù)組及其算術(shù)運(yùn)算矩陣的乘法運(yùn)算標(biāo)量與矩陣的乘法運(yùn)算 標(biāo)量與矩陣之間的乘法運(yùn)算是指該矩陣的每個(gè)元素與這個(gè)標(biāo)量分別進(jìn)行乘法運(yùn)算。在窗口

39、鍵入s=5; a=1 2 3;4 5 6;7 8 9; s.*a回車可得 ans = 5 10 15 20 25 30 35 40 45 s.*a、a.*s、與a*s、s*a的運(yùn)算結(jié)果都一樣。b) 數(shù)組乘法運(yùn)算 數(shù)組乘法運(yùn)算必須在具有相同維數(shù)的數(shù)組間進(jìn)行,其結(jié)果是數(shù)組的對(duì)應(yīng)元素間相乘的結(jié)果組成的新數(shù)組。在窗口鍵入a=1 2 3;4 5 6;7 8 9; b=2 2 2;2 2 2;2 2 2;a.*b 回車,可得ans = 2 4 6 8 10 12 14 16 18 a.*b和b.*a兩指令運(yùn)算結(jié)果一樣。1.6.3 矩陣、數(shù)組及其算術(shù)運(yùn)算c) 矩陣的乘法運(yùn)算 兩矩陣相乘的條件是左矩陣的列數(shù)必

40、須等于右矩陣的行數(shù),矩陣乘法不滿足交換率。在窗口鍵入a=1 2 3;4 5 6;7 8 9; b=2 2 2;2 2 2;2 2 2; a*b 回車可得 ans = 12 12 12 30 30 30 48 48 48 鍵入 b*a 回車可得 ans = 24 30 36 24 30 36 24 30 36 MATLAB可以進(jìn)行叉乘運(yùn)算,指令形式為c=kron(a,b),運(yùn)算規(guī)則是a矩陣的每個(gè)元素依次與b矩陣的所有元素相乘,組成矩陣子塊,各個(gè)矩陣子塊共同組成新的矩陣c。在窗口鍵入a=1 2 3;4 5 6; b= 7 8 9; c=kron(a,b) 回車可得c = 7 8 9 14 16 1

41、8 21 24 27 28 32 36 35 40 45 42 48 541.6.3 矩陣、數(shù)組及其算術(shù)運(yùn)算矩陣的除法運(yùn)算a)矩陣與標(biāo)量間的除法運(yùn)算 矩陣與標(biāo)量間除法的運(yùn)算規(guī)則是標(biāo)量與數(shù)組每一個(gè)元素進(jìn)行除法運(yùn)算。在窗口鍵入s=5; a=1 2 3; 4 5 6;7 8 9; s./a 回車可得ans = 5.0000 2.5000 1.6667 1.2500 1.0000 0.8333 0.7143 0.6250 0.5556鍵入 a.s,回車可得 ans = 5.0000 2.5000 1.6667 1.2500 1.0000 0.8333 0.7143 0.6250 0.5556鍵入 a.

42、/s,回車可得 ans = 0.2000 0.4000 0.6000 0.8000 1.0000 1.2000 1.4000 1.6000 1.8000 符號(hào)./和.的運(yùn)算結(jié)果是一致的,不過(guò)要注意被除數(shù)與除數(shù)在兩種除法運(yùn)算符中的左右位置是不同的。1.6.3 矩陣、數(shù)組及其算術(shù)運(yùn)算b)數(shù)組的除法運(yùn)算 數(shù)組除法的運(yùn)算規(guī)則是兩數(shù)組維數(shù)必須相等,對(duì)應(yīng)的元素之間相除。數(shù)組的除法沒(méi)有左除和右除,符號(hào)./和.的運(yùn)算結(jié)果是一致的,不過(guò)要注意被除數(shù)與除數(shù)在兩種除法運(yùn)算符中的左右位置是不同的。在窗口鍵入a=1 2 3;4 5 6;7 8 9; b=2 2 2;2 2 2;2 2 2; a./b 回車可得ans =

43、 0.5000 1.0000 1.5000 2.0000 2.5000 3.0000 3.5000 4.0000 4.5000鍵入 b.a,回車可得ans = 0.5000 1.0000 1.5000 2.0000 2.5000 3.0000 3.5000 4.0000 4.5000可見(jiàn)指令a./b 和b.a運(yùn)行結(jié)果一致。1.6.3 矩陣、數(shù)組及其算術(shù)運(yùn)算c)矩陣的除法 矩陣的除法運(yùn)算包括左除和右除兩種運(yùn)算,其中左除:AB=A-1B,A為方陣;右除:A/B=AB-1,B為方陣。在窗口鍵入a=1 2;3 4; b=1 3 5; 2 4 6 ; c=ab回車可得c = 0 -2.0000 -4.0

44、000 0.5000 2.5000 4.5000鍵入 inv(a)*b,回車可得ans = 0 -2.0000 -4.0000 0.5000 2.5000 4.5000矩陣的除法運(yùn)算實(shí)際是AX=B的求解過(guò)程。1.6.3 矩陣、數(shù)組及其算術(shù)運(yùn)算乘方運(yùn)算a)矩陣與標(biāo)量的乘方運(yùn)算 以數(shù)組為底以標(biāo)量為指數(shù)的乘方運(yùn)算。運(yùn)算規(guī)則是以數(shù)組中的每個(gè)元素為底,分別與作為指數(shù)的標(biāo)量進(jìn)行乘方運(yùn)算得到的一個(gè)新數(shù)組。在窗口鍵入a=1 2 3;4 5 6; a.4 回車可得ans = 1 16 81 256 625 1296以標(biāo)量為底以數(shù)組為指數(shù)的乘方運(yùn)算。運(yùn)算規(guī)則是以該標(biāo)量為底,用數(shù)組中的每個(gè)元素分別作為指數(shù)與該標(biāo)量進(jìn)

45、行乘方運(yùn)算得到的一個(gè)新數(shù)組。在窗口鍵入a=1 2 3;4 5 6; 4.a 回車可得 ans = 4 16 64 256 1024 40961.6.3 矩陣、數(shù)組及其算術(shù)運(yùn)算乘方運(yùn)算b)數(shù)組的乘方運(yùn)算 數(shù)組間的乘方運(yùn)算只在維數(shù)相同的數(shù)組間進(jìn)行。運(yùn)算規(guī)則是以前一個(gè)數(shù)組為底,后一個(gè)數(shù)組為指數(shù),其對(duì)應(yīng)的元素分別進(jìn)行指數(shù)運(yùn)算得到結(jié)果。在窗口鍵入a=2 3; 5 6; b=1 2;2 3; a.b 回車可得 ans = 2 9 25 216c)矩陣的乘方運(yùn)算 矩陣與標(biāo)量乘方的運(yùn)算規(guī)則a為方陣,c為標(biāo)量,矩陣的乘方ac 是矩陣a的c次方。若c=2,則ac =a*a。 在窗口鍵入a=1 2;3 4; a2

46、回車可得ans = 7 10 15 22鍵入 a0.5 回車可得 ans = 0.5537 + 0.4644i 0.8070 - 0.2124i 1.2104 - 0.3186i 1.7641 + 0.1458i1.6.3 矩陣、數(shù)組及其算術(shù)運(yùn)算乘方運(yùn)算c)矩陣的乘方運(yùn)算 說(shuō)明:矩陣的乘方運(yùn)算可以表示成Ax,其前提條件要求A矩陣為方陣。如果X為正整數(shù),則乘方的結(jié)果可以將A矩陣自乘x次得出。如果x為負(fù)整數(shù),則可以將A矩陣自乘x次,然后對(duì)結(jié)果進(jìn)行求逆運(yùn)算就可以得出該乘方結(jié)果。如果x是一個(gè)分?jǐn)?shù),例如x=n/m,其中n和m均為整數(shù),則首先應(yīng)該將A矩陣自乘n次,然后對(duì)結(jié)果再開(kāi)m次方。矩陣的開(kāi)方運(yùn)算相當(dāng)困

47、難,但有了數(shù)字計(jì)算機(jī),這種運(yùn)算就不再顯得那么麻煩了,用戶可以利用計(jì)算機(jī)方便求出一個(gè)矩陣的方根。1.6.3 矩陣、數(shù)組及其算術(shù)運(yùn)算轉(zhuǎn)置運(yùn)算 對(duì)于復(fù)數(shù)元素,數(shù)組的轉(zhuǎn)置運(yùn)算是非共軛的轉(zhuǎn)置,矩陣的轉(zhuǎn)置運(yùn)算規(guī)則是共軛的轉(zhuǎn)置。在窗口鍵入e1 = 1.0000 + 1.0000i 2.0000 + 2.0000i 3.0000 + 3.0000i; 4.0000 + 4.0000i 5.0000 + 5.0000i 6.0000 + 6.0000i鍵入 e2=e1 回車 e2 = 1.0000 - 1.0000i 4.0000 - 4.0000i 2.0000 - 2.0000i 5.0000 - 5.00

48、00i 3.0000 - 3.0000i 6.0000 - 6.0000i鍵入 e3=e1. 回車 e3 = 1.0000 + 1.0000i 4.0000 + 4.0000i 2.0000 + 2.0000i 5.0000 + 5.0000i 3.0000 + 3.0000i 6.0000 + 6.0000i1.6.4 關(guān)系和邏輯運(yùn)算關(guān)系運(yùn)算1包括 小于、大于、=大于等于、= =等于、 =不等于。 關(guān)系運(yùn)算規(guī)則(1)關(guān)系運(yùn)算的優(yōu)先級(jí)低于算術(shù)運(yùn)算,高于邏輯運(yùn)算; (2)運(yùn)算符 、=只比較二標(biāo)量的實(shí)部,而運(yùn)算符= =、 =則同時(shí)比 較二標(biāo)量的實(shí)部與虛部。 (3)若二標(biāo)量比較,其關(guān)系成立者,運(yùn)算結(jié)

49、果為邏輯真(1);否則為邏輯假(0)。 (4)若一標(biāo)量與一數(shù)組比較,則將數(shù)組與標(biāo)量的每一個(gè)元素逐個(gè)比較,其運(yùn)算結(jié)果為一個(gè)與數(shù)組大?。ㄐ辛袛?shù))相同的數(shù)組,其元素由“0”與“1”組成。 (5)若二數(shù)組比較,數(shù)組維數(shù)相同,將二數(shù)組的每一個(gè)元素逐個(gè)比較,其運(yùn)算 結(jié)果為一個(gè)與比較數(shù)組大?。ㄐ辛袛?shù))相同的數(shù)組,其元素由“0”與“1”組成。 在窗口鍵入 a=1 2 3 4 5; t1=(a3)或者 t1=a3 回車可得 t1 = 0 0 0 1 1 在窗口鍵入 e=1 4;8 3; f=2 6;5 7; ef 回車可得 ans = 0 0 1 01.6.4 關(guān)系和邏輯運(yùn)算邏輯運(yùn)算 邏輯操作符:& 與 | 或

50、 非 運(yùn)算規(guī)則:(1)邏輯運(yùn)算規(guī)定:非0元素代表邏輯真“1”;0元素代表邏輯假“0”;(2)邏輯運(yùn)算中,not的優(yōu)先級(jí)最高,and與or有相同的優(yōu)先級(jí),可用括號(hào)改變優(yōu)先權(quán);(3)若一標(biāo)量與一數(shù)組比較,將數(shù)組與標(biāo)量的每一個(gè)元素逐個(gè)比較,其運(yùn)算結(jié)果為一個(gè)與數(shù)組大?。ㄐ辛袛?shù))相同的數(shù)組,其元素由“0”與“1”組成。在窗口鍵入 c=6; d=4 0 6; 0 8 0; d|c 回車可得ans = 1 1 1 1 1 1(4)若二數(shù)組比較,數(shù)組維數(shù)相同,將二數(shù)組對(duì)應(yīng)的每一個(gè)元素逐個(gè)比較,其運(yùn)算結(jié)果為一個(gè)與比較數(shù)組大?。ㄐ辛袛?shù))相同的數(shù)組,其元素由“0”與“1”組成。 在 窗口鍵入e=1 0;8 3; f

51、=2 0;5 7; e&f 回車可得ans = 1 0 1 11.6.5 矩陣函數(shù)MATLAB定義了一些關(guān)于矩陣的函數(shù)(1)zeros(n,m)函數(shù)能夠生成元素全為0的矩陣;(2)ones(n,m)函數(shù)能夠生成元素全為1的矩陣;(3)rand(n,m)函數(shù)能夠生成均勻分布隨機(jī)矩陣,其元素?cái)?shù)值范圍為(0.0,1.0);(4)randn(n,m)函數(shù)能夠生成元素服從零均值單位方差正態(tài)分布隨機(jī)矩陣;(5)magic(n)叫做魔方陣,能夠自動(dòng)生成一種特別的n階方陣,該陣每一行、每一列或?qū)蔷€上的元素之和都相等;(6)diag()可以生成對(duì)角矩陣,在窗口鍵入y=magic(3);diag(y)回車可得a

52、ns = 8 5 2(7)triu()函數(shù)可以生成上三角矩陣,tril()函數(shù)可以生成下三角矩陣;(8)size()函數(shù)用來(lái)返回指定矩陣的行數(shù)和列數(shù),eye()函數(shù)可以生成指定行數(shù)和列數(shù)的單位矩陣。 eye()函數(shù)和size()函數(shù)常常一起使用,生成與指定矩陣同維的單位矩陣在窗口鍵入a=1 2 3;4 5 6;7 8 9; b=size(a); eye(b)回車可得ans = 1 0 0 0 1 0 0 0 11.6.6 多項(xiàng)式運(yùn)算 求一個(gè)多項(xiàng)式的根(求多項(xiàng)式的零點(diǎn))在自動(dòng)控制領(lǐng)域里是經(jīng)常遇到的事。MATLAB提供了多條命令,進(jìn)行多項(xiàng)式運(yùn)算。多項(xiàng)式用一個(gè)行向量表示,多項(xiàng)式系數(shù)降冪排列。多項(xiàng)式求

53、根:求多項(xiàng)式P(x)x42x33x24x5的根。 在窗口鍵入p=1 2 3 4 5; roots(p)回車可得ans = 0.2878 + 1.4161i 0.2878 - 1.4161i -1.2878 + 0.8579i -1.2878 - 0.8579i由根求多項(xiàng)式:已知多項(xiàng)式的根分別為1、5、8,求此根對(duì)應(yīng)的多項(xiàng)式 在窗口鍵入p1=poly(1,5,8) 回車可得p1 = 1 -14 53 -40,即所求多項(xiàng)式為: P(x)x3-14x253x-40。注意poly()函數(shù)的調(diào)用格式。所求多項(xiàng)式是否正確,可以用roots()函數(shù)來(lái)驗(yàn)證。在窗口鍵入p=1 -14 53 -40; roots

54、(p),回車可得ans = 8.0000 5.0000 1.0000 可見(jiàn),多項(xiàng)式的poly()與roots()函數(shù)互為逆運(yùn)算。 注意也可以用poly ()函數(shù)求矩陣的特征多項(xiàng)式。在窗口鍵入a=3 -1;-1 3; b=poly(a),回車可得 b = 1 -6 8,即矩陣a的特征多項(xiàng)式為x26x8, 利用roots(b)可得矩陣a的特征值ans = 4 2, 與eig(a)結(jié)果相同。1.6.6 多項(xiàng)式運(yùn)算求多項(xiàng)式在指定點(diǎn)處的值 在窗口鍵入p=1 2 3 4 5;polyval(p,3) 回車可得 ans =179。也可以給出自變量的取值范圍例如鍵入x=1:0.1:2;polyval(p,x)

55、回車可得對(duì)應(yīng)于x的多項(xiàng)式p的值。 Columns 1 through 7 15.0000 17.1561 19.6496 22.5201 25.8096 29.5625 33.8256 Columns 8 through 11 38.6481 44.0816 50.1801 57.0000多項(xiàng)式的加減法:規(guī)則為多項(xiàng)式對(duì)應(yīng)元素的加、減運(yùn)算。兩個(gè)多項(xiàng)式的階數(shù)可以不同,但在多項(xiàng)式定義時(shí)應(yīng)當(dāng)補(bǔ)充0元素使其行向量元素?cái)?shù)目相等。多項(xiàng)式的乘除法:例如要求x1=3x2+x+1與x2=x+1之乘積,可以在窗口鍵入 x1=3 1 1;x2=1 1;c=conv(x1,x2)回車可得c = 3 4 2 1 運(yùn)算結(jié)果

56、可以用deconv()函數(shù)來(lái)驗(yàn)證。在窗口鍵入s=deconv(c,x1),回車可得 s = 1 1。 可見(jiàn),多項(xiàng)式的conv()和deconv()函數(shù)互為逆運(yùn)算。1.6.6 多項(xiàng)式運(yùn)算多項(xiàng)式部分分式展開(kāi) 自動(dòng)控制的時(shí)域分析中,常常要求像函數(shù)F(s)的反變換。這可以用分解F(s)成部分分式的方法,只需求出部分分式的待定系數(shù)就可以了。 例如已知一傳遞函數(shù) ,將其分解為部分分式,可在窗口鍵入a=1 2;b=1 4 3;z,p,k=residue(a,b),回車可得z =0.5000 p = -3 k = 0.5000 -1即得傳遞函數(shù)分解的部分分式: 。 如果在窗口鍵入z,p,k=residue(b

57、,a)回車可得z = -1 p = -2 k = 1 2,即分解的部分分式為 。根據(jù)給出的z、p、k的值,可以用同一個(gè)命令求出傳遞函數(shù)的有理多項(xiàng)式形式。在窗口鍵入num,den=residue(z,p,k),回車可得num = 1 4 3 den = 1 2多項(xiàng)式求導(dǎo)數(shù) 求多項(xiàng)式P(x)=x4+2x3+3x2+4x+5的導(dǎo)數(shù),在窗口鍵入a=1 2 3 4 5; a1=polyder(a) 回車可得 a1 = 4 6 6 4。1.6.7 字符運(yùn)算 在MATLAB中,字符串作為字符數(shù)組用單引號(hào)引用到程序中。鍵入 c=ok MATLAB 回車可得c = ok MATLAB。鍵入whos c可得變量c

58、實(shí)際上是一個(gè)1*9字符數(shù)組,在字符數(shù)組中空格也算一個(gè)字符。 在MATLAB中,字符是以ASCII數(shù)值的格式儲(chǔ)存的。用戶可以使用如下命令查看變量c在MATLAB 內(nèi)部的存儲(chǔ)格式: 鍵入 x=double(c) 回車可得x = 111 107 32 77 65 84 76 65 66 . 變量c中的每一個(gè)元素被轉(zhuǎn)化成ASCII碼的相應(yīng)數(shù)值。還可以用char()將ASCII碼的相應(yīng)數(shù)值轉(zhuǎn)化還原成數(shù)值。在窗口鍵入char(x)回車可得ans =ok MATLAB。1.7 M文件與M函數(shù) M文件是使用MATLAB語(yǔ)言編寫的程序代碼文件。之所以稱為M文件,是因?yàn)檫@種文件都以“.m”作為文件的擴(kuò)展名。用戶可

59、以通過(guò)任何文本編輯器來(lái)生成或編輯M文件。M文件可以分為兩種類型,一種是腳本文件,另一種是函數(shù)文件。1.7.1 腳本(script)文件 在MATLAB中,實(shí)現(xiàn)某項(xiàng)功能的一串MATLAB命令與函數(shù)組合的M文件叫腳本文件。腳本文件既不帶輸入?yún)⒘恳膊粠л敵鰠⒘?,能在MATLAB環(huán)境下直接執(zhí)行,對(duì)工作空間的數(shù)據(jù)進(jìn)行操作,并將建立的變量及其執(zhí)行后的結(jié)果保存在MATLAB的工作空間里。腳本文件執(zhí)行后的結(jié)果既可以顯示輸出,也可以使用繪圖函數(shù)來(lái)產(chǎn)生圖形輸出結(jié)果。1.7 M文件與M函數(shù)1.7.2 M函數(shù)文件 函數(shù)文件是MATLAB語(yǔ)言最重要的組成部分,MATLAB提供的各種各樣的工具箱差不多都是以函數(shù)形式給出的

60、。MATLAB 的工具箱是內(nèi)容極為豐富的函數(shù)庫(kù),可以實(shí)現(xiàn)各種各樣的功能。函數(shù)能夠接受輸入?yún)?shù)并返回輸出參數(shù)。在MATLAB中,函數(shù)名和M文件名必須相同。 函數(shù)文件的結(jié)構(gòu) 看一個(gè)MATLAB函數(shù)文件的例子。在窗口鍵入type angle.m 回車可得function p = angle(h) 函數(shù)定義行 %ANGLE Phase angle. H1行 % ANGLE(H) returns the phase angles, in radians, 函數(shù)幫助文本 % of a matrix with complex elements. % See also ABS, UNWRAP.% Copyri

溫馨提示

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