[행렬대수학] 행렬식(Determinant) 4 - 크래머의 법칙(Cramer's Rule)
Review
참고 포스팅 :
2020.09.05 - [Statistics/Matrix Algebra] - [행렬대수학] 행렬식(Determinant) 1 - 행렬식의 개념
2023.11.01 - [Statistics/Matrix Algebra] - [행렬대수학] 행렬식(Determinant) 2 - 행렬식의 유용한 성질과 수반행렬(Adjoint)
2023.11.03 - [Statistics/Matrix Algebra] - [행렬대수학] 행렬식(Determinant) 3 - 역행렬(Inverse Matrix)과 행렬식의 관계
안녕하십니까, 간토끼입니다.
지난 포스팅에서는 역행렬의 개념을 소개하면서 역행렬과 행렬식의 관계에 대해서 다뤘었습니다.
그리고 행렬식을 이용해 역행렬을 구할 수 있다는 것은, $Ax = b$ 로 표현되는 선형시스템에서의 해(solution) $x$ 를 구할 수 있다는 것과 같겠죠.
이번 포스팅에서는 이러한 관계를 바탕으로 행렬식을 이용해 선형시스템의 해(solution)을 구하는 방법인 크래머의 법칙(Cramer's Rule)에 대해 다뤄보겠습니다.
1. 크래머의 법칙(Cramer's Rule)
행렬식의 첫번째 시리즈에서 간단하게 언급하였던 개념을 떠올려봅시다.
바로 행렬식을 이용해서 방정식의 해를 구할 수 있다는 아이디어였죠.
위와 같은 미지수 2개, 방정식이 2개인 선형 시스템을 생각해보면, $Ax = b$ 라는 notation으로 쓸 수 있었습니다.
이때 지난 포스팅에서 다루었던 행렬식을 이용해 구하는 '역행렬(Inverse Matrix)'의 공식 $A^{-1} = \frac{1}{det \,\,(A)} \,\, adj \,\,(A)$ 에 의해 역행렬은 다음과 같이 쓸 수 있겠죠.
그렇다면 위 문제의 계수행렬 $A$ 의 역행렬은 다음과 같습니다.
$$ A^{-1} = \frac{1}{a_{11}a_{22} \, - \, a_{12}a_{21} } \begin{bmatrix} a_{22} & -a_{12} \\ -a_{21} & a_{11} \end{bmatrix} $$
이 역행렬을 이용하여 선형시스템의 solution $x$ 는 $A^{-1} b$와 같으니 전개해주면 쉽게 구할 수 있습니다.
$$ x = A^{-1} \, b = \frac{1}{a_{11}a_{22} \, - \, a_{12}a_{21} } \begin{bmatrix} a_{22} & -a_{12} \\ -a_{21} & a_{11} \end{bmatrix} \begin{bmatrix} b_{1} \\ b_{2} \end{bmatrix} $$
이때 좌변 $x = \begin{bmatrix} x_{1} \\ x_{2} \end{bmatrix}$ 이 되고, 우변은 전개해주면 위 그림의 우측 부분과 같습니다.
이때 방정식의 해 $x$ 의 분모는 행렬식임을 직관적으로 이해할 수 있는데요.
분자의 형태도 2차원 행렬식을 전개한 것과 유사하게 생기지 않았나요?
한번 각 $x$ 의 분자인 (1), (2) 부분을 따져봅시다.
역시 흥미로운 관계가 보이네요.
(1)에 대응되는 $x_{1}$ 에 대한 분자 부분을 보면, 행렬 $A$ 의 1열을 상수항 벡터 $b$ 로 대체한 행렬의 행렬식임을 알 수 있고,
마찬가지로 (2)에 대응되는 $x_{2}$ 에 대한 분자 부분을 보면, 행렬 $A$ 의 2열을 상수항 벡터 $b$ 로 대체한 행렬의 행렬식임을 알 수 있네요.
그렇다면 우리는 방정식의 해 $x_{1}$ 와 $x_{2}$ 를 다음과 같이 쓸 수 있겠습니다.
즉 i번째 $x$ 는 계수행렬 $A$ 의 i번째 column을 상수벡터 $b$ 로 대체한 행렬의 determinant를 분자로 사용한다는 것이 포인트입니다.
그래서 우리는 이를 크래머의 법칙(Cramer's Rule)이라고 부릅니다.
크래머의 법칙은 행렬식을 이용하여 선형시스템의 solution을 구하는 방법입니다.
물론 계수행렬 A의 행렬식은 당연히 0이 되면 안 되겠죠.
이를 만족한다면 ith solution $x_{i} = \frac{ | A_{i} |}{| A |}$ 이라고 할 수 있습니다.
그리고 행렬 $A_{i}$ 는 행렬 $A$ 의 i번째 열을 상수벡터 $b$ 로 대체한 행렬이 되겠네요.
2. 크래머의 법칙의 유도 과정
그러면 과연 크래머의 법칙은 어떤 과정에 의해서 유도된 걸까요?
다음 $Ax = b$ 꼴의 선형시스템에서 solution $x$ 를 구하는 과정을 다시 생각해봅시다.
즉 우리가 궁금한 것은 위에서 정의한 행렬 $A_{i}$ 가 어떻게 $adj \,\,(A) \, b$ 에서 유도됐는가에 대한 부분일 것 같습니다.
그렇죠? (안 궁금하시다면 ... ㅜㅜ)
그러면 한번 adjoint부터 뜯어보죠.
행렬 $A$ 의 adjoint는 cofactor 들의 행렬을 전치시킨 행렬이라고 했었습니다.
그리고 cofactor $c_{ij} = (-1)^{i+j} \, M_{ij}$ 라고 정의했고,
이때 $M_{ij}$ 는 $a_{ij}$ 을 제외한, 즉 i번째 행 & j번째 열을 제외한 부분 행렬의 행렬식인 Minor 라고 했습니다.
이 adjoint를 다시 생각해보면 'cofactor로 이루어진 행렬을 전치(transpose)한 행렬'이므로,
'adjoint의 i번째 행은 행렬 $A$ 의 i번째 열에 대한 cofactor들로 이루어져 있다' 라는 사실과도 이어서 생각해볼 수 있겠네요.
즉 2x2 행렬을 예로 들면,
$adj(A)$ 의 1행은 $ [ a_{22}, -a_{12} ] $ 이고, 이는 행렬 $A$ 의 1열인 $[a_{11}, a_{21}]^{T}$ 의 cofactor와 같으니깐요.
자 그러면 다시 cramer's rule 로 돌아와서 생각해봅시다.
1번째 solution인 $x_1$ 의 분모는 $A$ 의 행렬식이고, 분자는 adjoint의 1번째 행과 상수벡터 $b$ 를 곱한 것과 같습니다.
즉 adjoint의 1번째 행과 상수벡터 $b$ 사이의 내적(inner product)이라고 할 수 있겠죠!
위에서 adjoint의 i번째 행(row)이 원래 행렬 $A$ 의 i번째 열(column)의 cofactor라고 했잖아요?
근데 cofactor는 행렬 $A$ 의 i번째 열(column)을 제외한 부분 행렬의 행렬식인 Minor를 갖고 있다고 했으니까,
adjoint와 상수벡터 $b$ 가 내적한다는 것은 이 제외된 부분을 $b$ 로 대체했을 때 얻어지는 새로운 행렬의 행렬식 $|A_{i}|$ 을 계산하는 것과 동일한 결과를 준다는 겁니다!
그래서 이를 일반화하면 다음과 같습니다.
만약 n차원 square matrix $A$ 에 대하여 i번째 열을 상수벡터 $b$ 로 대체한 행렬의 행렬식은 다음과 같습니다.
$$ |A_{i}| \, = \, \sum_{k=1}^{n} (\, adj\,\,(A))_{ik} \, b_{k} $$
adjoint의 i번째 행과 상수벡터 $b$ 와의 내적(inner product) 와 같다는 거죠!
우리는 이렇게 크래머의 법칙을 유도해볼 수 있습니다.
여담이지만 이 adjoint와 행렬 $A$ 간에는 흥미로운 관계가 있습니다.
바로 adjoint와 행렬 $A$ 를 곱하면 determinant와 identity matrix $I$ 를 곱한 것과 같습니다.
$$ adj\,\,(A) \, A = |A| \, I $$
이는 역행렬의 정의로부터 간단하게 유도할 수 있습니다.
쉽죠?
그러면 마지막으로 지금까지 다루었던 선형시스템의 해(solution)을 구하는 방법을 정리해보겠습니다.
만약 주어진 선형시스템에서 계수행렬 $A$ 가 square matrix고, 이 행렬의 determinant가 0이 아니라면 해를 구하는 방법은 총 4가지로 정리해볼 수 있습니다.
(1) 가우스 소거법, (2) 가우스-조던 소거법, (3) 역행렬을 찾아서 $ x = A^{-1} b $ 를 통해 solution 구하기
그리고 마지막으로 이번 포스팅에서 다룬 (4) 크래머의 법칙(cramer's rule) 입니다.
사실 크래머의 법칙도 신기한(?) 공식이지만, 실제로 행렬의 차원이 커진다면 행렬식을 구하는 것이 여간 쉬운 일이 아니어서 연산량이 많은 공식이긴 합니다.
상황에 따라서 적절한 방법을 사용하시는 걸 추천드립니다.
감사합니다.
잘 읽으셨다면 게시글 하단에 ♡(좋아요) 눌러주시면 감사하겠습니다 :)
(구독이면 더욱 좋습니다 ^_^)
* 본 블로그는 학부생이 운영하는 블로그입니다.
따라서 포스팅에 학문적 오류가 있을 수 있으며, 이를 감안해서 봐주시면 감사하겠습니다.
- 간토끼(DataLabbit)
- B.A. in Economics, Data Science at University of Seoul