사용자:Liquoricej/작성중

틀:학술

소개

행렬식은 행렬이나 선형사상으로부터 계산할 수 있는 어떤 값이다. 적절히 잘 소개할 수 있는 사람이 내용 추가바람

행렬의 행렬식

우리가 고등학교에서나 미적분학 시간에 배웠을 행렬식은 모두 행렬의 성분으로 정의했다. 그래서 이 문서에서도 행렬의 성분을 이용한 정의부터 소개하려고 한다. 앞으로 [math]\displaystyle{ A, B }[/math]같은 대문자는 어떤 위의 행렬을 나타내고, [math]\displaystyle{ a_{i,j} }[/math][math]\displaystyle{ A }[/math]의 (i,j)번째 성분을 나타낸다.

순열을 이용한 정의

순열군을 이용하면 n×n 행렬의 행렬식을 다음과 같이 정의할 수 있다.

[math]\displaystyle{ \det(A) = \sum _{\sigma \in S_n} \mathrm{sgn} (\sigma) a_{1,\sigma 1} \cdots a_{n,\sigma n} }[/math]

여기서 [math]\displaystyle{ \rm{sgn}(\sigma) }[/math][math]\displaystyle{ \sigma }[/math]를 치환[1]의 합성으로만 나타낼때, 치환 갯수가 짝수면 1, 홀수면 -1이 되는 함수다.

물론 이 정의로 행렬식을 직접 계산하는 것은 힘들고[2][3]그렇다고 행렬식의 성질을 증명하기 쉽게 해주냐면 보통은 그런 것도 아니다. 그래도 [math]\displaystyle{ \det(A)=\det(A^T) }[/math]를 보이는 데 이 정의만큼 좋은 것도 없다.

소행렬식을 이용한 정의

공업수학이라던가 미적분학이라던가 여기저기서 가장 많이 볼 수 있는데, 그나마 계산하기 편하기 때문인 것으로 보인다. 5×5 행렬식을 계산해본 위키니트들의 비웃음소리가 들린다

이 정의는 귀납적이다. 우선 1×1 행렬 [math]\displaystyle{ A=(a) }[/math]에 대해서 [math]\displaystyle{ \det{A}=a }[/math]로 정의하자. 그리고 n×n 행렬의 행렬식이 정의되었다고 가정하고 (n+1)×(n+1) 행렬의 행렬식을

[math]\displaystyle{ \det(A)=\sum _{j=1} ^{n+1} (-1)^{1+j} a_{1,j} \det{A(1,j)} }[/math]

로 정의한다. 여기서 [math]\displaystyle{ A(i,j) }[/math][math]\displaystyle{ A }[/math]의 i번째 행과 j번째 열을 지운 행렬로, 소행렬(minor)이라고 부른다. 그리고 위 식은 첫번째 행에 대한 여인수 전개(cofactor expansion)이라고 부르며, 라플라스 전개라고도 부른다.

첫번째 행에 대한 전개가 있다면 i번째 행에 대한 전개도 있을 것이다. 실제로 A가 n×n 행렬이고 1≤i≤n이면

[math]\displaystyle{ \det(A)=\sum _{j=1} ^{n} (-1)^{i+j} a_{i,j} \det{A(i,j)} }[/math]

이 성립함이 알려져있다.

여기서 "행렬식의 정의가 두 개라니.. 두 정의가 정말로 같은 건가?"하고 생각한 독자가 있을 지 모른다. 실제로 이 정의와 앞에서 치환을 이용한 정의가 같은 지는 따로 증명해야 하며, 실제로 그렇다는 것이 알려져있다. We leave the proof as an exercise.

이 정의가 행렬식을 계산하기는 좋아보일지 몰라도, 실제로 이걸로 증명할 수 있는 것은 거의 없다..

Alternating Multilinear Form

위 정의들엔 친숙하다는 장점이 있지만, 행렬식의 성질을 증명하는 데는 불편하다. {{{1}}} 만약 수학적으로 보다 깔끔한 정의가 있으면 여러 성질들을 보이는 데 편리할 것이다. 실제로 행렬식은 다음과 같이 정의할 수 있다.

[math]\displaystyle{ f(I_n)=1 }[/math]을 만족하는, 열에 대한 alternating n-multilinear form [math]\displaystyle{ f }[/math]는 유일하다. 이 [math]\displaystyle{ f }[/math]를 n×n 행렬에 대한 행렬식으로 정의한다.

뭔 모르는 단어가 이렇게 많아 난 여길 빠져나가야겠어 용어를 하나하나 풀어보자. 우선 Multilinear부터 설명하겠다. n-multilinear function은 이름에 "linear"가 들어간 데서 알 수 있듯, 일종의 "다변수 선형함수"다. 정확히는 각 성분에 대해서 선형함수여야 하는데, 즉 임의의 k (1≤k≤n)에 대해 [math]\displaystyle{ f:V^n \to W }[/math][4]

[math]\displaystyle{ f(x_1 , x_2 ,\cdots , x_k +cy_k , \cdots ,x_n)= f(x_1 , x_2 ,\cdots , x_k , \cdots ,x_n) + cf(x_1 , x_2 ,\cdots , y_k , \cdots ,x_n) }[/math]

를 만족하면 f가 n-multilinear funtion이라고 한다. 특히 f의 치역이 스칼라체일 때는(즉 W=F일 때) funtion대신 form이란 용어를 쓴다.[5] 두번째로 alternating이란 용어는 어렵지 않다. n-multilinear funtion f가 alternating이란 것은 두 성분의 순서를 바꾸면 부호가 바뀐다는 것이다. 즉,

[math]\displaystyle{ f(x_1 ,\cdots , x_i ,\cdots , x_j ,\cdots , x_n)= -f(x_1 ,\cdots , x_j ,\cdots , x_i ,\cdots , x_n) }[/math]

이면 f가 alternating이라고 한다. 이제 모든 용어의 설명이 끝났으니, 다시 위의 정의를 보자...어라? 행렬식은 분명 행렬에 대해서 정의하는 건데, multilinear form은 n개의 벡터를 받아서 값을 내놓는 함수잖아? 그러나 우리는 n×n 행렬을 n개의 열벡터로 볼 수 있다. "열에 대한" multilinear form이라고 한 이유는 이것 때문이다.

이제 정말 모든 용어 설명이 끝났으니 다시 정의를 보자...음? 그런데 정말로 [math]\displaystyle{ f(I_n)=1 }[/math]을 만족하는 열에 대한 alternating n-multilinear form [math]\displaystyle{ f }[/math]가 유일한건가? 그렇다. 실제로는 보다 강한 결과가 성립한다. Alternating n-multilinear form들을 모두 모으면 F-벡터공간이 되는데[6], 이 공간의 차원은 1임이 알려져있다.

참고

지금까지 우리는 행렬의 성분이 체에 있다고 가정했다. 그런데 지금까지 우리는 곱셈에 대한 역원이 있다는 조건을 한 번도 쓴 적이 없다! 따라서 체가 아니라 가환환 성분을 갖는 행렬에 대해서도 지금까지 내린 정의와 논의는 (용어만 적절히 바꾸면) 모두 유효하다.[7] 왜 굳이 햇갈리게 가환환 위에서 행렬식을 정의하냐면, 특성다항식을 정의하기 위해서다. F가 체면 F[x]는 가환환이 되고, 특성다항식은 F[x] 성분을 갖는 행렬의 행렬식으로 정의된다.

성질

기본적인 성질

  • [math]\displaystyle{ \det{I_n}=1 }[/math]
  • [math]\displaystyle{ \det{AB}=\det{A}\det{B} }[/math]
  • [math]\displaystyle{ \det{A}=\det{A^T} }[/math]. 따라서 직교행렬의 행렬식이 ±1이 된다.
  • [math]\displaystyle{ \det }[/math]는 열벡터에 대한 alternating multilinear function이다. 즉,
    • [math]\displaystyle{ \det{A}=\det{A^T} }[/math]니까, 행벡터에 대해서도 위 세 성질이 성립한다.
  • [math]\displaystyle{ \det{A}\ne 0 }[/math]일 필요충분조건은 [math]\displaystyle{ A }[/math]가역행렬이라는 것이다. 만약 [math]\displaystyle{ A }[/math]가 가역행렬이면 [math]\displaystyle{ \det{A^{-1}}=\frac{1}{\det{A}} }[/math]다.
    • 따라서 [math]\displaystyle{ \det{A}\ne 0 }[/math]일 필요충분조건은 [math]\displaystyle{ A }[/math]의 열벡터들이 선형독립이라는 것이다.
  • n×n 삼각행렬 [math]\displaystyle{ A }[/math]의 대각성분이 [math]\displaystyle{ a_{1,1}, a_{2,2}, \cdots, a_{n,n} }[/math]이면 [math]\displaystyle{ \det (A)=a_{1,1} a_{2,2} \cdots a_{n,n} }[/math]이다. 특히 대각행렬의 행렬식은 주대각선에 있는 모든 성분의 곱이 된다.
    • 이를 블록 행렬로 일반화한 성질이 있다. 항목 참조
  • [math]\displaystyle{ A }[/math]의 고윳값을 (중복도를 포함해서) 모두 곱하면 [math]\displaystyle{ \det{A} }[/math]가 된다.
  • 방데르몽드 행렬식 항목 참조
  • 라플라스 전개 항목 참조
  • 모든 n×n 실수 행렬들의 집합을 [math]\displaystyle{ \mathbb{R}^{n^2} }[/math]과 동일시하면[8], [math]\displaystyle{ \det }[/math][math]\displaystyle{ \mathbb{R}^{n^2} }[/math]에서 실수로 가는 연속함수가 된다. [math]\displaystyle{ \det{A} }[/math]를 직접 전개하면 행렬의 성분에 대한 polynomial이 되기 때문이다. 사실 모든 행렬의 집합에 어떤 노름(norm)으로 위상을 줘도 [math]\displaystyle{ \det }[/math]는 연속함수다. 왜냐하면 행렬들의 벡터공간 위의 모든 노름은 같은 위상을 주기 때문이다.

크래머의 법칙

n개의 미지수를 가진 n개의 일차연립방정식 [math]\displaystyle{ Ax=b }[/math]가 있다고 하자. 이 때 [math]\displaystyle{ x=(x_1,\cdots ,x_n)^T }[/math]라 두자. 이제 [math]\displaystyle{ B_k }[/math]를 A에서 k번째 열벡터를 b로 바꾼 행렬이라고 두면,

[math]\displaystyle{ x_k \det(A) = \det{B_k} }[/math]

가 성립하는데, 이를 크래머의 법칙이라 부른다. 여기서 특히 A가 가역행렬이면, 위 식은

[math]\displaystyle{ x_k= \frac{\det{B_k}}{\det{A}} }[/math]

로 나타난다. 따라서 크래머의 법칙은 연립방정식의 해가 어떻게 나오는지 명시적으로 알려준다. 허나 행렬식 계산이 무지 어렵기 때문에 별 쓸모는 없다.

크래머의 법칙을 쓰면 역행렬의 성분이 어떻게 나타나는지도 정확히 알 수 있다. 가령, A의 역행렬의 (i,j)번째 성분 [math]\displaystyle{ c_{i,j} }[/math]를 알고 싶다고 하자. 그러면 아래 연립방정식

[math]\displaystyle{ A\begin{bmatrix} c_{1,j} \\ \vdots \\ c_{n,j} \end{bmatrix} = \mathbf{e}_j }[/math]

를 풀면 된다. 그런데 크래머의 법칙에 따르면 이 방정식의 해는

[math]\displaystyle{ c_{i,j} \det{A}= \det \begin{pmatrix} a_{1,1} & \cdots & 0 & \cdots & a_{1,n} \\ \vdots & \ddots & \vdots & \ddots & \vdots\\ a_{j,1} & \cdots & 1 & \cdots & a_{j,n} \\ \vdots & \ddots & \vdots & \ddots & \vdots\\ a_{n,1} & \cdots & 0 & \cdots & a_{n,n} \\ \end{pmatrix} }[/math]

가 되는데, 위 행렬식은 계산해보면 [math]\displaystyle{ (-1)^{i+j}\det(A(j,i)) }[/math]가 된다! 따라서

[math]\displaystyle{ c_{i,j} =\frac{(-1)^{i+j}\det(A(j,i))}{\det{A}} }[/math]

를 얻는다.

블록 행렬

앞서 삼각행렬 A에 대해, A의 행렬식은 A의 대각성분의 곱이 된다는 것을 알았다. 보다 일반적으로, 어떤 행렬 M이 다음과 같은 블록 행렬로 나타난다고 하자.

[math]\displaystyle{ M = \begin{pmatrix} A & B \\ 0 & C \\ \end{pmatrix} }[/math]

여기서 A,C는 각각 m×m, n×n 행렬이다. 이 때

[math]\displaystyle{ \det(M) = \det(A) \det(C) }[/math]

가 성립한다. 좀 더 일반적으로, 정방행렬 [math]\displaystyle{ A_1 ,\cdots , A_k }[/math]가 있어 M이 "블록 삼각행렬"

[math]\displaystyle{ M = \begin{pmatrix} A_1 & \ast & \cdots & \ast & \ast \\ 0 & A_2 & \cdots & \ast & \ast \\ \vdots & \vdots & \ddots & \vdots& \vdots \\ 0& 0 & \cdots & A_{k-1} & \ast \\ 0& 0 & \cdots & 0 & A_k \\ \end{pmatrix} }[/math]

꼴로 나타난다고 하자. 여기서 *엔 어떤 블록행렬이 들어가도 괜찮다. 그러면 이 경우에도

[math]\displaystyle{ \det{M} = \det{A_1} \det{A_2} \cdots \det{A_k} }[/math]

가 성립한다.

평행체의 부피

[math]\displaystyle{ \mathbb{R}^n }[/math]에 벡터 [math]\displaystyle{ v_1 ,\cdots ,v_k }[/math]가 있을 때, 이들 벡터가 이루는 평행체(parallelotope)의 부피를 행렬식으로 표현할 수 있다. 행렬 A를 아래처럼,

[math]\displaystyle{ \begin{bmatrix} | & & | \\ v_1 & \cdots & v_k \\ | & & | \end{bmatrix} }[/math]

즉 각 열벡터가 [math]\displaystyle{ v_1 ,\cdots ,v_k }[/math]인 n×k 행렬로 정의하면 평행체의 부피는 [math]\displaystyle{ \det{A^T A} }[/math]로 주어진다. 이 값은 예상대로음수가 아닌데, 왜냐하면 임의의 [math]\displaystyle{ u\in\mathbb{R}^n }[/math]에 대해

[math]\displaystyle{ u^T A^T A u = (Au) \cdot (Au) \ge 0 }[/math]

여서 [math]\displaystyle{ A^T A }[/math]양의 준정부호를 가지므로, [math]\displaystyle{ A^T A }[/math]의 고유값이 음수가 아니기 때문이다. 또한 [math]\displaystyle{ \det{A^T A} }[/math]가 0이 될 필요충분조건은 역시 예상대로[math]\displaystyle{ v_1 ,\cdots ,v_k }[/math]가 선형종속인 것이다. 특히 k=n일 때 평행체의 부피는

[math]\displaystyle{ \left| \det(A) \right| }[/math]

로 나타난다. 따라서 임의의 n×n 실수 계수행렬 A의 판별식은

[math]\displaystyle{ \det(A) = \omega (A) |\det(A)| }[/math]

로 쓸 수 있다. 지금까지의 논의에 의해 ω는 0 또는 ±1만 된다.

여기서 ω는 어떤 기하학적 의미를 가질까? 어차피 ω가 ±1이 되려면 A의 열벡터들은 독립, 즉 Rⁿ의 기저를 이뤄야 한다. 그러니 ω는 기저가 어떤 특성을 가지는 지 알려주는 값이다. 이제 n=2인 경우를 보면, A가 항등행렬일 땐 ω(A)=1이고

[math]\displaystyle{ B = \begin{pmatrix} 0& 1 \\ 1& 0 \end{pmatrix} }[/math]

에 대해선 [math]\displaystyle{ \omega (B)=-1 }[/math]인데.. 두 행렬이 나타내는 기저의 차이점은.. 방향이다! 항등행렬이 나타내는 기저는 (1,0)에서 (0,1)로는 반시계방향으로, B가 나타내는 기저는 시계방향을 나타낸다. 그래서 2차원에서 기저의 방향을 ω를 써서 정의할 수 있다. 그리고 이 개념을 n차원으로 그대로 확장하면, 기저의 방향을 잘 정의할 수 있다.

선형사상의 행렬식

선형사상은 행렬과 달리 성분이 없어서 행렬식을 바로 정의할 수는 없다. 그렇지만

닮은 행렬

외대수

  1. 두 원소만 바꾸는 순열
  2. 5×5 행렬식을 이 방법만 써서 계산하려면 719개의 문자를 손으로 써야 한다 (...)
  3. 5개 숫자의 곱이 120번 나오고, 그 사이에 +,-를 119번 적어줘야 하니까 719개.
  4. 여기서 V,W는 F 위에서 정의된 벡터공간이다
  5. 치역이 스칼라체인 선형함수를 linear functional, 혹은 form이라고 부른다.
  6. 쉽게 증명할 수 있다
  7. 가령, 벡터공간은 가군(module)으로 바꿔야 할 것이다.
  8. 따라서 이 경우 n×n 실수 행렬들의 집합에 유클리드 노름으로 위상을 주게 된다. 즉, 행렬의 각 성분의 제곱의 합의 제곱근을 구하는 노름이 위상을 유도하게 된다.