선형대수학 Linear Algebra | |||
{{{#!wiki style="margin: 0 -10px -5px; min-height: calc(1.5em + 5px)" {{{#!folding [ 펼치기 · 접기 ] {{{#!wiki style="margin: -5px -1px -11px" | <colbgcolor=#006ab8> 기본 대상 | 일차함수 · 벡터 · 행렬 · 선형 변환 | |
대수적 구조 | 가군(모듈) · 벡터 공간 · 내적 공간 · 노름 공간 | ||
선형 연산자 | <colbgcolor=#006ab8> 기본 개념 | 연립방정식(1차 · 2차) · 행렬곱 · 단위행렬 · 역행렬과 크라메르 공식 · 가역행렬 · 전치행렬 · 행렬식(라플라스 전개) · 주대각합 | |
선형 시스템 | 기본행연산과 기본행렬 · 가우스-조르당 소거법 · 행사다리꼴 · 행렬표현 · 라그랑주 보간법 | ||
주요 정리 | 선형대수학의 기본정리 · 차원 정리 · 가역행렬의 기본정리 · 스펙트럼 정리 | ||
기타 | 제곱근행렬 · 멱등행렬 · 멱영행렬 · 에르미트 행렬 · 야코비 행렬 · 방데르몽드 행렬 · 아다마르 행렬 변환 · 노름(수학) | ||
벡터공간의 분해 | 상사 · 고유치 문제 · 케일리-해밀턴 정리 · 대각화(대각행렬) · 삼각화 · 조르당 분해 | ||
벡터의 연산 | 노름 · 거리함수 · 내적 · 외적(신발끈 공식) · 다중선형형식 · ∇ · 크로네커 델타 | ||
내적공간 | 그람-슈미트 과정 · 수반 연산자(에르미트 내적) | ||
다중선형대수 | 텐서 · 텐서곱 · 레비치비타 기호 | }}}}}}}}} |
1. 개요
determinant · 行列式정방행렬 (n × n 행렬) 에서만 정의되는 값으로, 행렬의 가역성을 판별해준다.
2. 역사
역사적으로 본다면 행렬은 연립 일차 방정식의 풀이를 어떻게 하면 될까라고 고민한 데서 시작했다. 제임스 조지프 실베스터(James Joseph Sylvester)와 아서 케일리(Arthur Cayley) 등이 연구하다가 [math((ad-bc))]의 값에 따라 연립 방정식의 해가 다르게 나오는 것을 발견했다. 이 값이 해의 존재 여부(궁극적으로는 행렬의 가역 여부)를 '판별'한다는 뜻에서 determinant라는 용어가 탄생했고, 윌리엄 로원 해밀턴이 '그러면 연립 방정식의 계수랑 변수를 따로 떼어내서 쓰면 어떨까?'라는 생각에서 행렬이 탄생했다. 즉 교육과정에서 배우는 것과는 달리, 역사적으로 보면 행렬식이 행렬보다 먼저 탄생했다.3. 표기법
행렬식의 표기법으로는, determinant의 약자인 [math(\det)]와 절댓값 기호([math(| \cdot |)])를 쓰는 방법이 있다. 행렬 [math(A = \begin{pmatrix} a & b \\ c & d \end{pmatrix})]의 행렬식은[math(|A| = \begin{vmatrix} a & b \\ c & d \end{vmatrix} = \left| \begin{pmatrix} a & b \\ c & d \end{pmatrix} \right| = \det A = \det \begin{pmatrix} a & b \\ c & d \end{pmatrix} = ad - bc)]
와 같이 나타낸다.
앞 두 항에서 절댓값 기호가 두 겹일 경우 행렬식을 구한 뒤 그 값의 절댓값을 구하라는 의미이다. 다시 말해 안쪽 절댓값 기호는 '행렬식을 연산해라'라는 뜻이고, 바깥쪽 절댓값 기호는 '그 후에 절댓값을 취해라'라는 뜻이다.[1]
- [math(|| A || = {\left|\begin{vmatrix} a & b \\ c & d \end{vmatrix}\right|} = |ad-bc| = \begin{cases} ad-bc && (ad-bc > 0) \\ -(ad-bc) && (ad-bc < 0)\end{cases})]
4. 정의 1
우선, 열벡터 각각을 하나의 인수로 보자. 그러면 행렬식은 다음 3가지 성질을 만족하는 함수로 정의할 수 있다.- [math(n=2)]이면 [math(\det: (F^2)^2\rightarrow F)]
|
수식이 아닌 이런 장황한 문장으로 정의하는 까닭은, 행렬식과는 전혀 관계가 없어 보이는 대칭군이라는 개념을 알아야 [math(4)]차 이상의 고차 행렬식도 계산을 할 수 있기 때문[8]이다. 사실 라이프니츠가 대칭군을 도입해서 행렬식을 정의하기 전까지는 위처럼 간단명료하지 않았기 때문에 처음 본 사람은, 복잡하게 느낄 수도 있다. 개론을 들었다면, 계산법만 배웠기에 무의미하게 느껴지기도 할 것이고. 위의 다중 선형성과 교대성을 행렬식의 성질이라 배웠는데, 왜 정의로 가져다 썼나 싶을 것이다. 그러나 다중 선형성과 교대성은 선형대수에서 아주 흔히 보이는 성질이라는 것을 생각하면 그렇지 않다. 그리고 지저분한 계산으로 정의하는 것보다는 (더 어렵긴 하지만) 자주 등장하는 성질로 정의하는 것이 본질에 더 가깝다는 것을 기억하자. 계산에 의한 정의보다 다른 성질들을 증명하기 훨씬 편하다.
5. 정의 2
[math(\displaystyle \left| (a_{ij})_{n\times n}\right|= \sum_{\sigma \in S_n} \mathrm{sgn} \left(\sigma\right) \prod_{i=1}^n a_{i\sigma\left(i\right)})] |
아예 정의를 위의 성질로 할 수도 있다. 이 경우 ([math(n)]을 [math(V)]의 차원이라 할 때) 단위행렬에서의 값이 [math(1)]인 교대 [math(n)]-다중 선형형식(alternating [math(n)]-multilinear form)이라는 간단한 정의가 나온다.[9]
고트프리드 라이프니츠가 고안했다.
5.1. 의미
원활한 이해를 돕기 위해 대칭군 및 치환 항목도 참조.항등치환 [math(\varepsilon = \begin{pmatrix} 1 & 2 & 3 & \cdots\cdots & i & \cdots\cdots & n \\ 1 & 2 & 3 & \cdots\cdots & i & \cdots\cdots & n \end{pmatrix})]에 대해 아래와 같은 대칭군 [math(\sigma)]
[math(\sigma = \begin{pmatrix} 1 & 2 & 3 & \cdots\cdots & i & \cdots\cdots & n \\ \sigma \left( 1 \right) & \sigma \left( 2 \right) & \sigma \left( 3 \right) & \cdots\cdots & \sigma \left( i \right) & \cdots\cdots & \sigma \left( n \right) \end{pmatrix})] |
이 부호와 행렬의 [math((i, \ \sigma \left( i \right)))] 성분 [math(a_{i \sigma \left( i \right)})]의 계승 [math(\displaystyle \prod_{i=1}^n a_{i \sigma \left( i \right)})]을 곱하면 행렬식을 계산하기 위한 항 [math(1)]개가 얻어진다. 대칭군의 경우의 수는 [math(n)]개의 숫자를 나열하는 방법의 수 [math(n!)]과 같으므로 모든 대칭군의 경우의 수에 대해 위 계산을 해서 모두 더해주면([math(\displaystyle \sum)]) 구하고자 하는 행렬식의 값이 얻어진다.
5.2. 교대 다중 선형형식으로부터의 유도
정말로 위의 식이 교대 다중 선형형식으로부터 얻어지는지 확인해 보도록 하자. 이는 아래에 소개될 성질들을 증명하는데 있어서도 중요한 역할을 한다.먼저 임의로 고른 벡터 [math(\mathbf{v}_1, \mathbf{v}_2, \cdots, \mathbf{v}_n)]을 생각해 보자. 그리고 어떤 스칼라들 [math(a_{ij})] ([math(i, j = 1, 2, \cdots, n)])을 생각해 보자. 그러면 다중 선형성으로부터 다음을 얻는다.
[math(\displaystyle \det\left( \sum_{j_1} a_{1j_1} \mathbf{v}_{j_1}, \sum_{j_2} a_{2j_2} \mathbf{v}_{j_2}, \cdots \sum_{j_n} a_{nj_n} \mathbf{v}_{j_n} \right) = \sum_{j_1, j_2, \cdots, j_n} a_{1j_1} a_{2j_2} \cdots a_{nj_n} \det\left( \mathbf{v}_{j_1}, \mathbf{v}_{j_2}, \cdots, \mathbf{v}_{j_n} \right))].
그런데 교대성으로부터 만약 [math(j_1, j_2, \cdots, j_n)]들 중 어느 둘이라도 중복되는 경우 [math(\det\left( \mathbf{v}_{j_1}, \mathbf{v}_{j_2}, \cdots, \mathbf{v}_{j_n} \right))]는 0이 되어 버린다. 따라서 위 식 우변에서 남는 항은 [math(j_1, j_2, \cdots, j_n)]들이 제각각 모두 다 다른 경우들에 대한 항들이어야 할 것이다. 이때 남은 항들의 [math(j_1, j_2, \cdots, j_n)]은 사실 [math(1, 2, \cdots, n)]을 임의로 뒤섞은 것이다. 이를 치환의 언어로 쓴 게 바로 다음과 같다.
[math(\displaystyle \sum_{j_1, j_2, \cdots, j_n} a_{1j_1} a_{2j_2} \cdots a_{nj_n} \det\left( \mathbf{v}_{j_1}, \mathbf{v}_{j_2}, \cdots, \mathbf{v}_{j_n} \right) = \sum_{\sigma \in S_n} a_{1\sigma(1)} a_{2\sigma(2)} \cdots a_{n\sigma(n)} \det\left( \mathbf{v}_{\sigma(1)}, \mathbf{v}_{\sigma(2)}, \cdots, \mathbf{v}_{\sigma(n)} \right) = \sum_{\sigma \in S_n} \left( \prod_{i = 1}^n a_{i \sigma(i)} \right) \det\left( \mathbf{v}_{\sigma(1)}, \mathbf{v}_{\sigma(2)}, \cdots, \mathbf{v}_{\sigma(n)} \right))].
여기서 한 번 더 교대성을 쓰면 위에서 설명한 대로 [math(\det\left( \mathbf{v}_{\sigma(1)}, \mathbf{v}_{\sigma(2)}, \cdots, \mathbf{v}_{\sigma(n)} \right) = \mathrm{sgn}(\sigma) \det\left( \mathbf{v}_{1}, \mathbf{v}_{2}, \cdots, \mathbf{v}_{n} \right))]과 같이 쓸 수 있다. 이것까지 대입하면 최종적으로 다음을 얻게 된다.
[math(\displaystyle \det\left( \sum_{j_1} a_{1j_1} \mathbf{v}_{j_1}, \sum_{j_2} a_{2j_2} \mathbf{v}_{j_2}, \cdots \sum_{j_n} a_{nj_n} \mathbf{v}_{j_n} \right) = \left[ \sum_{\sigma \in S_n} \mathrm{sgn}(\sigma) \left( \prod_{i = 1}^n a_{i \sigma(i)} \right) \right] \det\left( \mathbf{v}_{1}, \mathbf{v}_{2}, \cdots, \mathbf{v}_{n} \right) )] |
맨 끝에 붙은 [math(\det\left( \mathbf{v}_{1}, \mathbf{v}_{2}, \cdots, \mathbf{v}_{n} \right))]을 빼면 정확하게 위의 정의 식과 일치한다. 실제로 [math(\mathbf{v}_j)]를 [math(\mathbf{e}_j)]로 놓고 [math(\det\left( \mathbf{e}_{1}, \mathbf{e}_{2}, \cdots, \mathbf{e}_{n} \right) = 1)]로 정의하면 좌변은 그대로 행렬식이 되고[10] 우변은 그 정의 식이 된다.
이 식은 언급되었다시피 다양한 성질들을 증명하는데 많이 사용되는데, 여기서 한 가지 성질을 소개한다. 이번엔 [math(\mathbf{v}_j)]를 [math(\mathbf{e}_j)]로 놓는 대신에 임의지만 이들이 선형독립(linearly independent)하다고 하자. 이들 개수가 [math(n)]개라는 것으로부터 이들이 기저(basis)를 이룬다는 것은 분명하며, 따라서 모든 벡터들을 이들의 선형결합(linear combination)으로 쓸 수 있다. 이는 [math(\mathbf{e}_j)]들도 마찬가지이다. 즉, [math(\mathbf{e}_i = \sum_{j} b_{ij} \mathbf{v}_j)]를 만족하는 스칼라들 [math(b_{ij})]가 존재함을 알 수 있다. 위 결과 식에 이걸 그대로 대입하면 다음을 얻을 수 있다.
[math(\displaystyle \det\left( \mathbf{e}_{1}, \mathbf{e}_{2}, \cdots, \mathbf{e}_{n} \right) = \left[ \sum_{\sigma \in S_n} \mathrm{sgn}(\sigma) \left( \prod_{i = 1}^n b_{i \sigma(i)} \right) \right] \det\left( \mathbf{v}_{1}, \mathbf{v}_{2}, \cdots, \mathbf{v}_{n} \right) )].
일단 [math(\sum_{\sigma \in S_n} \mathrm{sgn}(\sigma) \left( \prod_{i = 1}^n b_{i \sigma(i)} \right))] 이 녀석이 0인지 아닌지는 아직 모른다. 하지만 적어도 우리는 이미 [math(\det\left( \mathbf{e}_{1}, \mathbf{e}_{2}, \cdots, \mathbf{e}_{n} \right))]가 1, 즉 0이 아님을 알고 있다. 따라서 [math(\sum_{\sigma \in S_n} \mathrm{sgn}(\sigma) \left( \prod_{i = 1}^n b_{i \sigma(i)} \right))]가 0이 아닌 것은 물론 [math(\det\left( \mathbf{v}_{1}, \mathbf{v}_{2}, \cdots, \mathbf{v}_{n} \right) )]가 0이 아니어야 한다는 것을 알 수 있다. 결국 다음을 알 수 있다.
선형독립인 [math(\mathbf{v}_1, \mathbf{v}_2, \cdots, \mathbf{v}_n)]에 대해 [math(\det\left( \mathbf{v}_{1}, \mathbf{v}_{2}, \cdots, \mathbf{v}_{n} \right) \ne 0 )]이다. |
한편, 다중선형성과 교대성으로부터 다음을 쉽게 바로 보일 수 있다.
임의의 벡터 [math(\mathbf{v}_1, \mathbf{v}_2, \cdots, \mathbf{v}_n)]와 [math(i = 1, 2, \cdots, n)], 그리고 스칼라 [math(a_1, a_2, \cdots, a_n)]에 대해 다음이 성립한다. [math(\det\left( \mathbf{v}_{1}, \mathbf{v}_{2}, \cdots, \mathbf{v}_{n} \right) = \det\left( \mathbf{v}_{1}, \mathbf{v}_{2}, \cdots, \mathbf{v}_i + \sum_{j \ne i} a_j \mathbf{v}_j, \cdots, \mathbf{v}_{n} \right))]. |
여기서 만약 [math(\mathbf{v}_1, \mathbf{v}_2, \cdots, \mathbf{v}_n)]가 선형종속(linearly dependent)이면 적당한 [math(i)]에 대하여 [math(\mathbf{v}_i + \sum_{j \ne i} a_j \mathbf{v}_j = 0)]이도록 하는 스칼라 [math(a_1, a_2, \cdots, a_n)]을 항상 찾을 수 있다. 이는 곧 [math(\det\left( \mathbf{v}_{1}, \mathbf{v}_{2}, \cdots, \mathbf{v}_{n} \right) = 0)]임을 의미한다. 이 결과를 결합하여 다음을 얻을 수 있다.
벡터 [math(\mathbf{v}_1, \mathbf{v}_2, \cdots, \mathbf{v}_n)]가 선형독립일 필요충분조건은 [math(\det\left( \mathbf{v}_{1}, \mathbf{v}_{2}, \cdots, \mathbf{v}_{n} \right) \ne 0 )]인 것이다. |
5.3. 예시
[math(3)]차 행렬식 [math(|A| = \begin{vmatrix} a_{11} & a_{12} & a_{13} \\ a_{21} & a_{22} & a_{23} \\ a_{31} & a_{32} & a_{33} \end{vmatrix})]의 경우 [math(n=3)]이므로 다음과 같은 대칭군이 존재하며 부호는 다음과 같다.[math(\begin{aligned} \varepsilon &= \begin{pmatrix} 1 & 2 & 3 \\ 1 & 2 & 3 \end{pmatrix}, \ \mathrm{sgn} \left( \varepsilon \right) = \left( -1 \right)^0 = 1 \\ \sigma_{23} &= \begin{pmatrix} 1 & 2 & 3 \\ 1 & 3 & 2 \end{pmatrix}, \ \mathrm{sgn} \left( \sigma_{23} \right) = \left( -1 \right)^1 = -1 \\ \sigma_{12} &= \begin{pmatrix} 1 & 2 & 3 \\ 2 & 1 & 3 \end{pmatrix}, \ \mathrm{sgn} \left( \sigma_{12} \right) = \left( -1 \right)^1 = -1 \\ \sigma_{231} &= \begin{pmatrix} 1 & 2 & 3 \\ 2 & 3 & 1 \end{pmatrix}, \ \mathrm{sgn} \left( \sigma_{231} \right) = \left( -1 \right)^2 = 1 \\ \sigma_{13} &= \begin{pmatrix} 1 & 2 & 3 \\ 3 & 2 & 1 \end{pmatrix}, \ \mathrm{sgn} \left( \sigma_{13} \right) = \left( -1 \right)^1 = -1 \\ \sigma_{312} &= \begin{pmatrix} 1 & 2 & 3 \\ 3 & 1 & 2 \end{pmatrix}, \ \mathrm{sgn} \left( \sigma_{312} \right) = \left( -1 \right)^2 = 1 \end{aligned})] |
[math(\displaystyle |A| = \sum_{\sigma \in S_n} \mathrm{sgn} \left( \sigma \right) \prod_{i=1}^3 a_{i \sigma \left( i \right)} = a_{11}a_{22}a_{33} + a_{12}a_{23}a_{31} + a_{13}a_{21}a_{32} - a_{11}a_{23}a_{32} - a_{12}a_{21}a_{33} - a_{13}a_{22}a_{31})] |
6. 성질
- [math(\det{(kA)}=k^n \det{A})][11]
- 행렬의 다중 선형성으로부터 바로 얻어진다.
- [math(A^\mathrm{T})]를 [math(A)]의 전치행렬(transpose matrix)이라고 하면 [math(\det {A^\mathrm{T}} = \det A)].
- 곱셈 순서를 치환의 반대가 되도록 뒤섞는 것으로 임의의 치환 [math(\sigma)]에 대해 [math(\prod_{i=1}^n a_{i\sigma\left(i\right)} = \prod_{i=1}^n a_{\sigma^{-1}\left(i\right) i})]가 성립한다는 것을 바로 알 수 있다. 이로부터 [math(\det{A^\mathrm{T}} = \sum_{\sigma \in S_n} \mathrm{sgn} \left(\sigma\right) \prod_{i=1}^n a_{\sigma\left(i\right) i})]가 [math(\sum_{\sigma \in S_n} \mathrm{sgn} \left(\sigma\right) \prod_{i=1}^n a_{i \sigma^{-1}\left(i\right)} = \sum_{\sigma \in S_n} \mathrm{sgn} \left(\sigma^{-1}\right) \prod_{i=1}^n a_{i \sigma^{-1}\left(i\right)} = \det{A})]와 같음을 알 수 있다.
- [math(\det{AB} = \det{A} \det{B})]
- 다시 [math(A)]의 [math(j)]-번째 열벡터를 [math(A^j)]라 표기하고 [math(B)]의 성분들을 [math(b_{ij})]라 표기하겠다. 사실 [math(AB)]의 [math(j)]-번째 열벡터는 다음과 같이 쓸 수 있다.
[math(\displaystyle (AB)^j = \sum_{r = 1}^n b_{rj} A^r)].
이로부터 다음을 얻을 수 있다.
[math(\displaystyle \det{AB} = \det\left( \sum_{r_1} b_{r_1 1} A^{r_1}, \sum_{r_2} b_{r_2 2} A^{r_2}, \cdots, \sum_{r_n} b_{r_n n} A^{r_n} \right))].
여기서 위의 교대 다중 선형형식으로부터 얻은 결과를 통해 이를 다음과 같이 쓸 수 있다.
[math(\displaystyle \det{AB} = \left[ \sum_{\sigma \in S_n} \mathrm{sgn}(\sigma) \left( \prod_{r = 1}^n b_{\sigma(r) r} \right) \right] \det\left( A^1, A^2, \cdots, A^n \right) )].
여기서 [math(\det\left( A^1, A^2, \cdots, A^n \right) = \det{A})]임은 잘 알고 있다. 한편 우변의 나머지 파트가 다름 아닌 [math(\det{B^\mathrm{T}})]임을 볼 수 있다. 따라서 [math(\det{AB} = \det{A} \det{B^{\mathrm{T}}})]임을 보였다. 이제 위에서 보인 대로 [math(\det {B^\mathrm{T}} = \det B)]이기 때문에 결국 우리가 원하는 식을 얻었다. - [math(\det{AB} = \det{BA})][12]
- [math(\det{AB} = \det{A} \det{B})]로 인해 당연하다.
- [math(A)]가 가역행렬일 경우 [math(\det A^{-1}=\left(\det A \right)^{-1})]
- [math(\det{AB} = \det{A} \det{B})]로부터 [math(1 = \det{I} = \det{A^{-1} A} = \det{A} \det{A^{-1}})]임을 얻을 수 있다.
- [math(A)]와 [math(B)]가 서로 닮은행렬이면 [math(\det A=\det B)]
- 이때 [math(B = UAU^{-1})]인 가역행렬 [math(U)]가 존재한다는 사실로부터 [math(\det{B} = \det{UAU^{-1}} = \det{U} \det{A} \det{U^{-1}} = \det{A})]임을 얻게 된다.
- 정사각행렬 [math(A)]에 대해 다음 명제들은 동치이다.
- (1) [math(A)]가 가역이다
- (2) 모든 [math(\mathbf{0}\neq \mathbf{v} \in F^{n})]에 대해 [math(A \mathbf{v} \ne \mathbf{0})]이다.
- (3) [math(A)]의 열벡터들은 선형독립이다.
- (4) [math(\det{A} \neq 0)]이다.
- (1) → (2): 만약 [math(A \mathbf{v} \ne \mathbf{0})]인 [math(\mathbf{0} \neq \mathbf{v} \in F^{n})]가 존재할 경우 [math(\mathbf{v} = A^{-1} \left( A\mathbf{v} \right) = 0)]가 되는 모순이 발생한다는 것으로 보일 수 있다.
- (2) → (3): [math(A)]의 열벡터들을 [math(A^i)]라고 표기하겠다. 사실 [math(A\mathbf{v} = \sum_i v_i A^i)] ([math(v_i)]는 [math(\mathbf{v})]의 [math(i)]-번째 성분)과 같은데, 만약 이 열벡터들이 선형종속이면 [math(\sum_i v_i A^i = 0)]인 모두 0은 아닌 [math(v_i)]들이 존재한다는 것이며, 따라서 [math(A\mathbf{v} = 0)]인 0이 아닌 [math(\mathbf{v})]가 존재할텐데, 이는 (2)와 모순이다.
- (3) → (1): 이때 [math(A^i)]들이 기저를 이루는 걸 알 수 있다. 따라서 모든 벡터들은 [math(A^i)]들의 선형결합으로 써질 수 있으며 그 꼴은 유일하다. 그런데 이 선형결합은 항상 [math(A\mathbf{x})] 꼴로 써질 수 있다. 즉, 모든 벡터 [math(\mathbf{v})]에 대해 유일한 [math(A\mathbf{x})]가 존재하여 [math(\mathbf{v} = A\mathbf{x})]인 것이다. 이는 선형 사상 (linear map) [math(f: \mathbf{x} \mapsto A\mathbf{x})]가 단전사(bijective)함을 의미한다. 이제 선형대수의 기본정리를 사용하여 [math(A)]가 가역임을 알 수 있다.[13]
- (3) ↔ (4): 저 위의 교대 다중 선형형식으로부터의 유도 항목에서 이를 설명하였다.
- 블록행렬 [math(A)] 와 [math(C)]가 각각 정사각행렬일 때 [math(\det \begin{pmatrix} A & B \\ O & C \end{pmatrix}=\det A\det C)][14]
- 이건 여인수 전개(cofactor expansion)로 증명하는 것이 편하다. 저 블록행렬을 [math(X)]라고 표기하고 [math(X)]의 성분들을 [math(x_{ij})]라고 표기하자. 그리고 [math(A)]가 [math((m \times m))]-행렬이라고 두자. 만약 [math(C)]가 [math((1 \times 1))]-행렬이면 맨 마지막 행에 대한 여인수 전개를 통해 [math(\det{M} = \sum_{i = 1}^{m + 1} (-1)^{(m + 1) + i} x_{i, (m + 1)} M_{i, (m + 1)} = (-1)^{(m + 1) + (m + 1)} c_{11} M_{m+1, m+1})]임을 얻는다. (아래에 정의되어 있지만 [math(M_{ij})]는 행렬 [math(X)]에서 [math(i)]-번째 행과 [math(j)]-번째 열을 지워서 얻은 부분행렬(submatrix)의 행렬식이다.) ([math(C = (c_{11}))].) 그런데 [math(M_{m+1, m+1})]은 다름 아닌 [math(\det{A})]와 같다. 따라서 [math(\det{M} = c_{11} \det{A} = \det{A} \det{B})]를 얻는다.
이번에는 어떤 [math(n)]에 대하여 만약 [math(C)]가 [math((n \times n))]-행렬이면 우리가 원하는 식이 항상 성립한다고 가정하자. 이제 [math(C)]가 [math((n + 1) \times (n + 1))]-행렬이라고 두도록 하자. 한편, [math(C)]의 [math((n+1))]-번째 열과 [math(i)]-번째 행을 지워서 얻은 부분행렬을 [math(C_i)]라고 표기하자. 그러면 [math(i \le n + 1)]인 [math(i)]에 대하여 다음을 얻는다.
[math(\displaystyle M_{i + m, m + n + 1} = \det \begin{pmatrix} A & B \\ O & C_i \end{pmatrix})].
여기서 [math(C_i)]가 [math((n \times n))]-행렬임을 상기하자. 그러면 가정에 의하여 [math(M_{i + m, m + n + 1} = \det{A} \det{C_i})]임을 얻는다. 한편, [math(C)]의 성분들을 [math(c_{ij})]라고 표기하면 [math(x_{i + m, j + m} = c_{ij})]임을 얻는다. 이제 맨 마지막 행에 대하여 [math(\det{X})]의 여인수 전개를 해 보자. 그러면 다음을 얻는다.
[math(\displaystyle \det{X} = \sum_{i = 1}^{m + n + 1} (-1)^{i + (m + n + 1)} x_{i, (m + n + 1)} M_{i, m + n + 1} = \sum_{i = m + 1}^{m + n + 1} (-1)^{i + (m + n + 1)} x_{i, (m + n + 1)} M_{i, m + n + 1})]
[math( = \sum_{i = 1}^{n + 1} (-1)^{i + (n + 1)} x_{i + m, (m + n + 1)} M_{i + m, m + n + 1} = \sum_{i = 1}^{n + 1} (-1)^{i + (n + 1)} c_{i, (n + 1)} \det{A} \det{C_i} = \det{A} \det{C})].
따라서 [math(C)]가 [math((n + 1) \times (n + 1))]-행렬임에도 우리가 원하는 식이 성립함을 알 수 있다. 이제 [math(n)]에 대한 수학적 귀납법을 통해 위 식이 항상 성립함을 알 수 있다. - 삼각행렬의 행렬식은 주대각 성분의 곱과 같다.
- 위 결과에서 [math(C)]가 [math(1 \times 1)]인 경우에 대해 생각하고 행렬의 크기에 대해 수학적 귀납적을 사용하면 바로 얻어진다.
- 정사각행렬의 행렬식은 고윳값 각각에 대수적 중복도(algebraic multiplicity)를 제곱한 걸 모두 곱한 것과 같다.
- 행렬 [math(A)]의 고윳값들을 [math(\lambda_i)]라 하고 이들 각각의 대수적 중복도를 [math(r_i)]라고 하면, [math(A)]의 특성다항식은 [math(\det{(t1 - A)} = \prod_i (t - \lambda_i)^{r_i})]가 된다.[15] 이제 [math(t = 0)]을 대입해 보자.
- [math(\det{(\mathrm{adj}\,A)}=\left(\det{A}\right)^{n-1})][16]
- 역행렬의 정의 [math(\displaystyle A^{-1}=\frac{\mathrm{adj}\,A }{\det{A}})]에 다른 행렬식의 성질을 종합하여 얻어진다.
- [math(\displaystyle I_{n}=AA^{-1}=A\frac{\mathrm{adj}\,A }{\det{A}})]이므로 분모의 [math(\det{A})]를 양 변에 곱하고 행렬식을 취하면 [math(\displaystyle |\left(|A|I_{n}\right)|=|A||\mathrm{adj}\,A |)]가 되는데, 여기서 [math(\det{(kA)}=k^n \det{A})] 성질을 적용하면 이 식은 [math(|A|^{n}=|A||\mathrm{adj}\,A |)]가 된다. 행렬식이 0이라면 따질 필요가 없고[17] 0이 아니라면 [math(|A|)]로 양 변을 약분할 수 있으므로 [math(\det{(\mathrm{adj}\,A)}=\left(\det{A}\right)^{n-1})]가 성립한다.
7. 선형변환에서의 행렬식
유한 차원 벡터 공간 [math(V)]의 선형변환 [math(T:V\to V)]가 주어져 있을 때, 임의의 두 기저 [math(\beta)]와 [math(\beta')]에 대하여, 행렬표현 [math([T]_\beta^\beta)]와 [math([T]_{\beta'}^{\beta'})]는 닮은행렬이다. 그런데, 행렬식은 닮음불변량이므로, 선형변환의 행렬식을 [math(\det T=\det [T]_\beta^\beta)]로 자연스럽게 정의할 수 있다.8. 계산법
8.1. 사루스 법칙
사루스 법칙은 [math(3\times3)] 행렬식을 계산하는 공식 중 하나이다. [math(3)]차 정사각 행렬 이외에는 적용이 안 된다는 점에 주의하자.[18] [math(3\times3)] 행렬 [math(A)]가 다음과 같이 주어져있다고 하자.[math(\begin{pmatrix} a_{11}& a_{12}& a_{13} \\ a_{21}& a_{22}& a_{23} \\ a_{31}& a_{32}& a_{33} \end{pmatrix})]
(1) 1열과 2열을 차례대로 4열과 5열에 한 번 더 쓴다.
[math(\begin{pmatrix} a_{11}& a_{12}& a_{13}&a_{11}& a_{12} \\ a_{21}& a_{22}& a_{23}&a_{21}& a_{22} \\ a_{31}& a_{32}& a_{33}&a_{31}& a_{32} \end{pmatrix})]
(2)다음과 같이 대각선을 긋는다.
(3)같은 대각선에 위치한 성분끼리 곱해준다.
(4)↘ 방향의 결과는 더해주고, ↙방향의 결과는 빼준다. 즉,
[math(\det A=a_{11}a_{22}a_{33}+a_{12}a_{23}a_{31}+a_{13}a_{21}a_{32}-a_{13}a_{22}a_{31}-a_{11}a_{23}a_{32}-a_{12}a_{21}a_{33})]
가 원하는 행렬식의 값이다.사루스 법칙이 쓸모있는 곳은 3차원 벡터의 외적 및 회전이다. 우리는 두 3차원 벡터의 외적을
[math(\bold{a} \times \bold{b}= \det \begin{bmatrix} \hat{\bold{x}} & \hat{\bold{y}} & \hat{\bold{z}} \\ a_1 & a_2 & a_3 \\ b_1 & b_2 & b_3 \end{bmatrix})]
로 쓰는 것을 안다.
이를 위처럼
[math(\begin{bmatrix} \hat{\bold{x}} & \hat{\bold{y}} & \hat{\bold{z}} & \hat{\bold{x}} & \hat{\bold{y}} \\ a_1 & a_2 & a_3 & a_1 & a_2 \\ b_1 & b_2 & b_3 & b_1 & b_2 \end{bmatrix})]
로 만들어 계산할 수 있음을 얻는다. 회전 또한 같은 맥락으로
[math(\mathrm{curl}\ \bold{a} \Rightarrow \begin{bmatrix} \hat{\bold{x}} & \hat{\bold{y}} & \hat{\bold{z}} & \hat{\bold{x}} & \hat{\bold{y}} \\ \dfrac{\partial}{\partial x} & \dfrac{\partial}{\partial y} & \dfrac{\partial}{\partial z} & \dfrac{\partial}{\partial x} & \dfrac{\partial}{\partial y} \\ a_x & a_y & a_z & a_x & a_y \end{bmatrix})]
로 바꿔 계산할 수 있다.
8.2. 벡터 계산
3차 정사각행렬의 행렬식 한정으로는 다음과 같은 계산법이 있다. 사루스 법칙과 비슷하면서도 다른 계산법이다.3차 정사각행렬의 각 행이나 열을 각각 벡터로 취급하면 [math(A=\left[u_1, u_2, u_3\right])] 혹은 [math(A=\begin{bmatrix}v_1\\v_2\\v_3\end{bmatrix})]로 둘 수 있다. 이 때, 다음이 성립한다.
- [math(\det A=u_1\cdot\left(u_2\times u_3\right)=v_1\cdot\left(v_2\times v_3\right))](여기서 [math(\times)]는 벡터의 벡터곱(외적)을, [math(\cdot)]은 벡터의 내적을 의미한다.)
8.3. 라플라스 전개
여인수 전개(cofactor expansion)으로도 많이 알려져 있다. 라플라스 전개 항목 참조8.4. 가우스 소거법
행렬식의 근본적인 세가지 성질인 교대성, 다중선형성, [math(\det I=1)]을 이용하면, 가우스소거법을 통해 행렬식을 계산하는 방법을 알 수 있다. 행렬 [math(A)]와 기본 행 연산이 적용된 행렬 [math(EA)]간의 관계는 다음과 같다. ([math(E)]는 기본 행 연산에 대응 하는 기본행렬이다.)- 두 행의 교환 : [math(\det \left(EA \right)=-\det A)]
- 한 행에 다른 행의 [math(k)]배를 더함 : [math(\det \left(EA\right)=\det A)]
- 한 행의 [math(k)]배: [math(\det \left(EA\right)=k\det A)]
[math(\det A=\det E_1 \cdots\cdots \det E_n \det R)]
이 성립함을 알 수 있다.8.5. LU 분해법
행렬을 LU분해하면, 행렬식 공식도 다음과 같이 나타낼 수 있는데[math(\det A = \det \left(LU\right) = \det L \det U)]
행렬 [math(L)]와 [math(U)]는 각각 삼각행렬이기 때문에, 주대각 성분들을 곱하는 것 만으로 행렬식을 쉽게 구할 수 있다.
위에 나온 여인수 전개 같은 알고리즘들은 비효율적이기 때문에, 보통 컴퓨터로 행렬식을 계산할 때는 이 방식을 자주 이용한다.
허나 일부 행렬은 단순 LU 분해로만 할 수 없는 경우에 대비하기 위해 NumPy같은 경우 일반적인 LU 분해법이 아닌 행교체를 수치화하는 순열행렬P를 첨가한 PLU 분해법을 대신 사용한다.
예시로
[math(\left[ \begin{array}{ccc} 0 & 1 & 5 \\ 0 & 2 & 4 \\ 6 & 5 & 3 \end{array} \right])]는 가우스 소거법을 바로 사용할 수 없기 때문에
[math(\left[ \begin{array}{ccc} 0 & 0 & 1 \\ 1 & 0 & 0 \\ 0 & 1 & 0 \end{array} \right])] [math(\left[ \begin{array}{ccc} 6 & 5 & 3 \\ 0 & 1 & 5 \\ 0 & 2 & 4 \end{array} \right])], 왼쪽의 P 행렬을 통해 원 행렬의 행을 교환한 후에 LU 분해를 할 수 있게 한다.
9. 기하학적 특징
9.1. 넓이, 부피, 초부피
좌표평면 [math(\mathbb{R}^{2})]에서 두 벡터 [math((1,0), (0,1))]을 두 변으로 하는 평행사변형의 넓이는 1이다. 이 값은 [math(\text{det}I)]와 값이 같다. [math(\mathbb{R}^{2})]의 일차독립인 임의의 두 벡터 [math(v_{1}=(a,b))], [math(v_{2}=(c,d))]가 주어졌을 때, [math(I)]에 기본행연산을 유한번 적용하면 행렬[math(\begin{pmatrix}a&b\\c&d\end{pmatrix})]
을 구할 수 있다. 이 때, 각 기본행연산을 적용하는 과정에서 변형된 평행사변형의 넓이가 다음과 같이 바뀐다.- 두 행을 교환할 때 : 그대로
- 한 행에 다른 행의 상수배를 더해줄 때 : 그대로
- 한 행에 [math(k)]배 : [math(|k|)]배
9.2. 방향 (orientation)
[1] 주의 해야 할 것은 이것은 [math(|\cdot |)] 기호가 두번 쓰인 것이지 [math(\|\cdot\|)]처럼 두줄짜리 기호가 쓰인 것이 아니라는 점이다. 통상 [math(\|\cdot\|)] 이것은 행렬식이 아니라 행렬의 노름을 표기하는 방법이다.[2] 범함수란 벡터 공간에서 스칼라로 가는 선형변환을 말한다.[3] 각 인수들에 대해 선형이다.[4] 짧게 쓰자면, [math(\det \left(a^{\delta_{ij}}\mathbf v_j+\delta_{ij}\mathbf u\right)=a\det \left(\mathbf v_j\right)+\det \left(\left(1-\delta_{ij}\right)\mathbf v_j+\delta_{ij}\mathbf u\right))]. 여기서 [math(\delta_{ij})]는 크로네커 델타이다.[5] 두 열벡터를 교환하면 부호가 바뀐다. 이 때 [math(\mathbf v_i = \mathbf v_j)]이면 [math(\det \left(\mathbf v_j\right) = -\det \left(\mathbf v_j \right) \Rightarrow 2\det \left(\mathbf v_j \right) = 0)]에서 [math(\det \left(\mathbf v_j \right)=0)], 즉 두 열벡터가 같을 경우 그 행렬식의 값은 무조건 [math(0)]이 된다. 행렬식은 전치를 해도 값이 같으므로 두 행벡터가 같은 경우에 대해서도 똑같이 적용할 수 있다.[6] 다만, 이것은 1+1=2가 0이 아닐때의 얘기이다. F의 표수(characteristic)가 2이면, 2로 나누는 것이 0으로 나누는 것이 되어버리기 때문이다. 이 경우에는 두 벡터가 같을때 행렬식이 0이라는 조건이 추가로 있어야 행렬식의 정의가 된다.[7] 짧게 쓰자면, 호환 [math(\sigma=\begin{pmatrix} i & j \end{pmatrix})]에 대해, [math(\det \left(\mathbf v_j\right)=-\det \left(\mathbf v_{\sigma\left(j\right)}\right))]이다. 이것이 행렬식의 계산법에서 홀치환-짝치환을 따지는 이유이다.[8] 그런데 사실 이러한 고차 행렬식은 라플라스 전개를 이용하여 차수를 낮춰버리면 된다. 이 역시 행렬식의 특징을 이용해서 증명할 수 있다.[9] 참고로 좀 더 추상적으로 할 경우, 교대 다중 선형형식의 존재성을 텐서와 그 몫공간(quotient space) 중 하나로부터 유도할 수도 있다.[10] 여기서 각 [math(i)]에 대해 [math(\sum_{j_i} a_{ij_i} \mathbf{v}_{j_i})]는 행렬 [math((a_{ij}))]의 [math(i)]번째 열이 된다.[11] [math(n)]은 행렬의 크기[12] 단, 이것은 A와 B가 모두 크기가 같은 정사각행렬일 때 성립한다. 그렇지 않으면 반례가 존재한다.[13] 선형대수의 기본정리에 의하여 어떤 [math((n \times n))]-행렬 [math(B)]가 존재해 모든 모든 벡터 [math(\mathbf{v})]에 대하여 [math(f^{-1}(\mathbf{v}) = B\mathbf{v})]임을 알 수 있다. 그리고 다시 기본정리에 의하여 [math((f \circ f^{-1})(\mathbf{v}) = AB\mathbf{v})], [math((f^{-1} \circ f)(\mathbf{v}) = BA\mathbf{v})]가 성립함을 알 수 있다. 이는 [math(AB = BA = I)]임을 의미하며, 따라서 [math(A)]가 가역임을 보일 수 있다.[14] 이걸 선형 사상의 언어로 쓰면 다음과 같이 쓸 수 있다. 벡터 공간 [math(V)]와 부분 공간(subspace) [math(W)], 그리고 선형 사상 [math(L: V \to V)]가 주어져 있고 [math(W)]가 [math(L)]-invariant하다고 하자. (즉 [math(L)]은 [math(W)]의 모든 원소들을 [math(W)]로 보낸다.) 그러면 [math(L)]로부터 선형 사상 [math(\tilde{L}: V/W \to V/W)]를 자연스럽게 정의할 수 있다. ([math(\tilde{L}(v + W) = (Lv) + W)].) 이때 [math(\det{L} = \det{\tilde{L}} \det{L|_W})]가 성립한다.[15] 사실 이렇게 [math(r_i)]들이 얻어진다는 것이 대수적 중복도의 정의이다.[16] [math(n)]은 행렬의 크기, [math(\mathrm{adj}\,A)]는 행렬 [math(A)]의 고전적 수반행렬[17] 행렬식이 0이라는 소리는 비가역 행렬이라는 소리이므로 고전적 수반행렬을 취한다고 하더라도 해당 행렬 역시 비가역행렬이 되어 행렬식이 0이 되기 때문에 따질 필요가 없다.[18] 어느 교수님에 의하면 사루스 법칙 쓰는 것은 16/64에서 6을 지워서 1/4이라고 답을 내는 것과 같다고 비유하신다. 3차 정사각 행렬의 행렬식이 우연히 그런 형태로 계산할 수 있기에 탄생한 법칙이기 때문.