두 번째 시간에는 elimination을 다룬다. 소거법은 뒤에서 꾸준히 다루기도 하고, 이로부터 통찰할 수 있는 점이 매우 많기 때문에 확실히 짚고 의미를 음미하는 것이 좋을 듯 하다.
Elimination (= Gauss Elimination, Row reduction)
- 기본행 연산을 통해 Matrix A를 Upper triangular matrix U로 변환
- Upper triangular matrix에서 얻을 수 있는 Pivot은 매우매우매우 중요
ex) elimination
x+2y+z3x+8y+z4y+z=2=12=2
위 방정식은 아래와 같은 Matrix로 표현할 수 있다.
⎣⎢⎡130284111⎦⎥⎤⎣⎢⎡xyz⎦⎥⎤=⎣⎢⎡2122⎦⎥⎤
위 행렬에서 Coefficient에 해당하는 행렬을 대상으로 gauss elimination을 하는 과정은 아래와 같다.
⎣⎢⎡130284111⎦⎥⎤→(1)⎣⎢⎡1002241−21⎦⎥⎤→(2)⎣⎢⎡1002201−25⎦⎥⎤=U
(1) : 2행에 1행의 3배를 뺌
(2) : 3행에 2행의 2배를 뺌
따라서 elimination을 통해 matrix A를 matrix U로 변환할 수 있으며, 이 때 matrix U는 upper triangular matrix이다.
Matrix U에서 각 행에 0이 아닌 처음 나온 숫자를 pivot이라고 하며, 이 pivot으로부터 우리는 아주 많은 정보를 알 수 있다.
또한 Matrix U에서 주대각성분 아래의 숫자들은 전부 0으로, 계단 형태로 나타나야 한다.
만일 m번째 행의 n번째 열에서 0이 아닌 성분이 처음으로 나오고, m+1번째 행의 n-1번째 열에서 0이 아닌 성분이 처음으로 나왔다면 순서가 엇갈렸기 때문에 이 경우에는 Row exchange를 통해 순서를 바꿔줘야 한다.
만일 Row exchange가 불가능하다면 (추후 다룰 예정이지만) non-invertible matrix이기 때문에 현재 입장에서는 문제를 풀 수 없는 경우가 된다.
위 예시로부터 Matrix U를 얻을 수는 있었지만, 구체적으로 방정식을 풀 수는 없었다.
coefficient matrix에 vector b를 붙인 augmented matrix와 back substitution을 통해 해당 방정식을 풀 수 있다.
ex) elimination with augmented matrix and back substitution
⎝⎜⎛1302841112122⎠⎟⎞→⎝⎜⎛1002241−21262⎠⎟⎞→⎝⎜⎛1002201−2526−10⎠⎟⎞
위 Augmentd matrix의 left side는 기존 Matrix A를 Upper triangular matrix로 변환하는 과정을 나타내고, right side는 coefficient matrix의 변화에 따른 vector b가 받는 영향을 나타낸다.
Augmented matrix의 마지막 결과로부터 유추할 수 있는 사실은
x+2y+z2y−2z5z=2=6=−10
이므로, z=−2임을 알 수 있다. 이렇게 확정적으로 얻을 수 있는 미지수 하나로부터 back substitution을 통해 차례로 대입해 나가며 방정식 문제를 풀 수 있다.
지금까지 elimination을 통해 Matrix A를 Matrix U로 변환하는 과정과, Augmented matrix와 back substitution을 활용해 구체적으로 방정식을 푸는 방법을 확인했다.
그렇다면, Matrix A를 U로 바꿔주는 어떤 행렬이 분명 있을텐데, 그 행렬은 무엇일까?
Elimination matrix
Matrix A를 U로 바꾸는 과정을 살펴보면, 어떤 행의 n배를 다른 행에 더하고 빼는 과정을 반복한다.
그렇다면 Matrix A와 어떤 행렬을 곱해 위 elimination을 표현할 수 있지 않을까?
위 과정을 행렬곱으로 표현하기 위해서는 elimination 과정을 기록할 행렬이 필요하다.
ex) Elmination matrix
⎣⎢⎡130284111⎦⎥⎤→(1)⎣⎢⎡1002241−21⎦⎥⎤→(2)⎣⎢⎡1002201−25⎦⎥⎤=U
(1) : 1행의 3배를 2행에서 뺀다. 이를 표현하면 ⎣⎢⎡1−30010001⎦⎥⎤ 로 표현할 수 있다.
여기서 첫 번째 행과 세 번째 행은 (1) 연산에서 변화가 없으므로 Identity matrix와 똑같이 작성하고,
두 번째 행은 첫 번쨰 행의 -3배를 더한 것이므로 위와 같이 표현할 수 있다.
(2) : 2행의 2배를 3행에서 뺀다. (1)과 같은 방법으로 ⎣⎢⎡10001−2001⎦⎥⎤ 로 표현할 수 있다.
여기서 첫 번째 행과 두 번째 행은 변화가 없으므로 Identity matrix와 똑같이 작성하고,
세 번째 행은 두 번째 행의 -2배를 더한 것이므로 위와 같이 표현할 수 있다.
우리는 이를 통해 elimination 과정을 저장한 두 행렬을 얻을 수 있다. (1)번 과정에서 얻은 행렬을 E21, (2)번 과정에서 얻은 행렬을 E32라고 했을 때, elimination은 E32E21A=U라고 볼 수 있다! 따라서 E32E21=E가 A의 elimination matrix임을 알 수 있다.
그런데, 위 식에서 Elimination matrix를 왜 A의 오른쪽에 곱했을까? 왼쪽에 곱하면 다른 결과가 나올까?
Permutation matrix
행렬 곱은 교환법칙이 성립하지 않는다. 이를 Permutation matrix를 이용해 살펴보고자 한다.
Row exchange
P[acbd]=[cadb]를 가능하게 하는 P를 찾아보자. 우리는 P=[0110]임을 어렵지 않게 알 수 있다.
Column exchange
반대로, 위 예시에서 P[acbd]=[bcad]를 가능하게 하는 P를 찾아보자. 가능할까?
가능한 P는 없다. PA=B에서 Matrix A는 Matrix P를 이용한 Row operation이 일어나기 때문이다. 즉, 행렬의 왼쪽에 다른 행렬을 곱한다면 이는 Row operation을 발생시킨다.
[acbd]P=[bcad]는 가능할까? P=[0110]일 때 두 열을 바꿀 수 있음을 알 수 있다.
이를 통해 행렬의 오른쪽에 다른 행렬을 곱한다면 Column operation이 발생된다는 것을 알 수 있다.
우리는 여기서 행렬의 왼쪽에 곱하는 것과 오른쪽에 곱하는 것은 서로 다른 성질의 Operation이 발생한다는 것을 알 수 있다. 즉, 교환법칙이 성립하지 않는다는 것을 알 수 있다.
이를 통해 위 Elimination matrix를 A의 왼쪽에 곱하는 이유 또한 알 수 있다.
Elimination 과정은 Row operation이기 때문에 이를 행렬곱으로 표현하기 위해서는 Elimination matrix를 A의 왼쪽에 두어 곱해야 한다.
U→A로의 복원
위 Elimination matrix와 A를 곱해 U 행렬로의 변환이 가능함을 알 수 있었다.
그렇다면 U행렬을 다시 A행렬로의 복원은 어떻게 할 수 있을까?
우리는 이를 Elimination matrix에서 힌트를 얻을 수 있다!
위 예제에서 E21=⎣⎢⎡1−30010001⎦⎥⎤을 구했었다. U를 다시 A로 만드는 방법은 elimination matrix를 다시 identity matrix로 복원하는 과정으로부터 알 수 있다.
E21은 1행의 3배를 2행에서 뺐다는 사실을 알려준다. 이를 반대로 취하면 1행의 3배를 2행에 더해주면 된다. 즉, E21를 역으로 돌리는 행렬은 ⎣⎢⎡130010001⎦⎥⎤이다.
⎣⎢⎡130010001⎦⎥⎤⎣⎢⎡1−30010001⎦⎥⎤=I이므로, E21을 역으로 돌리는 행렬과 E21의 곱이 Identity matrix임을 알 수 있다. 우리는 이를 통해 E21의 역행렬인 E21−1을 얻을 수 있다.