[선형대수학 #2] 역행렬과 행렬식(determinant)

수학 이야기 2013. 10. 10. 18:42

선형대수학중 역행렬과 행렬식(determinant)에 대한 내용을 주로 활용적인 측면에 초점을 맞추어 적어봅니다.


1. 역행렬(Inverse Matrix)과 선형연립방정식


i) 역행렬의 정의

행렬 A의 역행렬은 A와 곱해서 항등행렬 E가 나오는 행렬을 A의 역행렬이라 정의한다.


 --- (1)


위 식과 같이 A와 곱해서 E가 나오게 하는 행렬 B를 A의 역행렬이라고 하고 A-1로 표기한다.


 --- (2)


ii) 역행렬의 활용

역행렬의 가장 큰 활용은 뭐니뭐니 해도 선형방정식을 풀 때이다.


 --- (3)


위와 같은 x에 대한 선형연립방정식(a, b는 상수)을 행렬로 표현하면


 --- (4)


 --- (5)


로 매우 간단하게 표현된다.


이제 A의 역행렬만 계산할 수 있으면 위 연립방정식의 해는


--- (6)


로 손쉽게 계산된다.


만일 A의 역행렬이 존재하지 않는 경우는 식 (3)을 만족하는 해가 유일하게 결정되지 않는 경우로서 해가 무수히 많거나 존재하지 않는 경우이다.


(A가 정방행렬이 아닌경우, A의 역행렬이 존재하지 않는 경우, B = 0인 경우 등 다양한 경우의 선형방정식의 풀이에 대해서는 [선형대수학 #5] 선형연립방정식 풀이 글 참조)


iii) 역행렬의 계산

역행렬을 계산하기 위한 여러가지 알고리즘이 있지만 이런 알고리즘들을 굳이 알 필요는 없다. 역행렬의 계산은 그냥 컴퓨터에게 맡기고 자신은 역행렬이 무엇인지만, 그리고 잘 활용할 줄만 알면 된다.



iv) 역행렬의 성질

역행렬은 n × n 정방행렬(행과 열의 개수가 같은 행렬)에 대해서만 정의되며, 역행렬은 존재할 수도 있고 존재하지 않을 수도 있다. 하지만 만일 존재한다면 역행렬은 유일하다.


또한 역행렬에 있어서 가장 중요한 기본 성질은 다음 식으로 주어진다.


 --- (7)


즉, AB의 역행렬은 각각의 역행렬을 구한 후 순서를 바꾸어 곱한 것과 같다.



2. 행렬식(determinant)과 기하학적 활용


행렬식(determinant)은 딱히 정의(definition)가 없다. 그냥 어떤 특별한 계산식에 따라 행렬의 원소들을 대입하여 얻은 결과값(수치)을 지칭한다 (즉, 행렬에 대해 계산되는 하나의 숫자값이다). 다만 그 결과값이 그 행렬의 특성을 결정짓는 중요한 값이기에 determinant라 부른다.


행렬식(determinant) 또한 역행렬과 마찬가지로 정방행렬(행과 열의 개수가 같은 행렬)에 대해서만 정의된다.


i) 행렬식(determinant) 표기

다음과 같이 det(A) 또는 행렬의 괄호를 직선으로 나타내어 표기하면 그 행렬의 행렬식(determinant) 임을 나타낸다.


 --- (8)


ii) 행렬식의 활용 (기하학적 해석)

- 어떤 행렬 A의 행렬식 값 det(A) = 0이면 행렬 A는 역행렬을 갖지 않고 det(A)≠0이면 A의 역행렬이 존재한다. 즉, 행렬식(determinant)은 어떤 행렬의 역행렬 존재여부에 대한 판별값 역할을 한다.


- X를 [x, y]T, [x, y, z]T 등과 같이 좌표를 나타내는 벡터라고 했을 때, 행렬 A를 X' = AX와 같이 사용하면 행렬 A는 입력좌표 X를 X'으로 변환시켜주는 일종의 선형변환(linear transformation)으로 해석할 수 있다.


이러한 관점에서 det(A)는 선형변환의 스케일(scale) 성분을 나타내는 값이다. 즉, 도형 P가 선형변환 A에 의해 P'으로 변환되었을 경우, 다음 수식이 성립한다.





또한 determinant의 부호도 중요한 의미를 갖는데, det(A)>0이면 도형의 방향(orientation)이 보존되고 det(A)<0이면 도형의 방향이 보존되지 않는다.


[2D 예1]

네 점 (1,1), (1,2), (2,2), (2,1)로 이루어진 도형 P를 2 × 2 행렬 A로 선형변환한 예



- 왼쪽그림: A = [1 2; -1 3]라면 det(A) = 5이다. 이 때, P는 (3,2), (5,5), (6,4), (4,1)로 변환되고 변환된 도형 P'의 면적을 구해보면 5가 나온다. 즉, Area(P') = det(A)*Area(P)임을 확인할 수 있다. 또한 det(A)>0으므로 도형의 방향(시계방향, 반시계방향)이 보존됨을 확인할 수 있다.

- 오른쪽그림: A = [1 -1; -2 1]인 경우 det(A) = -1이다. 이 때, P는 (0,-1), (-1,0), (0,-2), (1,-3)으로 변환되고 면적을 구해보면 1이 나온다. 또한 도형을 이루는 점들의 방향이 반대가 된 것을 알 수 있다.


[2D 예2]

만일 det(A) = 0인 경우에는 어떤 결과가 나올까?



그림에서 det(A) = 0이면 직선(선분)으로 변환됨을 확인할 수 있다. 오른쪽 그림과 같이 좀더 복잡한 도형의 경우에도 역시 직선으로  변환된다. 직선의 면적은 0이므로 Area(P') = |det(A)|*Area(P)는 여전히 성립함을 알 수 있다.


[3D 예1]

3차원 공간에서의 변환(A가 3x3 행렬)인 경우에는 면적이 부피가 되고, 직선이 평면이 되는 것 외에는 동일한 식이 성립한다.



행렬 A = [2,2,1;-1,1,0;3,0,1]을 통해 길이 1인 정육면체를 변환시키면 위 그림과 같이 부피가 7인 평행육면체로 변환된다 (벡터의 외적을 이용하여 실제로 부피를 계산해 보면 7이 나옴을 확인할 수 있다). 즉, 부피(P') = |det(A)|*부피(P)가 성립함을 확인할 수 있다. 또한 det(A)<0이므로 방향이 보존되지 않아야 한다. 그림을 잘 보면 원래 도형 P를 아무리 회전시켜도 P'이 되지 않음을 확인할 수 있다.


[3D 예2]

3차원 공간에서 det(A) = 0인 경우의 예이다.



언뜻 보면 육면체로 변환된 것 같지만 사실은 모두 xy평면(z = 0)으로 변환된 것이며 따라서 P'의 부피는 0이다. 즉, 3차원의 경우에는 det(A) = 0이면 동일 평면상의 점들로 변환됨을 알 수 있다 (또는 A에 따라서는 모든 점들이 하나의 점으로 변환될 수도 있다).


iii) 행렬식 값의 계산

실제 행렬식 값을 굳이 우리가 계산할 필요는 없다. 이것도 역시 컴퓨터에게 맡기면 된다.


다만 2x2 행렬, 3x3 행렬의 행렬식 정도는 알아두면 좋다.


 --- (9)


참고로, 행렬식 값을 recursive하게 계산하는 한 방법은 행렬의 첫번째 행의 원소들을 쭉 따라가면서 그 원소가 포함된 행과 열을 제거한 부분행렬의 행렬식 값을 곱하여 교대로 더해주고 빼주면 된다. 즉, 행렬 A의 i행 j열의 원소를 aij, A에서 i행과 j열 전체를 제거하고 남은 부분행렬을 Sij라 하면 det(A)는 다음과 같이 순환적으로 계산할 수 있다.


 --- (10)


위 식(9)의 3 x 3 행렬 예에서 보면, 첫 번째 행인 a, b, c를 따라가면서 a에는 1행과 1열을 제거한 [e f; h i]의 행렬식을 곱하고, b에는 1행과 2열을 제거한 [d f; g i]의 행렬식 값을, c에는 [d e; g h]의 행렬식 값을 곱해준다. 곱한 결과의 부호는 +, -, +, -, +, ... 와 같이 교대로 바꿔준다. 4x4, 5x5, ... 행렬들도 이런 식으로 행렬식 값을 계산할 수 있다.


iv) 행렬식(determinant) 주요 성질

행렬식에 대해 성립하는 가장 중요한 기본 성질은 다음과 같다.


 --- (11)


다만, 행렬식은 정방행렬일 경우에만 정의되므로 식 (11)은 A, B 모두 정방행렬일 경우에만 성립한다.


기타 행렬식에 대한 주요 성질들은 다음과 같다.







 --- (12)


위 기타 행렬식 관련 성질들 중 대각행렬(diagonal matrix) 또는 삼각행렬(triangular matrix)의 행렬식 값은 대각원소들의 곱이라는 점도 기억하면 좋다.



[선형대수학 #1] 주요용어 및 기본공식

[선형대수학 #2] 역행렬과 행렬식(determinant)

[선형대수학 #3] 고유값과 고유벡터 (eigenvalue & eigenvector)

[선형대수학 #4] 특이값 분해(Singular Value Decomposition, SVD)의 활용

[선형대수학 #5] 선형연립방정식 풀이

[선형대수학 #6] 주성분분석(PCA)의 이해와 활용


by 다크 프로그래머