[선형대수학 #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가 정방행렬이 아닌경우, B = 0인 경우 등 다양한 선형방정식의 풀이에 대해서는 별도로 포스팅할 예정입니다)


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열을 제거한 [e 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 다크 프로그래머


저작자 표시 비영리 변경 금지
신고
  • BlogIcon 제이슨78 2013.10.11 00:08 신고 ADDR 수정/삭제 답글

    모르던걸 알고 가네요.

  • 2013.10.12 22:09 ADDR 수정/삭제 답글

    비밀댓글입니다

    • BlogIcon 다크pgmr 2013.10.14 09:24 신고 수정/삭제

      대단한 열정이시며 순수과학으로서의 수학에 뜻을 두신 분 같습니다. 단순한 응용이 아닌 순수 수학을 하려면 오히려 계산 능력도 중요하다고 생각합니다. 단순히 공식에 대입해서 답을 구하는 것을 말함이 아닙니다. 계산 능력은 머리속의 사고를 구체화시키고 체계적으로 정리하기 위해서 그리고, 논리를 전개하기 위해서 필요합니다. 이러한 능력은 수학의 원리나 내용을 깊이 이해할수록 그리고 사고방식이 수학적 체계(시스템)에 익숙해질수록 향상된다고 생각합니다.

  • 칼락 2013.10.13 17:28 신고 ADDR 수정/삭제 답글

    선형대 수학도 다시 보려고 했는데
    정리해 주셔서 많은 도움이 되네요ㅎㅎ

  • 나그네 2013.11.12 18:40 신고 ADDR 수정/삭제 답글

    정말 감사합니다! 일반 교재들보다 더 명쾌하네요!

  • 학생 2013.11.23 14:41 신고 ADDR 수정/삭제 답글

    죄송한데요
    (1,1),(1,2),(2,2),(2,1) 이 점들을 A matrix 로 변환을 어떻게 해서 P 가 (3,2), (5,5), (6,4), (4,1) 로 바뀌는거에요??

    • BlogIcon 다크pgmr 2013.11.24 20:13 신고 수정/삭제

      X= [x, y]t를 A로 변환시킨 좌표는 AX로 계산합니다. 위 2D 예 1에서 점 (1,1)를 열벡터로 보고 앞에 A = [1 2; -1 3]를 곱하면 (3, 2)가 나옵니다.

  • 하늘 2014.01.12 10:02 신고 ADDR 수정/삭제 답글

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

    • BlogIcon 다크pgmr 2014.01.13 12:10 신고 수정/삭제

      네.. ^^. 식 (10)에 설명한 행렬식 계산 방법을 대각행렬이나 삼각행렬에 적용해 보면 행렬식 값이 식 (12)처럼 대각원소들의 곱이 됨을 확인할 수 있습니다.

  • 정원 2014.01.27 10:20 신고 ADDR 수정/삭제 답글

    3d 예1 번 det = 1 아닌가요??

    • BlogIcon 다크pgmr 2014.01.27 10:58 신고 수정/삭제

      네 그렇네요. 행렬을 적는 과정에서 오타가 있었던 것 같습니다. det(A)=-7이 되도록 행렬을 수정하였습니다. 감사합니다.

  • 이삭 2014.02.08 14:25 신고 ADDR 수정/삭제 답글

    감사합니다

  • 아루갈 2014.06.04 14:21 신고 ADDR 수정/삭제 답글

    잘 읽었습니다^^ 그림은 어떤 프로그램으로 그리셨는지 궁금하네요~

  • KJJ 2014.08.28 19:28 신고 ADDR 수정/삭제 답글

    궁금한게 있는데 행렬식 기하학적 이해 부분에서 행렬 A는 꼭 정방행렬이어야하냐요?

    • BlogIcon 다크pgmr 2014.08.29 09:29 신고 수정/삭제

      네. determinant는 정방행렬에 대해서만 정의되는 것으로 알고 있습니다. 만일 determinant가 정의된다 하더라도 A가 정방행렬이 아니라면 변환 AX에 의해서 X의 차원이 변하기 때문에 기하학적 해석을 하기가 어려울 것 같습니다.

  • L 2015.01.09 12:59 신고 ADDR 수정/삭제 답글

    행렬식이 기하적 관점에서 어떤 의미를 갖는지 굉장히 잘 설명해주셨네요!! 너무 도움이 많이 되었습니다. 감사합니다^^

  • Ha's 2015.04.07 17:22 신고 ADDR 수정/삭제 답글

    고교 때(전통 시절), 행렬을 들여다 보다 별 흥미를 못느꼈었는데.. 흥미를 돋우는 설명입니다. 잘보앗습니다.

    • BlogIcon 다크pgmr 2015.04.07 18:25 신고 수정/삭제

      저도 계산 위주의 수학 수업을 받아온 세대입니다만 이러한 수학적 개념들이 어디에 쓰이고 왜 필요한지 수업때 같이 설명을 들었다면 좋았을 것 같다는 생각이 듭니다 ^^

  • BlogIcon 양승용 2015.05.11 18:03 신고 ADDR 수정/삭제 답글

    2d문제에서 이동된 p'의 넓이가 왜 루트26일까요? 미치겠네욤 ㅠㅠ

    • BlogIcon 양승용 2015.05.11 18:10 신고 수정/삭제

      아... ㅜㅜ
      직사각형이 아니지 ㅂㅅ ㅠㅠ

  • . 2015.07.07 23:26 신고 ADDR 수정/삭제 답글

    2차원에서det(A) = 0 일때 그림이 잘못된것 같습니다.
    det(A) = 0 이고 A가 영행렬이 아니면 원점을 지나는 선분 혹은 직선이 되어야 하는데
    그림은 그렇지 않네요..

    • BlogIcon 다크pgmr 2015.07.08 07:02 신고 수정/삭제

      원점을 지나는 것은 맞지만 그림은 잘못되지 않았습니다. 원점의 위치가 조금 이상해서 그렇지 잘 보시면 그림에서도 원점을 지나갑니다. ^^

    • . 2015.07.13 14:26 신고 수정/삭제

      감사합니다.