연립방정식은 해가 없거나, 하나이거나, 무수히 많습니다. 이 장에서는 어느 경우인지 판단하고, 해가 무수히 많을 때 그 전체를 '특수해 + 영공간'으로 깔끔하게 쓰는 방법을 다룹니다. 그 과정에서 행렬이 담고 있는 '진짜 정보의 양'인 랭크가 나옵니다. 랭크는 데이터 압축과 추천 시스템(저랭크 근사)에서 핵심 개념입니다.
11.1 직사각행렬의 소거
질문. 식이 3개이고 미지수가 4개인 연립방정식은 어떻게 풀까요? 8장의 소거는 정사각행렬에서 피벗이 다 나오는 경우를 주로 다뤘습니다. 피벗이 모자라거나 행렬이 직사각형이면, 소거 결과를 어떻게 읽어야 할까요?
10장에서 A x = b A\mathbf{x} = \mathbf{b} A x = b 의 해 전체는 x p + N ( A ) \mathbf{x}_p + N(A) x p + N ( A ) 라는 것을 보았습니다. 이 장에서는 이것을 실제로 계산합니다. 핵심 도구는 소거를 끝까지 밀어붙인 기약 행 사다리꼴 R R R 이고, 핵심 숫자는 피벗의 개수인 랭크입니다.
이 장 전체에서 쓸 예제는 다음 행렬입니다.
A = [ 1 1 2 3 2 2 8 10 3 3 10 13 ] ( 3 × 4 ) . A = \begin{bmatrix} 1 & 1 & 2 & 3 \\ 2 & 2 & 8 & 10 \\ 3 & 3 & 10 & 13 \end{bmatrix} \quad (3 \times 4). A = 1 2 3 1 2 3 2 8 10 3 10 13 ( 3 × 4 ) .
11.2 사다리꼴과 피벗 열
A A A 를 소거합시다. 첫째 피벗은 1입니다.
[ 1 1 2 3 2 2 8 10 3 3 10 13 ] → 행3 − 3 행1 행2 − 2 행1 [ 1 1 2 3 0 0 4 4 0 0 4 4 ] . \begin{bmatrix} 1 & 1 & 2 & 3 \\ 2 & 2 & 8 & 10 \\ 3 & 3 & 10 & 13 \end{bmatrix} \xrightarrow[\text{행3} - 3\text{행1}]{\text{행2} - 2\text{행1}} \begin{bmatrix} 1 & 1 & 2 & 3 \\ 0 & 0 & 4 & 4 \\ 0 & 0 & 4 & 4 \end{bmatrix}. 1 2 3 1 2 3 2 8 10 3 10 13 행 2 − 2 행 1 행 3 − 3 행 1 1 0 0 1 0 0 2 4 4 3 4 4 .
둘째 열에서 피벗을 찾으면, 행1 아래가 모두 0입니다. 8장이라면 여기서 멈췄을 것입니다. 이제는 그 열을 건너뛰고 다음 열에서 피벗을 찾습니다. 셋째 열의 4가 둘째 피벗입니다.
→ 행3 − 행2 U = [ 1 1 2 3 0 0 4 4 0 0 0 0 ] . \xrightarrow{\text{행3} - \text{행2}} U = \begin{bmatrix} 1 & 1 & 2 & 3 \\ 0 & 0 & 4 & 4 \\ 0 & 0 & 0 & 0 \end{bmatrix}. 행 3 − 행 2 U = 1 0 0 1 0 0 2 4 0 3 4 0 .
*그림 11.1. 사다리꼴(echelon form). p는 피벗(0이 아님), 는 아무 수. 계단 아래는 모두 0입니다.
U U U 처럼 피벗이 계단 모양으로 오른쪽 아래로 내려가고 계단 아래가 모두 0인 행렬을 사다리꼴 (echelon form)이라 합니다(그림 11.1).
정의 11.1 (피벗 열과 자유 열). 사다리꼴에서 피벗이 있는 열을 피벗 열 (pivot column), 피벗이 없는 열을 자유 열 (free column)이라 합니다. 자유 열에 대응하는 미지수를 자유변수 (free variable), 피벗 열에 대응하는 미지수를 피벗변수 (pivot variable)라 합니다.
예제에서 피벗 열은 1, 3열이고 자유 열은 2, 4열입니다. 자유변수는 x 2 , x 4 x_2, x_4 x 2 , x 4 입니다.
자유 열을 봅시다. 2열은 1열과 똑같습니다. 4열 ( 3 , 10 , 13 ) (3, 10, 13) ( 3 , 10 , 13 ) 도 앞의 열들로 만들어질까요? 눈으로 찾기는 쉽지 않습니다. 다음 절의 R R R 이 이런 관계를 자동으로 보여 줍니다.
11.3 기약 행 사다리꼴
소거를 더 밀어붙입시다. 가우스–요르단처럼 피벗을 1로 만들고 피벗 위도 0으로 만듭니다.
U = [ 1 1 2 3 0 0 4 4 0 0 0 0 ] → 행2 ÷ 4 [ 1 1 2 3 0 0 1 1 0 0 0 0 ] → 행1 − 2 행2 R = [ 1 1 0 1 0 0 1 1 0 0 0 0 ] . U = \begin{bmatrix} 1 & 1 & 2 & 3 \\ 0 & 0 & 4 & 4 \\ 0 & 0 & 0 & 0 \end{bmatrix} \xrightarrow{\text{행2} \div 4} \begin{bmatrix} 1 & 1 & 2 & 3 \\ 0 & 0 & 1 & 1 \\ 0 & 0 & 0 & 0 \end{bmatrix} \xrightarrow{\text{행1} - 2\text{행2}} R = \begin{bmatrix} 1 & 1 & 0 & 1 \\ 0 & 0 & 1 & 1 \\ 0 & 0 & 0 & 0 \end{bmatrix}. U = 1 0 0 1 0 0 2 4 0 3 4 0 행 2 ÷ 4 1 0 0 1 0 0 2 1 0 3 1 0 행 1 − 2 행 2 R = 1 0 0 1 0 0 0 1 0 1 1 0 .
정의 11.2 (기약 행 사다리꼴). 사다리꼴이면서 다음을 만족하는 행렬을 기약 행 사다리꼴 (reduced row echelon form, RREF)이라 합니다.
모든 피벗이 1입니다.
각 피벗 열에서 피벗 외의 성분은 모두 0입니다.
예: [ 1 2 0 3 0 0 1 4 ] \begin{bmatrix} 1 & 2 & 0 & 3 \\ 0 & 0 & 1 & 4 \end{bmatrix} [ 1 0 2 0 0 1 3 4 ] 는 기약 행 사다리꼴입니다. [ 1 2 5 0 0 1 ] \begin{bmatrix} 1 & 2 & 5 \\ 0 & 0 & 1 \end{bmatrix} [ 1 0 2 0 5 1 ] 은 셋째 열의 피벗 위에 5가 남아 있어 사다리꼴이지만 기약은 아닙니다.
A A A 에서 행 연산으로 얻은 기약 행 사다리꼴을 R = rref ( A ) R = \operatorname{rref}(A) R = rref ( A ) 로 씁니다.
R R R 은 행 연산을 어떤 순서로 하든 A A A 에 대해 하나로 정해집니다(증명은 문제 11.12). 이제 R R R 을 읽어 봅시다.
피벗 열(1열, 3열)은 단위행렬의 열 e 1 , e 2 \mathbf{e}_1, \mathbf{e}_2 e 1 , e 2 입니다.
자유 열은 피벗 열들의 일차결합으로 바로 읽힙니다. R R R 의 2열 = ( 1 , 0 , 0 ) = 1 ⋅ = (1, 0, 0) = 1 \cdot = ( 1 , 0 , 0 ) = 1 ⋅ (1열), 4열 = ( 1 , 1 , 0 ) = 1 ⋅ = (1, 1, 0) = 1 \cdot = ( 1 , 1 , 0 ) = 1 ⋅ (1열) + 1 ⋅ + 1 \cdot + 1 ⋅ (3열).
그리고 행 연산은 영공간을 바꾸지 않으므로(정리 10.12 ), 열들 사이의 일차결합 관계도 그대로 유지됩니다. 그래서 A A A 에서도 2열 = 1열이고, 4열 = 1열 + 3열입니다. 확인: ( 1 , 2 , 3 ) + ( 2 , 8 , 10 ) = ( 3 , 10 , 13 ) (1, 2, 3) + (2, 8, 10) = (3, 10, 13) ( 1 , 2 , 3 ) + ( 2 , 8 , 10 ) = ( 3 , 10 , 13 ) . 앞 절에서 눈으로 찾기 어려웠던 관계가 R R R 에서는 그냥 보입니다.
다음 단계를 누르면 피벗이 없는 열을 건너뛰며 소거하고, 피벗을 1로 만들어 기약 행 사다리꼴 R에 이릅니다 이 위젯은 JavaScript가 필요합니다
직관. R R R 은 “A A A 의 열들 중 어떤 것이 새로운 방향(피벗 열)이고, 어떤 것이 앞의 열들로 만들어지는 쓸모없는 벡터(자유 열)인지”를 보여 주는 장부입니다. 3.6절의 질문 “쓸모없는 벡터를 어떻게 찾는가”의 계산적인 답입니다.
▶ 문제 11.1–11.3
11.4 영공간: 특수해
A x = 0 A\mathbf{x} = \mathbf{0} A x = 0 은 R x = 0 R\mathbf{x} = \mathbf{0} R x = 0 과 같습니다.
R x = 0 ⟺ { x 1 + x 2 + x 4 = 0 x 3 + x 4 = 0 ⟺ { x 1 = − x 2 − x 4 x 3 = − x 4 . R\mathbf{x} = \mathbf{0} \iff \begin{cases} x_1 + x_2 + x_4 = 0 \\ x_3 + x_4 = 0 \end{cases} \iff \begin{cases} x_1 = -x_2 - x_4 \\ x_3 = -x_4. \end{cases} R x = 0 ⟺ { x 1 + x 2 + x 4 = 0 x 3 + x 4 = 0 ⟺ { x 1 = − x 2 − x 4 x 3 = − x 4 .
자유변수 x 2 , x 4 x_2, x_4 x 2 , x 4 는 아무 값이나 될 수 있고, 피벗변수 x 1 , x 3 x_1, x_3 x 1 , x 3 은 자유변수로 결정됩니다. 자유변수 하나를 1, 나머지를 0으로 놓은 해를 특수해 (special solution)라 합니다.
x 2 = 1 x_2 = 1 x 2 = 1 , x 4 = 0 x_4 = 0 x 4 = 0 : s 1 = ( − 1 , 1 , 0 , 0 ) \mathbf{s}_1 = (-1, 1, 0, 0) s 1 = ( − 1 , 1 , 0 , 0 ) .
x 2 = 0 x_2 = 0 x 2 = 0 , x 4 = 1 x_4 = 1 x 4 = 1 : s 2 = ( − 1 , 0 , − 1 , 1 ) \mathbf{s}_2 = (-1, 0, -1, 1) s 2 = ( − 1 , 0 , − 1 , 1 ) .
일반해는 x = x 2 s 1 + x 4 s 2 \mathbf{x} = x_2\mathbf{s}_1 + x_4\mathbf{s}_2 x = x 2 s 1 + x 4 s 2 이므로
N ( A ) = span { s 1 , s 2 } . N(A) = \operatorname{span}\{\mathbf{s}_1, \mathbf{s}_2\}. N ( A ) = span { s 1 , s 2 } .
특수해는 R R R 에서 바로 읽힙니다. s 1 \mathbf{s}_1 s 1 은 “2열 = 1열”이라는 관계, 즉 − 1 ⋅ -1 \cdot − 1 ⋅ (1열) + 1 ⋅ + 1 \cdot + 1 ⋅ (2열) = 0 = \mathbf{0} = 0 을 계수로 쓴 것입니다. s 2 \mathbf{s}_2 s 2 는 “4열 = 1열 + 3열”을 계수로 쓴 것입니다. 특수해 하나는 자유 열 하나가 쓸모없다는 사실의 기록입니다.
정리 11.3 (영공간은 특수해의 span). A A A 가 m × n m \times n m × n 이고 피벗이 r r r 개이면, 자유변수는 n − r n - r n − r 개이고 특수해도 n − r n - r n − r 개이며
N ( A ) = span { s 1 , … , s n − r } . N(A) = \operatorname{span}\{\mathbf{s}_1, \ldots, \mathbf{s}_{n-r}\}. N ( A ) = span { s 1 , … , s n − r } .
증명. R x = 0 R\mathbf{x} = \mathbf{0} R x = 0 의 각 영이 아닌 행은 피벗변수 하나를 자유변수들의 일차결합으로 나타냅니다. 따라서 해 x \mathbf{x} x 는 자유변수 값만으로 결정되고, 자유변수 x f 1 , … , x f n − r x_{f_1}, \ldots, x_{f_{n-r}} x f 1 , … , x f n − r 에 대해
x = x f 1 s 1 + ⋯ + x f n − r s n − r \mathbf{x} = x_{f_1}\mathbf{s}_1 + \cdots + x_{f_{n-r}}\mathbf{s}_{n-r} x = x f 1 s 1 + ⋯ + x f n − r s n − r
입니다. 양변의 자유변수 성분을 비교하면 등식이 맞고, 피벗변수 성분은 같은 선형식으로 결정되므로 역시 맞습니다. 거꾸로 특수해들의 일차결합은 영공간이 부분공간이므로 영공간 안에 있습니다. ■
n > m n > m n > m 이면(미지수가 식보다 많으면) r ≤ m < n r \le m < n r ≤ m < n 이므로 자유변수가 적어도 하나 있습니다. 따라서 다음을 얻습니다.
따름정리 11.4 (미지수가 더 많은 동차연립방정식). m < n m < n m < n 이면 A x = 0 A\mathbf{x} = \mathbf{0} A x = 0 은 x ≠ 0 \mathbf{x} \ne \mathbf{0} x = 0 인 해를 갖습니다.
이 따름정리는 짧지만 12장에서 “차원”을 정의하는 데 결정적인 역할을 합니다.
▶ 문제 11.4–11.6
11.5 랭크
정의 11.5 (랭크). A A A 를 소거했을 때 나오는 피벗의 개수를 A A A 의 랭크 (rank)라 하고 rank A \operatorname{rank} A rank A 또는 r r r 로 씁니다.
예제의 A A A 는 rank A = 2 \operatorname{rank} A = 2 rank A = 2 입니다. 3 × 4 3 \times 4 3 × 4 행렬이지만 “진짜 정보”는 두 행(또는 두 열)뿐입니다. 셋째 행은 1행 + 2행이고, 2열과 4열은 다른 열들로 만들어집니다.
r ≤ m r \le m r ≤ m 이고 r ≤ n r \le n r ≤ n 입니다. 피벗은 행마다, 열마다 최대 하나이기 때문입니다. 랭크가 의미하는 바를 정리하면
r r r = 피벗 열의 개수 = “새로운 방향을 주는” 열의 개수,
n − r n - r n − r = 자유 열의 개수 = 영공간을 span하는 특수해의 개수,
m − r m - r m − r = R R R 의 영행의 개수 = b \mathbf{b} b 가 만족해야 할 조건의 개수 (다음 절).
12장에서 r r r 이 C ( A ) C(A) C ( A ) 의 차원이고 동시에 행공간의 차원임을 증명합니다.
11.5.1 랭크 1 행렬
랭크가 1인 행렬은 가장 단순한 행렬입니다.
A = [ 1 3 10 2 6 20 3 9 30 ] = [ 1 2 3 ] [ 1 3 10 ] . A = \begin{bmatrix} 1 & 3 & 10 \\ 2 & 6 & 20 \\ 3 & 9 & 30 \end{bmatrix} = \begin{bmatrix} 1 \\ 2 \\ 3 \end{bmatrix}\begin{bmatrix} 1 & 3 & 10 \end{bmatrix}. A = 1 2 3 3 6 9 10 20 30 = 1 2 3 [ 1 3 10 ] .
모든 행이 ( 1 , 3 , 10 ) (1, 3, 10) ( 1 , 3 , 10 ) 의 배수이고, 모든 열이 ( 1 , 2 , 3 ) (1, 2, 3) ( 1 , 2 , 3 ) 의 배수입니다. 일반적으로 랭크 1 행렬은 A = u v T A = \mathbf{u}\mathbf{v}^T A = u v T (열벡터 × 행벡터)로 쓸 수 있습니다(문제 11.8). 5장의 “열×행의 합”에 의해 모든 행렬은 랭크 1 행렬들의 합이고, 랭크 r r r 인 행렬은 r r r 개의 랭크 1 행렬의 합으로 쓸 수 있습니다. 이 사실은 18장 SVD의 핵심입니다.
▶ 문제 11.7–11.8
11.6 Ax = b의 완전한 해
이제 우변이 있는 경우를 풉시다. 첨가행렬 [ A ∣ b ] \left[\, A \mid \mathbf{b} \,\right] [ A ∣ b ] 를 소거합니다.
[ 1 1 2 3 b 1 2 2 8 10 b 2 3 3 10 13 b 3 ] → [ 1 1 2 3 b 1 0 0 4 4 b 2 − 2 b 1 0 0 0 0 b 3 − b 2 − b 1 ] . \left[\begin{array}{cccc|c} 1 & 1 & 2 & 3 & b_1 \\ 2 & 2 & 8 & 10 & b_2 \\ 3 & 3 & 10 & 13 & b_3 \end{array}\right] \to \left[\begin{array}{cccc|c} 1 & 1 & 2 & 3 & b_1 \\ 0 & 0 & 4 & 4 & b_2 - 2b_1 \\ 0 & 0 & 0 & 0 & b_3 - b_2 - b_1 \end{array}\right]. 1 2 3 1 2 3 2 8 10 3 10 13 b 1 b 2 b 3 → 1 0 0 1 0 0 2 4 0 3 4 0 b 1 b 2 − 2 b 1 b 3 − b 2 − b 1 .
1단계: 해가 있는가. 마지막 행은 0 = b 3 − b 2 − b 1 0 = b_3 - b_2 - b_1 0 = b 3 − b 2 − b 1 입니다. 해가 있으려면 b 3 = b 1 + b 2 b_3 = b_1 + b_2 b 3 = b 1 + b 2 여야 합니다. 이것은 “b \mathbf{b} b 가 C ( A ) C(A) C ( A ) 안에 있습니다”를 식으로 쓴 것입니다. 영행이 m − r m - r m − r 개이므로 조건도 m − r m - r m − r 개입니다.
2단계: 특수해 하나. b = ( 1 , 6 , 7 ) \mathbf{b} = (1, 6, 7) b = ( 1 , 6 , 7 ) 이라 하자(7 = 1 + 6 7 = 1 + 6 7 = 1 + 6 이므로 해가 있습니다). R R R 까지 소거하면
[ 1 1 0 1 − 1 0 0 1 1 1 0 0 0 0 0 ] . \left[\begin{array}{cccc|c} 1 & 1 & 0 & 1 & -1 \\ 0 & 0 & 1 & 1 & 1 \\ 0 & 0 & 0 & 0 & 0 \end{array}\right]. 1 0 0 1 0 0 0 1 0 1 1 0 − 1 1 0 .
자유변수를 모두 0으로 놓으면 피벗변수가 우변에서 바로 읽힙니다: x 1 = − 1 x_1 = -1 x 1 = − 1 , x 3 = 1 x_3 = 1 x 3 = 1 . 따라서 x p = ( − 1 , 0 , 1 , 0 ) \mathbf{x}_p = (-1, 0, 1, 0) x p = ( − 1 , 0 , 1 , 0 ) . 검산: A x p = − ( 1 , 2 , 3 ) + ( 2 , 8 , 10 ) = ( 1 , 6 , 7 ) A\mathbf{x}_p = -(1, 2, 3) + (2, 8, 10) = (1, 6, 7) A x p = − ( 1 , 2 , 3 ) + ( 2 , 8 , 10 ) = ( 1 , 6 , 7 ) .
3단계: 완전한 해. 정리 10.11 에 의해 x = x p + x n \mathbf{x} = \mathbf{x}_p + \mathbf{x}_n x = x p + x n 이고, x n \mathbf{x}_n x n 은 특수해들의 일차결합이므로
x = [ − 1 0 1 0 ] + x 2 [ − 1 1 0 0 ] + x 4 [ − 1 0 − 1 1 ] ( x 2 , x 4 ∈ R ) . \mathbf{x} = \begin{bmatrix} -1 \\ 0 \\ 1 \\ 0 \end{bmatrix} + x_2\begin{bmatrix} -1 \\ 1 \\ 0 \\ 0 \end{bmatrix} + x_4\begin{bmatrix} -1 \\ 0 \\ -1 \\ 1 \end{bmatrix} \quad (x_2, x_4 \in \mathbb{R}). x = − 1 0 1 0 + x 2 − 1 1 0 0 + x 4 − 1 0 − 1 1 ( x 2 , x 4 ∈ R ) .
그림으로는 R 4 \mathbb{R}^4 R 4 안의 평면(N ( A ) N(A) N ( A ) , 2차원)을 x p \mathbf{x}_p x p 만큼 평행이동한 것입니다.
A x = b A\mathbf{x} = \mathbf{b} A x = b 푸는 순서
[ A ∣ b ] \left[\, A \mid \mathbf{b} \,\right] [ A ∣ b ] 를 [ R ∣ d ] \left[\, R \mid \mathbf{d} \,\right] [ R ∣ d ] 로 소거합니다.
R R R 의 영행에 대응하는 d \mathbf{d} d 의 성분이 0이 아니면 해가 없습니다.
자유변수를 0으로 놓아 x p \mathbf{x}_p x p 를 구합니다.
자유변수 하나씩 1로 놓아(우변 0) 특수해를 구합니다.
x = x p + ∑ c i s i \mathbf{x} = \mathbf{x}_p + \sum c_i\mathbf{s}_i x = x p + ∑ c i s i .
▶ 문제 11.9–11.10
11.7 랭크로 보는 네 가지 경우
m × n m \times n m × n 행렬의 랭크 r r r 은 r ≤ min ( m , n ) r \le \min(m, n) r ≤ min ( m , n ) 입니다. r r r 이 m m m , n n n 과 같은지에 따라 해의 모습이 네 가지로 갈립니다.
경우
R R R 의 모양
모양
해의 개수
r = m = n r = m = n r = m = n
I I I
정사각, 가역
항상 1개
r = n < m r = n < m r = n < m
[ I O ] \begin{bmatrix} I \\ O \end{bmatrix} [ I O ]
세로로 긴
0개 또는 1개
r = m < n r = m < n r = m < n
[ I F ] \begin{bmatrix} I & F \end{bmatrix} [ I F ]
가로로 긴
항상 ∞ \infty ∞ 개
r < m r < m r < m , r < n r < n r < n
[ I F O O ] \begin{bmatrix} I & F \\ O & O \end{bmatrix} [ I O F O ]
일반
0개 또는 ∞ \infty ∞ 개
(R R R 의 모양은 피벗 열을 앞으로 모았을 때의 모습입니다. F F F 는 자유 열 부분.)
이유는 두 가지 질문으로 정리됩니다.
영행이 있는가 (r < m r < m r < m )? 있으면 b \mathbf{b} b 에 조건이 붙어 해가 없을 수 있습니다. 없으면(r = m r = m r = m ) 모든 b \mathbf{b} b 에 해가 있습니다. 즉 C ( A ) = R m C(A) = \mathbb{R}^m C ( A ) = R m .
자유변수가 있는가 (r < n r < n r < n )? 있으면 영공간이 { 0 } \{\mathbf{0}\} { 0 } 이 아니므로 해가 있을 때 무수히 많습니다. 없으면 (r = n r = n r = n ) 해가 있을 때 하나뿐입니다.
정리 11.6 (랭크와 해). A ∈ R m × n A \in \mathbb{R}^{m \times n} A ∈ R m × n , r = rank A r = \operatorname{rank} A r = rank A .
r = m r = m r = m (행 최대 랭크 (full row rank))이면 모든 b \mathbf{b} b 에 대해 A x = b A\mathbf{x} = \mathbf{b} A x = b 의 해가 있습니다.
r = n r = n r = n (열 최대 랭크 (full column rank))이면 N ( A ) = { 0 } N(A) = \{\mathbf{0}\} N ( A ) = { 0 } 이고, 해는 있다면 유일합니다.
증명. (1) R R R 에 영행이 없으므로 [ R ∣ d ] \left[\, R \mid \mathbf{d} \,\right] [ R ∣ d ] 에 0 = d i 0 = d_i 0 = d i 꼴의 식이 생기지 않습니다. 자유변수를 0으로 놓으면 해가 나옵니다. (2) 자유변수가 없으므로 특수해가 없고 정리 11.3 에 의해 N ( A ) = span ∅ = { 0 } N(A) = \operatorname{span}\varnothing = \{\mathbf{0}\} N ( A ) = span ∅ = { 0 } . 정리 10.11 에 의해 해는 유일합니다. ■
정사각행렬에서는 r = m = n r = m = n r = m = n 이 곧 가역성입니다(정리 9.6 의 “피벗 n n n 개”).
▶ 문제 11.11–11.12
쓰이는 곳. 추천 시스템은 사용자×상품 행렬이 '낮은 랭크'라고 가정하고 빈칸을 채웁니다. 대형 언어 모델을 적은 비용으로 미세 조정하는 LoRA는 가중치의 변화량을 저랭크 행렬로 제한하는 방법입니다.
이 장의 요약
피벗이 없는 열은 건너뛰고 다음 열에서 피벗을 찾습니다. 피벗 열 / 자유 열로 나뉩니다.
기약 행 사다리꼴 R R R : 피벗이 1, 피벗 열의 나머지는 0. 자유 열이 피벗 열의 어떤 일차결합인지 R R R 에서 바로 읽힙니다.
특수해: 자유변수 하나만 1. N ( A ) N(A) N ( A ) 는 n − r n - r n − r 개의 특수해의 span.
랭크 r r r = 피벗의 개수. 자유변수 n − r n - r n − r 개, b \mathbf{b} b 의 조건 m − r m - r m − r 개.
완전한 해 = x p \mathbf{x}_p x p (자유변수 0) + 특수해들의 일차결합.
r = m r = m r = m : 항상 해가 있습니다. r = n r = n r = n : 해가 있다면 유일합니다.
문제
11.1 [계산] · 확인 문제
U U U 와 R R R 을 구하고, 피벗 열과 자유 열, 랭크를 말합니다.
(a) A = [ 1 2 2 4 6 1 2 3 6 9 0 0 1 2 3 ] (b) B = [ 2 4 2 0 4 4 0 8 8 ] \text{(a)}\ A = \begin{bmatrix} 1 & 2 & 2 & 4 & 6 \\ 1 & 2 & 3 & 6 & 9 \\ 0 & 0 & 1 & 2 & 3 \end{bmatrix} \qquad \text{(b)}\ B = \begin{bmatrix} 2 & 4 & 2 \\ 0 & 4 & 4 \\ 0 & 8 & 8 \end{bmatrix} (a) A = 1 1 0 2 2 0 2 3 1 4 6 2 6 9 3 (b) B = 2 0 0 4 4 8 2 4 8 표에는 열 번호를 쉼표로 구분해 적습니다(예: 1,3).
피벗 열
자유 열
랭크
(a)
[?]
[?]
[?]
(b)
[?]
[?]
[?]
정답 풀이 (a) 행2 − - − 행1 = ( 0 , 0 , 1 , 2 , 3 ) = (0, 0, 1, 2, 3) = ( 0 , 0 , 1 , 2 , 3 ) , 행3 − - − 행2 = 0 = \mathbf{0} = 0 . U = [ 1 2 2 4 6 0 0 1 2 3 0 0 0 0 0 ] U = \begin{bmatrix} 1 & 2 & 2 & 4 & 6 \\ 0 & 0 & 1 & 2 & 3 \\ 0 & 0 & 0 & 0 & 0 \end{bmatrix} U = 1 0 0 2 0 0 2 1 0 4 2 0 6 3 0 . 행1 − 2 - 2 − 2 행2: R = [ 1 2 0 0 0 0 0 1 2 3 0 0 0 0 0 ] R = \begin{bmatrix} 1 & 2 & 0 & 0 & 0 \\ 0 & 0 & 1 & 2 & 3 \\ 0 & 0 & 0 & 0 & 0 \end{bmatrix} R = 1 0 0 2 0 0 0 1 0 0 2 0 0 3 0 . 피벗 열 1, 3; 자유 열 2, 4, 5; 랭크 2.
(b) 행3 − 2 - 2 − 2 행2 = 0 = \mathbf{0} = 0 . U = [ 2 4 2 0 4 4 0 0 0 ] U = \begin{bmatrix} 2 & 4 & 2 \\ 0 & 4 & 4 \\ 0 & 0 & 0 \end{bmatrix} U = 2 0 0 4 4 0 2 4 0 . 행을 피벗으로 나누고 행1 − 2 - 2 − 2 행2: R = [ 1 0 − 1 0 1 1 0 0 0 ] R = \begin{bmatrix} 1 & 0 & -1 \\ 0 & 1 & 1 \\ 0 & 0 & 0 \end{bmatrix} R = 1 0 0 0 1 0 − 1 1 0 . 피벗 열 1, 2; 자유 열 3; 랭크 2.
11.2 [계산]
문제 11.1(a)의 R R R 을 이용해, A A A 의 각 자유 열을 피벗 열들의 일차결합으로 씁니다. A A A 에서 직접 확인합니다.
풀이 R R R 에서: 2열 = 2 × = 2\times = 2 × 1열, 4열 = 2 × = 2\times = 2 × 3열, 5열 = 3 × = 3\times = 3 × 3열. A A A 에서: ( 2 , 2 , 0 ) = 2 ( 1 , 1 , 0 ) (2, 2, 0) = 2(1, 1, 0) ( 2 , 2 , 0 ) = 2 ( 1 , 1 , 0 ) , ( 4 , 6 , 2 ) = 2 ( 2 , 3 , 1 ) (4, 6, 2) = 2(2, 3, 1) ( 4 , 6 , 2 ) = 2 ( 2 , 3 , 1 ) , ( 6 , 9 , 3 ) = 3 ( 2 , 3 , 1 ) (6, 9, 3) = 3(2, 3, 1) ( 6 , 9 , 3 ) = 3 ( 2 , 3 , 1 ) .
11.3 [계산] · 확인 문제
기약 행 사다리꼴인 것을 고릅니다. 아닌 것은 이유를 말합니다. 기약 행 사다리꼴이면 O, 아니면 X를 적습니다.
(a) [ 1 0 2 0 1 3 ] (b) [ 1 2 0 0 0 1 0 1 0 ] (c) [ 1 3 0 0 0 2 ] (d) [ 0 1 0 0 0 1 ] \text{(a)}\ \begin{bmatrix} 1 & 0 & 2 \\ 0 & 1 & 3 \end{bmatrix} \qquad \text{(b)}\ \begin{bmatrix} 1 & 2 & 0 \\ 0 & 0 & 1 \\ 0 & 1 & 0 \end{bmatrix} \qquad \text{(c)}\ \begin{bmatrix} 1 & 3 & 0 \\ 0 & 0 & 2 \end{bmatrix} \qquad \text{(d)}\ \begin{bmatrix} 0 & 1 & 0 \\ 0 & 0 & 1 \end{bmatrix} (a) [ 1 0 0 1 2 3 ] (b) 1 0 0 2 0 1 0 1 0 (c) [ 1 0 3 0 0 2 ] (d) [ 0 0 1 0 0 1 ]
(a)
(b)
(c)
(d)
[?]
[?]
[?]
[?]
정답 풀이 (a) 예. (b) 아닙니다: 피벗이 계단 모양이 아닙니다(셋째 행의 피벗이 둘째 행의 피벗보다 왼쪽). (c) 아닙니다: 피벗 2가 1이 아닙니다. (d) 예. 첫째 열이 영열이어도 됩니다.
11.4 [계산] · 확인 문제
문제 11.1의 A A A , B B B 의 특수해를 모두 구하고, 영공간을 span으로 나타냅니다. 표에는 특수해의 개수를 적습니다.
정답 풀이 (a) x 1 = − 2 x 2 x_1 = -2x_2 x 1 = − 2 x 2 , x 3 = − 2 x 4 − 3 x 5 x_3 = -2x_4 - 3x_5 x 3 = − 2 x 4 − 3 x 5 . 특수해 ( − 2 , 1 , 0 , 0 , 0 ) (-2, 1, 0, 0, 0) ( − 2 , 1 , 0 , 0 , 0 ) , ( 0 , 0 , − 2 , 1 , 0 ) (0, 0, -2, 1, 0) ( 0 , 0 , − 2 , 1 , 0 ) , ( 0 , 0 , − 3 , 0 , 1 ) (0, 0, -3, 0, 1) ( 0 , 0 , − 3 , 0 , 1 ) . N ( A ) N(A) N ( A ) 는 이 셋의 span (n − r = 5 − 2 = 3 n - r = 5 - 2 = 3 n − r = 5 − 2 = 3 개).
(b) x 1 = x 3 x_1 = x_3 x 1 = x 3 , x 2 = − x 3 x_2 = -x_3 x 2 = − x 3 . 특수해 ( 1 , − 1 , 1 ) (1, -1, 1) ( 1 , − 1 , 1 ) . N ( B ) = span { ( 1 , − 1 , 1 ) } N(B) = \operatorname{span}\{(1, -1, 1)\} N ( B ) = span {( 1 , − 1 , 1 )} .
11.5 [계산]
영공간이 span { ( 2 , 2 , 1 , 0 ) , ( 3 , 1 , 0 , 1 ) } \operatorname{span}\{(2, 2, 1, 0), (3, 1, 0, 1)\} span {( 2 , 2 , 1 , 0 ) , ( 3 , 1 , 0 , 1 )} 인 2 × 4 2 \times 4 2 × 4 행렬을 하나 구합니다.
힌트. 셋째, 넷째 성분이 자유변수인 기약 행 사다리꼴 R R R 을 거꾸로 만듭니다.
풀이 R = [ 1 0 − 2 − 3 0 1 − 2 − 1 ] R = \begin{bmatrix} 1 & 0 & -2 & -3 \\ 0 & 1 & -2 & -1 \end{bmatrix} R = [ 1 0 0 1 − 2 − 2 − 3 − 1 ] . x 1 = 2 x 3 + 3 x 4 x_1 = 2x_3 + 3x_4 x 1 = 2 x 3 + 3 x 4 , x 2 = 2 x 3 + x 4 x_2 = 2x_3 + x_4 x 2 = 2 x 3 + x 4 이므로 특수해가 정확히 주어진 두 벡터입니다.
11.6 [증명]
R 3 \mathbb{R}^3 R 3 의 벡터 네 개 v 1 , … , v 4 \mathbf{v}_1, \ldots, \mathbf{v}_4 v 1 , … , v 4 가 주어지면, 모두 0은 아닌 계수 c 1 , … , c 4 c_1, \ldots, c_4 c 1 , … , c 4 로 c 1 v 1 + ⋯ + c 4 v 4 = 0 c_1\mathbf{v}_1 + \cdots + c_4\mathbf{v}_4 = \mathbf{0} c 1 v 1 + ⋯ + c 4 v 4 = 0 을 만들 수 있음을 보입니다.
풀이 A = [ v 1 v 2 v 3 v 4 ] A = \begin{bmatrix} \mathbf{v}_1 & \mathbf{v}_2 & \mathbf{v}_3 & \mathbf{v}_4 \end{bmatrix} A = [ v 1 v 2 v 3 v 4 ] 는 3 × 4 3 \times 4 3 × 4 이므로 따름정리 11.4 에 의해 A c = 0 A\mathbf{c} = \mathbf{0} A c = 0 인 c ≠ 0 \mathbf{c} \ne \mathbf{0} c = 0 이 있습니다. A c = c 1 v 1 + ⋯ + c 4 v 4 A\mathbf{c} = c_1\mathbf{v}_1 + \cdots + c_4\mathbf{v}_4 A c = c 1 v 1 + ⋯ + c 4 v 4 .
11.7 [계산] · 확인 문제
랭크를 구합니다.
(a) [ 1 2 2 4 3 6 ] (b) [ 1 2 3 4 5 6 7 8 9 ] (c) [ 0 0 0 0 ] (d) [ 1 1 1 1 2 3 1 3 6 ] \text{(a)}\ \begin{bmatrix} 1 & 2 \\ 2 & 4 \\ 3 & 6 \end{bmatrix} \qquad \text{(b)}\ \begin{bmatrix} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \end{bmatrix} \qquad \text{(c)}\ \begin{bmatrix} 0 & 0 \\ 0 & 0 \end{bmatrix} \qquad \text{(d)}\ \begin{bmatrix} 1 & 1 & 1 \\ 1 & 2 & 3 \\ 1 & 3 & 6 \end{bmatrix} (a) 1 2 3 2 4 6 (b) 1 4 7 2 5 8 3 6 9 (c) [ 0 0 0 0 ] (d) 1 1 1 1 2 3 1 3 6
(a)
(b)
(c)
(d)
[?]
[?]
[?]
[?]
정답 풀이 (a) 1 (모든 행이 ( 1 , 2 ) (1, 2) ( 1 , 2 ) 의 배수). (b) 2 (셋째 행 = 2 × = 2\times = 2 × 둘째 − - − 첫째). (c) 0. (d) 3 (피벗 1, 1, 1; det = 1 \det = 1 det = 1 ).
11.8 [증명]
A ≠ O A \ne O A = O 일 때, rank A = 1 \operatorname{rank} A = 1 rank A = 1 인 것과 A = u v T A = \mathbf{u}\mathbf{v}^T A = u v T (u ≠ 0 \mathbf{u} \ne \mathbf{0} u = 0 , v ≠ 0 \mathbf{v} \ne \mathbf{0} v = 0 )로 쓸 수 있는 것이 동치임을 보입니다.
풀이 (⇐) A A A 의 제i i i 행은 u i v T u_i\mathbf{v}^T u i v T 로 모두 v T \mathbf{v}^T v T 의 배수이고, u ≠ 0 \mathbf{u} \ne \mathbf{0} u = 0 이므로 영이 아닌 행이 있습니다. 소거하면 첫 영이 아닌 행 하나만 남아 피벗은 1개.
(⇒) R R R 에는 영이 아닌 행이 하나, 그것을 v T \mathbf{v}^T v T 라 합시다. A A A 의 행공간 = = = R R R 의 행공간 = span { v T } = \operatorname{span}\{\mathbf{v}^T\} = span { v T } (정리 10.12 )이므로 A A A 의 각 행은 u i v T u_i\mathbf{v}^T u i v T . 따라서 A = u v T A = \mathbf{u}\mathbf{v}^T A = u v T , A ≠ O A \ne O A = O 이므로 u ≠ 0 \mathbf{u} \ne \mathbf{0} u = 0 .
11.9 [계산] · 확인 문제
문제 11.1(a)의 A A A 에 대해 A x = ( 1 , 3 , 2 ) A\mathbf{x} = (1, 3, 2) A x = ( 1 , 3 , 2 ) 의 완전한 해를 구합니다. x p \mathbf{x}_p x p 를 대입해 검산합니다. 표에는 자유변수를 모두 0으로 놓은 특수해 x p \mathbf{x}_p x p 를 적습니다.
x 1 x_1 x 1
x 2 x_2 x 2
x 3 x_3 x 3
x 4 x_4 x 4
x 5 x_5 x 5
[?]
[?]
[?]
[?]
[?]
정답 풀이 [ A ∣ b ] \left[\, A \mid \mathbf{b} \,\right] [ A ∣ b ] : 행2 − - − 행1 → ( 0 , 0 , 1 , 2 , 3 ∣ 2 ) (0, 0, 1, 2, 3 \mid 2) ( 0 , 0 , 1 , 2 , 3 ∣ 2 ) , 행3 − - − 행2 → ( 0 , … , 0 ∣ 0 ) (0, \ldots, 0 \mid 0) ( 0 , … , 0 ∣ 0 ) 이므로 해가 있습니다. 행1 − 2 - 2 − 2 행2 → ( 1 , 2 , 0 , 0 , 0 ∣ − 3 ) (1, 2, 0, 0, 0 \mid -3) ( 1 , 2 , 0 , 0 , 0 ∣ − 3 ) . x p = ( − 3 , 0 , 2 , 0 , 0 ) \mathbf{x}_p = (-3, 0, 2, 0, 0) x p = ( − 3 , 0 , 2 , 0 , 0 ) . 검산: ( − 3 + 4 , − 3 + 6 , 2 ) = ( 1 , 3 , 2 ) (-3 + 4, -3 + 6, 2) = (1, 3, 2) ( − 3 + 4 , − 3 + 6 , 2 ) = ( 1 , 3 , 2 ) .
x = ( − 3 , 0 , 2 , 0 , 0 ) + c 1 ( − 2 , 1 , 0 , 0 , 0 ) + c 2 ( 0 , 0 , − 2 , 1 , 0 ) + c 3 ( 0 , 0 , − 3 , 0 , 1 ) . \mathbf{x} = (-3, 0, 2, 0, 0) + c_1(-2, 1, 0, 0, 0) + c_2(0, 0, -2, 1, 0) + c_3(0, 0, -3, 0, 1). x = ( − 3 , 0 , 2 , 0 , 0 ) + c 1 ( − 2 , 1 , 0 , 0 , 0 ) + c 2 ( 0 , 0 , − 2 , 1 , 0 ) + c 3 ( 0 , 0 , − 3 , 0 , 1 ) .
11.10 [계산] · 확인 문제
A = [ 1 2 2 4 2 5 3 9 ] A = \begin{bmatrix} 1 & 2 \\ 2 & 4 \\ 2 & 5 \\ 3 & 9 \end{bmatrix} A = 1 2 2 3 2 4 5 9 에 대하여 (a) A x = b A\mathbf{x} = \mathbf{b} A x = b 가 해를 갖기 위한 b \mathbf{b} b 의 조건을 모두 구합니다. 조건은 몇 개일까요? (b) b = ( 1 , 2 , 3 , 6 ) \mathbf{b} = (1, 2, 3, 6) b = ( 1 , 2 , 3 , 6 ) 일 때 해를 구합니다. 해는 몇 개일까요?
값
답
(a) 조건의 개수
[?]
(b) x 1 x_1 x 1
[?]
(b) x 2 x_2 x 2
[?]
(b) 해의 개수
[?]
정답 풀이 (a) 행2 − 2 - 2 − 2 행1: ( 0 , 0 ∣ b 2 − 2 b 1 ) (0, 0 \mid b_2 - 2b_1) ( 0 , 0 ∣ b 2 − 2 b 1 ) . 행3 − 2 - 2 − 2 행1: ( 0 , 1 ∣ b 3 − 2 b 1 ) (0, 1 \mid b_3 - 2b_1) ( 0 , 1 ∣ b 3 − 2 b 1 ) . 행4 − 3 - 3 − 3 행1: ( 0 , 3 ∣ b 4 − 3 b 1 ) (0, 3 \mid b_4 - 3b_1) ( 0 , 3 ∣ b 4 − 3 b 1 ) . 행3을 둘째 피벗 행으로 쓰고 행4 − 3 - 3 − 3 행3: ( 0 , 0 ∣ b 4 − 3 b 3 + 3 b 1 ) (0, 0 \mid b_4 - 3b_3 + 3b_1) ( 0 , 0 ∣ b 4 − 3 b 3 + 3 b 1 ) . 조건: b 2 = 2 b 1 b_2 = 2b_1 b 2 = 2 b 1 , b 4 = 3 b 3 − 3 b 1 b_4 = 3b_3 - 3b_1 b 4 = 3 b 3 − 3 b 1 . 두 개 (m − r = 4 − 2 m - r = 4 - 2 m − r = 4 − 2 ).
(b) 조건 만족. x 2 = b 3 − 2 b 1 = 1 x_2 = b_3 - 2b_1 = 1 x 2 = b 3 − 2 b 1 = 1 , x 1 = b 1 − 2 x 2 = − 1 x_1 = b_1 - 2x_2 = -1 x 1 = b 1 − 2 x 2 = − 1 . r = n r = n r = n 이므로 해는 하나뿐.
11.11 [계산]
다음 행렬이 표의 네 경우 중 어디에 속하는지 말하고, A x = b A\mathbf{x} = \mathbf{b} A x = b 의 해의 개수로 가능한 것을 모두 말합니다.
(a) [ 1 0 1 0 1 1 ] (b) [ 1 0 0 1 1 1 ] (c) I 3 (d) [ 1 2 3 4 5 6 7 8 9 ] \text{(a)}\ \begin{bmatrix} 1 & 0 & 1 \\ 0 & 1 & 1 \end{bmatrix} \qquad \text{(b)}\ \begin{bmatrix} 1 & 0 \\ 0 & 1 \\ 1 & 1 \end{bmatrix} \qquad \text{(c)}\ I_3 \qquad \text{(d)}\ \begin{bmatrix} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \end{bmatrix} (a) [ 1 0 0 1 1 1 ] (b) 1 0 1 0 1 1 (c) I 3 (d) 1 4 7 2 5 8 3 6 9
풀이 (a) r = m = 2 < n r = m = 2 < n r = m = 2 < n : 항상 무수히 많습니다. (b) r = n = 2 < m r = n = 2 < m r = n = 2 < m : 0개 또는 1개. (c) r = m = n r = m = n r = m = n : 항상 1개. (d) r = 2 < 3 r = 2 < 3 r = 2 < 3 : 0개 또는 무수히 많습니다.
11.12 [도전]
같은 크기의 두 기약 행 사다리꼴 R 1 , R 2 R_1, R_2 R 1 , R 2 의 영공간이 같으면 R 1 = R 2 R_1 = R_2 R 1 = R 2 임을 증명합니다. 이로부터 rref ( A ) \operatorname{rref}(A) rref ( A ) 가 행 연산의 순서와 무관하게 하나로 정해짐을 설명합니다.
힌트. 영공간이 같다는 것은 “열들 사이의 일차결합 관계”가 같다는 뜻입니다. 제j j j 열이 피벗 열인 것은 앞의 열들의 일차결합이 아닌 것과 같습니다.
풀이 (뼈대) N ( R ) N(R) N ( R ) 이 같다는 것은 “∑ c j ( 열 j ) = 0 \sum c_j(\text{열}j) = \mathbf{0} ∑ c j ( 열 j ) = 0 ”인 계수 ( c j ) (c_j) ( c j ) 들의 집합이 같다는 것입니다. 제j j j 열이 앞 열들의 일차결합인지 여부는 c j = 1 c_j = 1 c j = 1 , c k = 0 c_k = 0 c k = 0 (k > j k > j k > j )인 영공간 원소가 있는지로 판정되므로 두 행렬에서 같습니다. 따라서 피벗 열의 위치가 같습니다. 기약 행 사다리꼴에서 k k k 번째 피벗 열은 e k \mathbf{e}_k e k 로 정해져 있습니다. 자유 열 j j j 는 앞 피벗 열들의 일차결합이고 그 계수는 영공간 원소에서 읽히므로 두 행렬에서 같습니다. 그런데 피벗 열이 e 1 , e 2 , … \mathbf{e}_1, \mathbf{e}_2, \ldots e 1 , e 2 , … 이므로 자유 열은 계수 벡터 그 자체입니다. 따라서 모든 열이 같습니다.
같은 A A A 에서 행 연산으로 얻은 기약 행 사다리꼴들은 모두 N ( A ) N(A) N ( A ) 와 같은 영공간을 가지므로 서로 같습니다.