第三章 矩陣運算

矩陣是數組的一種表現形式。

生成矩陣

兩種方式:1.枚舉式直接賦值法。2.用函數

如何生成數值矩陣

1.實數矩陣輸入規則
所有元素都要放在“[ ]”中;
同行元素用**“ ,”或“空格”** 分隔;
不同行的用“;”分隔。
在這裏插入圖片描述
2.向量輸入
在這裏插入圖片描述3.利用函數生成矩陣
在這裏插入圖片描述
ps:
1.其中size函數返回該矩陣的行數和列數。
2.magic(n)魔方陣中,當n>2時有多個魔方陣,但是matlab中只產生一個特定的魔方陣。
在這裏插入圖片描述
習題1
在這裏插入圖片描述
代碼
在這裏插入圖片描述
結果
單位陣所以式子成立
在這裏插入圖片描述
習題2:魔方陣
在這裏插入圖片描述
補充1:範德蒙矩陣
常用於各種通信系統的糾錯編碼中,例如裏的所羅門編碼以其爲基礎。
在這裏插入圖片描述
在這裏插入圖片描述
舉例:生成一個1~5的範德蒙矩陣
在這裏插入圖片描述
補充2:希爾伯特矩陣
在這裏插入圖片描述
命令
在這裏插入圖片描述
例子
在這裏插入圖片描述
補充3:伴隨陣
在這裏插入圖片描述
命令
在這裏插入圖片描述
例子:
在這裏插入圖片描述
補充4:帕斯卡矩陣
在這裏插入圖片描述
在這裏插入圖片描述
例子:生成一個5階帕斯卡矩陣,驗證它的逆矩陣所有元素也爲整數
inv()是矩陣求逆運算
在這裏插入圖片描述

4.創建多維數組
方法一: 直接賦值法
在這裏插入圖片描述
方法二: 採用cat函數
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

如何生成複數矩陣

兩種方法:
在這裏插入圖片描述

矩陣變換

一、對角陣
在這裏插入圖片描述
1.提取對角陣的對角線
在這裏插入圖片描述
2.構造對角矩陣
在這裏插入圖片描述
例子

%構造一個矩陣A,使A的第一行*1,第二行*2……
>> %分析:A左乘一個對角陣,該對角陣的對角線爲1 2 3 4 5……即可實現上述功能。右乘則爲對列的操作。
>> A=fix(0+(99-10+1)*rand(5))
>A =

      14             54             40             74              9       
      71             23              7             48             86       
      28             58             20             89              0       
      47             62             82              7             69       
      14             67             13             39             73       

>> D=diag(1:5)

D =

       1              0              0              0              0       
       0              2              0              0              0       
       0              0              3              0              0       
       0              0              0              4              0       
       0              0              0              0              5       

>> D*A

ans =

      14             54             40             74              9       
     142             46             14             96            172       
      84            174             60            267              0       
     188            248            328             28            276       
      70            335             65            195            365      

2.三角陣
在這裏插入圖片描述
1.生成一個與A大小相同的三角陣。
在這裏插入圖片描述
2.提取矩陣下三角函數tril() 函數。

3.矩陣轉置
在這裏插入圖片描述
ps:若矩陣元素是實數則兩個沒區別,要是複數矩陣共軛轉置則會產生不同結果。

4.矩陣的旋轉
在這裏插入圖片描述

5.矩陣的反轉
在這裏插入圖片描述

6.矩陣求逆
在這裏插入圖片描述
例題
在這裏插入圖片描述
解:

>> A=[1 2 3;1 4 9;1 8 27];
B=[5;-2;6];
%方法一,用逆矩陣法
>> x=inv(A)*B

x =
      23       
     -29/2     
      11/3     
>> %方法二,用左除法
x=A\B

x =
      23       
     -29/2     
      11/3     
>> %由上式可見兩種方法是等價的

7.矩陣的乘法
特備註意維度上的匹配、矩陣的運算對象。
經驗分享:
1.矩陣與數值型數據之間的乘法運算滿足分配律。
2.此外,(A+C)×B-(A×B+C*B)的運算示例也反映出矩陣之間的乘法運算滿足右分配律。
3.對於兩個2×3矩陣的乘法運算AxC,由於矩陣A的列數3與矩陣C的行數2不相等,矩陣A與矩陣C儘管在維度上相同,但是參與乘法運算時維度不匹配,因此造成MATLAB編譯錯誤。
4.讀者可以在保證矩陣維度匹配的前提下,自行檢驗矩陣乘法是否滿足交換律與左結合律(即形如:AX(B+C)=A×B+AxC)。結果:方陣滿足交換律。
維度匹配下左結合律的驗證:

A=[1 1 1;2 2 2;3 3 3;4 4 4];
B=[1 1 1 1;1 1 1 1;1 1 1 1];
C=[2 2 2 2;2 2 2 2;2 2 2 2];
>>  A*(B+C)
ans =
     9     9     9     9
    18    18    18    18
    27    27    27    27
    36    36    36    36

>> A*B+A*C
ans =
     9     9     9     9
    18    18    18    18
    27    27    27    27
    36    36    36    36

8.矩陣的除法
matlab中的矩陣除法運算被細分爲左除右除運算。
1.對於參與矩陣除法運算的兩個對象A與B而言若均爲數值型標量,則左除與右除運算是等價的。
2.對於一般的二維矩陣A和B而言,左除與右除運算在對矩陣A和B的維度匹配上存在不同的要求:
在這裏插入圖片描述
經驗分享:
在這裏插入圖片描述

9.矩陣冪運算
matlab中矩陣的冪運算對方陣有效,因爲對於非方陣而言,相鄰的運算矩陣無法
滿足“維度匹配”的要求即左側矩陣的列數不等於相鄰右側矩陣的行數,因此冪運算無法進行。
在這裏插入圖片描述

10.矩陣比較
矩陣的比較關係是針對於兩個矩陣對應元素的,所以在使用關係運算時,首先應該
保證兩個矩陣的維數一致或其中一個矩陣爲標量。關係運算是對兩個矩陣的對應運算進行比較,若關係滿足,則將結果矩陣中該位置元素置爲1,否則置0。
在這裏插入圖片描述
在這裏插入圖片描述

11.對矩陣元素進行取整
在這裏插入圖片描述
在這裏插入圖片描述

12.對矩陣進行邏輯運算
在這裏插入圖片描述
在這裏插入圖片描述

13.矩陣的分解
具體的講述見Manii的如下文章:
視覺SLAM中的數學——解方程AX=b與矩陣分解:奇異值分解(SVD分解) 特徵值分解 QR分解 三角分解 LLT分解
課本上的介紹如下:
在這裏插入圖片描述
例子
在這裏插入圖片描述
在這裏插入圖片描述

14.查找矩陣中的最值
在這裏插入圖片描述

15.查找矩陣中的元素
在這裏插入圖片描述
在這裏插入圖片描述

矩陣求值

1.行列式
在這裏插入圖片描述
例題:
在這裏插入圖片描述
答案:

>> format rat;
>> A=[1 2 3;-3 2 1;4 1 2];
>> det(inv(A))
ans =  -1/10    
>> 1/det(A)
ans = -1/10    

2.矩陣的秩
ps:關於秩的概念已經沒有印象了,所以又學習了一遍,並將一些簡單的手寫筆記掃描了下來。點擊右側矩陣秩的手寫筆記

例題:該例題中涉及到一些繪圖的知識見後面內容
在這裏插入圖片描述
在這裏插入圖片描述
分析上圖可知在這裏插入圖片描述

3.矩陣的跡
等於矩陣對角線元素之和,也等於矩陣的特徵值之和。
命令:
在這裏插入圖片描述

>> A=[1 3 2;-3 2 1;4 1 2]
A =
       1              3              2       
      -3              2              1       
       4              1              2       
>> B=trace(A)
B =   5       
>> C=sum(diag(A))
C = 5       

4.矩陣的範數
用來度量矩陣或向量在某種意義上的長度。
所以範數在不同定義下的值也不同,如下:
在這裏插入圖片描述
三種定義分別對應的命令:
在這裏插入圖片描述
在這裏插入圖片描述

5.矩陣的條件數
等於矩陣的範數與該矩陣的逆矩陣的範數的乘積。
條件數越接近1,矩陣的性能越好,否則越差。
因爲範數有三種不同情況,所以與之對應有三種範數命令。
在這裏插入圖片描述

矩陣的特徵值和特徵向量

這部分知識點見https://blog.csdn.net/qq_45562910/article/details/104178703

函數調用:
在這裏插入圖片描述

特徵值的幾何意義
在這裏插入圖片描述
在這裏插入圖片描述
當X與AX方向相同時稱爲特徵方向 在該方向上有AX=λX
例題:
在這裏插入圖片描述

>> A=[0,0.5,0.5,3,5.5,5.5,6,6,3,0;0,0,6,0,6,0,0,8,1,8];
>> X=[1,0.5;0,1];
>> Y=X*A;
>> subplot(2,2,1);
>> fill(A(1,:),A(2,:),'r');
>> subplot(2,2,2);
>> fill(Y(1,:),Y(2,:),'r');

在這裏插入圖片描述
啓示:在構建字庫時,不必構建斜體字庫,只需對正體字庫進行線性變換即可。

稀疏矩陣

定義:零元素的個數遠多於非零元素的個數。

矩陣的存儲方式
完全存儲: 將矩陣的全部元素按列存儲,對於稀疏矩陣0也要存儲。
係數存儲: 只存儲非零元素的值和位置。
在這裏插入圖片描述

>> A=sparse(eye(5))
A =
   (1,1)        1
   (2,2)        1
   (3,3)        1
   (4,4)        1
   (5,5)        1

>> B=full(A)
B =
     1     0     0     0     0
     0     1     0     0     0
     0     0     1     0     0
     0     0     0     1     0
     0     0     0     0     1

在這裏插入圖片描述

>> A=sparse([1,2,2],[2,1,4],[4,5,-7])
A =
   (2,1)        5
   (1,2)        4
   (2,4)       -7
>> B=full(A)
B =
     0     4     0     0
     5     0     0    -7

在這裏插入圖片描述

>> A=[2,2,1;2,1,-1;2,4,3]
A =
     2     2     1
     2     1    -1
     2     4     3
>> B=spconvert(A)
B =
   (2,1)       -1
   (2,2)        1
   (2,4)        3

關於矩陣的一些命令表在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

發佈了18 篇原創文章 · 獲贊 3 · 訪問量 1392
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章