# 何謂矩陣 矩陣(Matrix),講白點就是一個表格,以下矩陣 $A$ 為一個由 $m\times n$ 個元素組成的矩形陣列: \begin{align} A= \begin{bmatrix} a_{11} & a_{12} & \dots & a_{1n} \\ a_{21} & a_{22} & \dots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{m1} & a_{m2} & \dots & a_{mn} \end{bmatrix} \end{align} 其中,$m$ 是矩陣的 rows,$n$ 是矩陣的 columns。在這矩陣中, $a_{mn}$ 是一個處在第 $n$ row、第 $m$ columns 的元素。 如下圖所示,矩陣也可以視為多個向量組成的矩形陣列,由多個 row vector 或是多個 column vector 組合起來的陣列。 <div style="text-align: center;"> <img src="https://hackmd.io/_uploads/HyyrtBVXZe.svg" alt="matrix" width="100%"/> <br>從四種角度理解矩陣 <br> </div> 以以下矩陣為例: \begin{align} \begin{bmatrix} 1 & 2 & 3 \\ 4 & 5 & 6 \end{bmatrix} \end{align} 可以看作是由 2 個 row vectors 組成,分別是 $(1,2,3)$ 與 $(4,5,6)$,亦或是 3 個 column vectors,分別是: \begin{align} \begin{bmatrix} 1 \\ 4 \end{bmatrix}, \begin{bmatrix} 2 \\ 5 \end{bmatrix}, \begin{bmatrix} 3 \\ 6 \end{bmatrix} \end{align} ## 矩陣的種類 ### 方塊矩陣(Square matrix) 如果今天矩陣的 rows 與 columns 數相同,也就是說它是個 $n\times n$ 矩陣,則這種矩陣為 square matrix。 ### 對角矩陣(Diagonal matrix) 對角矩陣只有主對角線上的元素,剩下的元素都是 $0$,即: \begin{align} A= \begin{bmatrix} a_{11} & 0 & 0 &\dots & 0 \\ 0 & a_{22} & 0 & \dots & 0 \\ 0 & 0 & a_{33} & \dots & 0\\ \vdots & \vdots & \vdots & \ddots &\vdots \\ 0 & 0 & 0 & \dots & a_{mn} \end{bmatrix} \end{align} 此矩陣在日後文章會再次出現。 ### 單位矩陣(Identity matrix) 單位矩陣會是很常出現的對角方塊矩陣,常記做 $I$ 或是 $I_{n\times n}$,對角線上的元素全都是 $1$,即: \begin{align} I= \begin{bmatrix} 1 & 0 & 0 &\dots & 0 \\ 0 & 1 & 0 & \dots & 0 \\ 0 & 0 & 1 & \dots & 0\\ \vdots & \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & 0 & \dots & 1 \end{bmatrix} \end{align} ## 矩陣基本運算 ### 矩陣轉置 將矩陣的 row 與 column 互換,記做 $A^T$,比方說: \begin{align} A^T = \begin{bmatrix} 1 & 2 & 3 \\ 4 & 5 & 6 \end{bmatrix}^T= \begin{bmatrix} 1 & 4 \\ 2 & 5 \\ 3 & 6 \end{bmatrix} \end{align} 如果一個矩陣轉置後仍是自己,則此矩陣稱作對稱矩陣(symmetric matrix),即: \begin{align} A^T=A \end{align} 如果一個矩陣轉置後是自己的負號,則此矩陣稱作反對稱矩陣(Skew-symmetric matrix),即: \begin{align} A^T=-A \end{align} ### trace 對一個方塊矩陣做 trace 就是把對角線上的元素加總起來。假設矩陣 $M$ 為: \begin{align} M= \begin{bmatrix} 1 & -2 & 0 \\ 2 & 2 & 4 \\ -2 & 1 & 3 \end{bmatrix} \end{align} 則: \begin{align} tr(M)=1+2+3 = 6 \end{align} ### 矩陣加法 當兩個矩陣 $A.B$ 的大小相同時才可以做加法運算,即將兩個矩陣中相同位置的元素加起來,得到的新矩陣大小也與原本的矩陣相同,即: \begin{align} A_{m\times n}+b_{m\times n} = \begin{bmatrix} a_{11} + b_{11} & a_{12} + b_{12} & \cdots & a_{1n} + b_{1n} \\ a_{21} + b_{21} & a_{22} + b_{22} & \cdots & a_{2n} + b_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{m1} + b_{m1} & a_{m2} + b_{m2} & \cdots & a_{mn} + b_{mn} \end{bmatrix} \end{align} 比方說: \begin{align} A = \begin{bmatrix} 1 & 2 & 3 \\ 4 & 5 & 6 \end{bmatrix}, \quad B = \begin{bmatrix} 6 & 5 & 4 \\ 3 & 2 & 1 \end{bmatrix} \end{align} 那: \begin{align} A + B = \begin{bmatrix} 1+6 & 2+5 & 3+4 \\ 4+3 & 5+2 & 6+1 \end{bmatrix}= \begin{bmatrix} 7 & 7 & 7 \\ 7 & 7 & 7 \end{bmatrix} \end{align} ### 矩陣的減法 同加法,只是變成相減,以剛剛的舉例來看: \begin{align} A - B = \begin{bmatrix} 1-6 & 2-5 & 3-4 \\ 4-3 & 5-2 & 6-1 \end{bmatrix}= \begin{bmatrix} -5 & -3 & -1 \\ 1 & 3 & 5 \end{bmatrix} \end{align} ### 與 scalar 相乘 與上一章向量與 scalar 相乘一樣,就矩陣中每個元素都乘上一個倍數,例如: \begin{align} 3A = \begin{bmatrix} 3\times1 & 3\times2 & 3\times3 \\ 3\times4 & 3\times5 & 3\times6 \end{bmatrix} \end{align} ## 矩陣乘法 解釋矩陣乘法規則的篇幅會需要很大,因此把這部分內容從基本運算中拉出來特別介紹。矩陣的乘法規則最早是在 1812 年由法國數學家 Jacques Philippe Marie Binet 提出。 ### 乘法規則 如果今天矩陣 $A$ 的大小是 $n\times d$,$B$ 矩陣為 $d\times m$,相乘後的矩陣 $C$,其大小為 $n\times m$。如下圖所示矩陣 $C$ 的元素 $c_{ij}$ 是 $A$ 矩陣第 $i$ row 的元素與 $B$ 矩陣地 $j$ column 元素相乘後相加,即: \begin{align} c_{ij}=a_{i1}b_{1j}+a_{i2}b_{2j}+\cdots+a_{id}b_{dj} \end{align} <div style="text-align: center;"> <img src="https://hackmd.io/_uploads/ByA21VVXWx.svg" alt="matrix" width="70%"/> <br>矩陣相乘規則,每一次都是矩陣相乘規則,每一次都是 A 一個 row 與 B 一個 column 元素相乘後相加</p> <br> </div> 如果今天 $A$ 與 $B$ 均為 $2\times 2$ 的矩陣,則: \begin{align} AB&= \begin{bmatrix} a_{11} & a_{12} \\ a_{21} & a_{22} \end{bmatrix} \begin{bmatrix} b_{11} & b_{12} \\ b_{21} & b_{22} \end{bmatrix} \\ &= \begin{bmatrix} a_{11}b_{11} + a_{12}b_{21} & a_{11}b_{12} + a_{12}b_{22} \\ a_{21}b_{11} + a_{22}b_{21} & a_{21}b_{12}+a_{22}b_{22} \end{bmatrix} \end{align} 我們可以這樣看待這個乘法,以上這乘法就相當於矩陣 $A$ 的 row 向量與矩陣 $B$ 的 column 向量內積,即: \begin{align} AB &= \begin{bmatrix} \begin{bmatrix} a_{11} & a_{12} \end{bmatrix} \\ \begin{bmatrix} a_{21} & a_{22} \end{bmatrix} \end{bmatrix} \begin{bmatrix} \begin{bmatrix} b_{11} \\ b_{21} \end{bmatrix} & \begin{bmatrix} b_{12} \\ b_{22} \end{bmatrix} \end{bmatrix} \\ &= \begin{bmatrix} a^1 \\ a^2 \end{bmatrix} \begin{bmatrix} b_1 & b_2 \end{bmatrix} \\ &= \begin{bmatrix} a^1b_1 & a^1b_2 \\ a^2b_1 & a^2b_2 \end{bmatrix} \end{align} <div style="text-align: center;"> <img src="https://hackmd.io/_uploads/HyPbpH4XZx.svg" alt="matrix multip" width="70%"/> <br>上式相當於此圖解</p> <br> </div> 雖然剛剛有提到內積,然而在矩陣中,不同於加減法,乘法不滿足交換律: \begin{align} AB\neq BA \end{align} 除非這兩個矩陣是單位矩陣或是對角矩陣。 ### 乘法視角:向量與向量 如果今天有兩個 column vectors: \begin{align} A = \begin{bmatrix} a_1 \\ a_2 \\ \vdots \\ a_n \end{bmatrix}, \quad B = \begin{bmatrix} b_1 \\ b_2 \\ \vdots \\ b_n \end{bmatrix} \end{align} 這兩個向量的內積可以寫成: \begin{align} A\cdot B&=B \cdot A = A^TB=B^TA=\sum_i a_ib_i\\ &= \begin{bmatrix} a_1 & a_2 & \cdots & a_n \end{bmatrix} \begin{bmatrix} b_1 \\ b_2 \\ \vdots \\ b_n \end{bmatrix} \end{align} 最後得到一個 scalar。如果矩陣 $A$ 的元素全都是 $1$,與矩陣 $B$ 相乘後會得到所有 $b$ 元素的加總。如果 $A=B$,就會得到所有矩陣元素的平方再加總。 > 補充: > 如果今天反過來是 $AB^T$,則為得到一個矩陣: > \begin{align} \begin{bmatrix} a_1 \\ a_2 \\ \vdots \\ a_n \end{bmatrix} \begin{bmatrix} b_1 & b_2 & \cdots & b_n \end{bmatrix}= \begin{bmatrix} a_1b_1 & a_1b_2 & \cdots & a_1b_n \\ a_2b_1 & a_2b_2 & \cdots & a_2b_n \\ \vdots & \vdots & \ddots & \vdots \\ a_nb_1 & a_nb_2 & \cdots & a_nb_n \end{bmatrix} \end{align} ### 乘法視角:矩陣與向量 當今天矩陣作用在 row vector 或是 column vector,會得到另一個向量,可以視作對一個向量做伸縮與旋轉。 <div style="text-align: center;"> <img src="https://hackmd.io/_uploads/ryaTadh66.svg" alt="矩陣對上向量" width="100%"/> <br> <p> 從幾何的角度,矩陣對向量的作用相當於對向量做旋轉與伸縮</p> </div> 比方說下面這個是對向量旋轉 $\theta$ 度的矩陣: \begin{align} R(\theta)= \begin{bmatrix} \cos{\theta} & -\sin{\theta} \\ \sin{\theta} & \cos{\theta} \end{bmatrix} \end{align} 以上一章介紹向量,文末進階的範例,平面逆時針旋轉 $90$ 度相當於向量旋轉 $-90$ 度,利用旋轉矩陣與矩陣乘法,我們可以輕易地算出旋轉後的向量為: \begin{align} R(-90^\circ) \begin{bmatrix} 3\\ 4 \end{bmatrix}&= \begin{bmatrix} \cos{(-90^\circ)} & -\sin{(-90^\circ)} \\ \sin{(-90^\circ)} & \cos{(-90^\circ)} \end{bmatrix} \begin{bmatrix} 3\\ 4 \end{bmatrix}\\ &= \begin{bmatrix} 4\\ -3 \end{bmatrix} \end{align} 有一種矩陣很特別,它作用在向量後只會對向量做伸縮但沒有旋轉,[這種矩陣](https://www.entangletech.tw/lesson/math-08)我們在日後還會再提到。 <div style="text-align: center;"> <img src="https://hackmd.io/_uploads/Hydb0_nap.svg" alt="矩陣對上向量" width="100%"/> <br> <p> 有些特定的矩陣對上特定的向量只有伸縮作用而沒有旋轉</p> </div> 更嚴謹地說,矩陣可以看作是一種函數(function),將一個向量空間映射到另一個向量空間,這種映射我們稱作線性映射(linear transformation)。 > 在補充單元,我們會再介紹何謂向量空間(vector space) ### 乘法視角:矩陣與向量(方程組) 這個視角是常見高中課本第一次提到矩陣時會提供的觀點,矩陣可以把多個方程式寫在一起,然後直接做求解。比方說以下線性方程組: \begin{align} a_{11}x_1+a_{12}x_2+\cdots+a_{1n}x_n=b_1\\ a_{21}x_1+a_{22}x_2+\cdots+a_{2n}x_n=b_2 \\ \vdots \\ a_{m1}x_1+a_{m2}x_2+\cdots+a_{mn}x_n=b_m \end{align} 就可以寫成 \begin{align} \begin{bmatrix} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{m1} & a_{m2} & \cdots & a_{mn} \end{bmatrix} \begin{bmatrix} x_{1} \\ x_{2} \\ \vdots \\ x_{n} \end{bmatrix}&= \begin{bmatrix} b_{1} \\ b_{2} \\ \vdots \\ b_{m} \end{bmatrix}\\ Ax&=b \end{align} 如此,此方程式的解就是: \begin{align} x=A^{-1}b \end{align} 其中 $A^{-1}$ 為矩陣 $A$ 的逆矩陣,類似矩陣的除法,將會在下一節做簡略介紹。在這邊,我們還可以把矩陣 $A$ 看做是好幾個 column vectors 組成的矩陣,即: \begin{align} A= \begin{bmatrix} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{m1} & a_{m2} & \cdots & a_{mn} \end{bmatrix}= \begin{bmatrix} \vec{a_{1}} & \vec{a_{2}} & \cdots & \vec{a_{n}} \end{bmatrix} \end{align} 那原本的 $Ax=b$ 可以看做是: \begin{align} \begin{bmatrix} \vec{a_{1}} & \vec{a_{2}} & \cdots & \vec{a_{n}} \\ \end{bmatrix} \begin{bmatrix} x_{1} \\ x_{2} \\ \vdots \\ x_{n} \end{bmatrix}&=b_{m\times 1} \end{align} 展開得到: \begin{align} x_1a_1+x_2a_2+\cdots+x_na_n=b_{m\times 1} \end{align} 或是: \begin{align} x_1 \begin{bmatrix} a_{11} \\ a_{21} \\ \vdots \\ a_{m1} \end{bmatrix} +x_2 \begin{bmatrix} a_{12} \\ a_{22} \\ \vdots \\ a_{m2} \end{bmatrix} +\cdots+ x_n \begin{bmatrix} a_{1n} \\ a_{2n} \\ \vdots \\ a_{mn} \end{bmatrix}= \begin{bmatrix} b_{1} \\ b_{2} \\ \vdots \\ b_{m} \end{bmatrix} \end{align} ## 逆矩陣 如果存在一個矩陣 $B$ 可以使矩陣 $A$ 滿足: \begin{align} AB=BA=I \end{align} 我們就會說矩陣 $A$ 是可逆(invertible),一般我們會把這個矩陣 $B$ 記做 $A^{-1}$。 > invertible 也稱作 non-singular ## 進階補充 在前一個章節,我們提到了 tensor,並說向量是一階 tensor,那在你學完矩陣後,我們會說矩陣是二階 tensor。 ## 延伸閱讀 - [線性變換](https://github.com/Visualize-ML/Book4_Power-of-Matrix/blob/main/Book4_Ch08_%E5%87%A0%E4%BD%95%E5%8F%98%E6%8D%A2__%E7%9F%A9%E9%98%B5%E5%8A%9B%E9%87%8F__%E4%BB%8E%E5%8A%A0%E5%87%8F%E4%B9%98%E9%99%A4%E5%88%B0%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0.pdf)
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up