✔ 들어가며

지난 Lec 1.에서는 선형대수학에서 무엇을 배울지, row picture, column picture 등에 대해서 배웠고 Ax=bAx=b라는 선형방정식에 대한 개념을 배웠다.
이번 강의는 소거법이라고 하는 Elimination에 대해 공부를 한다.

Elimination은 보통 성공한다. 그리고 성공한다면 Ax=bAx=b의 solution을 가진다. 연립방정식의 해를 구할 때 이를 행렬 형태로 표현할 수 있고 소거를 통해 효율적으로 solution을 구할 수 있다는 말이다.

elimination 이후에는 solution을 구하기 위한 back substitution (역대입)이라는 단계가 존재한다. 이제 본격적으로 아래에서 Elimination에 대해서 배워보자.

🌌 Elimination

아래와 같이 3개의 식과 3개의 미지수가 있는 연립방정식이 있다.

x+2y+z=23x+8y+z=124y+z=2\begin{aligned} x + 2y + z &= 2\\ 3x + 8y + z &= 12\\ 4y + z &= 2 \end{aligned}

이 연립방정식을 Ax=bAx=b의 형태로 나타내기 위해서 행렬 AA를 정의해보자.

A=[121381041]A = \begin{bmatrix} 1 & 2 & 1 \\ 3 & 8 & 1 \\ 0 & 4 & 1 \\ \end{bmatrix}

그리고 이제 단계적으로 Elimination을 수행해볼 것이다.

  • 첫번째 단계
    첫 번째 방정식을 올바른(right) 수로 곱하고 2번째 식에 뺀다.
    → 목적은 2번째 식에서 xx 부분을 없애기 위함이다.
    → 2번째 식에서 xx를 없애기 위해서는 첫번째 식의 x의 계수(pivot)에 어떤수를 곱해야한다. 이때 우리는 첫번째 식의 x의 계수를 pivot이라고 부르며, 첫번째 pivot은 1이 된다.
    → 그렇다면 앞서 말한 올바른 수(right number)는 3이 되고, 첫번째 식에 3을 곱해서 2번째 식에 뺀다. 두번째 식은 0x+2y2z=60x + 2y -2z = 6이 된다.

    그 다음으로는 row3,col1row_3, col_1 위치의 xx 계수를 0으로 만들어야하는데 이미 0이다.

    [121381041][121022041]\begin{bmatrix} 1 & 2 & 1 \\ 3 & 8 & 1 \\ 0 & 4 & 1 \\ \end{bmatrix} \rightarrow \begin{bmatrix} 1 & 2 & 1 \\ 0 & 2 & -2 \\ 0 & 4 & 1 \\ \end{bmatrix}

    이렇게 우리는 첫번째 pivot 밑에 있는 xx의 계수에 해당하는 것들을 0으로 만들어주면 된다. 이제 다음 단계로 넘어가자.

  • 두번째 단계
    이제 식 2개에서 x는 사라지고 미지수 2개가 되었다.
    2번째 pivotrow2,col2row_2, col_2 위치의 2가 된다.
    row3,col2row_3, col_2 위치의 4를 소거하기 위한 multiplier는 무엇일까?

    2번째 pivot 2에 multiplier 2를 곱하여 빼면 된다!
    따라서 마지막 row는 세번째 pivot 5를 제외한 나머지 미지수들이 제거되었다.

    [121022041][121022005]\begin{bmatrix} 1 & 2 & 1 \\ 0 & 2 & -2 \\ 0 & 4 & 1 \\ \end{bmatrix} \rightarrow \begin{bmatrix} 1 & 2 & 1 \\ 0 & 2 & -2 \\ 0 & 0 & 5 \\ \end{bmatrix}

이렇게 elimination이 끝났다. 이렇게 얻어진 새로운 matrix는 Upper triangular matrix UU라고 부른다. 상삼각행렬이라고도 부르며 행렬의 대각 성분 아래쪽으로 있는 모든 원소들이 0인 행렬을 의미한다.

U=[121022005]U = \begin{bmatrix} 1 & 2 & 1 \\ 0 & 2 & -2 \\ 0 & 0 & 5 \\ \end{bmatrix}

즉, Elimination의 목적은 A에서 U를 얻기 위함이다라고 결론을 내릴 수 있다.

✔ 주의할 점은 pivot은 0이 될수 없다!

다음으로는 Failure Case에 대해서 알아보자.
바로 위에서 pivot은 0이 될수 없다고 했었다.

  • 만약 첫번째 pivot이 1이 아니라 0이라면?
    이 경우에는 더 낮은 방정식 row들끼리 위치를 바꾸어 적절한 pivot을 얻게하면 된다. →이를 row exchange라고 한다.
  • 만약 위에서 다루었던 행렬 AArow2,col2row_2, col_2 원소가 8이 아니라 6이라면 두번째 pivot은 0이 된다. 이럴 경우 row2와 row3의 위치를 바꾸면 된다.
    [121361041][121002041][121041002]\begin{bmatrix} 1 & 2 & 1 \\ 3 & 6 & 1 \\ 0 & 4 & 1 \\ \end{bmatrix} \rightarrow \begin{bmatrix} 1 & 2 & 1 \\ 0 & 0 & -2 \\ 0 & 4 & 1 \\ \end{bmatrix} \rightarrow \begin{bmatrix} 1 & 2 & 1 \\ 0 & 4 & 1 \\ 0 & 0 & -2 \\ \end{bmatrix}
  • 하지만, row3,col3row_3, col_3이 -4였다면 마지막 pivot은 0이 되고 역행렬이 존재하지 않게 된다. (Not invertible)Failure case
    [121381041][121022044][121022000]\begin{bmatrix} 1 & 2 & 1 \\ 3 & 8 & 1 \\ 0 & 4 & 1 \\ \end{bmatrix} \rightarrow \begin{bmatrix} 1 & 2 & 1 \\ 0 & 2 & -2 \\ 0 & 4 & -4 \\ \end{bmatrix} \rightarrow \begin{bmatrix} 1 & 2 & 1 \\ 0 & 2 & -2 \\ 0 & 0 & 0 \\ \end{bmatrix}

temporal(일시적) failure : row를 바꾸며 해결
완전한 failure : pivot이 0이 되고 역행렬은 존재하지 않음

🌌 Back substitution

[1212381120412][121202260412][1212022600510]\left[ \begin{array}{ccc|c} 1 & 2 & 1 &2\\ 3 & 8 & 1 &12\\ 0 & 4 & 1 &2\\ \end{array} \right] \rightarrow \left[ \begin{array}{ccc|c} 1 & 2 & 1 &2\\ 0 & 2 & -2 &6\\ 0 & 4 & 1 &2\\ \end{array} \right] \rightarrow \left[ \begin{array}{ccc|c} 1 & 2 & 1 &2\\ 0 & 2 & -2 &6\\ 0 & 0 & 5 &-10\\ \end{array} \right]

back substitution(역대입)을 위해 우변을 원래 행렬에 붙였다. 이렇게 \vert를 기준으로 좌변과 우변을 붙인 형태의 행렬을 augmented matrix(첨가행렬)이라고 부른다.
위에서 보이듯 elimination 단계를 진행하면 그에 맞춰서 우변이 함께 변하는 것을 알 수 있다.

특히 마지막 augmented matrix는 bb가 아닌 cc라고 부르게 된다. (우변 bb가 최종적으로 변한 모습을 의미)
얻어진 UUcc를 이용해 다시 연립 방정식을 적으면 다음과 같다.

x+2y+z=22y2z=65z=10\begin{aligned} x + 2y + z &= 2\\ 2y - 2z &= 6\\ 5z &= -10 \end{aligned}

우리는 쉽게 zz부터 구해가면서 모든 solution을 구할 수 있다. z=2z=-2이며 순차적으로 y=1,x=2y=1, x=2가 된다.
Back substitution은 단순하게 elimination을 통해 구해진 최종 연립방정식을 순차적으로 풀어 모든 solution을 찾는 방법이다.

🌌 Elimination matrices : EE

위에서 배운 elimination 과정을 행렬로 표현할 수 있다. 이러한 elimination 과정을 담고 있는 행렬을 elimination matrix라고 부른다.

그전에 행렬 연산을 바라보는 시각을 정의해볼 것이다. 지난 강의에서 마지막에 다루었던 matrix multiplication에 대해 다시 생각해보자.

matrix A×column vector=column vector\text{matrix }A \times \text{column }vector = \text{column }vector

[_________][345]=[3×col1+ 4×col2+ 5×col3]\begin{bmatrix} \_ & \_ & \_ \\ \_ & \_ & \_ \\ \_ & \_ & \_ \\ \end{bmatrix} \begin{bmatrix} 3 \\ 4 \\ 5 \\ \end{bmatrix} = \begin{bmatrix} 3 \times col_1 \\ + \ 4 \times col_2 \\ + \ 5 \times col_3\\ \end{bmatrix}

(행렬 곱 컬럼은 컬럼) → A의 col들의 linear combination.
row vector×matrix A=row vector\text{row }vector \times \text{matrix }A = \text{row }vector

[127][_________]=[1×row1+ 2×row2+ 7×row3]\begin{bmatrix} 1 & 2 & 7\end{bmatrix} \begin{bmatrix} \_ & \_ & \_ \\ \_ & \_ & \_ \\ \_ & \_ & \_ \\ \end{bmatrix} = \begin{bmatrix} 1 \times row1 \\ + \ 2 \times row2 \\ + \ 7 \times row3\\ \end{bmatrix}

(행 곱 행렬은 행) → A의 row들의 linear combination.

그렇다면, Elimination의 첫번째 STEP처럼 row1row_1에 3을 곱해서 row2row_2에 빼는 행렬은 무엇일까?
그 답은 아래의 AA앞에 곱해진 행렬이 될 것이다.

[100310001][121381041]=[121022041]\begin{bmatrix} 1 & 0 & 0 \\ -3 & 1 & 0 \\ 0 & 0 & 1 \\ \end{bmatrix} \begin{bmatrix} 1 & 2 & 1 \\ 3 & 8 & 1 \\ 0 & 4 & 1 \\ \end{bmatrix} = \begin{bmatrix} 1 & 2 & 1 \\ 0 & 2 & -2\\ 0 & 4 & 1\\ \end{bmatrix}

첫번째 행이 [1 0 0][1\ 0\ 0]인 이유는 row1row_1에서는 아무것도 빼지 않았기 때문이고,
두번째 행이 [3 1 0][-3\ 1\ 0]인 이유는 위에서 살펴본 행 ×\times 행렬을 통해 [3×row1+1×row2+0×row3][-3 \times row_1 + 1 \times row_2 + 0 \times row_3]으로 해석가능하기 때문이다.
세번째 행은 아무것도 하지 않았기에 [0 0 1][0\ 0\ 1]이 된다.

이때 이 행렬은 기본 행열 (elementary matrix)가 되고 E라고 부른다.
그리고 특히 E21E_{21}이라고하며, 그 이유는 (2,1) 위치를 고치는 행렬이기 때문이다.

E21=[100310001]E_{21} = \begin{bmatrix} 1 & 0 & 0 \\ -3 & 1 & 0 \\ 0 & 0 & 1 \\ \end{bmatrix}

그 다음으로 Elimination의 두번째 STEProw2row_2에 2을 곱해서 row3row_3에 빼는 행렬 E32E_{32}를 구할 수 있다.

[100010021][121022041]=[121022005]\begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & -2 & 1 \\ \end{bmatrix} \begin{bmatrix} 1 & 2 & 1 \\ 0 & 2 & -2\\ 0 & 4 & 1\\ \end{bmatrix} = \begin{bmatrix} 1 & 2 & 1 \\ 0 & 2 & -2\\ 0 & 0 & 5\\ \end{bmatrix}

E32E_{32}인 이유는 (3,2) 위치를 수정하기 때문이고 두번째 pivot 2에서 2를 곱해 뺐으니 좌측 행렬의 마지막 행은 [0 2 1][0\ -2\ 1]이 됨을 쉽게 알 수 있다.

이제 두 elementary 행렬들을 하나의 행렬로 묶어서 표현할 필요가 있고 앞선 step들을 행렬식으로 표현하면 다음과 같다. → E32(E21A)=UE_{32}(E_{21}A) = U
이제 이 식에서 어떤 행렬이 A를 U로 유도했는지 생각하면 Elimination matrix를 구할 수 있다.
행렬식에서 결합법칙(associative law)이 성립하기에 (E32E21)A=U(E_{32}E_{21})A = U를 먼저 구해도 결과는 같다. 그러므로 E들을 먼저 곱하면 한번에 AAUU를 구해주는 matrix를 구할 수 있게 된다.

행렬곱에서 행렬간 순서를 바꿀수는 없지만 곱셈을 하는 순서는 변경 가능하다!

🌌 Permutation matrix : PP

그리고 다른 종류의 Elementary matrix(기본행렬)이 있다. 그것은 2개의 행을 교환하는 행렬이며 Permutation matrix(치환행렬)이라고 한다.
가령, [abcd]\begin{bmatrix} a & b \\ c & d \\ \end{bmatrix}와 같은 행렬이 있을 때 두 행을 바꾸려면 어떤 행렬을 곱해야할까?
답은 다음과 같이 쉽게 구할 수 있다.

[0110][abcd]=[cdab]\begin{bmatrix} 0 & 1 \\ 1 & 0 \\ \end{bmatrix} \begin{bmatrix} a & b \\ c & d \\ \end{bmatrix} = \begin{bmatrix} c & d \\ a & b \\ \end{bmatrix}

이때 치환 행렬은 PP로 부른다. P=[0110]P = \begin{bmatrix} 0 & 1 \\ 1 & 0 \\ \end{bmatrix}

쉬운 이해로 Identity matrix(단위 행렬)에서 행간위치를 바꾸는 것이 바로 PP를 구하는 방법이다.

그렇다면 column을 교환하는 PP는 무엇일까?
곱해지는 행렬의 좌측에 놓인다면 row에 대한 연산을 하기에 존재하지 않을 것이다. 하지만 우측에 놓는다면 column에 대한 연산을 할 수 있게 되며 다음과 같은 PP를 구할 수 있다.

[abcd][0110]=[badc]\begin{bmatrix} a & b \\ c & d \\ \end{bmatrix} \begin{bmatrix} 0 & 1 \\ 1 & 0 \\ \end{bmatrix} = \begin{bmatrix} b & a \\ d & c \\ \end{bmatrix}

→ row 연산은 왼쪽에~ col 연산은 오른쪽에~

🌌 Inverse matrix

E32E21E_{32}E_{21}를 계산하지 않는 더 좋은 방법이 있다. AAUU를 얻는 방법이 아니라 U에서 다시 A를 어떻게 얻는가를 보는 것이다.

그 방법은 inverse matrix를 이용하는 것이고 간단하게 inverse matrix에 대해서 알아보자. Inverse matrix의 표현은 A1A^{-1}과 같이 표현한다. (물론, inverse matrix가 없는 경우도 있다. = singular)
E21E_{21}에 대해서 예시를 살펴보자. 처음에는 3배를 해서 뺏지만(소거) 이번에는 3배를해서 더해야한다. 이 과정을 통해 Identity matrix II가 나오게 할 것이다.
Inverse matrix E1E^{-1}는 다음과 같이 구해진다.

[100310001][100310001]=[100010001]E1=[100310001]\begin{bmatrix} 1 & 0 & 0 \\ 3 & 1 & 0 \\ 0 & 0 & 1 \\ \end{bmatrix} \begin{bmatrix} 1 & 0 & 0 \\ -3 & 1 & 0 \\ 0 & 0 & 1 \\ \end{bmatrix}= \begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \\ \end{bmatrix} \\ E^{-1} = \begin{bmatrix} 1 & 0 & 0 \\ 3 & 1 & 0 \\ 0 & 0 & 1 \\ \end{bmatrix}

이번 강의에서는 EE의 inverse를 구하는 것까지 간략하게 inverse matrix에 대해서 알아보았다. 이후 강의에서 더 자세하게 다루니 여기까지만 이해해보도록 하자.

profile
나는야 척척'박사' & ML/DL & Coffee

2개의 댓글

comment-user-thumbnail
2023년 4월 20일

썸네일 너무 이뻐요 ㅎㅎ

1개의 답글