선형 대수: 벡터 공간
벡터 공간의 정의
집합 \(V\) (단, \(V \ne \emptyset\))의 두 원소 \(x\), \(y\)와 스칼라 값 \(c\)에 대해, \(x + y\)와 \(cx\)가 정의되고 \(x\)와 \(y\)가 아래 8가지 법칙을 만족할 때, \(V\)를 벡터 공간 (vector space)이라고 한다.
- \(x + y = y + x\)
- \((x + y) + z = x + (y + z)\)
- \(x + (-x) = (-x) + x = 0\)을 만족하는 원소 \(\mathbf{0}\)이 벡터 공간에 단 하나만 존재한다.
- \(x + (-x) = 0\)을 만족하는 원소 \(-x\)가 벡터 공간에 단 하나만 존재한다.
- \(1x = x\)
- \((c_1c_2)x = c_1(c_2x)\)
- \(c(x + y) = cx + cy\)
- \((c_1 + c_2)x = c_1x + c_2x\)
벡터 공간의 종류에는 \(n\)개의 성분을 가진 모든 열 벡터 (column vector)의 집합을 나타내는 \(\mathbf{R}^n\), 행렬의 집합을 나타내는 \(\mathbf{M}\), 실수 함수 (real function)의 집합을 나타내는 \(\mathbf{F}\), 그리고 집합의 원소가 영 벡터 (zero vector) \(\mathbf{0}\) 단 하나인 \(\mathbf{Z}\) 등이 있다.
부분 공간
\(3\)차원 공간인 \(\mathbf{R}^3\)에서 영 벡터 \((0, 0, 0)\)를 지나는 무수히 많은 직선 또는 평면 중에 하나를 생각해보자. 이 직선 또는 평면은 \(\mathbf{R}^3\)의 모든 원소를 포함하지는 않지만 \(\mathbf{R}^3\)의 공간 중 일부가 된다.
벡터 공간 \(V\)의 부분 집합 \(W\) (단, \(W \ne \emptyset\))가 \(V\)와 마찬가지로 영 벡터를 포함하고, \(W\)의 두 원소 \(x\)와 \(y\)에 대해 \(x + y\)와 \(cx\)가 정의되어 있을 때, \(W\)를 \(V\)의 부분 공간 (subspace)라고 한다.
열 공간
연립 일차 방정식 \(Ax = b\)를 열의 관점으로 다시 보면 \(Ax\)는 \(A\)의 각 열에 대한 선형 결합을 뜻하므로, \(Ax = b\)의 해를 구한다는 것은 \(b\)를 \(Ax\) 형태의 선형 결합으로 나타내는 것이다.
이때, \(A\)의 각 열에 대한 모든 선형 결합 \(Ax\)가 속한 부분 공간을 열 공간 (column space) \(C(A)\)라고 한다.
예를 들어, \(\begin{bmatrix}0 & 1 \\ 3 & 4 \\ 3 & 2\end{bmatrix}\)의 열 공간은 \(\begin{bmatrix}0 \\ 3 \\ 3\end{bmatrix}\)과 \(\begin{bmatrix}1 \\ 4 \\ 2\end{bmatrix}\)의 모든 선형 결합이 포함된 평면으로 나타낼 수 있다.
부분 공간의 “생성”
벡터 공간 \(V\)에서 부분 집합 \(S = \{x_1, x_2, \cdots, x_k\}\)를 임의로 선택하면, \(x_1, x_2, x_3, \cdots, x_k\)로 만들어지는 모든 선형 결합의 집합 \(SS = \{c_1x_1 + c_2x_2 + \cdots + c_kx_k \ | \ c_1, c_2, \cdots, c_k \in R\}\)는 부분 공간이 되는데,
\(S\)의 선형 결합으로 부분 공간 \(SS\)를 만드는 것을 “생성” (span)이라고 한다.
영 공간
\(m \times n\)의 직사각 행렬 \(A\)에 대한 연립 일차 방정식 \(Ax = 0\)의 해는 \(A\)가 가역 행렬인지 비가역 행렬인지에 따라 달라진다. \(A\)가 가역 행렬이라면 방정식의 해는 \(x = 0\) 단 하나뿐이겠지만, \(A\)가 비가역 행렬이라면 \(x = 0\)이 아닌 해 (nonzero solutions)가 존재한다.
이와 같이 \(Ax = 0\)의 해가 되는 모든 \(x\)가 속한 부분 공간을 \(A\)의 영 공간 (nullspace) \(N(A)\)라고 한다.
예를 들면, \(A = \begin{bmatrix}1 & 2 \\ 2 & 4\end{bmatrix}\)일 때 \(Ax = 0\)에 소거법을 적용하면,
$$ \begin{cases} x_1 + 2x_2 = 0 \\ 2x_1 + 4x_4 = 0 \end{cases} $$$$ \rightarrow \begin{cases} x_1 + 2x_2 = 0 \\ 0 = 0 \end{cases} $$\(x_1 + 2x_2 = 0\) 하나만 남게 되므로 이 직선 위에 있는 모든 벡터가 바로 \(N(A)\)가 된다.
피봇 열과 자유 열
주어진 행렬을 상삼각 행렬과 같이 더 간단한 형태로 만들면 만들수록 연립 방정식의 해를 더 쉽게 구하고 행렬의 특성도 더 쉽게 파악할 수 있다. 상삼각 행렬에 아래 두 가지 과정을 추가로 거쳐 만들어지는 행렬을 기약 행 사다리꼴 (Reduced Row Echelon Form, RREF) 행렬이라고 하며, \(R\) 또는 \(rref(A)\)와 같이 나타낸다.
- 소거법을 통해 피봇 위의 모든 성분을 \(0\)으로 만든다.
- 각 행을 피봇으로 나눠 피봇 성분을 \(1\)로 만든다.
아래와 같은 행렬 \(A\)에 소거법을 적용해 \(U\)를 만들었다고 하자.
$$ A = \begin{bmatrix} 1 & 2 & 2 & 4 \\ 3 & 8 & 6 & 16 \\ \end{bmatrix} $$$$ U = \begin{bmatrix} 1 & 2 & 2 & 4 \\ 0 & 2 & 0 & 4 \\ \end{bmatrix} $$\(U\)에 위 1번 과정과 2번 과정을 차례대로 거치면 기약 행 사다리꼴 행렬 \(R\)이 만들어진다.
$$ U' = \begin{bmatrix} 1 & 0 & 2 & 0 \\ 0 & 2 & 0 & 4 \\ \end{bmatrix} $$$$ R = \begin{bmatrix} 1 & 0 & 2 & 0 \\ 0 & 1 & 0 & 2 \\ \end{bmatrix} $$\(R\)의 첫 번째 열과 두 번째 열처럼 피봇이 존재하는 열을 피봇 열 (pivot column)이라 하고, 그렇지 않은 열을 자유 열 (free column)이라 한다. 자유 열에서 “자유"의 의미는 변수의 값을 임의로 정할 수 있다는 것을 뜻하는데, 예를 들어 아래 \(Rx = 0\)에서 자유 변수 \(x_3\)과 \(x_4\)의 값을 \(x_3 = 1, x_4 = 0\)이라 하면, 피봇 변수인 \(x_1\)과 \(x_2\)의 값은 \(x_1 = -2, x_2 = 0\)로 정해진다. 자유 변수의 값을 \(0\), (\1) 등으로 임의로 정하여 만들어지는 해 \(x_n\)을 특별 해 (special solution)이라고 한다.
$$ \begin{cases} x_1 + 2x_3 = 0 \\ x_2 + 2x_4 = 0 \end{cases} $$영 공간의 핵심은 \(A\)를 \(U\)나 \(R\)과 같이 더 간단한 형태로 만들더라도 영 공간은 변하지 않는다는 것이다. 즉, \(N(A) = N(U) = N(R)\)이다. 따라서 주어진 행렬의 특성을 더 쉽게 파악하기 위해서는 \(A\)를 RREF 형태로 변환하는 것이 좋다.
행렬의 계수
행렬의 크기가 크다고 해서 꼭 방정식의 개수가 많은 것은 아닌데, 그 이유는 행렬에 소거법을 적용함에 따라 모든 성분이 \(0\)인 행이 생길 수도 있기 때문이다.
\(m \times n\) 행렬 \(A\)에 존재하는 피봇의 개수를 \(A\)의 계수 (rank)라고 하며, \(A\)의 계수 \(r\) 또는 \(rank(A)\)는 곧 연립 방정식에서 유효한 방정식의 개수를 나타낸다.
특수 해와 완전 해
이제 \(Ax = 0\) 대신 \(Ax = b\) (\(b \ne 0\))의 해를 구해보자. 먼저 행렬 \(A\)에 \(b\) 열을 추가하여 첨가 행렬 ([A \ b])를 만든다.
$$ [A \ b] = \begin{bmatrix} 1 & 3 & 0 & 2 & | & 1 \\ 0 & 0 & 1 & 4 & | & 6 \\ 1 & 3 & 1 & 6 & | & 7 \\ \end{bmatrix} $$그 다음에는 \([A \ b]\)에 소거법을 적용하여 \(Rx = d\) 형태로 만든다.
$$ [R \ d] = \begin{bmatrix} 1 & 3 & 0 & 2 & | & 1 \\ 0 & 0 & 1 & 4 & | & 6 \\ 0 & 0 & 0 & 0 & | & 0 \\ \end{bmatrix} $$\(Rx = d\)의 해를 구할 수 있는 가장 간단한 방법은 자유 변수의 값을 모두 \(0\)으로 정하고 피봇 변수의 값을 \(d\)에서 갖고 오는 것으로, 이러한 방법으로 구한 해 \(x_p\)를 특수 해 (particular solution)라고 한다.
$$ Rx_p = R\begin{bmatrix} 1 \\ 0 \\ 6 \\ 0 \end{bmatrix} = d $$지금까지 살펴본 내용을 정리하면, 특수 해 \(x_p\)는 자유 변수의 값을 모두 \(0\)으로 정하여 얻을 수 있는 \(Ax = b\)의 해 중 하나이고 특별 해 \(x_n\)은 \(Ax_n = 0\)을 만족하는 여러 개의 해로 자유 변수의 값을 임의로 정해 얻을 수 있다. 따라서 \(Ax_p = b\)이고 \(Ax_n = 0\)이므로 \(A(x_p + x_n) = b\), 즉 \(x = x_p + x_n\)이 되며 이러한 과정으로 만든 해 \(x = x_p + x_n\)를 \(Ax = b\)의 완전 해 (complete solution)라 한다.
특히, \(A\)가 (정사각) 가역 행렬이라면 \(Ax = b\)을 만족하는 특수 해는 \(x = A^{-1}b\) 단 하나뿐이고, \(A\)에는 자유 변수가 하나도 존재하지 않기 때문에 특별 해 또한 존재하지 않는다. 따라서 가역 행렬의 완전 해 \(x = x_p + x_n = A^{-1}b\)이다.
행렬의 크기와 계수
\(m \times n\) 크기의 행렬 \(A\)가 \(rank(A) = n\) (full column rank)일 경우, \(A\)는 아래와 같은 특성을 가진다.
- \(A\)의 모든 열에는 피봇이 존재하며, \(m \ge n\)의 형태를 가진다.
- 자유 변수와 특별 해는 존재하지 않는다.
- \(Ax = b\)의 해의 개수는 0 또는 1이다.
행렬 \(A\)가 \(rank(A) = m\)일 경우 (full row rank) \(A\)의 특성은 다음과 같다.
- \(A\)의 모든 행에는 피봇이 존재하며, \(m \lt n\)의 형태를 가진다.
- \(N(A)\)에는 \(n - r = n - m\)개의 특별 해가 존재한다.
- \(Ax = b\)의 해의 개수는 0 또는 \(\infty\)이다.
선형 독립성
벡터 \(v_1, v_2, \cdots, v_n\)에 대해 \(c_1v_1 + c_2v_2 + \cdots + c_nv_n = 0\)을 만족하는 경우가 \(c_1 = c_2 = \cdots = c_n = 0\)밖에 존재하지 않는 경우, \(v_1, v_2, \cdots, v_n\)를 선형 독립 (linearly independent)이라고 한다.
\(R^n\)에 속하는 벡터들이 선형 독립이라는 것은 이 벡터들이 서로 같은 평면에 있지 않다는 것을 뜻한다. 예를 들어, \(v_1 = (0, 0, 3)\), \(v_2 = (1, 0, 0)\), \(v_3 = (0, 2, 0)\)이라고 할 때 \(v_1, v_2, v_3\)는 선형 독립이지만, \(v_3 = (2, 0, 6)\)이라면 \(v_3 = 2v_1 + 2v_2\), 즉 \(2v_1 + 2v_2 - v_3 = 0\)이므로 선형 종속 (linearly dependent)이다.
또한, 연립 방정식 \(Ax = b\)에서 \(A\)의 열 벡터가 선형 독립이라는 것은 곧 \(Ax = 0\)을 만족하는 \(x\)가 \(x = 0\) 단 하나라는 것을 뜻하고, \(N(A)\)에 속한 벡터가 오직 영 벡터 하나뿐임을 뜻한다.
기저와 차원
벡터 공간 \(V\)에서 하나 이상의 벡터를 임의로 선택하면 이 벡터들의 선형 결합으로 부분 공간 \(W\)를 “생성"할 수 있다고 하였다. 이때, \(V\)에서 최소한의 벡터만을 선택하여 부분 공간을 만들기 위해 필요한 벡터의 종류와 개수는 무엇일까?
\(V\)에서 선택한 임의의 벡터들이 모두 선형 독립이고 부분 공간을 생성할 수 있다면, 이러한 벡터들을 \(V\)의 기저 (basis)라고 한다.
기저의 직관적인 예시 중 하나로는 \(3\)차원 공간의 표준 기저 (standard bases) \(i = (1, 0, 0)\), \(j = (0, 1, 0)\)와 \(k = (0, 0, 1)\)를 들 수 있다. \(i\), \(j\)와 \(k\)는 서로 같은 평면에 위치하지 않고 세 벡터의 선형 결합을 통해 \(R^3\)를 생성할 수 있으므로 \(R^3\)의 기저가 될 수 있다.
\(V\)의 기저는 유일하지 않다.
예를 들면, \(2\)차원 공간의 표준 기저는 \(i = (1, 0)\)와 \(j = (0, 1)\)이지만, \(i\)와 \(j\)를 \((0,0)\)을 기준으로 \(\theta\)만큼 회전시켜 얻을 수 있는 두 벡터 \(i' = (cos \theta, sin \theta)\)와 \(j' = (-sin \theta, cos \theta)\)는 서로 선형 독립이고 \(R^2\)를 생성할 수 있으므로, \(i'\)과 \(j'\)도 \(R^2\)의 기저이다.
\(V\)의 기저는 유일하지 않지만, 기저의 개수는 항상 동일하다. 즉, \(V\)에서 기저 \(v_1, v_2, ..., v_m\)과 기저 \(w_1, w_2, ..., w_n\)를 선택하였을 때, \(m = n\)이다.
증명: \(v_1, v_2, ..., v_m\)은 \(V\)의 기저이므로 \(w_1, w_2, ..., w_n\)은 아래와 같이 \(v_1, v_2, ..., v_m\)의 선형 결합으로 표현할 수 있다. 즉, 스칼라 값 \(a_{1j}, a_{2j}, \cdots, a_{mj}\)에 대해
$$ w_j = a_{1j}v_1 + a_{2j}v_2 + \cdots + a_{mj}v_m $$$$ = \sum_{i=1}^{m} a_{ij}v_i $$$$ c_1w_1 + c_2w_2 + \cdots + c_nw_n $$$$ = \sum_{j=1}^{n} c_{j}w_j $$$$ = \sum_{j=1}^{n} c_{j}(\sum_{i=1}^{m} a_{ij}v_i) $$$$ = \sum_{i=1}^{m} (\sum_{j=1}^{n} a_{ij}c_{j}) v_i = 0 $$\(v_1, v_2, ..., v_m\)과 \(w_1, w_2, ..., w_n\)는 \(V\)의 기저이므로 모두 선형 독립이다. 따라서, 스칼라 값 \(c_1, c_2, \cdots, c_n\)에 대해
$$ \sum_{i=1}^{m} (\sum_{j=1}^{n} a_{ij}c_{j}) = 0 $$$$ \begin{equation} \begin{array} \ a_{11}c_1 + \cdots + a_{1n}c_n = 0 \\ a_{21}c_1 + \cdots + a_{2n}c_n = 0 \\ \vdots \\ a_{m1}c_1 + \cdots + a_{mn}c_n = 0 \\ \end{array} \end{equation} $$그런데 \(v_1, v_2, ..., v_m\)는 영 벡터가 아니므로
위 연립 방정식에서 \(c_1, c_2, ..., c_n\)를 미지수로 본다면, \(m < n\)은 미지수의 개수가 방정식의 개수보다 많은 상황이므로 \(w_1, w_2, ..., w_n\)는 선형 독립이 될 수 없다. 마찬가지로 \(m > n\)인 경우에는 \(v_1, v_2, ..., v_n\)이 선형 독립이 될 수 없다. 따라서 \(m = n\)이다.
기저의 개수에 대한 정리를 통해 \(V\)의 모든 기저의 개수는 항상 동일하다는 것을 알 수 있다. 이러한 \(V\)의 특성을 표현하기 위해 벡터 공간의 ‘차원’ (dimension)이라는 용어를 정의한다.
벡터 공간 \(V\)의 기저에 속한 벡터의 개수를 차원이라고 하며, \(dim \ V\)로 나타낸다.
주요 부분 공간
연립 일차 방정식 \(Ax = b\)에서 \(A\)의 각 열과 \(x\)의 선형 결합 \(Ax\)로 만들어지는 부분 공간을 열 공간 \(C(A)\), \(Ax = 0\)을 만족하는 모든 \(x\)가 속한 부분 공간을 영 공간 \(N(A)\)라고 하였다.
$$ A = \begin{bmatrix} 1 & 0 & 2 & 3 \\ 0 & 1 & 4 & 5 \\ 0 & 0 & 0 & 0 \\ \end{bmatrix} $$열 공간 \(C(A)\)의 기저는 \(A\)의 모든 피봇 열이고, \(dim \ C(A) = rank(A)\)이다.
따라서 \(C(A)\)의 기저는 \((1, 0, 0)\)과 \((0, 1, 0)\)이고, \(dim \ C(A) = rank(A) = 2\)이다.
$$ \begin{equation} \begin{cases} x_1 + 2x_3 + 3x_4 = 0 \\ x_2 + 4x_3 + 5x_4 = 0 \end{cases} \end{equation} $$또한, \(Ax = 0\)에서 자유 변수는 \(x_3\)와 \(x_4\), 총 2개이므로 \(Ax = b\)의 특별 해 (special solution) 2개를 구하여 \(N(A)\)를 생성하면 \(N(A)\)의 기저는 \((-2, -4, 1, 0)\)과 \((-3, -5, 0, 1)\)이 된다.
이제 열 공간과 영 공간 외의 새로운 부분 공간을 정의한다.
$$ A^T = \begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 2 & 4 & 0 \\ 3 & 5 & 0 \\ \end{bmatrix} $$\(A\)의 행 공간 (row space) \(C(A^T)\)는 \(A\)의 각 행과 \(y\)의 선형 결합 \(A^Ty\)로 만들어지는 부분 공간이다.
\(C(A^T)\)의 기저는 \((1, 0, 2, 3)\)과 \((0, 1, 4, 5)\)이다.
\(A\)의 왼쪽 영 공간 (left nullspace) \(N(A^T)\)는 \(A^Ty = 0\)을 만족하는 모든 \(y\)가 속한 부분 공간이다.
\(A^T\)를 기약 행 사다리꼴로 만들면 \(y_1 = y_2 = 0\)임을 알 수 있다. 따라서 \(N(A^T)\)의 기저는 \((0, 0, 1)\) 단 하나이다.
네 개의 주요 부분 공간 (four fundamental subspaces) \(C(A)\), \(C(A^T)\), \(N(A)\), \(N(A^T)\)를 통해 알 수 있는 정보는 다음과 같다.
- \(rank(C(A)) = rank(C(A^T)) = r\)
- \(rank(N(A)) = n - r\)
- \(rank(N(A^T)) = m - r\)