크레이머 법칙

에 마지막으로 수정됐습니다.

[ 펼치기 · 접기 ]
선형대수학의 대수적 구조
선형대수학의 이론
기본 대상
선형 연산자
기본 개념
선형 시스템
주요 정리
기타
벡터공간의 분해
벡터의 연산
내적공간
다중선형대수

Cramer's rule
1. 개요2. 내용에 앞서
2.1. 여인수2.2. 수반행렬2.3. 역행렬을 구하는 법
3. 내용

1. 개요[편집]

연립방정식의 해를 determinant(행렬식)을 사용하여 나타내는 방식. An을 n번째 column을 b로 교체한 행렬이라고 할 때, Xn = det(An)/det(A)의 형태로 구할 수 있다.

2. 내용에 앞서[편집]

2.1. 여인수[편집]

cofactor matrix

여인수(cofactor matrix)는 보통 CC라고 표기한다. CijC_{ij}[1](1)i+jdet(Mij)\left(-1\right)^{i+j}\text{det}\left(M_{ij}\right)이다.

MijM_{ij}(i,j)\left(i,j\right) minor of AA라고 불리며 A의 iijj열을 제거한 행렬이다.

2.2. 수반행렬[편집]

행렬의 각 행과 열에 대응하는 cofactor들의 행렬을 만든 후 이를 transpose 시킨 것이 바로 수반행렬(adjoint matrix)이다. 간단히 adj(A)라고 표기한다.

수반 연산자 개념에서의 용어와 헷갈리지 않기 위해 classical adjoint라고 부르기도 하며, 교재에 따라 딸림행렬로 번역되기도 한다.

2.3. 역행렬을 구하는 법[편집]

inverse A = adj(A) / det(A)의 형태로 간단히 구할 수 있다. (단, A는 square matrix)

자세한 건 역행렬 문서 참조.

3. 내용[편집]

행렬 A A 의 역행렬 A1A^{-1} 는 간단히 다음과 같은 수식으로 나타낼 수 있다.
  • A1=1det(A)CT\displaystyle A^{-1}=\frac{1}{\text{det}\left(A\right)}C^T
  • det(A)\displaystyle \text{det}\left(A\right)는 determinant of A라고 하며 흔히 2×22\times 2 행렬에서 adbcad-bc라는 공식으로 알려진 그거다. 구체적인 식은 n×nn\times n 행렬 AAiijj열을 aija_{ij}라고 할 때 i=1naijCij\sum_{i=1}^n a_{ij}C_{ij}이다. jj11에서 nn까지 아무 열이나 마음에 드는 걸로 고르면 된다. 혹은 위 식처럼 열을 고정하지 않고, 행을 고정하고 모든 열에 대해 합하는 식도 가능하다. 참고로 그 유명한 eigenvaluedet(AλI)=0 \text{det}\left(A-\lambda I\right) = 0 을 만족하는 λ \lambda 를 일컫는다.

결과적으로 AA의 역행렬을 구하려면, iijj열을 AA에서 날리고 그것의 determinant를 구하는 것을 모든 i,ji,j조합에 대해 수행해야 한다. 식 자체가 재귀적이므로 언젠가는 계산이 끝나게 되어 있으며, 재귀 호출 프로그래밍으로 컴퓨터에서 깔끔하게 구현 가능하다. 다만 정말 상용 소프트웨어는 이 방식을 사용하지 않는데, 부동 소수점 연산의 정확도 한계 때문에 determinant가 실제로는 00으로 계산되어야 하는 경우에 00이 되지 않고 결과가 발산해버리기 때문이다.

아래 예제를 보자. 간단하게 아래와 같이 3×3\times 행렬 AA를 정의하자.

A=[122212221] A = \left[ \begin{array} {ccc} 1 \quad & 2 \quad & 2 \\ 2 \quad & 1 \quad & 2 \\ 2 \quad & 2 \quad & 1 \end{array} \right]


그리고 cofactor matrix를 열심히 구한다...

C11=(1)1+1det(M11)=1221=1122=3 C_{11} = \left(-1\right)^{1+1} \text{det}\left(M_{11}\right) = \left| \begin{array} {ccc} 1 \quad & 2 \\ 2 \quad & 1 \end{array} \right| = 1\cdot1 - 2\cdot2 = -3

C12=(1)1+2det(M12)=2221=(2122)=2 C_{12} = \left(-1\right)^{1+2} \text{det}\left(M_{12}\right) = -\left| \begin{array} {ccc} 2 \quad & 2 \\ 2 \quad & 1 \end{array} \right| = -\left(2\cdot1 - 2\cdot2\right) = 2

C13=(1)1+3det(M13)=2122=2212=2 C_{13} = \left(-1\right)^{1+3} \text{det}\left(M_{13}\right) = \left| \begin{array} {ccc} 2 \quad & 1 \\ 2 \quad & 2 \end{array} \right| = 2\cdot2 - 1\cdot2 = 2


C21=(1)2+1det(M21)=2221=(2122)=2 C_{21} = \left(-1\right)^{2+1} \text{det}\left(M_{21}\right) = -\left| \begin{array} {ccc} 2 \quad & 2 \\ 2 \quad & 1 \end{array} \right| = -\left(2\cdot1 - 2\cdot2\right) = 2

C22=(1)2+2det(M22)=1221=1122=3 C_{22} = \left(-1\right)^{2+2} \text{det}\left(M_{22}\right) = \left| \begin{array} {ccc} 1 \quad & 2 \\ 2 \quad & 1 \end{array} \right| = 1\cdot1 - 2\cdot2 = -3

C23=(1)2+3det(M23)=1222=(1222)=2 C_{23} = \left(-1\right)^{2+3} \text{det}\left(M_{23}\right) = -\left| \begin{array} {ccc} 1 \quad & 2 \\ 2 \quad & 2 \end{array} \right| = -\left(1\cdot2 - 2\cdot2\right) = 2


C31=(1)3+1det(M31)=2212=2221=2 C_{31} = \left(-1\right)^{3+1} \text{det}\left(M_{31}\right) = \left| \begin{array} {ccc} 2 \quad & 2 \\ 1 \quad & 2 \end{array} \right| = 2\cdot2 - 2\cdot1 = 2

C32=(1)3+2det(M32)=1222=(1222)=2 C_{32} = \left(-1\right)^{3+2} \text{det}\left(M_{32}\right) = -\left| \begin{array} {ccc} 1 \quad & 2 \\ 2 \quad & 2 \end{array} \right| = -\left(1\cdot2 - 2\cdot2\right) = 2

C33=(1)3+3det(M33)=1221=1122=3 C_{33} = \left(-1\right)^{3+3} \text{det}\left(M_{33}\right) = \left| \begin{array} {ccc} 1 \quad & 2 \\ 2 \quad & 1 \end{array} \right| = 1\cdot1 - 2\cdot2 = -3


참고로 det(A) \text{det}\left(A\right) 의 계산은 위의 cofactor matrix에서 아무 열이나 골라서 사용하면 된다. 여기선 간단히 첫번째 열을 골랐다.

det(A)=a11C11+a21C21+a31C31=13+22+22=5 \text{det}\left(A\right) = a_{11}C_{11} + a_{21}C_{21} + a_{31}C_{31} = 1\cdot-3 + 2\cdot2 + 2\cdot2 = 5


계산 완료.

A1=15[322232223]\displaystyle A^{-1} = \frac{1}{5} \left[ \begin{array} {ccc} -3 \quad & 2 \quad & 2 \\ 2 \quad & -3 \quad & 2 \\ 2 \quad & 2 \quad & -3 \end{array} \right]


검증차 원래 행렬과 곱해서 identity matrix가 나오나 확인도 해보자.

A1A=15[122212221][322232223]=15[500050005]=I\displaystyle A^{-1}A = \frac{1}{5} \left[ \begin{array} {ccc} 1 \quad & 2 \quad & 2 \\ 2 \quad & 1 \quad & 2 \\ 2 \quad & 2 \quad & 1 \end{array} \right] \left[ \begin{array} {ccc} -3 \quad & 2 \quad & 2 \\ 2 \quad & -3 \quad & 2 \\ 2 \quad & 2 \quad & -3 \end{array} \right] = \frac{1}{5} \left[ \begin{array} {ccc} 5 \quad & 0 \quad & 0 \\ 0 \quad & 5 \quad & 0 \\ 0 \quad & 0 \quad & 5 \end{array} \right] = I

이게 뭔 개고생이람...

여기선 3×33\times 3이라 cofactor matrix의 각 항을 쉽게 계산했지만, 크기가 커지면 determinant 계산 자체가 recursive하게 된다. 쉽게 말해 노가다라든가 노가다라든가 노가다 같은 게 된다는 의미.4만되도 3을4번 해야한다. 어쨌든 아무리 커도 계산이 가능한 것은 사실이다.
내용자체는 어려운편이 아니여서 프로그래밍하기 쉽다.보통 5이상은 그냥 프로그램을 만드는게 더 빠를 수있다.

[1] CCiijj열 요소
파일:크리에이티브 커먼즈 라이선스__CC.png 이 문서의 내용 중 전체 또는 일부는 행렬#s-2.2.2 문서의 r137 버전에서 가져왔습니다. 이전 역사 보러 가기