版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
第2章MATLAB矩陣及其運算
2.1變量和數(shù)據(jù)操作
2.2MATLAB矩陣
2.3MATLAB運算
2.4矩陣分析
2.5矩陣的超越函數(shù)
2.6字符串
2.1變量和數(shù)據(jù)操作2.1.1變量與賦值
1.變量命名
變量名是以字母開頭,后接字母、數(shù)字或下劃線的字符序列,最多63個字符。在Matlab中,變量名區(qū)分字母的大小寫。2.賦值語句
(1)變量=表達式
(2)表達式
其中表達式是用運算符將有關(guān)運算量連接起來的式子,其結(jié)果是一個矩陣。例2-1計算表達式的值,并顯示計算結(jié)果。
在MATLAB命令窗口輸入命令:
x=1+2i;y=3-sqrt(17);z=(cos(abs(x+y))-sin(78*pi/180))/(x+abs(y))
其中pi和i都是MATLAB預(yù)先定義的變量,分別代表代表圓周率π和虛數(shù)單位。
輸出結(jié)果是:
z=
-0.3488+0.3286i
2.1.2預(yù)定義變量在MATLAB工作空間中,還駐留幾個由系統(tǒng)本身定義的變量。Pi:圓周率π的近似值,i,j:虛數(shù)單位ans:計算結(jié)果的默認(rèn)賦值變量inf,Inf
無窮大
預(yù)定義變量有特定的含義,在使用時,應(yīng)盡量避免對這些變量重新賦值。2.1.3內(nèi)存變量的管理
1.內(nèi)存變量的刪除與修改
Matlab工作空間窗口專門用于內(nèi)存變量的管理。在工作空間窗口中可以顯示所有內(nèi)存變量的屬性。當(dāng)選中某些變量后,再單擊Delete按鈕,就能刪除這些變量。當(dāng)選中某些變量后,再單擊Open按鈕,將進入變量編輯器。通過變量編輯器可以直接觀察變量中的具體元素,也可修改變量中的具體元素。clear命令用于刪除MATLAB工作空間中的變量。who和whos這兩個命令用于顯示在MATLAB工作空間中已經(jīng)駐留的變量名清單。who命令只顯示出駐留變量的名稱,whos在給出變量名的同時,還給出它們的大小、所占字節(jié)數(shù)及數(shù)據(jù)類型等信息。2.內(nèi)存變量文件
利用MAT文件可以把當(dāng)前MATLAB工作空間中的一些有用變量長久地保留下來,擴展名是.mat。MAT文件的生成和裝入由save和load命令來完成。常用格式為:
save文件名[變量名表][-append][-ascii]
load文件名[變量名表][-ascii]例如;savemexy
loadmex+y文件名可以帶路徑,但不需帶擴展名.mat,命令隱含一定對.mat文件進行操作。變量名表中的變量個數(shù)不限,只要內(nèi)存或文件中存在即可,變量名之間以空格分隔。當(dāng)變量名表省略時,保存或裝入全部變量。-ascii選項使文件以ASCII格式處理,省略該選項時文件將以二進制格式處理。save命令中的-append選項控制將變量追加到MAT文件中。2.1.4MATLAB常用數(shù)學(xué)函數(shù)MATLAB提供了許多數(shù)學(xué)函數(shù)函數(shù)的自變量規(guī)定為矩陣變量運算法則是將函數(shù)逐項作用于矩陣的元素上運算的結(jié)果是一個與自變量同維數(shù)的矩陣。例:A=[1,2,3;4,5,6]B=fix(pi*A)C=cos(pi*B)函數(shù)使用說明:
(1)三角函數(shù)以弧度為單位計算。
(2)abs函數(shù):絕對值函數(shù)、復(fù)數(shù)的模、字符串的ASCII碼值.(3)用于取整的函數(shù)有
fix:向零方向取整floor:下取整ceil:上取整round:四舍五入取整(4)rem與mod函數(shù)的區(qū)別:rem(x,y):求余數(shù)mod(x,y):模除求余x,y必須為相同大小的實矩陣或為標(biāo)量x=abs(-4.56),y=abs(3+4i),z=abs('a')x=2.45;y1=fix(x),y2=floor(x),y3=ceil(x),y4=round(x)x=-2.65;y1=fix(x),y2=floor(x),y3=ceil(x),y4=round(x)x=5;y=3;y1=rem(x,y),y2=mod(x,y)x=-5;y=3;y1=rem(x,y),y2=mod(x,y)2.1.5數(shù)據(jù)的輸出格式
Matlab用十進制數(shù)表示一個常數(shù)采用日常記數(shù)法、科學(xué)記數(shù)法3.1415,-9.5i,3+5i;1.78029e2,6.732E2i,1234e-3-5i%e,E表以10為底的指數(shù)MATLAB內(nèi)部每一個數(shù)據(jù)元素都是用雙精度數(shù)來表示和存儲的可以用format命令設(shè)置或改變數(shù)據(jù)輸出格式。format命令的格式為:
format格式符
其中格式符決定數(shù)據(jù)的輸出格式2.2MATLAB矩陣2.2.1矩陣的建立
1.直接輸入法
將矩陣的元素用方括號括起來,按矩陣行的順序輸入各元素,同一行的各元素之間用空格或逗號分隔,不同行的元素之間用分號分隔。例:B=[1,2,3;4,5,6;7,8,9]a=2.7;b=13/25;c=[1,2*a+i*b,b*sqrt(a);sin(pi/4),a+5*b,3.5+1]2.利用M文件建立矩陣
對于比較大且比較復(fù)雜的矩陣,可以為它專門建立一個M文件。下面通過一個簡單例子來說明如何利用M文件創(chuàng)建矩陣。
例
利用M文件建立MYMAT矩陣
啟動有關(guān)編輯程序或Matlab文本編輯器,并輸入待建矩陣:
MYMAT=[101,102,103,104;105,106,107,108;201,202,203,204;204,206,207,208]把輸入的內(nèi)容以純文本方式存盤(設(shè)文件名為mymatrix.m)。在Mltlab命令窗口中輸入mymatrix,即運行該M文件,就會自動建立一個名為MYMAT的矩陣,可供以后使用。3.利用冒號表達式建立一個向量冒號表達式可產(chǎn)生一個行向量,一般格式是:
e1:e2:e3
其中e1為初始值,e2為步長,e3為終止值用linspace函數(shù)產(chǎn)生行向量。調(diào)用格式為:
linspace(a,b,n)
其中a和b是生成向量的第一個和最后一個元素,n是元素總數(shù)。linspace(a,b,n)與a:(b-a)/(n-1):b等價。例:x=linspace(1,5,10)4.建立大矩陣
大矩陣可由方括號中的小矩陣或向量建立起來。A=[1,2,3;4,5,6;7,8,9];B=[1,3,5;4,6,8;7,9,11],C=[A,B;B,A]2.2.2矩陣的拆分
1.矩陣元素通過下標(biāo)(Subscript)引用矩陣的元素,例如
A(3,2)=200
采用矩陣元素的序號來引用矩陣元素。通過矩陣元素的序號(Index)引用矩陣元素。矩陣元素按列存儲,先第一列,再第二列,依次類推。例如
A=[1,2,3;4,5,6];A(3)序號與下標(biāo)一一對應(yīng)。其相互轉(zhuǎn)換關(guān)系也可利用sub2ind和ind2sub函數(shù)求得。A=[1:3;4:6];
sub2ind(size(A),1,2),[i,j]=ind2sub(size(A),3)2.矩陣拆分
利用冒號表達式獲得子矩陣
A(:,j)表示取A矩陣的第j列全部元素;A(i,:)表示A矩陣第i行的全部元素;A(i,j)表示取A矩陣第i行、第j列的元素。
A(i:i+m,:)表示取A矩陣第i~i+m行的全部元素A(:,k:k+m)表示取A矩陣第k~k+m列的全部元素A(i:i+m,k:k+m)表示取A矩陣第i~i+m行內(nèi),并在第k~k+m列中的所有元素。利用一般向量和end運算符來表示矩陣下標(biāo),從而獲得子矩陣。end表示某一維的末尾元素下標(biāo)。利用空矩陣刪除矩陣的元素
在MATLAB中,定義[]為空矩陣。給變量X賦空矩陣的語句為X=[]。X=[]與clearX不同,clear是將X從工作空間中刪除,而空矩陣則存在于工作空間中,只是維數(shù)為0。2.2.3特殊矩陣1.通用的特殊矩陣
常用的產(chǎn)生通用特殊矩陣的函數(shù)有:
zeros:產(chǎn)生全0矩陣(零矩陣)。
ones:產(chǎn)生全1矩陣(幺矩陣)。
eye:產(chǎn)生單位矩陣。
rand:產(chǎn)生0~1間均勻分布的隨機矩陣。
randn:產(chǎn)生均值為0,方差為1的標(biāo)準(zhǔn)正態(tài)分布隨機矩陣。例2-3分別建立3×3、3×2和與矩陣A同樣大小的零矩陣。
(1)建立一個3×3零矩陣。
zeros(3)
(2)建立一個3×2零矩陣。
zeros(3,2)
(3)設(shè)A為2×3矩陣,則可以用zeros(size(A))建立一個與矩陣A同樣大小零矩陣。
A=[1,2,3;4,5,6];
%產(chǎn)生一個2×3階矩陣A
zeros(size(A))
%產(chǎn)生一個與矩陣A同樣大小的零矩陣?yán)?-4建立隨機矩陣:
(1)在區(qū)間[20,50]內(nèi)均勻分布的5階隨機矩陣。
(2)均值為0.6、方差為0.1的5階正態(tài)分布隨機矩陣。x=20+(50-20)*rand(5)
y=0.6+sqrt(0.1)*randn(5)
2.用于專門學(xué)科的特殊矩陣
(1)魔方矩陣
魔方矩陣有一個有趣的性質(zhì),其每行、每列及兩條對角線上的元素和都相等。對于n階魔方陣,其元素由1,2,3,…,n2共n2個整數(shù)組成。MATLAB提供了求魔方矩陣的函數(shù)magic(n),其功能是生成一個n階魔方陣。例2-5將101~125等25個數(shù)填入一個5行5列的表格中,使其每行每列及對角線的和均為565。
M=100+magic(5)
(2)范得蒙矩陣
范得蒙(Vandermonde)矩陣最后一列全為1,倒數(shù)第二列為一個指定的向量,其他各列是其后列與倒數(shù)第二列的點乘積??梢杂靡粋€指定向量生成一個范得蒙矩陣。在MATLAB中,函數(shù)vander(V)生成以向量V為基礎(chǔ)向量的范得蒙矩陣。例如,A=vander([1;2;3;5])即可得到上述范得蒙矩陣。
2.3MATLAB運算2.3.1算術(shù)運算
1.基本算術(shù)運算
MATLAB的基本算術(shù)運算有:+(加)、-(減)、*(乘)、/(右除)、\(左除)、^(乘方)。運算是在矩陣意義下進行的,一個標(biāo)量可以和不同維數(shù)的矩陣進行加減乘除運算。
(1)矩陣加減運算
假定有兩個矩陣A和B,則可以由A+B和A-B實現(xiàn)矩陣的加減運算。運算規(guī)則是:若A和B矩陣的維數(shù)相同,則可以執(zhí)行矩陣的加減運算,A和B矩陣的相應(yīng)元素相加減。如果A與B的維數(shù)不相同,則MATLAB將給出錯誤信息,提示用戶兩個矩陣的維數(shù)不匹配。
(2)矩陣乘法
假定有兩個矩陣A和B,若A為m×n矩陣,B為n×p矩陣,則C=A*B為m×p矩陣。
(3)矩陣除法
在MATLAB中,有兩種矩陣除法運算:\和/,分別表示左除和右除。如果A矩陣是非奇異方陣,則A\B和B/A運算可以實現(xiàn)。A\B等效于A的逆左乘B矩陣,也就是inv(A)*B,B/A等效于A矩陣的逆右乘B矩陣,也就是B*inv(A)對于含有標(biāo)量的運算,兩種除法運算的結(jié)果相同,如3/4和4\3有相同的值,都等于0.75。a=[10.5,25],則a/5=5\a=[2.10005.0000]。對于矩陣運算,一般A\B≠B/A。
(4)矩陣的乘方
一個矩陣的乘方運算可以表示成A^x,要求A為方陣,x為標(biāo)量。2.點運算
在MATLAB中,有一種特殊的運算,因為其運算符是在有關(guān)算術(shù)運算符前面加點,所以叫點運算。
點運算符:.*
./
.\
.^兩矩陣進行點運算是指它們的對應(yīng)元素進行相關(guān)運算,要求兩矩陣的維參數(shù)相同。x=0.1:0.3:1;y=sin(x).*cos(x)2.3.2關(guān)系運算
MATLAB提供了6種關(guān)系運算符:<(小于)、<=(小于或等于)、>(大于)、>=(大于或等于)、==(等于)、~=(不等于)。它們的含義不難理解,但要注意其書寫方法與數(shù)學(xué)中的不等式符號不盡相同。關(guān)系運算符的運算法則為:
(1)當(dāng)兩個比較量是標(biāo)量時,直接比較兩數(shù)的大小。若關(guān)系成立,關(guān)系表達式結(jié)果為1,否則為0。
(2)當(dāng)參與比較的量是兩個維數(shù)相同的矩陣時,比較是對兩矩陣相同位置的元素按標(biāo)量關(guān)系運算規(guī)則逐個進行,并給出元素比較結(jié)果。最終的關(guān)系運算的結(jié)果是一個維數(shù)與原矩陣相同的矩陣,它的元素由0或1組成。
(3)當(dāng)參與比較的一個是標(biāo)量,而另一個是矩陣時,則把標(biāo)量與矩陣的每一個元素按標(biāo)量關(guān)系運算規(guī)則逐個比較,并給出元素比較結(jié)果。最終的關(guān)系運算的結(jié)果是一個維數(shù)與原矩陣相同的矩陣,它的元素由0或1組成。例2-8產(chǎn)生5階隨機方陣A,其元素為[10,90]區(qū)間的隨機整數(shù),然后判斷A的元素是否能被3整除。
(1)生成5階隨機方陣A。
A=fix((90-10+1)*rand(5)+10)
(2)判斷A的元素是否可以被3整除。
P=rem(A,3)==0
其中,rem(A,3)是矩陣A的每個元素除以3的余數(shù)矩陣。此時,0被擴展為與A同維數(shù)的零矩陣,P是進行等于(==)比較的結(jié)果矩陣。2.3.3邏輯運算
MATLAB提供了3種邏輯運算符:&(與)、|(或)和~(非)。
邏輯運算的運算法則為:
(1)在邏輯運算中,確認(rèn)非零元素為真,用1表示,零元素為假,用0表示。
(2)設(shè)參與邏輯運算的是兩個標(biāo)量a和b,那么,a&b
a,b全為非零時,運算結(jié)果為1,否則為0。
a|b
a,b中只要有一個非零,運算結(jié)果為1。
~a當(dāng)a是零時,運算結(jié)果為1;當(dāng)a非零時,運算結(jié)果為0。
(3)若參與邏輯運算的是兩個同維矩陣,那么運算將對矩陣相同位置上的元素按標(biāo)量規(guī)則逐個進行。最終運算結(jié)果是一個與原矩陣同維的矩陣,其元素由1或0組成。
(4)若參與邏輯運算的一個是標(biāo)量,一個是矩陣,那么運算將在標(biāo)量與矩陣中的每個元素之間按標(biāo)量規(guī)則逐個進行。最終運算結(jié)果是一個與矩陣同維的矩陣,其元素由1或0組成。
(5)邏輯非是單目運算符,也服從矩陣運算規(guī)則。
(6)在算術(shù)、關(guān)系、邏輯運算中,算術(shù)運算優(yōu)先級最高,邏輯運算優(yōu)先級最低。例2-9建立矩陣A,然后找出大于4的元素的位置。
(1)建立矩陣A。
A=[4,-65,-54,0,6;56,0,67,-45,0]
(2)找出大于4的元素的位置。
find(A>4)2.4矩陣分析
2.4.1對角陣與三角陣
1.對角陣
只有對角線上有非0元素的矩陣稱為對角矩陣,對角線上的元素相等的對角矩陣稱為數(shù)量矩陣,對角線上的元素都為1的對角矩陣稱為單位矩陣。(1)提取矩陣的對角線元素
設(shè)A為m×n矩陣,diag(A)函數(shù)用于提取矩陣A主對角線元素,產(chǎn)生一個具有min(m,n)個元素的列向量。
diag(A)函數(shù)還有一種形式diag(A,k),其功能是提取第k條對角線的元素。
(2)構(gòu)造對角矩陣
設(shè)V為具有m個元素的向量,diag(V)將產(chǎn)生一個m×m對角矩陣,其主對角線元素即為向量V的元素。
例2-10先建立5×5矩陣A,然后將A的第一行元素乘以1,第二行乘以2,…,第五行乘以5。
A=[17,0,1,0,15;23,5,7,14,16;4,0,13,0,22;10,12,19,21,3;...
11,18,25,2,19];
D=diag(1:5);
D*A%用D左乘A,對A的每行乘以一個指定常數(shù)
2.三角陣
三角陣又進一步分為上三角陣和下三角陣,所謂上三角陣,即矩陣的對角線以下的元素全為0的一種矩陣,而下三角陣則是對角線以上的元素全為0的一種矩陣。(1)上三角矩陣
求矩陣A的上三角陣的MATLAB函數(shù)是triu(A)。
triu(A)函數(shù)也有另一種形式triu(A,k),其功能是求矩陣A的第k條對角線以上的元素。例如,提取矩陣A的第2條對角線以上的元素,形成新的矩陣B。
(2)下三角矩陣
在MATLAB中,提取矩陣A的下三角矩陣的函數(shù)是tril(A)和tril(A,k),其用法與提取上三角矩陣的函數(shù)triu(A)和triu(A,k)完全相同。2.4.2矩陣的轉(zhuǎn)置與旋轉(zhuǎn)
1.矩陣的轉(zhuǎn)置
轉(zhuǎn)置運算符是單撇號(‘)。2.4.3矩陣的逆與偽逆
1.矩陣的逆
對于一個方陣A,如果存在一個與其同階的方陣B,使得:
A·B=B·A=I(I為單位矩陣)
則稱B為A的逆矩陣,當(dāng)然,A也是B的逆矩陣。
在MATLAB中,求一個矩陣的逆非常容易。求方陣A的逆矩陣可調(diào)用函數(shù)inv(A)。
例2-11用求逆矩陣的方法解線性方程組。
Ax=b
其解為:
x=A-1b2.矩陣的偽逆
如果矩陣A不是一個方陣,或者A是一個非滿秩的方陣時,矩陣A沒有逆矩陣,但可以找到一個與A的轉(zhuǎn)置矩陣A‘同型的矩陣B,使得:
A·B·A=A
B·A·B=B
此時稱矩陣B為矩陣A的偽逆,也稱為廣義逆矩陣。在MATLAB中,求一個矩陣偽逆的函數(shù)是pinv(A)。2.4.4方陣的行列式
把一個方陣看作一個行列式,并對其按行列式的規(guī)則求值,這個值就稱為矩陣所對應(yīng)的行列式的值。在MATLAB中,求方陣A所對應(yīng)的行列式的值的函數(shù)是det(A)。2.4.5矩陣的秩與跡
1.矩陣的秩
矩陣線性無關(guān)的行數(shù)與列數(shù)稱為矩陣的秩。在MATLAB中,求矩陣秩的函數(shù)是rank(A)。
2.矩陣的跡
矩陣的跡等于矩陣的對角線元素之和,也等于矩陣的特征值之和。在MATLAB中,求矩陣的跡的函數(shù)是trace(A)。2.4.6向量和矩陣的范數(shù)
矩陣或向量的范數(shù)用來度量矩陣或向量在某種意義下的長度。范數(shù)有多種方法定義,其定義不同,范數(shù)值也就不同。1.向量的3種常用范數(shù)及其計算函數(shù)
在MATLAB中,求向量范數(shù)的函數(shù)為:
(1)norm(V)或norm(V,2):計算向量V的2—范數(shù)。
(2)norm(V,1):計算向量V的1—范數(shù)。
(3)norm(V,inf):計算向量V的∞—范數(shù)。2.矩陣的范數(shù)及其計算函數(shù)
MATLAB提供了求3種矩陣范數(shù)的函數(shù),其函數(shù)調(diào)用格式與求向量的范數(shù)的函數(shù)完全相同。
2.4.7矩陣的條件數(shù)
在MATLAB中,計算矩陣A的3種條件數(shù)的函數(shù)是:
(1)cond(A,1)計算A的1—范數(shù)下的條件數(shù)。
(2)cond(A)或cond(A,2)計算A的2—范數(shù)數(shù)下的條件數(shù)。
(3)cond(A,inf)計算A的∞—范數(shù)下的條件數(shù)。2.4.8矩陣的特征值與特征向量
在MATLAB中,計算矩陣A的特征值和特征向量的函數(shù)是eig(A),常用的調(diào)用格式有3種:
(1)E=eig(A):求矩陣A的全部特征值,構(gòu)成向量E。
(2)[V,D]=eig(A):求矩陣A的全部特征值,構(gòu)成對角陣D,并求A的特征向量構(gòu)成V的列向量。(3)[V,D]=eig(A,‘nobalance’):與第2種格式類似,但第2種格式中先對A作相似變換后求矩陣A的特征值和特征向量,而格式3直接求矩陣A的特征值和特征向量。例2-12用求特征值的方法解方程。
3x5-7x4+5x2+2x-18=0
p=[3,-7,0,5,2,-18];
A
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 陜西藝術(shù)職業(yè)學(xué)院《國際貿(mào)易》2023-2024學(xué)年第一學(xué)期期末試卷
- 種苗繁殖授權(quán)合同范例
- 屋頂拆建合同范例
- 2024至2030年專業(yè)切割機項目投資價值分析報告
- 陜西鐵路工程職業(yè)技術(shù)學(xué)院《聚合物物理化學(xué)原理》2023-2024學(xué)年第一學(xué)期期末試卷
- 關(guān)于房子贈與合同范例
- 范例工程工人合同范例
- 門頭玻璃清洗合同范例
- 2024年搪瓷測厚儀項目可行性研究報告
- 地皮賣買合同范例
- 航道工程學(xué)-航道疏浚分解課件
- 壓力容器焊接技術(shù)培訓(xùn)
- 某新材料科技公司《呆貨 次品 退貨及客戶罰款處理規(guī)定》
- 2024年1月份21起典型事故案例匯總及2024年節(jié)前安全檢查與春節(jié)安全專題培訓(xùn)
- 湖南省懷化市2023-2024學(xué)年九年級上學(xué)期1月期末歷史試題(無答案)
- 城市排水系統(tǒng)雨污分流改造
- 《小腸解剖及臨床》課件
- 高端醫(yī)療器械招商方案
- 肝衰竭病人的護理
- 公眾號運維服務(wù)方案
- 第三課 民族問題的內(nèi)涵與產(chǎn)生根源 (1)課件
評論
0/150
提交評論