앞선 포스팅에서 Matrix의 합과 Scalar multiplication에 대하여 알아보았습니다. 이번에는 다른 연산인 Matrix의 곱에 대하여 알아보겠습니다.
22.1. Matrix Multiplication.
크기가 m \times n인 Matrix \mathbf{A} = [a_{jk}]와 크기가 r \times p인 Matrix \mathbf {B} = [b_{jk}]가 있다고 합시다. 그리고 두 Matrix의 곱을 \mathbf {AB} = \mathbf {C}라 합시다. 이때 \mathbf {C}가 존재하기 위해서는, n = r이어야 합니다. 즉 \mathbf {A}의 column과 \mathbf {B}의 row의 수가 같아야 Matrix의 곱 \mathbf {AB}가 정의됩니다. 이제 이 \mathbf {C}는 크기가 m \times p인 Matrix이고, \mathbf {C}=[c_{jk}]의 원소 c_{jk}는 c_{jk} = \sum_{l=1}^{n} a_{jl} b_{lk}로 정의됩니다.
\mathbf {AB} = \mathbf {C} = [c_{jk}] = [\sum_{l=1}^{n} a_{jl} b_{lk}] (1)
(1) 수식을 이해하기 위해서 예제를 풀어봅시다. 가장 간단한 Vector 형태를 먼저 계산해봅시다.
Ex) 1. \begin{bmatrix} 3&6&1\end {bmatrix}\begin {bmatrix}1\\2\\4\\\end {bmatrix}
\mathbf {A} = [a_{jk}] = \begin {bmatrix} 3&6&1\end {bmatrix}, \mathbf {B} = [b_{jk}] = \begin {bmatrix}1\\2\\4\\\end {bmatrix}라 합시다.
주어진 Matrix \mathbf {A}는 크기가 1 \times 3 Matrix이고, \mathbf {B}의 크기는 3 \times 1인 Matrix입니다. 그렇기 때문에 이 둘의 곱 \mathbf {AB} 또한 존재하고, 그 크기는 앞서 설명한 것에 따라 1 \times 1 Matrix가 됩니다.
(1)에서 c_{jk} = \sum_{l=1}^{n} a_{jl} b_{lk}이었습니다. 이를 풀어 써보면 다음과 같습니다.
c_{jk} = \sum_{l=1}^{n} a_{jl}b_{lk} = a_{j1} b_{1k} + a_{j2} b_{2k} + a_{j3} b_{3k} + \cdots (2)
\mathbf {C}의 크기는 1 \times 1이므로, 오로지 c_{jk} = c_{11}만 존재합니다. j, k에 1을 대입합니다.
c_{11} = a_{11} b_{11} + a_{12} b_{21} + a_{13} b_{31} (3)
(3)을 토대로 주어진 값을 대입하여 c_{11}을 구합니다.
c_{11} = 3\cdot1 + 6\cdot2 + 1\cdot4 = 19 (4)
(4)의 결과로 \mathbf {C}를 구합니다.
\mathbf{C} = \begin {bmatrix} 19\end {bmatrix}
sol) \begin {bmatrix} 3&6&1\end{bmatrix}\begin{bmatrix}1\\2\\4\\\end{bmatrix} = \begin{bmatrix} 19\end {bmatrix}
Ex) 2. \begin {bmatrix}1\\2\\4\\\end {bmatrix}\begin {bmatrix} 3&6&1\end {bmatrix}
앞선 예제의 표기를 빌려오면 주어진 예제는 \mathbf {BA}라 표기할 수 있습니다. \mathbf {B}의 크기가 3 \times 1이고, \mathbf {A}의 크기는 1 \times 3입니다. 곱이 존재할 전제조건을 만족하고, 이 곱을 \mathbf {C}라 합시다. 그렇다면 \mathbf {C}의 크기는 3 \times 3가 됩니다.
(2)를 참고하여 c_{jk}를 구해봅시다.
\begin {cases} c_{11} = b_{11} a_{11} = 1\cdot3 = 3\\c_{12} = b_{11} a_{12} = 1\cdot6 = 6\\c_{13} = b_{11} a_{13} = 1\cdot1 = 1\\c_{21} = b_{21} a_{11} = 2\cdot3 = 6\\c_{22} = b_{21} a_{12} = 2\cdot6 = 12\\c_{23} = b_{21} a_{13} = 2\cdot1 = 2\\c_{31} = b_{31} a_{13} = 4\cdot3 = 12\\c_{32} = b_{31}a_{12} = 4\cdot6 = 24\\c_{33} = b_{31}a_{13} = 4\cdot1 = 4\end {cases} (5)
(5)의 결과를 Matrix로 써봅시다.
\mathbf {C} = [c_{jk}] = \begin {bmatrix} 3&6&1\\6&12&2\\12&24&4\end {bmatrix} (6)
(6)에따라, 구하는 Matrix는 다음과 같습니다.
sol) \begin {bmatrix}1\\2\\4\\\end{bmatrix}\begin{bmatrix} 3&6&1\end{bmatrix} = \begin{bmatrix} 3&6&1\\6&12&2\\12&24&4\end {bmatrix}
Ex 1, 2를 통해 하나의 결론을 내릴 수 있습니다. 결과를 비교해보면 \mathbf {AB} \neq \mathbf {BA} 인 것을 알 수 있었는데요, 흔히 말하는 '교환 법칙'이 Matrix의 곱에서는 성립하지 않는다는 것을 알 수 있습니다. Matrix 곱에서 성립하는 간단한 법칙들을 살펴보겠습니다.
(k\mathbf {A})\mathbf {B} = \mathbf {A}(k\mathbf {B}) (7)
\mathbf {A}(\mathbf {BC}) = (\mathbf {AB})\mathbf {C} = \mathbf {ABC} (8)
(\mathbf {A}+\mathbf {B})\mathbf {C} = \mathbf {AC} + \mathbf {BC} (9)
\mathbf {C}(\mathbf {A}+\mathbf {B}) = \mathbf {CA} + \mathbf {CB} (10)
Ex 1의 풀이 방식으로 Matrix 곱을 다른 방식으로 생각해 볼 수도 있습니다. Ex 1처럼 row vector와 column vector의 곱(교환 법칙이 성립하지 않으므로 당연히 row vector가 앞에 옵니다.)은 원소가 하나인 1 \times 1 Matrix가 나옵니다. 이를 이용해봅시다.
row matrix를 \mathbf {a}_j = \begin {bmatrix} a_{j1}&a_{j2}&\cdots&a_{jn}\end{bmatrix}라 하고, column matrix를 \mathbf{b}_k = \begin{bmatrix} b_{1k} \\ b_{2k} \\ \cdots \\ b_{nk}\end {bmatrix}라 합시다. 두 Matrix의 곱 \mathbf {a}_j\mathbf {b}_k는 다음과 같습니다.
\mathbf{a}_j\mathbf{b}_k = a_{j1} b_{1k} + a_{j2} b_{2k} + a_{j3} b_{3k} + \cdots + a_{jn} b_{nk} (11)
(11)은 다음과 같이 쓸 수 있습니다.
a_{j1} b_{1k} + a_{j2} b_{2k} + a_{j3} b_{3k} + \cdots + a_{jn} b_{nk} = \sum_{l=1}^{n} a_{jl} b_{lk} = c_{jk} (12)
(11)과 (12)의 결과를 통해 다시 식을 써서 결론을 지어봅시다.
\mathbf {a}_j\mathbf {b}_k = c_{jk} (13)
(13)에서, 우리는 Matrix의 곱 \mathbf {AB} = \mathbf{C} = [c_{jk}]에서 c_{jk}를 \mathbf{A}의 j번째 row vector와 \mathbf{B}의 k번째 column vector의 곱으로 알 수 있습니다. 이를 통해 \mathbf{AB}를 다음과 같이 쓸 수 있습니다.
\mathbf{AB} = \begin {bmatrix} \mathbf {a}_1\mathbf {b}_1&\mathbf {a}_1\mathbf {b}_2&\cdots&\mathbf {a}_1\mathbf {b}_n \\ \mathbf {a}_2\mathbf {b}_1&\mathbf {a}_2\mathbf {b}_2&\cdots&\mathbf {a}_2\mathbf {b}_n\\ \vdots&\vdots&\ddots&\vdots\\ \mathbf {a}_m\mathbf {b}_1&\mathbf {a}_m\mathbf {b}_2&\cdots&\mathbf {a}_m\mathbf {b}_n\end {bmatrix} (14)
22. 2. Linear Transformation.
앞서 정리한 Matrix의 곱으로 연립방정식을 간단하게 나타낼 수 있습니다. 다음과 같은 연립방정식이 있다고 합시다.
\begin {cases} y_1 = a_{11} x_1 + a_{12}x_2 \\ y_2 = a_{21}x_1 + a_{22}x_2\end{cases} (15)
(15)의 첫 번째 연립방정식만 가져와봅시다. y_1 = a_{11}x_1 + a_{12} x_2은 (12)를 이용해 Matrix의 계산으로 바꾸어주면 다음과 같습니다.
\begin {bmatrix} y_1 \end{bmatrix} = \begin{bmatrix} a_{11} & a_{12} \end{bmatrix} \begin{bmatrix} x_1 \\ x_2 \end{bmatrix} (16)
(15)의 두 번째 연립방정식 또한 같은 방식으로 나타내면 다음과 같습니다.
\begin{bmatrix} y_2 \end{bmatrix} = \begin{bmatrix} a_{21} & a_{22} \end{bmatrix} \begin{bmatrix} x_1 \\ x_2 \end{bmatrix} (17)
(16)과 (17)을 조합하면 주어진 연립방정식을 다음과 같이 쓸 수 있습니다.
\begin {bmatrix} y_1 \\ y_2\end {bmatrix} = \begin{bmatrix} a_{11} & a_{12} \\ a_{21} & a_{22} \end{bmatrix} \begin{bmatrix} x_1 \\ x_2 \end{bmatrix} (18)
\begin {bmatrix} y_1 \\ y_2\end{bmatrix} = \mathbf{y}, \begin{bmatrix} a_{11} & a_{12} \\ a_{21} & a_{22}\end{bmatrix} = \mathbf{A}, \begin{bmatrix} x_1 \\ x_2\end {bmatrix} = \mathbf {x}라 하면 (18)을 다음과 같이 쓸 수도 있습니다.
\mathbf {y} = \mathbf {Ax} (19)
22. 3. Transposition.
크기가 m \times n인 matrix \mathbf {A} = [a_{jk}]가 있다고 합시다. \mathbf {A}의 첫 번째 row를 첫 번째 column으로, 두 번째 row를 두 번째 column으로 바꾸고, 이런 식으로 n 번째 row를 n 번째 column으로 바꾼 matrix를 \mathbf {A^{\top}}이라 정의합니다. 즉, \mathbf {a}^{\top} = [a_{kj}]와 같습니다. 이 Matrix를 풀어서 써 보면 다음과 같습니다.
\mathbf {A}^{\top} = [a_{kj}] = \begin {bmatrix} a_{11}&a_{21}&\cdots&a_{m1}\\a_{12}&a_{22}&\cdots&a_{m2}\\ \vdots&\vdots&\ddots&\vdots \\ a_{1n}&a_{2n}&\cdots&a_{mn}\end {bmatrix} (20)
이를 토대로 크기가 m \times n인 Matrix를 transpose 한 Matrix는 크기가 n \times m이 된다는 것을 짐작할 수 있습니다. Transposition에서 성립하는 주요 법칙들은 다음과 같습니다.
(\mathbf {A}^{\top})^{\top} = \mathbf{A} (21)
(\mathbf{A} + \mathbf {B})^{\top} = \mathbf {A}^{\top} + \mathbf {B}^{\top} (22)
(c\mathbf {A})^{\top} = c\mathbf {A}^{\top} (23)
(\mathbf {AB})^{\top} = \mathbf {B}^{\top}\mathbf {A}^{\top} (24)
Transposition을 이용한 특수한 Matrix에 대하여 소개해보겠습니다.
1) Symmetric Matrix
Symmetric matrix는 \mathbf {A} = \mathbf {A}^{\top}를 만족하는 Matrix입니다. 예를 들어 다음과 같은 Matrix가 있습니다.
\begin {bmatrix} 20 & 120 & -200 \\ 120 & 10 & 150 \\ -200 & 150 & 30 \end {bmatrix} (25)
2) Skew-symmetric Matrix
Skew-symmetric matrix는 \mathbf {A} = - \mathbf {A}^{\top}를 만족하는 Matrix입니다. 앞서 Symmetic matrix와 거의 유사합니다. Skew-symmetric matrix의 예로 다음과 같은 Matrix가 있습니다.
\begin {bmatrix} 0&1&-3\\-1&0&-2\\3&2&0\end {bmatrix} (26)
3) Diagonal matrix
Diagonal matrix는 \mathbf {A} = [a_{jk}]인 matrix \mathbf {A}에서 j=k인 원소를 제외한 모든 원소가 0인 Matrix입니다. j=k인 원소가 0이어도 Diagonal matrix에 해당합니다. 예를 들어 다음과 같은 Matrix가 있습니다.
\begin {bmatrix} 1&0&0\\0&2&0\\0&0&3\end{bmatrix} (27)
\begin{bmatrix} 2&0&0\\0&3&0\\0&0&0\end {bmatrix} (28)
4) Scalar Matrix
Scalar matrix는 Diagonal matrix의 0이 아닌 모든 원소가 같은 Matrix입니다. 그 값을 c라 하고, Scalar matrix를 \mathbf {S}라 하면 다음을 만족합니다.
\mathbf {SA} = \mathbf {AS} = c\mathbf {A} (29)
즉, Scalar multiplication과 같은 효과를 내는 Matrix라고도 볼 수 있겠습니다. \mathbf {S}를 풀어서 써보면 다음과 같습니다.
\mathbf{S} = \begin {bmatrix} c&0&\cdots&0\\0&c&\cdots&0\\\vdots&\vdots&\ddots&\vdots\\0&0&\cdots&c\end {bmatrix} (30)
5) Unit Matrix
Unit matrix는 Scalat matrix의 c의 값이 1인 matrix입니다. Unit matrix를 \mathbf {I}라 합시다. Unit matrix는 다음을 만족합니다.
\mathbf {IA} = \mathbf {AI} = \mathbf {A} (31)
(31)에서 보듯, Unit matrix를 곱하게 되면 곱하기 전 matrix와 같은 결과가 나오게 됩니다. \mathbf {I}를 풀어서 써보면 다음과 같습니다.
\mathbf{I} = \begin {bmatrix} 1&0&\cdots&0\\0&1&\cdots&0\\\vdots&\vdots&\ddots&\vdots\\0&0&\cdots&1\end {bmatrix} (32)
오늘의 포스팅은 여기서 마치겠습니다. 상당히 많은 양을 담았네요. 다음 포스팅에서는 Gauss Elimination에 대하여 다룰 예정입니다.
'전공 정리 > 공업수학' 카테고리의 다른 글
24. 벡터 공간(Vector Space) (0) | 2020.05.17 |
---|---|
23. 연립 일차 방정식과 가우스 소거법 (0) | 2020.05.15 |
21. 선형 대수학 : 행렬, 벡터 (0) | 2020.05.07 |
20. 라플라스 변환 형태의 미분과 적분 (0) | 2020.05.06 |
19. 합성곱(Convolution) (0) | 2020.05.03 |
댓글