MATLAB編程與應(yīng)用系列-第3章 矩陣運(yùn)算(1)

本系列教程來(lái)源于出版設(shè)計(jì)《基于MATLAB編程基礎(chǔ)與典型應(yīng)用書(shū)籍》,如涉及版權(quán)問(wèn)題,請(qǐng)聯(lián)系:156204968@qq.com。 出版社:人民郵電出版社, 頁(yè)數(shù):525。

本系列教程目前基于MATLABR2006a,可能對(duì)于更高級(jí)版本的功能和函數(shù)有差異,教程中如有問(wèn)題,請(qǐng)聯(lián)系:156204968@qq.com

本章將介紹與MATLAB矩陣運(yùn)算有關(guān)相關(guān)的內(nèi)容。矩陣運(yùn)算是MATLAB的基礎(chǔ),是MATLAB強(qiáng)大計(jì)算功能的體現(xiàn)。這一章的內(nèi)容可以幫助讀者解決一些學(xué)習(xí)和工作中常遇到的實(shí)際問(wèn)題,讓讀者了解基本的矩陣操作技巧,進(jìn)而最大化地提高M(jìn)ATLAB程序執(zhí)行效率。 本章包括以下內(nèi)容:

  • 矩陣的基本運(yùn)算
  • 矩陣的分解
  • 線性方程組的求解
  • 稀疏矩陣

3.1 矩陣的基本運(yùn)算

前一章已經(jīng)介紹過(guò),二維數(shù)組和矩陣在外觀形狀和數(shù)據(jù)結(jié)構(gòu)上沒(méi)有根本的區(qū)別,但是矩陣作為一種數(shù)學(xué)變換,其運(yùn)算有著嚴(yán)格的數(shù)學(xué)規(guī)則。本節(jié)將介紹矩陣的基本運(yùn)算,內(nèi)容包括基本的四則運(yùn)算、乘方運(yùn)算以及各種矩陣函數(shù)的運(yùn)算等。

3.1.1 加、減運(yùn)算

矩陣加、減運(yùn)算符分別為“+”和“-”。對(duì)應(yīng)元素相加、減,即按線性代數(shù)中矩陣的“+”,“-”運(yùn)算進(jìn)行。

【例3.1】已知矩陣A、B,分別計(jì)算A-B和A+B。
在命令窗口中分別輸入以下兩條語(yǔ)句,生成矩陣A和矩陣B。
>> A=[1 2 3 4; 5 6 3 7; 3 3 2 1]; %使用直接矩陣生成法生成矩陣A和矩陣B
>> B=[3 4 5 6; 6 2 1 4; 9 6 5 3];
①求矩陣A-B,在命令窗口輸入以下內(nèi)容:
>> A-B %求解矩陣減法
運(yùn)算結(jié)果如下:
ans = -2 -2 -2 -2 -1 4 2 3 -6 -3 -3 -2
②求矩陣A+B,在命令窗口輸入以下內(nèi)容:
>> A+B %求解矩陣加法
運(yùn)算結(jié)果如下:
ans = 4 6 8 10 11 8 4 11 12 9 7 4

注意:(1)A和B矩陣必須大小相同才可以進(jìn)行加減運(yùn)算。
(2)如果A、B中有一個(gè)是標(biāo)量,則該標(biāo)量與矩陣的每個(gè)元素進(jìn)行運(yùn)算。

3.1.2 乘法運(yùn)算

矩陣乘法的運(yùn)算符為“*”,按線性代數(shù)中矩陣乘法運(yùn)算進(jìn)行,即放在前面的矩陣的各行元素分別與放在后面的矩陣的各列元素對(duì)應(yīng)相乘并相加。

(1)兩個(gè)矩陣相乘

【例3.2】已知矩陣C和D,計(jì)算Z=CD。
在命令窗口中分別輸入以下兩條語(yǔ)句,生成矩陣C和矩陣D。
>> C=[2 4 6 8;3 4 5 6;9 6 3 1]; %生成矩陣C和矩陣D
>> D=[1 2 3;4 5 6;7 8 9;3 6 9];
求Z=C
D,在命令窗口輸入以下內(nèi)容:
>> Z=C*D %求解矩陣C和D的乘積
矩陣C和矩陣D相乘后的結(jié)果如下:
Z = 84 120 156 72 102 132 57 78 99

(2)矩陣的數(shù)乘
標(biāo)量與矩陣的乘法運(yùn)算是標(biāo)量與矩陣中的每一個(gè)元素進(jìn)行相乘的運(yùn)算。

例如在【例3.2】中求A=2*C,在命令窗口輸入以下內(nèi)容:
>> A=2*C
運(yùn)算結(jié)果如下:
A = 4 8 12 16 6 8 10 12 18 12 6 2

注意:(1)矩陣相乘的時(shí)候,矩陣A的列數(shù)必須等于矩陣B的行數(shù),除非其中有一個(gè)是標(biāo)量。
(2)矩陣乘法運(yùn)算和數(shù)組的乘法運(yùn)算不同,數(shù)組的乘法運(yùn)算符為“.*”,表示數(shù)組A和B中的對(duì)應(yīng)元素相乘。A和B數(shù)組必須大小相同,除非其中有一個(gè)是標(biāo)量。

3.1.3 除法運(yùn)算

在MATLAB中,矩陣除法有兩種運(yùn)算符“\”和“/”,分別表示矩陣運(yùn)算左除和右除。如果A或B為非奇異矩陣,則A\B=A-1B或A/B=AB-1。其中,A-1是矩陣A的逆。MATLAB提供了用于求矩陣的逆矩陣的函數(shù)inv,因此可以用inv(A)求矩陣A的逆矩陣。一般情況下,x=a\b是方程ax=b的解,而x=b/a是方程xa=b的解,兩種運(yùn)算的結(jié)果不相等。

與矩陣的除法運(yùn)算相類(lèi)似,數(shù)組也具有除法運(yùn)算符。運(yùn)算符“.\”和“./”分別表示數(shù)組運(yùn)算的左除和右除,表示數(shù)組相應(yīng)元素相除。進(jìn)行數(shù)組除法運(yùn)算時(shí)兩數(shù)組必須大小相同,除非其中有一個(gè)是標(biāo)量。

【例3.3】已知矩陣X1和X2,分別計(jì)算X1/X2、X1\X2。
首先在命令窗口中分別輸入以下兩條語(yǔ)句,生成矩陣X1和X2。
>> X1=[1 2 3;4 5 6;7 8 9];
>> X2=eye(3); %生成對(duì)角單位陣
①求X1/X2,在命令窗口輸入:
>>X1/X2 %求解矩陣的右除
矩陣X1/X2的運(yùn)算結(jié)果如下:
ans = 1 2 3 4 5 6 7 8 9
②求X1\X2,在命令窗口輸入:
>>X1\X2 %求解矩陣的左除
矩陣X1\X2的運(yùn)算結(jié)果如下:
Warning: Matrix is close to singular or badly scaled. Results may be inaccurate. RCOND = 1.541976e-018.
ans = 1.0e+016 * -0.4504 0.9007 -0.4504 0.9007 -1.8014 0.9007 -0.4504 0.9007 -0.4504

【例3.4】已知方程組\begin{cases} 2x_1-x_2+3x_3=5\\ 3x_1+x_2-5x_3=5\\ 4x_1-x_2+x_3=9\\ \end{cases},用矩陣除法來(lái)解線性方程組。

將該方程變換成AX=B的形式,其中,
\bf{A}=\begin{bmatrix} {2}&{-1}&{3}\\ {3}&{1}&{-5}\\ {4}&{-1}&{1}\\ \end{bmatrix},\bf{B}=\begin{bmatrix} {5}\\ {5}\\ {9} \end{bmatrix},求解過(guò)程如下。

首先在命令窗口中輸入矩陣A和矩陣B。
>> A=[2 -1 3; 3 1 -5; 4 -1 1];
>> B=[5;5;9]; %輸入矩陣A和B

然后利用矩陣除法計(jì)算方程組的解,在命令窗口輸入以下內(nèi)容:
>> X=A\B %用矩陣除法求解方程組
求解的結(jié)果如下:
X= 2 -1 0

在線性方程組A*x=B中,m×n階矩陣A的行數(shù)m表示方程數(shù),列數(shù)n表示未知數(shù)的個(gè)數(shù)。若n=m,A為方陣,A\B=inv(A)*B;若m>n,是最小二乘解,X=inv(A'*A)*(A'*B);若m<n,則是令X中的n-m個(gè)元素為零的一個(gè)特殊解,X=inv(A'*A)*(A'*B)。

3.1.4 乘方運(yùn)算

矩陣乘方的運(yùn)算符為“^”,規(guī)定只有方陣才能進(jìn)行乘方運(yùn)算??煞譃橄铝袔追N情況。
(1)當(dāng)A為方陣,P為大于0的整數(shù)時(shí),A^p表示A的P次方,即A自乘P次;P為小于0的整數(shù)時(shí),A^p表示A-1的P次方。P為矩陣時(shí)不能運(yùn)算,會(huì)出錯(cuò)。
(2)當(dāng)A為方陣,p為非整數(shù)時(shí),則A^p=V\begin{bmatrix} {d_{11}^p}&{}&{}\\ {}&{\ddots}&{}\\ {}&{}&{d_{nn}^p}\\ \end{bmatrix}V^{-1},其中,VA的特征向量,\begin{bmatrix} {d_{11}}&{}&{}\\ {}&{\ddots}&{}\\ {}&{}&{d_{nn}}\\ \end{bmatrix}為特征值對(duì)角矩陣。如果有重根,以上指令不成立。
(3)標(biāo)量的矩陣乘方P^A,標(biāo)量的矩陣乘方定義為P^A=V\begin{bmatrix} {p^{d_{11}}}&{}&{}\\ {}&{\ddots}&{}\\ {}&{}&{p^{d_{nn}}}\\ \end{bmatrix}V^{-1},式中V,D取自特征值分解AV=AD。
(4)標(biāo)量的數(shù)組乘方P.^A,標(biāo)量的數(shù)組乘方定義為P.^A=\begin{bmatrix} {p^{a_{11}}}&{\cdots}&{p^{a_{1n}}}\\ {\vdots}&{\ddots}&{\vdots}\\ {p^{a_{m1}}}&{\cdots}&{p^{a_{mn}}}\\ \end{bmatrix},數(shù)組乘方A.^P,表示A的每個(gè)元素的P次乘方。

【例3.5】已知矩陣x_1,分別計(jì)算矩陣乘方運(yùn)算x_1^2、x_1^{-1}、2^{x_1}的值。
在命令輸入窗口中,輸入以下矩陣x1。
>> x1=[1 2 3;4 5 6;7 8 9];
在矩陣x1的基礎(chǔ)上分別進(jìn)行矩陣的乘方運(yùn)算,具體如下:
①計(jì)算x1^2,在命令窗口中輸入以下內(nèi)容:
>> x1^2
x1^2的運(yùn)算結(jié)果如下:
ans = 30 36 42 66 81 96 102 126 150
②計(jì)算x1^-1,在命令窗口中輸入以下內(nèi)容:
>> x1^-1
x1^-1的運(yùn)算結(jié)果如下:
Warning: Matrix is close to singular or badly scaled. Results may be inaccurate. RCOND = 1.541976e-018.
ans = 1.0e+016 * -0.4504 0.9007 -0.4504 0.9007 -1.8014 0.9007 -0.4504 0.9007 -0.4504
③計(jì)算2^x1,在命令窗口中輸入以下內(nèi)容:
>> 2^x1
2^x1的運(yùn)算結(jié)果如下:
ans = 1.0e+004 * 0.7962 0.9782 1.1603 1.8029 2.2154 2.6276 2.8097 3.4523 4.0950

在例3.5的已知條件基礎(chǔ)上進(jìn)行數(shù)組的乘方運(yùn)算,分別計(jì)算2.x1、x1.x2。
在命令輸入窗口中輸入矩陣x2:
>> x2=eye(3);
①計(jì)算2.^x1,在命令窗口中輸入:
>> 2.^x1
結(jié)果如下:
ans = 2 4 8 16 32 64 128 256 512
②計(jì)算數(shù)組的乘方x1.^x2,在命令窗口中輸入:
>> x1.^x2
乘方運(yùn)算的結(jié)果如下:
ans = 1 1 1 1 5 1 1 1 9

作者:德特?cái)?shù)據(jù)
聯(lián)系方式:156204968@qq.com

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容