본 게시글은 대학 전공수업을 들으며 노션에 정리한 내용을 블로그로 옮긴 것으로,
티스토리에서 LaTeX를 지원하지 않고, MathJax 자바스크립트 코드를 이용하더라도 행렬 표현은 제대로 되지 않는 문제가 있습니다.(티스토리의 HTML 변환시 문제가 발생하는 것 같습니다.)
노션 웹을 통해 최적화된 형태로 읽으시길 권장드립니다.(➡️ 노션 링크)
5강 - 행렬
기본 사항
행렬이란
행과 열로 구성되는 사각형 형태로 수를 배열한 것
$$
\begin{pmatrix}
1 & 2 & 3 & 4 \
5 & 6 & 7 & 8 \
9 & 0 & 2 & 5 \
\end{pmatrix}
$$
m개의 행과 n개의 열로 구성된 직사각형의 수 배열 𝑨를 𝒎 × 𝒏 행렬이라 한다.
m번째 행과 n번째 열의 행렬은 아래와 같이 표기함.
$$
\begin{array}{c|cccc}
& \text{Col 1} & \text{Col 2} & \cdots & \text{Col n} \
\hline
\text{Row 1} & a_{11} & a_{12} & \cdots & a_{1n} \
\text{Row 2} & a_{21} & a_{22} & \cdots & a_{2n} \
\vdots & \vdots & \vdots & \ddots & \vdots \
\text{Row m} & a_{m1} & a_{m2} & \cdots & a_{mn}
\end{array}
$$
- 행벡터 (row vector) : 𝟏 × 𝒏 행렬
- 열벡터 (column vector) : 𝒎 × 𝟏 행렬
영행렬(zero matrix)
모든 원소가 0인 행렬
행렬의 연산
기본연산
크기가 같은 행렬 𝑨, 𝑩가 아래와 같이 있을 때,
$$
A = \begin{bmatrix}
a_{11} & a_{12} \
a_{21} & a_{22}
\end{bmatrix}, \quad
B = \begin{bmatrix}
b_{11} & b_{12} \
b_{21} & b_{22}
\end{bmatrix}
$$
행렬의 합
$$
C = A + B = \begin{bmatrix}
a_{11} + b_{11} & a_{12} + b_{12} \
a_{21} + b_{21} & a_{22} + b_{22}
\end{bmatrix}
$$
행렬의 차
$$
D = A - B = \begin{bmatrix}
a_{11} - b_{11} & a_{12} - b_{12} \
a_{21} - b_{21} & a_{22} - b_{22}
\end{bmatrix}
$$
스칼라 곱
$$
E = k \cdot A = \begin{bmatrix}
k \cdot a_{11} & k \cdot a_{12} \
k \cdot a_{21} & k \cdot a_{22}
\end{bmatrix}
$$
행렬의 합과 스칼라 곱의 연산법칙
행렬의 합과 스칼라 곱은, 같은 크기의 행렬 𝑨, 𝑩, 𝑪에 대해 다음과 같은 연산법칙들을 만족한다. (𝒂, 𝒃는 실수, 𝑶은 모든 원소가 0인 영행렬을 의미한다.)
(하나하나 살펴보면… 당연하다)
- 합의 교환법칙 : 𝑨 + 𝑩 = 𝑩 + 𝑨
- 합의 결합법칙 : 𝑨 + (𝑩 + 𝑪) = (𝑨 + 𝑩) + 𝑪
- 합의 항등원 : 𝑨 + 𝑶 = 𝑨
- 합의 역원 : 𝑨 + (−𝑨) = 𝑶
- 스칼라 곱의 결합법칙 : (𝒂𝒃)𝑨 = 𝒂(𝒃𝑨)
스칼라 곱의 분배법칙
- (𝒂 + 𝒃) 𝑨 = 𝒂𝑨 + 𝒃𝑨
- (𝒂 − 𝒃) 𝑨 = 𝒂𝑨 − 𝒃𝑨
- 𝒂 (𝑨 + 𝑩) = 𝒂𝑨 + 𝒂𝑩
- 𝒂 (𝑨 − 𝑩) = 𝒂𝑨 − 𝒂𝑩
행렬의 곱
𝑨가 𝒎 × 𝒏 행렬이고 𝑩가 𝒏 × 𝒍 행렬일 때,
행렬의 곱 𝑨𝑩는 (𝒊, 𝒋)원소가 다음과 같이 정의되는 𝒎 × 𝒍 행렬이다.
- 식$$
\end{pmatrix}
\begin{pmatrix}
c_{11} & c_{12} & \cdots & c_{1l} \
c_{21} & c_{22} & \cdots & c_{2l} \
\vdots & \vdots & \ddots & \vdots \
c_{m1} & c_{m2} & \cdots & c_{ml}
\end{pmatrix}
$$ - $$
AB_{ij}=\sum_{k=1}^{n} A_{ik}B_{kj} = A_{i1}B_{1j} + A_{i2}B_{2j} + \cdots + A_{in}B_{nj}
$$ - \begin{pmatrix}
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{pmatrix}
\times
\begin{pmatrix}
b_{11} & b_{12} & \cdots & b_{1l} \
b_{21} & b_{22} & \cdots & b_{2l} \
\vdots & \vdots & \ddots & \vdots \
b_{n1} & b_{n2} & \cdots & b_{nl} - $$
\mathbf{A} \times \mathbf{B} = \mathbf{C}
\(m\times n) (n\times l) (m \times l)
$$
벡터의 내적
A = (a1 , a2 , … , an )와 B = (b1 , b2 , … , bn )가 n 차원 벡터라고 할 때,A와 B의 내적(inner product) $\mathbf{A} \cdot \mathbf{B}$는
$\mathbf{A} \cdot \mathbf{B} = a_1 b_1 + a_2 b_2 + \ldots + a_n b_n$
ex) A = (1, 2, 3), B = (-1, 0, 2) 이면
$\mathbf{A} \cdot \mathbf{B}$ = -1 + 0 + 6 = 5
행렬 곱의 연산법칙
- 곱의 결합법칙 : ****𝑨(𝑩𝑪) = (𝑨𝑩)𝑪
곱의 분배법칙
- 𝑨(𝑩 + 𝑪) = 𝑨𝑩 + 𝑨𝑪
- (𝑨 + 𝑩)𝑪 = 𝑨𝑪 + 𝑩𝑪
단,
❌ 𝑨𝑩 ≠ 𝑩𝑨 (곱연산의 교환법칙❌)
✅ A가 정방행렬일때, 거듭제곱은?
$A^rA^s=A^{r+s}$ , $(A^r)^s = A^{rs}$
✅행렬 A,B가 영행렬이 아니더라도 그 곱의 결과는 영행렬이 될 수 있다.(∃𝑨 ≠ 𝑶, ∃𝑩 ≠ 𝑶 ⇒ 𝑨𝑩 = 𝑶 )
$\mathbf{A} = \begin{pmatrix}
1 & 0 \
0 & 0
\end{pmatrix}, \quad
\mathbf{B} = \begin{pmatrix}
0 & 0 \
0 & 1
\end{pmatrix}, \quad
\AB=\begin{pmatrix}
0 & 0 \
0 & 0
\end{pmatrix} = \mathbf{O}$
가우스 소거법
선형 방정식을 풀거나 행렬을 다룰 때 사용되는 방법.
$$
\begin{cases}a_{11}x + a_{12}y + a_{13}z = b_1 \a_{21}x + a_{22}y + a_{23}z = b_2 \a_{31}x + a_{32}y + a_{33}z = b_3\end{cases}
$$
위와 같은 연립방정식을 행렬과 벡터를 이용해
계수행렬 A, 미지수행렬 X, 상수행렬 B로 나타내면 아래와 같다.
$\mathbf{AX} = \mathbf{B}
\ \
\mathbf{A} =
\begin{pmatrix}
a_{11} & a_{12} & a_{13} \
a_{21} & a_{22} & a_{23} \
a_{31} & a_{32} & a_{33}
\end{pmatrix}, \quad
\mathbf{X} =
\begin{pmatrix}
x \
y \
z
\end{pmatrix},
\mathbf{B} =
\begin{pmatrix}
b_1 \
b_2 \
b_3
\end{pmatrix}$
그리고 계수행렬과 상수행렬을 묶어 확대행렬
(A|B)
을 만들 수 있다.
$(A|B) =
\begin{pmatrix}
a_{11} & a_{12} & a_{13} & \vert & b_1 \
a_{21} & a_{22} & a_{23} & \vert & b_2 \
a_{31} & a_{32} & a_{33} & \vert & b_3
\end{pmatrix}$
확대행렬을 통해 해를 구할 수 있다.
기본행 연산
해를 구하기 위해, 계산을 용이하게 하기 위해 식을 변형하는 작업(3가지)
(1) 행 교환 (row interchange) 연산 ( $R_{ij}$ )
- 두 행의 위치를 서로 바꾸는 연산
(2) 행 스케일링 (row scaling) 연산 ( $R_{i}(c)$ )
- 하나의 행에 0이 아닌 스칼라를 곱하는 연산
(3) 행 대체 (row replacement) 연산 ( $R_{ij}(c)$ )
- 하나의 행에 스칼라 곱을 해서 다른 행에 더하는 연산
- 예있을때,
$$- 행교환연산 ($R_{12}$)
- $\begin{pmatrix}4 & 5 & 6 \1 & 2 & 3 \7 & 8 & 9\end{pmatrix}$
- 행 스케일링 연산 $R_2(2)$
- $\begin{pmatrix}4 & 5 & 6 \8 & 10 & 12 \7 & 8 & 9\end{pmatrix}$
- 행 대체 연산($R_{32}(3)$)
- $\begin{pmatrix}4 & 5 & 6 \8 & 10 & 12 \25 & 29 & 33\end{pmatrix}$
- $$
R =
\begin{pmatrix}
4 & 5 & 6 \
1 & 2 & 3 \
7 & 8 & 9
\end{pmatrix}
행제형 행렬(row echelon matrix)
행렬을 정형화하여 계산을 단순화하고 행렬의 특성을 분석.
아래 세 가지 조건을 만족하는 행렬을 행사다리꼴(계단형식)이라고 한다.
- 영행이 아닌 행은 영행의 위에 있다.
- $\begin{pmatrix}
0 & 2 & 3 \
0 & 0 & 4 \
0 & 0 & 0
\end{pmatrix}$ - 영행이 아닌 행의 첫 번째 0이 아닌 원소를 그 행의 선도원소라 하는데,모든 선도원소는 1이다.
- $\begin{pmatrix}
1 & 2 & 3 \
0 & 1 & 4 \
0 & 0 & 0
\end{pmatrix}$ - 주어진 행의 선도원소는 그 아래 행의 선도원소보다 왼쪽에 있다.
- $\begin{pmatrix}
1 & 2 & 3 \
0 & 1 & 4 \
0 & 0 & 1
\end{pmatrix}$
소거 행제형 행렬(reduced row echelon matrix)
: 가우스 소거법을 적용한 후 더 엄격한 형태로 행렬을 정형화하여 계산을 단순화하고 해를 구한다.
위의 3가지 조건에 더해서,
- 선도원소가 포함된 열에서 선도원소를 제외한 모든 원소는 0이다.
- 예제 풀이
- $\begin{pmatrix}
1 & 0 & 0 & 3 \
0 & 1 & 0 & 2 \
0 & 0 & 1 & 1
\end{pmatrix}$
행렬의 종류
****정방행렬 (square matrix)
정사각형의 행렬! 즉, n X n 행렬.(n차 정방행렬)
$\begin{pmatrix}
1 & 2 & 3 \
4 & 5 & 6 \
7 & 8 & 9
\end{pmatrix}$
****대각행렬(diagonal matrix)
n차 정방행렬에서, 대각원소 이외의 모든 원소가 0인 행렬
즉, 𝒊 ≠ 𝒋이면 𝒂𝒊𝒋 = 𝟎이다.
$\begin{pmatrix}
2 & 0 & 0 \
0 & 3 & 0 \
0 & 0 & 4
\end{pmatrix}$
****단위행렬 (unit matrix)
𝒏차 정방행렬에서 대각원소가 모두 1이고 나머지 원소는 모두 0인 행렬
$\begin{pmatrix}
1 & 0 & 0 \
0 & 1 & 0 \
0 & 0 & 1
\end{pmatrix}$
****대칭행렬(symmetric matrix)
𝒏차 정방행렬에서 $a_{ij} = a_{ji}$ 인행렬
$\begin{pmatrix}
1 & 2 & 3 \
2 & 4 & 5 \
3 & 5 & 6
\end{pmatrix}$
****역대칭행렬(skew symmetric matrix)
$a_{ij} = -a_{ji}$이고, 대각원소가 모두 0인 행렬.
$\begin{pmatrix}
0 & 1 & -2 \
-1 & 0 & 3 \
2 & -3 & 0
\end{pmatrix}$
****삼각행렬(triangular matrix)
상삼각행렬: $\begin{pmatrix}
1 & 2 & 3 \
0 & 4 & 5 \
0 & 0 & 6
\end{pmatrix}
i>j일때, a_{ij}=0$
하삼각행렬:$\begin{pmatrix}
1 & 0 & 0 \
4 & 5 & 0 \
7 & 8 & 9
\end{pmatrix}
i<j일때, a_{ij}=0$
****전치행렬 (transpose matrix)
𝒎 × 𝒏 행렬 𝑨가 있을 때, 𝑨 의 행과 열을 서로 교환한 행렬(𝒏 × 𝒎)
$A=\begin{pmatrix}
1 & 2 & 3 \
4 & 5 & 6 \
7 & 8 & 9
\end{pmatrix}$$일때, A^T=\begin{pmatrix}
1 & 4 & 7 \
2 & 5 & 8 \
3 & 6 & 9
\end{pmatrix}$
****역행렬 (inverse matrix)
𝒏 차 정방행렬 𝑨, 𝑩가 주어졌을 때, 𝑨𝑩 = 𝑩𝑨 = $I_n$인 행렬 𝑩가 존재하는 경우 행렬 𝑨 를 역가능(invertible)하다고 하며, 행렬 𝑩 를 행렬 𝑨의 역행렬이라고 하고 $A^{-1}$로 표기한다.
$A=\begin{pmatrix}
1 & 2 \
3 & 4
\end{pmatrix}$$A^{-1}=
\begin{pmatrix}
-2 & 1 \
1.5 & -0.5
\end{pmatrix}$
$\text{A} \times A^{-1}:
\begin{pmatrix}
1 & 2 \
3 & 4
\end{pmatrix}
\times
\begin{pmatrix}
-2 & 1 \
1.5 & -0.5
\end{pmatrix}
=
\begin{pmatrix}
1 & 0 \
0 & 1
\end{pmatrix}
\
\text{A}^{-1} \times A:
\begin{pmatrix}
-2 & 1 \
1.5 & -0.5
\end{pmatrix}
\times
\begin{pmatrix}
1 & 2 \
3 & 4
\end{pmatrix}
=
\begin{pmatrix}
1 & 0 \
0 & 1
\end{pmatrix}$
부울행렬(boolean matrix)
행렬의 모든 원소가 부울값(0 or 1)으로만 구성된 행렬.
부울행렬의 합(join)
크기가 𝒎 × 𝒏인 두 행렬 𝑨 =[𝒂𝒊𝒋]와 𝑩 =[𝒃𝒊𝒋]가 부울행렬일 때,
(1) 𝑨와 𝑩의 합(join)은 (𝒊, 𝒋) 원소가 𝒂𝒊𝒋 ∨ 𝒃𝒊𝒋인 부울행렬 𝑪 이며, 𝑪 = 𝑨 ∨ 𝑩 로 나타낸다.
$$
𝑨 =
\begin{pmatrix}
\text{true} & \text{false} \
\text{false} & \text{true}
\end{pmatrix}
\text{,}
\quad 𝑩 = \begin{pmatrix}
\text{false} & \text{true} \
\text{true} & \text{false}
\end{pmatrix}
\
\text{Then the join 𝑪 = 𝑨 ∨ 𝑩 is:}\
𝑪 =
\begin{pmatrix}
\text{true} \lor \text{false} & \text{false} \lor \text{true} \
\text{false} \lor \text{true} & \text{true} \lor \text{false}
\end{pmatrix}
=
\begin{pmatrix}
\text{true} & \text{true} \
\text{true} & \text{true}
\end{pmatrix}
$$
부울행렬 교차(meet)
𝑨와 𝑩의 교차(meet)는 (𝒊, 𝒋) 원소가 𝒂{ij} ∧ 𝒃{ij} 인 부울행렬 𝑪 이며, 𝑪 = 𝑨 ∧ 𝑩로 표기한다.
$𝑨 =
\begin{pmatrix}
\text{true} & \text{false} \
\text{false} & \text{true}
\end{pmatrix},
𝑩 = \begin{pmatrix}
\text{false} & \text{true} \
\text{true} & \text{false}
\end{pmatrix}
\
\text{Then the meet 𝑪 = 𝑨 ∧ 𝑩 is:}
\
𝑪 =
\begin{pmatrix}
\text{true} \land \text{false} & \text{false} \land \text{true} \
\text{false} \land \text{true} & \text{true} \land \text{false}
\end{pmatrix}
=
\begin{pmatrix}
\text{false} & \text{false} \
\text{false} & \text{false}
\end{pmatrix}$
부울 곱(boolean product)
𝒎 × 𝒏 행렬 𝑨 =[$a_{ij}$]와, 𝒏 × 𝒍 행렬 𝑩 =[$b_{ij}$]가 부울행렬일 때,
부울곱은 𝒎 × 𝒍 크기의 부울행렬 𝑪이며 𝑪 = 𝑨⨀𝑩 로 표기한다.
$𝑪{ij} = 𝑨{ik} \land 𝑩_{kj} \quad \text{for } 1 \leq i \leq 𝒎, 1 \leq j \leq 𝒍$
$\text{즉, } 𝑪 = [𝒄{𝒊𝒋}] \quad \text{where } 𝒄{ij} = 𝒂{𝒊𝒌} \land 𝒃{𝒌𝒋}$
$$
𝑨 =
\begin{pmatrix}
\text{True} & \text{False} & \text{true} \
\text{false} & \text{true} & \text{false}
\end{pmatrix}
\
𝑩 =
\begin{pmatrix}
\text{false} & \text{true} \
\text{true} & \text{false} \
\text{false} & \text{true}
\end{pmatrix}
\
\text{Then the Boolean product 𝑪 = 𝑨ㅇ𝑩 is:}
\
𝑪 =
\begin{pmatrix}
\text{false} \land \text{false} & \text{true} \land \text{true} \
\text{false} \land \text{true} & \text{true} \land \text{false}
\end{pmatrix}
=
\begin{pmatrix}
\text{false} & \text{true} \
\text{false} & \text{false}
\end{pmatrix}
$$
'Computer Science > 이산수학' 카테고리의 다른 글
[이산수학] 그래프 : 용어(동형,방향,무향...), 탐색(워크,트레일,경로), 종류(완전,이분,정규), 표현(발생/인접행렬, 인접리스트), 오일러투어, 4색정리, 해밀턴경로 (0) | 2024.06.22 |
---|---|
[이산수학] 부울대수(용어/쌍대성원리/간소화), 논리회로, 논리게이트(AND,OR,NOT,NAND,NOR,XOR...) (0) | 2024.06.22 |
[이산수학] 관계 : 표현법, 성질(반사,대칭,추이), 종류(역,합성,동치) (0) | 2024.06.22 |
[이산수학] 집합론 : 표시법, (진)부분집합, 서로소, 분할, 멱집합, 연산(합,교,차,여,곱), 대수법칙 (0) | 2024.06.22 |
[이산수학] 증명 : 용어(공리, 정리) 직접 증명법, 귀납법, 간접 증명법(대우,모순,존재,전수) (2) | 2024.06.22 |
[이산수학] 논리와 명제 : 논리기호, 합성명제, (쌍)조건 명제, 한정자, 추론 (0) | 2024.06.22 |