지금까지 우리는 임의의 직사각행렬(Rectangular Matrix)에 집중해 왔다. 이번 챕터부터는 주로 정방행렬(Square Matrix)에 관련된 내용들을 다룰 것이다. 이번 시간과 다음에 이어질 강의에서는 정방행렬의 행렬식(Determinant)에 관해 공부를 할 것이다. 사실 이 행렬식(Determinant)이 필요한 이유는 여러 가지가 있지만, 가장 큰 이유중 한 가지는 바로 고유값(Eigen Value)때문이다. 행렬식과 고유값에 대한 자세한 내용은 이후의 강의에서 공부하도록 하고 이번 강의에서는 행렬식의 속성과 특징들에 대해서 알아보도록 하자. 

 

 

1. 행렬식(Determinant)

 

행렬식(determinant)은 정방행렬(square matrix)에서만 정의되는 숫자이다. 모든 정방행렬은 이 수치를 가지며, 아래와 같이 표현한다. 

 

 

det A, 혹은 양쪽에 bar를 붙여서 |A|로 표현한다. 벡터의 크기를 표현할 때 bar를 양쪽에 두 개씩 붙이는 것( ||a|| )과 혼동하지 말자. 행렬식은 행렬의 행렬식(determinant of the matrix)이다. 

 

행렬식은 magic number와 같다. 이 하나의 숫자로 행렬의 모든 특성이나 속성을 표현할 순 없지만, 어떤 행렬의 가능한 많은 정보들을 압축하여 하나의 숫자에 담고 있다. 가령 수업시간에 많이 배웠던 내용이고 앞으로도 다시 배우겠지만, determinant(행렬이라는 단어와 혼동이 있을까 싶어 앞으로 행렬식이라는 표현보다 영문 표기를 쓰도록 하겠다)가 0이 아닌 경우 그 행렬이 역행렬이 존재함을 의미한다. 혹은 determinant가 0인 경우 행렬이 특이 행렬(singular matrix)임을 의미한다. 따라서 determinant는 어떤 행렬의 invertibility(역행렬의 존재 가능성)를 테스트하는데 사용된다. 수업시간에 determinant에 대해서 주로 이러한 내용에 관해 배웠을 것이다. 하지만 determinant는 이보다 많은 정보들을 담고 있다. 이제부터 하나씩 배워보도록 하자. 

 

사실 많은 학생들이 determinant를 배울 때 invertibility의 체크에 대한 내용과 계산 과정에 대해서만 배웠을 거라고 생각한다. 계산 과정이야 그대로 따라하면 초등학생들도 할 수 있는 것이고 중요한 것은 determinant가 의미하는 것이 무엇이고 어떤 정보들을 나타내고 있는지를 아는 것이다. 그래서 이번 포스팅에서는 계산 식에 대한 내용은 거의 다루지 않고 다음 포스팅에서 계산 식에 대한 내용들을 다룰 예정이다. 이번 포스팅에서는 우선 determinant의 3개의 주요 특성에 대해 먼저 다루고, 이 3개의 특성을 기반으로 7개의 특성에 대해서 설명을 하도록 하겠다

 

 

- prop. (1) 

 

 

 

첫 번째 특성은 단위 행렬(Identity matrix)의 determinant는 1이라는 것이다. 이때 행렬은 n x n크기의 행렬에 대해서 동일하게 적용된다. 계산 과정은 이후에 설명하더라도 첫 번째 특성은 매우 간단하기 때문에 더 이상 설명할 것이 별로 없다. 식 (2)의 예로 2 x 2 단위 행렬의 determinant를 계산해보자. determinant의 실제 계산 수식에 대해선 다음 포스팅에서 자세히 다룰 예정이니 일단 수업 시간에 배웠던 2x2 determinant 계산공식을 활용하여 답을 구해보자. 식 (3.1)은 2x2 행렬의 determinant를 구하는 공식이다. 

 

 

단위 행렬의 determinant를 계산한 결과, 식 (2)의 특성 처럼 1이 나오는 것을 볼 수 있다. 

 

 

 

- prop. (2) 

 

 

두 번째 특성은 행렬의 어떤 row를 다른 row와 바꾸면 determinant의 부호(sign)가 바뀐다는 것이다. 여기 까지의 특성만 봤을 때 혹시 어떤 행렬에 대한 determinant인지 눈치 채셨는가? 

일단 첫 번째 특성은 단위 행렬로부터 시작하였다. n x n에서 n이 얼마이던 간에 단위 행렬이라면 determinant는 1이다. 두 번째 속성은 어떤 정방행렬 이던간에 임의의 row를 교환하면 determinant의 부호가 바뀐다는 것이다. 그런데 특성 1로부터 출발하면 어떤 행렬이 될까? 즉 단위 행렬에서 임의의 row를 교환할 경우 이전에 배웠던 치환 행렬(permutation matrix)이 되는 것을 알 수 있다. 여기서 우리가 알 수 있는 것은 모든 치환 행렬의 determinant는 1 혹은 -1이 된다는 것이다. 이때 1 혹은 -1이 되는 기준은 행 교환(row exchange)을 짝수번(even) 했는지, 아니면 홀수번(odd) 했는지에 따라 정해진다. 즉 맨 처음 단위행렬에서 임의의 행 교환을 1번 했으면 이때의 determinant는 -1이 된다. 여기에서 임의의 행 교환을 한 번 더 하여 총 행 교환을 두 번 하게 되면 determinant는 1이 된다. 

 

 

식 (5)는 치환 행렬에 대한 규칙임을 기억하자. 특성 2는 다른 어떤 정방행렬에도 동일하게 적용되며, 단지 행 교환 이전의 determinant에서 부호가 바뀐다는 것을 명심하자. 마찬가지로 2x2 단위 행렬에 대해 특성 2를 적용하여 실제 계산을 수행해보자. 

 

 

최초의 단위 행렬에서 row exchange를 했을 경우 determinant의 부호가 바뀌는 것을 볼 수 있다. 여기서 한 번 더 하면 부호는 다시 +부호가 된다. 결국 단위 행렬의 row exchange를 짝수번 하면 1, 홀수번 하면 -1이 되는 것을 확인하였다. 이것은 임의의 n x n 치환행렬에 대해서도 동일하게 작용한다. 지금은 2x2크기의 정방 행렬의 determinant 공식만 다루고 있지만 사실 우리가 원하는 것은 n x n의 행렬에도 적용되는 일반적인 방법이다. 계산 방법은 바로 다음 포스팅에서 다루도록 하고 세 번째 특성으로 넘어가자. 

 

 

- prop. (3)-1

 

세 번째 특성은 사실 핵심이 되는 determinant의 특성이니 잘 이해하도록 하자. (3)-1과 (3)-2로 나누어서 정리하도록 하겠다. (3)-1의 특성을 우선 식으로 써보면 아래와 같다. 

 

 

식 (7)이 의미하는 것은 임의의 정방행렬 A에서 임의의 하나의 row에 t라는 scale 상수를 곱한 다음 determinant를 계산하면, A의 determinant에 t라는 상수를 곱한 것과 값이 같다는 것이다. 이때 t는 임의의 하나의 row에만 곱해지는 상수이고 나머지 n-1의 row는 그대로 두는 것이다. t를 2번째 row, 혹은 n번째 row에 곱하고 나머지는 그대로 둔 상태에서 계산해도 식 (7)의 법칙이 적용이 된다. 이것이 특성 (3)-1이다. 실제로 계산해보면 아래와 같다. 

 

 

 

- prop. (3)-2

 

역시 특성 (3)-2를 먼저 아래와 같이 식으로 정리해보자. 

 

 

식 (9)가 의미하는 것은 행렬 A에서 임의의 row에 어떤 벡터를 더했을 때의 determinant는 더한 row를 따로 분리하여 determinant 계산할 수 있다는 것이다.  즉 row1에 v=[a' b']을 더했다면, 원래 행렬의 determinant와 v와 나머지 row들로 만든 행렬의 determinant를 따로 계산하여 더한 값과 같다는 것이다. 이때 주의할 것은 더한 row를 제외한 나머지 n-1의 row들은 그대로 두어야 한다는 것이다. 실제 계산을 해보면 아래와 같다. 

 

 

 

정리해보면 특성 (3)-1과 (3)-2는 임의의 n x n크기의 정방행렬에 동일하게 적용되며, 어느 하나의 row에 scale상수를 곱하거나 임의의 row벡터를 더했을 경우, 나머지 n-1의 row들은 그대로 둬야 한다는 것이다. 결국 이들 특성 (3)-1과 (3)-2로 하여금 determinant를 구하는데 있어 선형 결합(Linear combination)의 규칙이 작용하는 것이다. determinant는 선형 함수(Linear Function)이다. 특성 (3)-1과 (3)-2를 같이 쓰면 아래와 같다. 

 

 

식 (11.1)은 determinant의 선형결합에 관한 식을, (11.2)는 그에 대한 예를 나타낸다. 

 

여기서 어떤 사람들은 오해를 할 수 있다. 즉 determinant가 선형 함수라고 해서 모든 row에 대해서 이러한 선형성이 동시에 적용되는 것이 아니다. 아래 식은 틀린 식이다. 

 

 

식 (12)는 determinant의 선형성이 모든 row에 대해서 동시에 적용되지 않음을 나타내는 것이다. 중요한것은 우리가 지금까지 determinant의 특성들에 대해서 언급하고 예를 들었을 때 단 하나의 row에 대해서만 적용을 하고 나머지 row들은 그대로 뒀다는 것이다. 결국 어떤 정방행렬의 determinant는 각각의 row에 대해서만 독립적으로 선형성(Linearity)을 나타낸다

 

이렇게 하여 determinant의 주요 특성 세 가지를 정리하였다. 우리는 이 세 가지 주요 특성들을 통해 어떠한 행렬의 determinant라도 정의할 수 있다. 그러나 이 세 가지 말고도 determinant는 다양한 특성들을 가지고 있다. 이제 이 세 가지 기본적인 특성들을 기반으로 determinant에 대한 나머지 특성들에 대해서도 알아보자. 

 

 

- prop. (4)

 

 

네 번째 특성은 행렬 A에 똑같은 row가 2개 존재한다면 그 행렬의 determinant는 0이 된다는 것이다. 사실 2 x 2의 경우엔 이해가 간다. 2 x 2에서 두 개의 row가 같아지면 det A=ab-ab=0 이 되기 때문에 당연히 0이 될 것이다. 하지만 왜 n x n의 행렬의 경우에도 같은 row가 두 개 존재하면 determinant가 0이 될까? 예를 들면 10 x 10의 정방행렬에서 row 2와 row 7이 같다고 해보자. 이렇게 큰 행렬에서 단지 두 개의 row가 같다고 해서 왜 determinant가 0이 될까? 

 

우리는 지금까지 determinant의 주요한 3개의 특성을 공부했다. 단위 행렬의 determinant가 1이 되는 특성, 행을 교환하면 determinant의 부호가 바뀌는 특성, 그리고 각각의 row에 독립적으로 적용되는 선형성(linearity)등이다. 어찌 되었든 우리는 앞서 배운 세 개의 특성을 가지고 바로 이 네 번째 특성을 정의해야 한다. 어떻게 할 수 있을까? 바로 prop. (2)로 부터 정의할 수 있다. 

 

prop. (2)는 row exchange가 발생했을 때 원래의 행렬과 다른 행렬이 만들어지게 되고, 결국 determinant의 부호가 바뀐다는 특성이다. 그러나 두 row가 같아져 버리면 row exchange를 해도 원래 행렬과 같아진다. 그러나 prop. (2) 특성은 반드시 만족해야 하기 때문에 부호를 반드시 바꿔야 하는데, 원래 행렬과 같기 때문에 부호를 바꾸어도 똑같아야만 한다. 수 많은 숫자들 중에 부호를 바꿔도 똑같은 숫자가 딱 한가지 있다. 바로 0(zero)이다. 따라서 어떤 행렬 A가 두 개의 같은 row를 가지고 있을 경우, A의 determinant가 0이 되어야만 같은 row를 교환하여 부호가 바뀌어도 prop. (2)가 성립하게 된다. 

 

또한 이렇게 생각해 볼수도 있다. 정방행렬에서 두 개의 같은 row가 있다면 rank는 n보다 작다. 따라서 이 행렬은 역행렬이 존재하지 않게 되므로 처음에 언급했듯이 determinant가 0이 되어야 한다. 

 

 

- prop. (5)

 

다섯 번째 특성은 소거(elimination)와 관련이 있다. Lecture 2에서 배웠듯이 소거 과정에서 우리는 pivot 변수를 지정하고 그 아래에 있는 원소들을 0으로 만들기 위해 pivot row에 특정 상수를 곱한 다음, 제거 할 row에서 이를 빼준다. 따라서 제거 할 k번째 row로 부터 상수값 $l$을 찾아서 pivot row와 곱해준다음 이를 k 번째 row에서 빼준다. 여기서의 특징은 이러한 소거 과정에서 중간에 나타나는 행렬의 determinant는 처음과 같다는 것이다.  즉 아래의 식과 같다. 

 

 

다시 말하자면 원래의 행렬 A를 소거하여 상삼각행렬(Upper triangular matrix) U를 만들었을 때, U의 determinant는 A의 determinant와 동일하다는 것이다. 결국 행렬 A를 소거를 해도, 소거 과정에서 나오는 어떠한 행렬도 determinant는 변하지 않는다. 이것이 다섯 번째 특성이다. 

 

그렇다면 이 특성은 어디서부터 오는가? 설명을 위해 식 (14)를 2x2행렬에 표현해 보자. 

 

 

식 (15)는 2x2행렬에서 소거를 위해 row1에 $l$을 곱하여 row2에서 빼주는 식에 대한 determinant를 나타낸 것이다. 그런데 이 식은 우측과 같이 분리가 가능하다. 바로 특성 prop. (3)-2로 부터 파생되는 것이다. 결과적으로 식 (15)의 최 우측의 determinant는 0이 되어 원래 행렬의 determinant와 같아지는 것을 볼 수 있다. prop. (3)-2를 통해 소거된 행렬과 원래 행렬의 determinant는 같음을 보였다. 

 

여기서 최 우측의 determinant에 prop. (3)-1을 적용할 수 있다. row2에 곱해져 있는 $l$을 밖으로 빼내면 아래와 같이 쓸 수 있다. 

 

 

이렇게 되면 최 우측 행렬의 determinant는 row1과 row2가 같다. 따라서 prop. (4)에 의해 0이 된다. 

 

prop. (5)를 정리하자면 임의의 행렬 A를 소거하는 과정에서 만들어지는 모든 행렬은 원래의 행렬 A와 같은 determinant값을 가진다. 이를 이전에 정리했던 특성들 prop. (3)-1, prop. (3)-2, prop. (4) 를 통해 정리하였다. 

 

 

- prop. (6)

 

Determinant의 여섯 번째 특성은 간단하다. 바로 원소들이 모두 0인 row가 하나 라도 존재한다면 determinant가 0이 된다는 것이다. 

 

 

모든 원소가 0인 row가 하나 라도 존재한다면, 해당 행렬은 특이 행렬(singular matrix)이 되고, rank는 n보다 작아지며, 역행렬은 존재하지 않는다. 그렇다면 이전의 특성들로부터 어떻게 특성 (6)을 유도할 수 있을까? 바로 prop. (3)-1으로부터 유도할 수 있다. 

 

 

예를 들어 t=0이고, t가 어떤 특정 row에 곱해졌다고 생각해보자. t는 prop. (3)-1에 의해 밖으로 뺄 수 있는데, t가 0이기 때문에 결국 determinant는 0이 된다. 

 

 

- prop. (7)

 

일곱 번째 특성은 매우 중요하면서 유용하므로 집중해서 잘 알아두도록 하자. 이는 상삼각행렬(Upper triangular matrix)과 관련되어있다. 2x2크기의 경우엔 determinant를 구하는 것이 어렵지 않지만, 100x100과 같이 큰 행렬일 경우엔 계산 과정이 굉장히 오래 걸린다. 이번 특성은 이러한 determinant의 계산을 손쉽게 해주는 방법이고 굉장히 유용하게 사용될 수 있다. 일단 아래의 상삼각행렬을 보자. 

 

 

4x4처럼 표현 되긴 했지만, 식 (19)를 n x n크기의 정방행렬이라고 생각해보자. 상삼각행렬이기 때문에 대각선 원소들을 중심으로 아래쪽 원소들은 모두 0이다. 대각선 원소들을 d1, d2, ... dn이라고 표현하고, 위쪽에 있는 원소들은 중요하지 않기 때문에 별표로 표시하였다. 

 

상삼각행렬(Upper triangular matrix)은 원래의 행렬 A를 소거(elimination)하여 만들 수 있는 행렬이다. 따라서 prop. (5)에서 확인했듯이 원래 행렬의 determinant와 같다. 그러나 이 상태에서 determinant를 구할 수 있는 더 쉬운 방법이 있다. 바로 상삼각행렬의 determinant는 대각 원소 d1, d2, ... dn들의 곱으로 구할 수 있다. 즉

 

 

따라서 상삼각행렬을 얻었을 때 determinant를 구하려면 대각 원소들을 곱해주기만 하면 된다. MATLAB과 같이 행렬 연산을 하는 software의 경우, 실제 어떤 행렬의 determinant를 계산할 때 먼저 소거(elimination)를 통해 상삼각행렬을 만들어준 뒤 pivot원소인 대각 행렬의 곱을 통하여 determinant를 계산한다. 행렬의 크기가 늘어날 수록 계산이 복잡해지는데, 이와 같은 방법으로 계산을 해주면 훨씬 빠르고 효율적으로 계산할 수 있다. 

 

대각 원소들의 곱으로 determinant를 구하는 건 알았고, 한 가지 더 신경써야 할 부분이 있다. 바로 determinant의 부호이다. 소거를 하는 과정에서 그대로 한 번에 된다면 좋겠지만, 어떠한 경우에는 행 교환(row exchange)을 해야할 때가 생긴다. 소거 과정에서 row exchange가 필요한 경우엔 부호를 살펴야하고 그렇지 않은 경우엔 그대로 대각 원소 d들을 곱해주면 된다. 만약 행 교환이 홀수번 일어나면 대각 원소들의 곱의 결과 값에 -1을 곱해주면 되고, 행 교환이 짝수번 발생하면 그대로 두면 된다. 이는 prop. (2)로 부터 증명할 수 있다. 

 

여기서 한 가지 의문점이 생긴다. 식 (20)에서 determinant를 구하기 위해선 대각 원소들의 곱을 통해 구할 수 있다고 했는데, 왜 *로 표시된 값들은 determinant에 영향을 미치지 않을까? 이를 어떻게 증명할 수 있을까? 이는 prop. (5)를 통해 증명할 수 있다. 소거를 해도 determinant에는 영향을 미치지 않기 때문에 Lecture 3의 Gauss-Jordan에서 했던 위쪽 방향으로의 소거를 해도 같다. 결국 U행렬은 대각 원소들만 존재하는 대각 행렬(diagonal matrix)이 되며,  determinant는 아래 식과 같이 표현할 수 있다. 

 

 

 

이제 대각 행렬을 제외한 나머지 원소들은 determinant에 영향을 미치지 않는 것으로 증명이 되었다. 그런데 왜 하필 대각 원소들의 곱일까? 이는 prop. (1)prop. (3)-1을 통해 증명할 수 있다. 우선 식 (21)을 보면 U의 각 row에 d1, d2, ... dn들이 곱해져 있는 형태이다. prop. (3)-1에 의해 우리는 이 d들을 밖으로 뺄 수 있다. d1을 시작으로 d2, d3, ... dn을 차례로 빼면 아래와 같은 형태가 된다. 

 

 

식 (22)에서 d들을 밖으로 빼면 대각 행렬은 단위 행렬(identity matrix)이 되며, prop. (1)에 의해 단위 행렬의 determinant는 1이 된다. 결과적으로 대각 원소들의 곱으로 상삼각행렬 U의 determinant를 구하는 것을 prop. (1), (2), (3)-1, (5)를 통해 증명하였다. 최초의 행렬 A에서 prop. (5)를 통해 소거를 하여 D를 만들고, prop. (3)-1을 통해 d들을 밖으로 빼내었으며, prop. (1)을 통해 d들의 곱만으로 determinant를 계산할 수 있음을 보였다. 또한 행 교환이 필요한 경우 prop. (2)를 통해 부호를 적절히 바꿀 수 있음을 보였다. 

결국 prop. (7)이 말하고자 하는 것은 A가 특이 행렬(singular matrix)이 아닐 때, determinant를 대각 원소들의 곱만으로 계산할 수 있다는 것이다. 매우 중요하니 잘 알아두도록 하자. 

 

 

- prop. (8)

 

prop. (7)에서는 pivot원소, 즉 d1 ~ dn이 0이 아님을 가정하였다. 그런데 만약 식 (20)에서 만약 어느 하나의 pivot 원소 dk가 0인 경우엔 어떻게 될까? 이 경우엔 위쪽 방향으로의 소거를 통해 식 (21)과 같이 대각 행렬(diagonal matrix)을 만들었을 때 dk=0인 row가 zero row가 된다. 이 경우 prop. (6)에 의해 행렬 자체가 특이 행렬임이 판명나고, 결국 determinant는 0이 된다. 따라서 여덟 번째 특성은 행렬 A가 특이 행렬(singular matrix)일 때 determinant가 0이 되고, A가 특이 행렬이 아닐 때, 즉 역행렬을 가질 때(invertible)는 determinant가 0이 아니다

 

 

어떤 pivot 원소가 0이라는 것은 결과적으로 행렬의 rank가 그 만큼 줄어들게 되고, 하나의 zero row를 갖게 되어 prop. (6)에 따라서 determinant는 0이 된다. 결국 full rank가 아닌 행렬은 특이 행렬이 되어 역행렬이 존재하지 않게 된다. 이것을 우리는 determinant의 계산을 통해 알 수 있다. 따라서 determinant의 계산은 역행렬의 존재 여부를 판단할 수 있는 좋은 방법이다. 

 

반면 행렬 A가 역행렬을 가질 때, 우리는 소거를 통해 A를 U(upper triangular matrix)로 만들고, 다시 위쪽으로 소거하여 D(diagonal matrix)를 만들고, 대각 원소 d1 ~ dn을 곱하여 determinant를 계산한다. 여기서 중요한 사실 한 가지는 우리는 방금 언급한 이 사실을 통하여 determinant의 공식을 유도할 수 있다는 것이다. 2x2크기의 정방행렬에 대한 determinant의 계산 공식은 다들 알다시피 ad-bc이다. 그러나 이 공식이 어떻게 유도되었는지 아는 사람은 그리 많이 않을 것이다. 아래 식을 보자. 

 

 

식 (24)는 행렬 A를 소거하여 상삼각행렬 U를 만든 것이다. (24.1)을 보면 소거할 때 pivot인 a를 소거할 원소인 c와 같게 만들기 위해 c/a를 row1에 곱한 뒤 row2에서 이를 빼준다. 이해가 잘 가지 않는다면 예를 든 (24.2)를 참고하기 바란다. 어쨋든 행렬 A를 소거하여 (24.1)과 같이 상삼각행렬 U를 만들었다. 우리는 prog. (7)을 통해 U의 determinant는 대각 원소들을 곱하면 된다고 이미 배웠다. 0인 pivot이 없으므로 (24.1)의 대각행렬을 곱해보자. 어떤 식이 나오는가? 

 

 

우리가 수업시간에 determinant를 구할 때 늘 써먹던 그 식은 바로 이와 같이 determinant의 prop. (1) ~ prop. (7)로 부터 유도된 것이다. 만약 식 (24)에서 a가 0이면 row exchange를 하고 determinant의 부호를 바꾸면 되고, 그래도 계산할 수 없다면 A가 특이 행렬이다. 

 

정리하자면 어떤 임의의 크기의 정방행렬 A의 determinant는 소거를 통해 만들어진 U의 대각 성분들의 곱으로 간단히 구할 수 있으며, (25)는 이런 절차에 따라 유도된 식이다. 

 

 

- prop. (9)

 

아홉번 째 특성은 간단하면서도 굉장히 유용하다. 일단 먼저 써보도록 하겠다. 

 

 

행렬 A와 B의 곱의 determinant는 determinant A와 determinant B의 각각의 곱과 같다는 것이 아홉번째 특성이다. 언뜻 보면 별것 아닌 것처럼 보이겠지만, 이 특성은 굉장히 값지고 유용한 특성이다. 이전의 prop. (3)-2의 식 (12)에서 행렬의 덧셈에 대한 determinant는 성립하지 않음을 알았다. 즉 모든 row에 대한 선형성(linearity)이 동시에 적용되지는 않는다는 것이다. 그러나 재밌게도 행렬의 곱셈에 대한 determinant는 분리하여 정의할 수 있다. 

 

예를 한 번 들어보자. A의 역행렬(inverse matrix)에 대한 determinant는 어떻게 정의할 수 있을까? 

 

 

식 (27.1)은 A의 역행렬과 A를 곱하면 단위행렬이 된다는 우리가 잘 아는 관계식이다. 식 (27.1)을 식 (26)을 이용하여 determinant를 구하면 (27.2)와 같이 되는데, 우변의 단위 행렬의 determinant는 prop. (1)에 의해 1이 된다. 여기서 식 (27.2)의 양변을 det A로 나눠주면 아래와 같이 det A(inverse)를 정의할 수 있다. 

 

 

A의 역행렬의 determinant는 1/(det A)로 정의할 수 있다. 사례를 한 번 들어보자. A를 소거를 통하여 대각 행렬(diagonal matrix) D로 만들었다고 했을 때, 식 (28)의 내용을 아래와 같이 쓸 수 있다. 

 

 

결과적으로 식 (26)이 의미하는 것은 어떤 두 개의 대각 행렬(diagonal matrix)의 관계를 정의할 때 유용하게 사용될 수 있으며, 이때 만약 행렬들이 대각행렬이 아니라면 소거 과정을 통해 대각 행렬을 만들어 이들을 적용할 수 있다. 

 

앞서 언급했지만 determinant는 행렬 A의 역행렬의 존재 여부(invertibility)를 체크하는데 사용된다. 즉 A가 역행렬을 가지면 determinant는 0이 아니고, 역행렬을 가질 수 없으면(singular matrix이면) determinant는 0이 된다. 이를 식 (28)을 통해 설명할 수 있다. A determinant가 0이 되면 A의 역행렬의 determinant가 1/0이 되어 식이 이상하게 되어버린다. 따라서 determinant는 역행렬의 존재 여부를 판별할 때 좋은 기준이 된다. 

 

약간 다른 경우도 한 번 살펴보자. A의 제곱인 경우엔 어떨까? 즉 A*A말이다. 이 역시 (det A)(det A)가 된다. 그렇다면 2*A의 determinant는 어떻게 될까? 2*A는 A+A이다. 이 경우엔 어떻게 정의할 수 있을까? 이때는 단순히 2*(det A)는 틀린 답이다. 2*A라는 것은 A의 모든 row에 각각 2씩을 곱해준 것이다. 따라서 prop. (3)-1과 식(22)와 같이 2를 앞쪽으로 빼줄 수 있다. row1에 곱해진 2를 먼저 앞으로 빼고, row2, ... row n에 곱해진 2를 차례로 앞으로 빼면 결과적으로 2를 n번 만큼 앞으로 빼서 곱해준 셈이 되기 때문에 2의 n승이 된다. 이들을 정리하면 다음과 같다. 

 

 

식 (30.1)은 식 (26)에 의해 정의된 것이다. 또한 나중에 자세히 다룰 기회가 있겠지만 식 (30.2)의 determinant는 어떤 volume을 정의하는데 있어 유용하게 사용된다. 

 

 

- prop. (10)

 

마지막 열 번째 특성도 그리 어렵진 않다. 바로 적어보겠다. 

 

 

열 번째 특성은 A의 transpose의 determinant는 원래 A의 determinant와 같다는 것이다. 일단 여기서 다루고 있는 행렬은 정방행렬이므로 전치(transpose)를 해도 A의 가로, 세로의 크기는 변하지 않는다. 눈여겨 봐야할 것은 row와 column이 바뀐다는 것이다. 

 

 

지금까지 우리는 determinant와 관련된 모든 작업을 row 기준으로 해왔다. 모든 원소가 0인 row가 하나라도 있을 경우 determinant는 0이 되는 등 row기준으로 모든 작업을 진행해왔다. 그렇다면 모든 원소가 0인 column이 존재한다면 determinant는 어떻게 될까? 정답은 똑같이 0이다. 마찬가지로 행 교환(row exchange)을 했을 때 부호가 바뀌었다면, 열 교환(column exchange)을 했을 때에도 부호가 바뀐다. 그리고 일단 식 (31)의 determinant를 구했을 때, 양쪽 모두 ad-bc로 식은 같다.

 

 뭔가 같은 것 같긴 하지만 그래도 이전의 특성들을 활용해 식 (31)을 증명해보자. 아래 식을 보자. 

 

 

최초의 식 (33.1)에서 Lecture 4에서 배웠던 LU 분해(LU decomposition)를 통해 식 (33.2)와 같이 만들 수 있다(두 행렬의 곱에 transpose를 취하면 순서가 바뀜에 유의). 식 (33.2)는 하삼각행렬(Lower triangular matrix) L과 상삼각행렬(Upper triangular matrix) U의 곱으로 이루어져 있다. 이를 바로 전에 배웠던 prop. (9)의 특성을 이용하여 정리하면 식 (33.3)과 같이 된다. 여기서 L의 경우 대각 원소들은 1로 이루어져있다. 이 L행렬들의 대각 원소들을 제외한 나머지 원소들은 소거(elimination)를 통하여 없앨 수 있고, 결국 L의 determinant는 1이 된다. 

이제 남은 것은 식 (33.4)의 U이다. 알다시피 U도 transpose이던 아니던 삼각행렬(triangular matrix)의 형태를 띈다. 어떤 삼각 행렬이던간에 대각 원소들을 제외한 나머지 원소들은 소거를 통하여 없앨 수 있으며 determinant의 계산에 영향을 미치는 것은 결국 대각 원소(diagonal elements)들이다. 따라서 U를 transpose해도 대각 원소들은 바뀌지 않기 때문에 결과적으로 determinant는 같다. 이렇게 하여 determinant의 열 번째 특성도 증명을 하였다.  

 

 

2. 마치며

 

이번 강의에선 행렬식(determinant)의 특성들에 대해서 알아보았다. 아직 2x2크기의 행렬 이외의 determinant를 구하는 계산식은 배우지 않았는데 이들은 다음 포스팅에서 다룰 예정이다. 사실 계산식을 배우는 것 보다는 determinant가 가지고 있는 특성들을 먼저 이해하는 것이 나중에 응용될 여러 가지 수식들에 대해서도 훨씬 유용하다. 우리는 먼저 determinant의 중요한 3가지 특성들을 정리하고, 이를 기반으로 나머지 7개의 특성들에 대해서 정리하였다. 마지막으로 중요한 말 한 가지만 하자면, determinant는 pivot들의 곱으로 이루어지는 수치이다 !.

 

각 특성들은 determinant를 이해하는 데에 중요하기 때문에 반드시 이해하고 넘어가시기 바랍니다. 

특성들이 총 10가지나 되기 때문에 이를 한 눈에 알아보기 쉽게 아래에 표로 정리하였으니 참고하기 바랍니다. 꼭 표만 보지 마시고 반드시 본문의 내용을 숙지하신 뒤 참고용으로만 보시는 것을 추천드립니다

  • Determinant의 특성들
 특성 수식  설명 
 prop. (1) 
  • 단위행렬의 determinant는 1이다. 
 prop. (2) 
  • 행을 바꾸면 determinant의 부호가 바뀐다. 
  • 홀수번 바꾸면 -1, 짝수번 바꾸면 원래 부호 그대로. 
 prop. (3)-1
  • 행렬의 하나의 row에 곱해진 상수는 밖으로 뺄 수 있다. 
 prop. (3)-2   
  • 행렬의 하나의 row에 더해진 row벡터는 분리하여 정리할 수 있다. 
 prop. (4)   
  • 행렬에 두 개의 똑같은 row가 존재하면 determinant는 0이 된다. 
 prop. (5)   
  • 행렬을 Gauss소거법으로 소거하여도 determinant의 값은 변하지 않는다. 
 prop. (6)   
  • 모든 원소가 0인 row가 하나 라도 존재한다면, determinant는 0이다. 
 prop. (7)   
  • 삼각행렬(triangular matrix)의 determinant는 대각 원소들의 곱으로 간단히 구할 수 있다. 이때 d들은 0이 아니어야 한다. 
  • 일반 행렬들도 소거를 통해 삼각행렬을 만들고 대각 원소들의 곱으로 간단히 determinant를 구할 수 있다. 
 prop. (8) 
  •  행렬 A가 특이 행렬(singular matrix)이면 determinant는 0이다. 
  •  역행렬이 존재하면 determinant는 0이 아니다. 
  • 반대로 determinant를 통해 행렬의 역행렬 존재 여부를 판별할 수 있다.
 prop. (9)   





  • 두 행렬의 곱 AB의 determinant는 각 행렬의 determinant의 곱과 같다. 
  • A의 역행렬의 determinant는 A의 determinant의 역수이다. 
  • A의 제곱의 determinant는 A의 determinant의 제곱과 같다.
  •  A에 상수를 곱한 determinant는 상수의 n승을 A의 determinant에 곱한 것과 같다. 
 prop. (10)   
  • 행렬 A의 transpose의 determinant는 원래 행렬의 determinant와 같다. 
  • 즉 transpose를 해도 determinant는 변하지 않는다.  

 

+ Recent posts