官术网_书友最值得收藏!

2.5 矩陣

MATLAB為Matrix Laboratory(矩陣實驗室)的縮寫,可見該軟件在處理矩陣問題上的優勢。

按照空間結構分類,矩陣可分為一維矩陣、二維矩陣、三維矩陣,向量可以看成是一維矩陣,因此,向量中的點積、叉集運算在矩陣中也適用,本節不再贅述。

2.5.1 矩陣的生成

矩陣的生成主要有直接輸入法、M文件生成法和文本文件生成法等。

1.直接輸入法

在鍵盤上直接按行方式輸入矩陣是最方便、最常用的創建數值矩陣的方法,尤其適合較小的簡單矩陣。在用此方法創建矩陣時,應當注意以下幾點。

◆輸入矩陣時要以“[]”為其標識符號,矩陣的所有元素必須都在括號內。

◆矩陣同行元素之間由空格(個數不限)或逗號分隔,行與行之間用分號或<Enter>鍵分隔。

◆矩陣大小不需要預先定義。

◆矩陣元素可以是運算表達式。

◆若“[]”中無元素,表示空矩陣。

◆如果不想顯示中間結果,可以用“;”結束。

例2-23:創建矩陣示例。

解:MATLAB程序如下。

在輸入矩陣時,MATLAB允許方括號里還有方括號,結果跟不加方括號是一樣的。

2.利用M文件創建

當矩陣的規模比較大時,直接輸入法就顯得笨拙,出差錯也不易修改。為了解決這些問題,可以將所要輸入的矩陣按格式先寫入一文本文件中,并以m作為此文件的擴展名,即M文件。

M文件是一種可以在MATLAB環境下運行的文本文件,它可以分為命令式文件和函數式文件兩種。在此處主要用到的是命令式M文件,用它的簡單形式來創建大型矩陣。在MATLAB命令窗中輸入M文件名,所要輸入的大型矩陣即可被輸入到內存中。

M文件中的變量名與文件名不能相同,否則會造成變量名和函數名的混亂。

例2-24:編制M文件,包含表2-20中20位25~34周歲的健康女性的測量數據。

表2-20 測量數據

解:在M文件編輯器中輸入以下內容。

以文件名“healthy_women.m”保存,然后在MATLAB命令窗口中輸入文件名,得到下面的結果。

3.利用文本創建

MATLAB中的矩陣還可以由文本文件創建,即在文件夾(通常為work文件夾)中建立txt文件,在命令窗口中直接調用此文件名即可。

例2-25:用文本文件創建矩陣x,其中

x=1 2 3

4 5 6

7 8 10

解:在記事本中建立以下文件,并以wenben.txt保存。

1 2 3

4 5 6

7 8 10

在MATLAB命令窗口中輸入以下內容。

2.5.2 特殊矩陣

在工程計算以及理論分析中,經常會遇到一些特殊的矩陣,比如全0矩陣、全1矩陣單位矩陣、隨機矩陣等。對于這些矩陣,在MATLAB中都有相應的命令可以直接生成。

1.全0矩陣

在MATLAB中,全零矩陣使用zeros命令表示,該命令的調用格式見表2-21。

表2-21 zeros調用格式

例2-26:全0矩陣生成示例。

解:在MATLAB命令窗口中輸入以下命令。

2.全1矩陣

在MATLAB中,全1矩陣使用ones命令表示,該命令的調用格式見表2-22。

表2-22 ones調用格式

例2-27:全1矩陣生成示例。

解:在MATLAB命令窗口中輸入以下命令。

3.單位矩陣

λ1=λ2=…=λn=1,即

將該矩陣稱為單位矩陣。

如果Am×n矩陣,那么EmA=AEn=A。在MATLAB中,單位矩陣使用eye命令表示,該命令的調用格式見表2-23。

表2-23 eye調用格式

4.魔方矩陣

在MATLAB中,magic函數用來生成零矩陣,該命令的調用格式見表2-24。

表2-24 magic調用格式

例2-28:魔方矩陣示例。

解:在MATLAB命令窗口中輸入以下命令。

5.希爾伯特矩陣

在MATLAB中,hilb函數用來生成希爾伯特(Hilbert)矩陣,逆希爾伯特矩陣的函數為invhilb,其調用方法見表2-25。

表2-25 hilb調用格式

在MATLAB中,invhilb函數用來生成逆希爾伯特矩陣,其調用方法見表2-26。

表2-26 invhilb調用格式

例2-29:創建希爾伯特矩陣。

解:在MATLAB命令窗口中輸入以下命令。

6.測試矩陣

在MATLAB中,利用gallery生成測試矩陣,它的使用格式見表2-27。

表2-27 gallery命令的使用格式

表2-28 matrixname的名稱

(續)

(續)

例2-30:生成對稱矩陣。

解:在MATLAB命令窗口中輸入以下命令。

例2-31:生成豪斯霍爾德矩陣。

解:在MATLAB命令窗口中輸入以下命令。

7.隨機矩陣

rand函數、randi函數和randn函數使用隨機數生成器生成隨機矩陣,具體的調用格式見表2-29。

在MATLAB中rng函數控制隨機數生成,具體的調用格式見表2-30。

表2-29 函數調用格式

表2-30 rng函數調用格式

例2-32:檢索和還原生成器設置。

解:在MATLAB命令窗口中輸入以下命令。

2.5.3 矩陣元素函數

矩陣建立起來之后,還需要對其元素進行引用、修改。表2-31列出了矩陣元素的引用格式,表2-32列出了常用的矩陣元素修改命令。

表2-31 矩陣元素的引用格式

表2-32 矩陣元素修改命令

例2-33:矩陣元素的引用。

解:在MATLAB命令窗口中輸入以下命令。

例2-34:擴充矩陣。

解:在MATLAB命令窗口中輸入以下命令。

不但矩陣元素可以引用修改,矩陣的維度和方向也可以進行變換,常用的矩陣變維命令見表2-33。常用的矩陣變向命令見表2-34。

表2-33 矩陣變維命令

表5-34 矩陣變向命令

1.矩陣的旋轉

在MATLAB中,rot90命令用于將數組旋轉90°,該命令的格式與說明見表2-35。

表2-35 rot90命令

例2-35:旋轉矩陣示例。

解:在MATLAB命令窗口中輸入以下命令。

2.矩陣的鏡像

在MATLAB中,flip命令用于鏡像矩陣,翻轉矩陣元素,該命令的格式與說明見表2-36。

表2-36 flip命令

數組的鏡像變換實質是翻轉矩陣元素的操作,分為兩種:左右翻轉與上下翻轉。

◆flip(A,1)將翻轉每一列中的元素

◆flip(A,2)將翻轉每一行中的元素。

例2-36:數組上下翻轉示例。

解:在MATLAB命令窗口中輸入以下命令。

在MATLAB中,還包括專門的左右翻轉與上下翻轉命令,下面分別進行介紹。

(1)左右翻轉

使用fliplr函數將矩陣中的元素左右翻轉,調用方法如下。

例2-37:矩陣左右翻轉示例。

解:在MATLAB命令窗口中輸入以下命令。

(2)上下翻轉

使用flipud函數將矩陣中的元素上下翻轉,調用方法如下。

例2-38:矩陣左右翻轉示例。

解:在MATLAB命令窗口中輸入以下命令。

例2-39:矩陣的變維示例。

解:在MATLAB命令窗口中輸入以下命令。

例2-40:矩陣串聯與變向示例。

解:在MATLAB命令窗口中輸入以下命令。

3.矩陣帶寬

矩陣帶寬是顯示器視頻放大器通頻帶寬度的簡稱,凡電子電路都存在一個固有的通頻帶。帶寬越寬,響應速度就越快,允許通過的信號頻率就越高,信號失真也越小。

矩陣的上帶寬和下帶寬是通過求包含非零值的最遠一個對角線(分別在主對角線上方或下方)測得的。

對于包含元素Aij的矩陣A

●上帶寬B1是最小數,這樣無論何時j-i>B1Aij=0。

●下帶寬B2是最小數,這樣無論何時i-j<B2Aij=0。

在MATLAB中,bandwidth命令用于得到矩陣的上下帶寬,該命令的格式與說明見表2-37。

表2-37 bandwidth命令

在MATLAB中,isbanded命令用于矩陣是否位于特定的下帶寬和上帶寬范圍內,該命令的格式與說明見表2-38。

表2-38 isbanded命令

例2-41:矩陣帶寬示例。

解:MATLAB程序如下。

2.5.4 對角矩陣

對矩陣元素的修改的特例包括對角元素和上(下)三角陣的抽取。在MATLAB中包括專用的命令。

1.對角矩陣

n階矩陣顯示格式為

則稱該矩陣為對角矩陣。兩個對角矩陣的和是對角矩陣,兩個對角矩陣的積也是對角矩陣。

對于矩陣ACn×n,所謂的矩陣對角化就是找一個非奇異矩陣P,使得

其中,λ1,…,λnAn個特征值。

矩陣對角化在實際中可以大大簡化矩陣的各種運算,但不是每個矩陣均可進行對角化轉換,因此判斷矩陣是否可以進行對角化轉換是首要步驟。

◆定理1:n階矩陣A可對角化的充要條件是An個線性無關的特征向量。

◆定理2:矩陣A可對角化的充要條件是A的每一個特征值的幾何重復度等于代數重復度。

◆定理3:實對稱矩陣A總可以對角化,且存在正交矩陣P,使得

其中,λ1,…,λnAn個特征值。

對于矩陣978-7-111-67080-3-Chapter02-152.jpg,斜對角上的元素是主對角線元素,如圖2-5所示,包括a11a22,…,amn

圖2-5 主對角元素

在MATLAB中,diag命令用于抽取矩陣的對角線上的元素,組成對角線數組,該命令的格式與說明見表2-39。

表2-39 diag命令

在MATLAB中,isdiag命令用于確定矩陣是否為對角矩陣,該命令的格式與說明見表2-40。

表2-40 isdiag命令

例2-42:矩陣對角線抽取示例。

解:MATLAB程序如下。

2.上對角矩陣

在MATLAB中,triu命令用于抽取矩陣的對角線上三角部分的元素,下三角元素使用0替代,組成上對角線矩陣,如圖2-6所示,該命令的格式與說明見表2-41。

圖2-6 上三角矩陣轉換

表2-41 triu命令

例2-43:上對角矩陣示例。

解:MATLAB程序如下。

在MATLAB中,istriu命令用于確定矩陣是否為上三角矩陣,該命令的格式與說明見表2-42。

表2-42 istriu命令

例2-44:上三角矩陣示例。

解:MATLAB程序如下。

3.下對角矩陣

在MATLAB中,tril命令用于抽取矩陣的對角線下三角部分的元素,其余部分用0替代,組成下三角矩陣,如圖2-7所示,該命令的格式與說明見表2-43。

圖2-7 下三角矩陣轉換

表2-43 tril命令

在MATLAB中,istril命令用于確定矩陣是否為下三角矩陣,該命令的格式與說明見表2-44。

表2-44 istril命令

例2-45:下三角矩陣示例。

解:MATLAB程序如下。

2.5.5 矩陣基本運算

矩陣的基本運算包括加、減、乘、數乘、點乘、乘方、左乘、右乘、求逆等。其中加、減、乘與大家所學的線性代數中的定義是一樣的,相應的運算符為“+”“-”“?”,而矩陣的除法運算是MATLAB所特有的,分為左除和右除,相應運算符為“\”和“/”。

MATLAB的除法運算較為特殊。對于簡單數值而言,算術左除與算術右除不同。算術右除與傳統的除法相同,即a/b=a÷b;而算術左除則與傳統的除法相反,即a\b=b÷a

對矩陣而言,算術右除B/A相當于求解線性方程X?A=B的解;算術左除A\B相當于求解線性方程A?X=B的解。點左除與點右除與上面點運算相似,是變量對應于元素進行點除。

例2-46:矩陣的基本運算示例。

解:MATLAB程序如下。

MATLAB以矩陣為基本運算單元,而構成矩陣的基本單元是數據。為了更好地學習和掌握矩陣的運算,本章首先對數據的基本函數作簡單介紹。

另外,常用的運算還有指數函數、對數函數、平方根函數等。用戶可查看相應的幫助獲得使用方法和相關信息。

主站蜘蛛池模板: 习水县| 杭州市| 万安县| 同心县| 成都市| 会同县| 泸州市| 嘉祥县| 大港区| 桑植县| 长治市| 荆州市| 开阳县| 库伦旗| 漳浦县| 洱源县| 射阳县| 安新县| 昌图县| 凤阳县| 瓦房店市| 镇平县| 益阳市| 开封县| 万源市| 新巴尔虎左旗| 绥棱县| 韶关市| 许昌市| 通榆县| 民丰县| 哈密市| 延寿县| 连云港市| 北海市| 商洛市| 额敏县| 永定县| 贺兰县| 朝阳区| 宜良县|