[경고] 아래 글을 읽지 않고 "행렬식의 기하학적 의미"를 보면 바보로 느껴질 수 있습니다.
1. 행렬
2. 행렬식
행렬식(行列式, determinant)과 부피
(volume)와의 관계를
라플라스 전개(Laplace expansion)를 기반으로 수학적으로 유추해 보도록 하자. 고통스러운 과정이 되겠지만 행렬식과 부피의 관계를 이해하면 행렬식을 새로운 눈으로 좀더 편안하게 볼 수 있다. 정말 그렇겠냐고? 한 번 믿어봐라, 정말이다. 구체적인 증명으로 들어가기 전에
벡터(vector)를 이용해서 행렬식이 [그림 1]과 같은
1,2,3차원 공간의 방향성 있는 부피임을 느껴보자.
(1)
이미
벡터 이론(vector theory)으로 행렬식의 특성을 증명했지만 기하학적으로 더 음미해보도록 하자. 부피의 원래 의미는 당연히 3차원에서 정의하지만, 1차원에서 부피는 길이
(length), 2차원에서 부피는 면적
(area)이라 생각할 수도 있다. 또한 [그림 1]과 식 (1)의 $V_2$에 있는 면적은 길이를 수직 방향
(normal direction)으로 쌓음이라 생각할 수 있다. 수직 방향이기 때문에 서로 다른 좌표계값을 식 (1)처럼 곱해야 한다. 수식에 기하학적 의미를 부여하기 위해 식 (2)처럼 곱하는 순서에 따라 면적의 부호가 다르게 생기도록 한다.
(2)
또한 [그림 1]과 식 (1)의 $V_3$에 있는 부피도 면적을 수직 방향으로 쌓은 총합으로 생각할 수 있다. 비스듬하게 쌓으면 수직과 함께 평행한 방향도 생기지만 늘어나는 부분이 없어서 평행 성분은 부피 기여에 넣지 않는다. 그래서 면적을 수직으로 쌓기 위해 어떤 좌표값과 이 좌표 방향으로 정의한 면적을 곱한다. 예를 들면, $x$축에 대해 면적을 쌓으려면 $yz$평면에 있는 면적값을 $x$축의 길이와 곱한다. 기하 구조를 수식에 집어넣기 위해 식 (2)와 같은 순서를 정의한다. 이 과정을 $n$차원 공간으로 확장하면 식 (3)의 라플라스 전개가 된다.
(3)
여기서 $C_{ij}$는 행렬 $\bf A$의 여인자(餘因子, cofactor), $M_{ij}$는 원소 $a_{ij}$의 소행렬식(小行列式, minor)이다. 예를 들어, 소행렬식 $M_{23}$은 아래와 같이 계산할 수 있다.
(4)
즉, $M_{23}$은 2행과 3열 원소 전체를 식 (4)처럼 삭제한 후 계산하는 행렬식이다. 식 (3)을 식 (1)과 유사하게 설명하자. $a_{ij}$는 어떤 좌표값이며 $M_{ij}$는 $a_{ij}$ 좌표에 수직한 $n-1$차원에서 정의한 부피이다. 또한 식 (3)에 있는 $(-1)^{i+j}$의 원래 의미는
순열(順列, permutation)이지만 식 (2)와 같은 기하구조를 $n$차원 공간으로 확장하는 표현식이 된다. 그러면 식 (3)은 자연스럽게 $n$차원 공간의 방향성 있는 부피가 된다.
이상의 논의는 직관에 기대고 있기 때문에 조금 억지스럽다. 하지만 행렬식이 식 (5)의 부피 공리(volume axioms)를 모두 만족함을 보임으로써, 행렬식과 부피의 수학적인 연관성을 명확히 할 수 있다.
(5)
식 (5)의 첫째식은 서로 수직인
단위 벡터(unit vector)들의 부피는 1임을 의미한다. 둘째식은 부피가 0이 아니기 위해서는 각 벡터들에 수직인 성분이 반드시 있어야 한다는 뜻이다. 벡터가 서로 평행하면 당연히 부피는 0이 된다. [그림 1]을 보면 이는 자명하다. 셋째식은 $n$차원 물체의 한쪽 방향을 키우면 부피는 키운 만큼 커진다는 뜻이다.
(6)
식 (6)의 행렬식 정의를 이용해 식 (5)를 차례로 증명해보자.
먼저 식 (5)의 첫째식은 항등 행렬(identity matrix)의 행렬식이 1이기 때문에 쉽게 증명할 수 있다.
(7)
여기서 벡터 차원
(vector dimension) $n$은 행렬의 행
(row) 개수 $n$과 동일하다고 가정한다. 식 (5)의 둘째식을 행렬식으로 표현하면 식 (7)과 같다. 식 (7)은 식 (3)에 있는 라플라스 전개로 증명한다. 임의의 행렬에 대해 라플라스 전개를 하면 행렬의 마지막 행인 $n$행
[예를 들면 식 (5)에서 벡터 $\bar r_j$]과 $n-1$행
[예를 들면 식 (5)에서 벡터 $\bar r_i$]에 있는 임의의 두 열은 식 (1)에 있는 면적 $V_2$처럼 표현된다. 식 (5)의 조건에서처럼 벡터 $\bar r_i$와 $\bar r_j$가 동일하다면 식 (1)에 의해 $V_2$ = $0$이 된다. 그러면 재귀 호출을 의미하는 식 (3)의 전체 행렬식은 당연히 0이 된다.
[∵ $2 \times 2$ 행렬식에 부호 함수를 고려해서 다른 원소를 계속 곱하면 전체 행렬식이 됨은 라플라스 전개이므로] 고려하는 행이 식 (7)처럼 $n$행과 $n-1$행이 아니라면
한 번 교환된 행렬의 행렬식을 이용해서 주어진 행
[식 (7)에서 벡터 $\bar r_i$]을 $n$행과 $n-1$행이 되도록 교환해주면 동일한 결과를 얻을 수 있다. 혹은 더 쉽게 증명하기 위해 행렬식의 공식을 활용하자.
한 번 교환된 행렬의 행렬식[$|{\bf A}_{ij}|$: $i,j$는 서로 다른 $i,j$ 행이나 열을 교환한 행렬식]은 원래 행렬식($|{\bf A}|$)에 ($-$)를 곱한 값이므로 $|{\bf A}_{ij}|$ = $-|{\bf A}|$가 성립한다. 하지만, 조건에서 $|{\bf A}_{ij}|$ = $|{\bf A}|$가 성립해야 하므로 $|{\bf A}|$ = $0$이 되어야 한다.
(8)
식 (5)의 셋째식을 더 구체적으로 쓴 식 (8)은 식 (6)에 의해 쉽게 증명된다. 행렬의 한 행[식 (8)에서 벡터 $\bar r_i$]을 $c$배하면 식 (6)에서 이 행의 원소[식 (6)에서 $a_{ij}$]가 항상 $c$배가 되므로 당연히 행렬식 전체가 $c$배가 된다. 식 (5)의 셋째식은 다음과 같이 일반화할 수 있다.
(9)
식 (9)를 행렬식으로 표현하면 식 (10)과 같다. 식 (10)은 식 (6)으로 증명 가능하다. 식 (8)처럼 행렬의 한 행을 $\bar r_i + \bar r_j$로 표현해서 이를 식 (6)에 대입하고 분배 법칙을 적용하면 식 (10)이 증명된다.
(10)
식 (9)에서 그 부피는 방향성이 있기 때문에
[∵ ($+$) 혹은 ($-$)가 될 수 있기 때문에] 벡터 $\bar r_i, \bar r_j$를 더한다 하더라도 그 최종 부피는 커질 수도 있고 작아질 수도 있다. $\bar r_j$ = $c\bar r_i$이면 식 (8)과 동일한 의미가 된다. 혹은 식 (7)에 의해 부피가 변하기 위해서는 $i$행을 제외한 모든
행 벡터(row vector)에 대해 $\bar r_j \ne c \bar r_k$
[$k$ = $1,2, \cdots, n$, $k \ne i$]가 성립해야 한다.
[혹은 $\bar r_j$는 $\bar r_k$와는 평행이 아니어야 한다.]
[그림 2] 3차원 벡터 공간의 예(출처: wikipedia.org)
조금 더 식 (10)의 성질을 고민하면 [그림 2]와 같은 벡터 공간(vector space)을 주로 다루는 선형 대수학(線型代數學, linear algebra)에 입문할 수 있다[1]. 선형 대수학은 연립 방정식을 깊이 이해하기 위해 벡터와 행렬의 다양한 연산을 다루는 학문이다. 벡터 공간은 벡터 연산이 정의된 공간이며 벡터 연산은 벡터의 합과 차, 실수배를 포함한다. 그래서 벡터 공간에서는 벡터의 길이를 늘리거나 줄일 수 있고, 두 벡터의 합이나 차를 해서 벡터 방향도 바꿀 수 있다. 또한 수학에서 공간(空間, space)은 더 폭넓은 개념을 가져서, 집합에 특정한 연산을 정의해 원소를 다양하게 계산할 수 있는 구조를 뜻한다.
따라서 식 (10)은 우리에게 $n$차원 공간에서 벡터를 기하학적으로 어떻게 이해해야 하는지 돌파구를 알려준다. 만약 식 (5)처럼 $n$차원 공간에서 $n$개의 벡터가 이미 있을 때 식 (10)에 있는 추가적인 행 벡터 $\bar r_j$는 어떻게 생각해야 할까? 새로운 $\bar r_j$는 이전의 $n$개 벡터와 비슷할 수도 있고 전혀 다를 수도 있다. 편하게 $\bar r_j$가 이전의 $n$개 벡터와 비슷해서 등호($=$) 관계가 성립한다고 가정하자. 그러면 $\bar r_j$를 이전의 $n$개 벡터[$\bar r_i$]에 대한 관계식으로 다음처럼 정의할 수 있다.
(11)
여기서 행 벡터 $\bar r_j$는 $n$개의 벡터
[$\bar r_i$]로 표현된다고 가정한다. 식 (11)의 첫째식은 마치 직선
[$y$ = $ax + b$]처럼 새로운 벡터 $\bar r_j$를 표현하고 있기 때문에
선형 결합(linear combination)이라 부른다. 선형 결합은
벡터 성분(vector component)과 직접 연결된다. 예를 들어, 식 (11)에 나온 $\alpha_i \bar r_i$와 $\alpha_i$는 벡터 $\bar r_j$의 구성 요소라서 각각 벡터 및 스칼라 성분이라 부른다. 식 (11)에 제시한 가정이 맞으려면 둘째식에 있는 $n$개의 벡터로 구성된 행렬이
역행렬(逆行列, inverse matrix)을 가지면 된다. 역행렬이 존재한다면 식 (11)을 행 벡터 $\alpha_i$에 대해 풀어 $\alpha_i$를 일의적으로
[혹은 단 하나로] 결정할 수 있다. 이때 역행렬 여부를 판별할 수 있는 관계식은
행렬식이다. 만약 역행렬을 얻을 수 없다면 행렬식이 $0$인 경우이므로, 벡터 $\bar r_i$의 좌표값 자체를 바꾸어 행렬식이 $0$이 되지 않도록 할 수 있다. 만약 역행렬이 존재한다면
[다른 말로 행렬식이 0이 아니면 혹은 $n$차원 공간의 부피가 0이 아니면] 식 (11)이 성립하기 때문에 식 (10)은 다음 식으로 간략화된다.
(12)
즉, 우리가 벡터 $\bar r_j$를 더했지만 실제 부피에 기여하는 부분은 벡터 $\bar r_i$와 평행한 성분뿐이다. 이 사실은 우리가 알고 있는 면적이나 부피 정의와 일치한다. 예를 들어 2차원에서 면적을 키우려면 밑변과 수직인 높이 방향으로 길이를 쌓아야 한다. 밑변과 평행인 방향으로 쌓으면 길이는 늘지 모르지만 면적은 늘어나지 않는다. 이와 같은 성질을 얻게 해주는 벡터 $\bar r_i$
[$i$ = $1, 2, \cdots, n$]는 뭐라고 불러야 할까? 식 (11)에서 벡터 $\bar r_j$는 어떤 $n$차원 벡터이든 될 수 있기 때문에, 식 (11)에 있는 $n$개의 벡터
[$\bar r_i$]는 $n$차원 공간을
생성(span)할 수 있다. 여기서 $n$개의 벡터 $\bar r_i$는
기저(基底, basis)가 되며, 기저의 개수가 벡터 공간의
차원(dimension)이다. 행렬식이 $0$이 되지 않는, 다른 말로 하면 $n$차원 공간의 부피가 $0$이 되지 않는 서로 다른 독립적인 벡터가 $n$차원 공간의 기저를 이룬다. 더불어
기저 벡터(basis vector)라는 고상한 개념을 쓰면, 선형 결합인 식 (11)을 수학적으로 더 세련되게 표현할 수 있다. 그래서 기저 벡터 $\bar r_i$를 자유롭게 선형 결합해 임의의 새로운 벡터 $\bar r_j$를 항상 만들 수 있다. 모든 기저 벡터간의
내적(inner product)이 $0$이어서 항상 서로 수직이라면
[$i,j$가 다를 때 $\bar r_i \cdot \bar r_j$ = $0$], 이런 벡터 공간의 기저는
직교 기저(orthogonal basis)라고 부른다. 직교 기저로 구성한 벡터 공간에서는 기저
벡터의 성분(component)을 쉽게 계산할 수 있다. 벡터의 성분을 더 쉽게 계산하도록 직교 기저의 크기까지 $1$로 만든 경우는
정규 직교 기저(orthonormal basis)라고 한다. 따라서 정규 직교 기저 $\hat e_i$는 다음 관계가 성립한다.
(13)
예를 들어, 어떤 벡터 $\bar v$를 구성하는 정규 직교 기저 $\hat e_i$의
스칼라 성분(scalar component)은 $\bar v \cdot \hat e_i$이다. 그러면 임의 벡터를 다음처럼 정규 직교 기저와 벡터 성분의 곱으로 쓸 수 있다.
(14)
여기서 벡터 공간의 차원은 $n$이다.
벡터 공간의 원소인 $\bar r_j$는 $\bar r_i$에 종속되기 때문에, $\bar r_j$는 모든 $\bar r_i$
[$i$ = $1, 2, \cdots, n$]에
선형 종속(linear dependence)이다. 거꾸로 선형 종속이 아닌 벡터 $\bar r_j$는 어떠한 선형 결합을 만들더라도 식 (11)처럼 표현할 수 없다.
(15)
식 (15)에 있는 $\bar r_j$는 모든 $\bar r_i$에
선형 독립(linear independence)이다. 따라서 선형 독립인 $n$개의 벡터 $\bar r_i$는 다음처럼 기술해야 한다.
(16)
식 (11)을 기반으로 식 (16)에 대한 행렬을 구성해 $\alpha_i$를 구해보자.
(17)
벡터 $\bar r_i$로 만든 행렬의 행렬식이 $0$이 아니면, 혹은 $\bar r_i$가 서로 선형 독립이면, 역행렬이 존재해서 $\alpha_i$ = $0$을 얻는다. 선형 독립인 행 벡터의 개수는 벡터 공간의 차원이면서, 행 벡터가 만드는 행렬의
계수(階數, rank) 혹은
계급수(階級數)이다. 여기서 계수는 미지수와 곱해져 연계되는 수인 계수
(係數, coefficient)와 한자가 다르며, 명확히 표현하려고 계급수라 쓸 수도 있다. 행렬식이 $0$이 아닌, 혹은 선형 독립인 행 벡터의 개수가 $n$인 $n \times n$ 행렬의 계급수는 $\operatorname{rank}({\bf A})$ = $n$이다. 행 벡터 대신 열 벡터를 사용해도 행렬의 계급수를 정의할 수 있다. 다만
정방 행렬(square matrix)이 아니면, 선형 독립인 행 벡터와 열 벡터 개수 중에서 최소값을 행렬의 계급수로 정의한다.
각 좌표축의 정사영 비율인
방향 도함수(direction cosine) $\cos \alpha_i$를 이용해서 벡터의 성분 $v_i$를 식 (14)와는 색다르게 정의한다.
(18)
여기서 $\cos \alpha_i$ = $(\bar v \cdot \hat e_i) / |\bar v|$이다. 방향 도함수를 식 (18)과 같이 모든 방향에 대해서 모은 $\sum \cos \alpha_i \hat e_i$는 $\bar v$가 지향하는 단위 벡터와 동일하다. 또한 방향 도함수가 정상적으로 정의되려면, 기저 벡터가 서로 독립이어야 한다. 왜냐하면 벡터의 성분 $v_i$를 딱 하나로 정하기 위해 서로 선형 독립인 기저 벡터로 구성한 행렬식은 $0$이 아니기 때문이다.
(19)
여기서 $\bar v$는 행 벡터(row vector)이다.
행렬식과 벡터에 대한 여러 가지 개념을 나열했지만 오해하지는 말자. 선형 대수학을 이런 방법으로 설명할 필요는 전혀 없다. 하지만 무미건조한 벡터 공간의 공리(axioms of vector space)가 그냥 생기지 않았고 현실적인 문제를 고민하여 공리 형태로 정리되었음을 느껴보자. 이런 관점으로 식 (11)을 고민해 보는 경험도 색다른 재미를 준다.
[참고문헌]