nxn matrix A에 대하여 Determinant를 구하는 방법으로는 크게 세가지가 있다. 그 중 하나는 이전 포스팅에도 익히 말했던 Upper Triangular matrix를 구하여 diagonal elements를 모두 곱하는 방법이다.


그런데 이렇게 되면 matrix A의 원소인 Aij가 모두 Upper Triangular Matrix U의 원소 Uij로 바뀌게 된다. 즉 원래의 Aij가 다른 숫자로 변형된다. 조금 더 general한 solution을 구하기 위해서 우리는 Aij를 다른 숫자로 변형하지 않은 General formula를 구해보도록 하자. 그 방법은 크게 두가지이다. 


1. Big Formula

2. Determinant by Cofactors


우선 Big Formula부터 살펴보자. 예를 들어서 아래와 같은 3x3 matrix의 Determinant를 구해보자.


위의 식은 이전 포스팅의 Rule3에 의해서 구해질 수 있다. 같은 원리로 또 나눠보자.


또 나눠보자.


위의 식에서 하나의 row 전체가 0인 것들은 Determinant가 0일 것이므로 지워보자. 그러면 아래와 같이 남는다.


마지막 식이 우리가 최종적으로 구하려는 (3x3 matrix에 대한) Big formula가 된다. (Rule1, Rule2 사용) 아이고 3x3 matrix만 구해봐도 이렇게 복잡한데 nxn은 어찌구하나. 자 좌절하지 말고 규칙을 구해보자.


Determinant를 구하는 두번째 방법인 Big Formula를 알아봤으므로, 마지막 방법인 Determinant by Cofactors를 알아보겠다. 우선 3x3 matrix의 Determinant를 구해서 묶으면 아래와 같다.


c에 대한 설명은 아래의 식에서 확인해보자.


여기에서 부호를 한번 확인해보자. 부호는 +와 -를 번갈이간다. a11 a12 a13 이런식으로 가면 + - + 계속 바뀐다. 따라서 nxn에서는 아래와 같은 식이 완성된다.

지금까지 Determinant를 구하는 세가지 방법에 대해서 알아봤다.

첫번째 방법인 Upper Triangular Matrix를 만들어서 diagonal elements를 모두 곱하는 방법이 가장 빠른 방법이다. 실제로 Cofactor를 이용한 방법과 첫번째 방법을 matlab을 통해 구현하여 비교해보면 계산 속도가 30배나 차이가 나더라. 내 환경에서는 그렇게 나더라.


다음 포스팅에서는 Cramer's Rule에 대해서 이야기해보려고 한다.

Posted by 빛나유
,