[선형대수학] 선형연립방정식과 역행렬

선형연립방정식 system of linear equations과 역행렬 관련 내용을 정리합니다.

역행렬

Inverse Matrix

Invertibility 가역성
$A^{-1} A = A A^{-1} = I$ 식이 성립하면, 행렬 $A$의 역행렬은 $A^{-1}$이다.
( $AB = BA = I$ 성립하면, $B$는 행렬 $A$의 역행렬이다. ⇒ $B = A^{-1}$, $A = B^{-1}$ )

역행렬의 성질

  • $(AB)^{-1} = B^{-1} A^{-1}$
  • $(A B C)^{-1}=C^{-1} B^{-1} A^{-1}$
  • $\left(A^{T}\right)^{-1}=\left(A^{-1}\right)^{T}$
    전치 행렬의 역행렬은 역행렬의 전치행렬과 같다. ⇒ 대칭행렬의 역행렬도 대칭행렬이다.
  • 대각행렬의 역행렬은 각 대각성분의 역수로 이루어진 대각행렬과 같다.
    $\left[\begin{array}{cccc}\lambda_{1} & 0 & \cdots & 0 \\0 & \lambda_{2} & \cdots & 0 \\\vdots & \vdots & \ddots & \vdots \\0 & 0 & \cdots & \lambda_{N}\end{array}\right]^{-1}=\left[\begin{array}{cccc}\frac{1}{\lambda_{1}} & 0 & \cdots & 0 \\0 & \frac{1}{\lambda_{2}} & \cdots & 0 \\\vdots & \vdots & \ddots & \vdots \\0 & 0 & \cdots & \frac{1}{\lambda_{N}}\end{array}\right]$
# Invertibility
M = tf.constant([[1, 2], [1, 4]], dtype=tf.float32)
M_inv = tf.constant([[2, -1], [-0.5, 0.5]])
tf.matmul(M_inv, M) # 두 행렬의 곱 : tf.matmul

# 원래 행렬과 역행렬의 곱 = 항등행렬
<tf.Tensor: shape=(2, 2), dtype=float32, numpy=array([[1., 0.],[0., 1.]], dtype=float32)> 

행렬식 - 가역행렬 vs 특이행렬

all matrices have inverses 모든 행렬이 역행렬을 가지는 것은 아니다.

역행렬을 가지기 위한 2가지 조건

  1. square matrix 정방행렬이어야 한다
  2. $det(A) \neq 0$ 행렬식이 0이 아니어야한다.
  • 역행렬을 가지는 행렬 : 가역행렬(Invertible matrix), 정칙행렬(regular matrix), 비특이행렬(non-singular matrix)
  • 역행렬이 존재하지 않는 행렬 : 비가역행렬(non-invertible matrix), 특이행렬(singular matrix), 퇴화행렬(degenerate matrix)

역행렬 계산

  • $A$의 역행렬은 다음과 같은 방식으로 구할 수 있다.
    즉, $A^{-1}=\frac{\mathbf{1}}{\operatorname{det}(A)}\left[\begin{array}{cc}
    d & -b \\
    -c & a
    \end{array}\right]$
    ⇒ $\begin{array}{c}\mathbf{A}=\left[\begin{array}{ll}a & b \\c & d
    \end{array}\right]\ \rightarrow A^{-1}=\frac{1}{a d-b c}\left[\begin{array}{cc}d & -b \\c & a\end{array}\right]\end{array}$
  • 역행렬을 계산하기 위해서 Gauss-jordan 알고리즘을 활용하기도 한다.

가역행렬 예시 $det(A) \neq 0$

$2\times 2$ 정방행렬 $A$가 다음과 같이 주어졌을 때, 역행렬은 존재한다.
$\operatorname{det}(A)=\left|\begin{array}{cc}
4 & 5 \\ 2 & 1
\end{array}\right|=4 * 1-5 *-2=14 \neq 0$

특이행렬 예시 $det(A) = 0$

$3\times 3$ 정방행렬 $C$가 다음과 같이 주어졌을 때, 역행렬은 존재하지 않는다.
$\operatorname{det}(C)=\left|\begin{array}{ccc}
1 & 2 & -1 \\
5 & 3 & 2 \\
6 & 0 & 6
\end{array}\right|\\=-2\left|\begin{array}{cc}
5 & 2 \\
6 & 6
\end{array}\right|+3\left|\begin{array}{cc}
1 & -1 \\
6 & 6
\end{array}\right|+0\left|\begin{array}{cc}
1 & -1 \\
5 & 2
\end{array}\right|\\
=-2(5 * 6-2 * 6)+3(1 * 6-(-1) * 6)-0(1 * 2-(-1) * 5)=0$

선형연립방정식과 역행렬

system of linear equations 선형 연립방정식/연립일차방정식 : 복수의 미지수를 포함하는 복수의 선형 방정식

  • 선형연립방정식을 적용해 머신러닝문제를 간단히 나타내고 이해할 수 있다.

  • 역행렬의 정의를 이용해 선형연립방정식의 해를 구할 수 있다.

선형연립방정식의 행렬-벡터 표현

선형연립방정식

$\begin{array}{cccccc}
a_{11} x_{1} & + & a_{12} x_{2} & +\cdots+ & a_{1 M} x_{M} & = & b_{1} \\
a_{21} x_{1} & + & a_{22} x_{2} & +\cdots+ & a_{2 M} x_{M} & = & b_{2} \\
\vdots & & \vdots & & \vdots & & \vdots \\
a_{N 1} x_{1} & + & a_{N 2} x_{2} & +\cdots+ & a_{N M} x_{M} & = & b_{N}
\end{array}
$

  • $M$개의 미지수 $x_{1}, x_{2}, \cdots, x_{M}$
  • $N$개의 선형연립방정식
  • 방정식의 계수가 $a,b$

행렬-벡터 연산으로 표현한 선형연립방정식

$A x=b \rightarrow \begin{bmatrix} a_{11} & a_{12} & \cdots & a_{1M} \\ a_{21} & a_{22} & \cdots & a_{2M} \\ \vdots & \vdots & \ddots & \vdots \\ a_{N1} & a_{N2} & \cdots & a_{NM} \\ \end{bmatrix} \begin{bmatrix} x_1 \\ x_2 \\ \vdots \\ x_M \end{bmatrix} = \begin{bmatrix} b_1 \\ b_2 \\ \vdots \\ b_N \end{bmatrix}
$

  • coefficient matrix 계수 행렬
    $A=\begin{bmatrix} a_{11} & a_{12} & \cdots & a_{1M} \\ a_{21} & a_{22} & \cdots & a_{2M} \\ \vdots & \vdots & \ddots & \vdots \\ a_{N1} & a_{N2} & \cdots & a_{NM}\end{bmatrix} $
  • unknown vector 미지수벡터
    $x=\begin{bmatrix} x_1 \\ x_2 \\ \vdots \\ x_M \end{bmatrix}$
  • constant vector 상수 벡터
    $b=\begin{bmatrix} b_1 \\ b_2 \\ \vdots \\ b_N \end{bmatrix}$

Augmented matrix of a linear system

선형 연립방정식들을 $A x=b $ 로 행렬/벡터를 이용해 표현하고, 이를 통해 구한 계수행렬 $A$, 상수벡터 $b$를 간단히 구할 수 있었다. 일반적으로는 계수행렬에 상수항을 결합한 형태로 계수행렬을 표현하는데, 이를 Augmented matrix 라고 하고 다음과 같이 나타낸다.

$\left[\begin{array}{ll}
A & \vdots & \mathbf{b}
\end{array}\right]=\left[\begin{array}{cccccc}
a_{11} & a_{12} & \cdots & a_{1 n} & \vdots & b_{1} \\
a_{21} & a_{22} & \cdots & a_{2 n} & \vdots & b_{2} \\
\vdots & \vdots & \ddots & \vdots & \vdots & \vdots \\
a_{m 1} & a_{m 2} & \cdots & a_{m n} & \vdots & b_{m}
\end{array}\right]$

선형연립방정식의 해

방정식 수 $N$, 미지수 수 $M$에 따라 해를 구하는 방법이 달라진다.

  1. $N = M$ 방정식 수가 미지수 수와 동일한 경우 ⇒ 선형연립방정식 $(det(A) \neq 0 인 경우)$
  2. $N < M$ 방정식 수가 미지수 수보다 적은 경우 ⇒ 무수히 많은 해가 존재할 수 있다.
  3. $N > M$ 방정식 수가 미지수 수보다 많은 경우 ⇒ 모든 조건을 만족하는 해가 하나도 존재하지 않을 수 있다.
    (최소자승문제)

1. 방정식 수 = 미지수 수

선형연립방정식을 행렬-벡터 표현한 뒤, 역행렬의 정의$A^{-1} A = A A^{-1} = I$를 이용해 해를 구할 수 있다.

역행렬 존재 조건을 만족하는 선형연립방정식은 역행렬 정의를 이용해 해를 구한다.

  1. $M=N$
    미지수의 수와 방정식의 수가 같은 선형 연립방정식 ⇒ 계수행렬 $A$는 정방행렬이 된다.
  2. $det(A)\neq0$

역행렬의 정의와 선형연립방정식의 해

$Ax = b$
$A^{-1}Ax = A^{-1}b$
$Ix = A^{-1}b$ ⇐ 역행렬의 정의 $A^{-1} A = I$
$x = A^{-1}b$

2. 방정식 수 < 미지수 수

$N < M$ 방정식 수가 미지수 수보다 적은 경우 ⇒ 무수히 많은 해가 존재할 수 있다.

하기 두 식을 만족하는 해를 구하는 경우를 예를 들어보자.
$x_{1}+x_{2} = 2$ , $x_{2}+x_{3} = 2$
⇒ $x_{1}=x_{3}=2-x_{2}$ 식을 만족하는 무수히 많은 해가 존재한다.

$x=\left[\begin{array}{l}2 \\0 \\2\end{array}\right], x=\left[\begin{array}{l}1 \\1 \\1\end{array}\right], x=\left[\begin{array}{l}0 \\2 \\0\end{array}\right], \cdots$

3. 방정식 수 > 미지수 수 : 최소자승문제

$N > M$ 방정식 수가 미지수 수보다 많은 경우 ⇒ 모든 조건을 만족하는 해가 하나도 존재하지 않을 수 있다.
(최소자승문제)


Source&Reference: 김도형의 데이터사이언스스쿨