선형대수는 겹침을 다루는 수학 이다. 입력을 두 배로 넣으면 출력도 두 배가 되고, 두 입력을
함께 넣으면 각각의 출력을 더한 것이 나오는 계 — 그런 계만 골라내 끝까지 밀어붙인 것이 이 장이다.
자연이 선형이어서가 아니다. 대부분의 물리는 비선형이고, 우리는 그것을 어떤 동작점 근처에서
선형으로 근사해서 푼다. 그래서 선형대수는 근사의 언어이자, 그 근사를 컴퓨터에 넘길 때의
표준 형식이다.
이 장에서 행렬은 두 얼굴로 나온다.
연립방정식의 계수표 — 1절부터 4절. 미지수가 n n n 개인 일차 연립방정식을 어떻게 풀고,
언제 풀리며, 답이 몇 개인지.
선형 사상의 좌표 표현 — 5절과 6절. 벡터공간 사이의 사상을 기저를 하나 골라 숫자로
적으면 행렬이 된다.
같은 것을 두 번 설명하는 게 아니다. 첫 번째 얼굴은 계산 을 주고, 두 번째 얼굴은 이유 를
준다. 1.3 행렬 고유값 문제는 이 둘이 만나는 자리다 — 사상을 가장 단순하게 보이도록 만드는
좌표를 찾는 문제이면서, 동시에 어떤 연립방정식이 자명하지 않은 해를 갖는 조건이다.
이 장이 뒤에서 어디로 흘러가는지만 미리 적어 둔다. 소자 시뮬레이션은 포아송 방정식과 캐리어
연속 방정식을 격자 위에서 이산화해 수십만 차원의 희소 선형계 로 바꾼 뒤 반복해 푸는 일이고,
양자역학의 관측량은 에르미트 행렬이며, 결정 안의 밴드 구조는 주기 퍼텐셜에 대한 고유값 문제다.
회로의 노드 해석도, 계측 데이터의 최소제곱 피팅도 결국 A x = b A\mathbf{x} = \mathbf{b} A x = b 다.
직관
행렬은 수를 담은 직사각형 상자가 아니다. 입력 벡터를 출력 벡터로 보내는 규칙을, 기저를 하나
정해서 표로 받아 적은 것 이다. 그래서 행렬의 열 하나하나는 “j j j 번째 기저 벡터가 어디로 가는가”의
답이다. 이 한 문장이 6절까지 그대로 이어진다 — 곱셈 규칙도, 행렬식도, 닮음도 전부 여기서 나온다.
m × n m \times n m × n 행렬은 m m m 개의 행과 n n n 개의 열로 배열된 수들이다. ( i , j ) (i, j) ( i , j ) 성분을 a i j a_{ij} a ij 로 쓰고,
행렬 전체를 A = [ a i j ] A = [a_{ij}] A = [ a ij ] 로 줄여 쓴다.
A = [ a 11 a 12 ⋯ a 1 n a 21 a 22 ⋯ a 2 n ⋮ ⋮ ⋱ ⋮ a m 1 a m 2 ⋯ a m n ] A = \begin{bmatrix}
a_{11} & a_{12} & \cdots & a_{1n} \\
a_{21} & a_{22} & \cdots & a_{2n} \\
\vdots & \vdots & \ddots & \vdots \\
a_{m1} & a_{m2} & \cdots & a_{mn}
\end{bmatrix} A = a 11 a 21 ⋮ a m 1 a 12 a 22 ⋮ a m 2 ⋯ ⋯ ⋱ ⋯ a 1 n a 2 n ⋮ a mn
첨자 순서는 행이 먼저, 열이 나중 이다. 사소해 보이지만 이 규약을 놓치면 전치와 곱셈이 전부
어긋난다. m = n m = n m = n 이면 정사각 행렬 , n × 1 n \times 1 n × 1 행렬은 열벡터 , 1 × n 1 \times n 1 × n 행렬은
행벡터 다. 이 백과에서 벡터는 따로 말하지 않는 한 열벡터이고 v \mathbf{v} v 처럼 굵게 쓴다.
일차 연립방정식
a 11 x 1 + a 12 x 2 + ⋯ + a 1 n x n = b 1 ⋮ a m 1 x 1 + a m 2 x 2 + ⋯ + a m n x n = b m \begin{aligned}
a_{11} x_1 + a_{12} x_2 + \cdots + a_{1n} x_n &= b_1 \\
&\;\;\vdots \\
a_{m1} x_1 + a_{m2} x_2 + \cdots + a_{mn} x_n &= b_m
\end{aligned} a 11 x 1 + a 12 x 2 + ⋯ + a 1 n x n a m 1 x 1 + a m 2 x 2 + ⋯ + a mn x n = b 1 ⋮ = b m
은 A x = b A \mathbf{x} = \mathbf{b} A x = b 한 줄이 된다. 미지수 이름 x 1 , … , x n x_1, \dots, x_n x 1 , … , x n 이 사라진 것에 주목할
것 — 방정식의 정보는 전부 계수 배열에 들어 있었고, 이름은 자리를 표시하는 역할만 했다.
이 장은 인덱스가 많다. 성분의 자리를 가리키는 것, 크기를 가리키는 것, 소행렬식과 여인수에
붙는 것이 뒤섞이고, 게다가 대소문자만 다른 짝 이 여럿이라 눈으로는 구분되지 않는다.
한 번에 정리해 두고 시작한다.
기호 읽는 법 무엇을 가리키는가 A , B , M A,\ B,\ M A , B , M 대문자 로만 행렬 전체 . 크기는 m × n m \times n m × n (m m m = 행 수, n n n = 열 수) a i j a_{ij} a ij 에이 아이 제이 A A A 의 i i i 행 j j j 열 성분 하나 x , b \mathbf{x},\ \mathbf{b} x , b 굵은 소문자 열벡터. 성분은 x 1 , … , x n x_1, \dots, x_n x 1 , … , x n a j \mathbf{a}_j a j A A A 의 j j j 번째 열벡터 i , j , k , l i,\ j,\ k,\ l i , j , k , l 성분의 자리(행 번호·열 번호)를 세는 인덱스 m , n , p m,\ n,\ p m , n , p 크기. r r r 은 계수(rank)로만 쓴다 δ i j \delta_{ij} δ ij 크로네커 델타 i = j i = j i = j 면 1, 아니면 0ε i j k … \varepsilon_{ijk\ldots} ε ij k … 레비–치비타 기호 짝치환 + 1 +1 + 1 , 홀치환 − 1 -1 − 1 , 중복이 있으면 0 M i j M_{ij} M ij 소행렬식 (minor) i i i 행과 j j j 열을 지운 ( n − 1 ) (n-1) ( n − 1 ) 차 행렬식 C i j C_{ij} C ij 여인수 (cofactor) ( − 1 ) i + j M i j (-1)^{i+j} M_{ij} ( − 1 ) i + j M ij A T A^{\mathsf{T}} A T 에이 전치 ( A T ) i j = a j i (A^{\mathsf{T}})_{ij} = a_{ji} ( A T ) ij = a j i A ˉ \bar{A} A ˉ 에이 켤레 성분마다 복소켤레를 취한 것 A † A^{\dagger} A † 에이 대거 켤레전치 A ˉ T \bar{A}^{\mathsf{T}} A ˉ T adj A \operatorname{adj} A adj A 수반행렬 여인수 행렬의 전치 [ C i j ] T [C_{ij}]^{\mathsf{T}} [ C ij ] T tr A \operatorname{tr} A tr A 대각합 (trace) ∑ i a i i \sum_i a_{ii} ∑ i a ii det A \det A det A 행렬식 정사각 행렬에 딸린 수 하나 ∥ v ∥ \lVert \mathbf{v} \rVert ∥ v ∥ 노름 벡터의 길이
주의
위 표에서 반드시 짚고 갈 함정이 네 개다.
① 대문자는 배열, 소문자는 성분. A A A 와 a i j a_{ij} a ij 가 그 짝이고, 이 규칙은 이 장 어디서나
지켜진다. 여기에 겹치는 함정이 하나 더 있다 — 소행렬식 M i j M_{ij} M ij 는 행렬 이름 M M M 과 대문자끼리
부딪친다. 이 장에서 소행렬식은 언제나 두 인덱스를 달고 나오므로, 인덱스 없는 대문자는 늘
행렬로 읽으면 된다.
② 행렬과 행렬식은 다른 물건이다. 행렬은 배열이고 행렬식은 수다. 그래서 스칼라배가 다르게
동작한다 — 행렬에 c c c 를 곱하면 모든 성분이 c c c 배지만, 행렬식에서 c c c 를 곱하는 것은 한
행(열)만 c c c 배 하는 일이다. 그래서 n × n n \times n n × n 행렬에서 det ( c A ) = c n det A \det(cA) = c^{n}\det A det ( c A ) = c n det A 이지
c det A c \det A c det A 가 아니다. 관례상 행렬은 대괄호, 행렬식은 세로줄로 감싼다.
③ ∣ a i j ∣ |a_{ij}| ∣ a ij ∣ 라고 쓰지 않는다. 이 표기는 “성분의 절댓값”과 “성분이 a i j a_{ij} a ij 인 행렬식”을
문맥으로만 구분해야 한다. 이 백과는 행렬식에 언제나 det \det det 를 쓴다.
④ adjoint가 두 뜻이다. 대수학의 adj A \operatorname{adj} A adj A (여인수 행렬의 전치)와 물리의
A † A^{\dagger} A † (켤레전치)가 영어로 둘 다 adjoint다. 이 백과는 앞엣것을 수반행렬 , 뒤엣것을
켤레전치 로 부르고 기호도 절대 섞지 않는다. 6절에서 다시 나오는 수반 연산자 는 † \dagger †
쪽의 일반화다.
덧붙여, 복소 성분이 나오는 자리에서는 허수단위 i i i 와 인덱스 i i i 가 부딪친다. 그런 자리에서는
인덱스를 μ , ν \mu, \nu μ , ν 로 바꿔 쓴다.
직관
덧셈과 스칼라배가 성분별 인 것은 규칙이 아니라 결과다. 행렬이 사상을 적어 둔 표라면,
두 사상을 더한 사상은 각 기저 벡터의 상을 더한 것일 수밖에 없다. 표의 같은 자리끼리 더하는 것이
바로 그 뜻이다. 전치는 행과 열의 역할을 맞바꾸는 것 이고, 5절에서 내적을 정의하고 6절에서
수반 연산자를 정의하고 나면 “사상을 반대 방향에서 읽는 것”이라는 더 깊은 뜻을 얻는다.
크기가 같은 두 행렬에 대해 [ a i j ] + [ b i j ] = [ a i j + b i j ] [a_{ij}] + [b_{ij}] = [a_{ij} + b_{ij}] [ a ij ] + [ b ij ] = [ a ij + b ij ] , c [ a i j ] = [ c a i j ] c[a_{ij}] = [c\,a_{ij}] c [ a ij ] = [ c a ij ] 로
정의한다. 이 두 연산에 대해 m × n m \times n m × n 행렬 전체는 5절에서 정의할 벡터공간 의 공리를 그대로
만족한다 — 행렬 자체가 벡터인 셈이다.
전치 A T A^{\mathsf{T}} A T 는 ( i , j ) (i,j) ( i , j ) 성분이 a j i a_{ji} a j i 인 n × m n \times m n × m 행렬이다. 성질 셋만 외워 두면 된다.
( A T ) T = A , ( A + B ) T = A T + B T , ( A B ) T = B T A T (A^{\mathsf{T}})^{\mathsf{T}} = A, \qquad
(A + B)^{\mathsf{T}} = A^{\mathsf{T}} + B^{\mathsf{T}}, \qquad
(AB)^{\mathsf{T}} = B^{\mathsf{T}} A^{\mathsf{T}} ( A T ) T = A , ( A + B ) T = A T + B T , ( A B ) T = B T A T
세 번째에서 순서가 뒤집히는 것이 요점이다. 합성의 순서를 뒤집는 연산이라는 신호이고,
역행렬에서도 같은 모양 ( A B ) − 1 = B − 1 A − 1 (AB)^{-1} = B^{-1}A^{-1} ( A B ) − 1 = B − 1 A − 1 이 나온다. 인수가 몇 개든 마찬가지다.
( A B C D ) T = D T C T B T A T (ABCD)^{\mathsf{T}} = D^{\mathsf{T}}C^{\mathsf{T}}B^{\mathsf{T}}A^{\mathsf{T}} ( A B C D ) T = D T C T B T A T
직관
“왼쪽 행렬의 행과 오른쪽 행렬의 열을 내적한다”는 규칙은 외워야 할 약속처럼 보이지만, 사실은
유일하게 가능한 규칙 이다. A A A 가 사상이고 B B B 가 사상이면 A B AB A B 는 “B B B 를 먼저, A A A 를 나중에”
하는 합성이어야 한다. 즉 모든 x \mathbf{x} x 에 대해 ( A B ) x = A ( B x ) (AB)\mathbf{x} = A(B\mathbf{x}) ( A B ) x = A ( B x ) 가 성립해야
하고, 이 요구 하나를 성분으로 풀어 쓰면 그 이상한 규칙이 그대로 튀어나온다.
A A A 가 m × p m \times p m × p , B B B 가 p × n p \times n p × n 일 때 곱 C = A B C = AB C = A B 는 m × n m \times n m × n 이고
c i j = ∑ k = 1 p a i k b k j c_{ij} = \sum_{k=1}^{p} a_{ik} b_{kj} c ij = k = 1 ∑ p a ik b k j
이다. A A A 의 열 개수와 B B B 의 행 개수가 같아야 곱이 정의된다. 합성으로 읽으면 당연하다 —
B B B 가 뱉은 벡터의 차원이 A A A 가 받는 벡터의 차원과 맞아야 한다. 이 조건이 맞는 두 행렬을
곱할 수 있다 (conformable)고 한다.
곱을 열 단위로 보는 습관을 들이면 이후가 편해진다. B B B 의 열을 b 1 , … , b n \mathbf{b}_1, \dots, \mathbf{b}_n b 1 , … , b n
이라 하면
A B = [ A b 1 A b 2 ⋯ A b n ] AB = \begin{bmatrix} A\mathbf{b}_1 & A\mathbf{b}_2 & \cdots & A\mathbf{b}_n \end{bmatrix} A B = [ A b 1 A b 2 ⋯ A b n ]
이다. 실제 수치 라이브러리(LAPACK 등)가 곱을 열 단위로 나눠 여러 코어에 뿌리는 근거가 이
항등식이다. 특히 A x A\mathbf{x} A x 는 A A A 의 열들을 x \mathbf{x} x 의 성분만큼 섞은 것 이다.
A x = x 1 a 1 + x 2 a 2 + ⋯ + x n a n A\mathbf{x} = x_1 \mathbf{a}_1 + x_2 \mathbf{a}_2 + \cdots + x_n \mathbf{a}_n A x = x 1 a 1 + x 2 a 2 + ⋯ + x n a n
2절의 ‘열 그림’이 이 식이고, 3절의 계수와 4절의 가역성이 전부 이 식의 따름정리다.
곱은 결합적(A ( B C ) = ( A B ) C A(BC) = (AB)C A ( B C ) = ( A B ) C )이고 덧셈에 분배적이다. 결합법칙은 합성의 결합법칙이므로 증명 없이도
납득된다.
주의
곱셈에서 교환법칙과 소거법칙은 성립하지 않는다.
A B ≠ B A AB \ne BA A B = B A 가 일반적이다. 애초에 크기가 안 맞아 한쪽만 정의되는 경우도 흔하다.
A B = 0 AB = 0 A B = 0 인데 A ≠ 0 A \ne 0 A = 0 이고 B ≠ 0 B \ne 0 B = 0 일 수 있다. 예: [ 1 0 0 0 ] [ 0 0 0 1 ] = 0 \begin{bmatrix} 1 & 0 \\ 0 & 0\end{bmatrix}\begin{bmatrix} 0 & 0 \\ 0 & 1\end{bmatrix} = 0 [ 1 0 0 0 ] [ 0 0 0 1 ] = 0 .
따라서 A B = A C AB = AC A B = A C 에서 B = C B = C B = C 를 결론지을 수 없다. A A A 가 가역일 때만 가능하다(4절).
곱셈이 비가환이면 익숙한 항등식도 깨진다.
( A + B ) ( A − B ) = A 2 − B 2 + ( B A − A B ) (A+B)(A-B) = A^2 - B^2 + (BA - AB) ( A + B ) ( A − B ) = A 2 − B 2 + ( B A − A B ) 이고, e A + B ≠ e A e B e^{A+B} \ne e^{A}e^{B} e A + B = e A e B 다.
숫자의 세계에서는 0이 아닌 수마다 역수가 있지만 행렬은 그렇지 않다. 수학에서 앞엣것을 체 ,
뒤엣것을 환 이라 부른다 — 이 차이가 위 세 줄을 전부 만든다.
물리에서 A B − B A ≠ 0 AB - BA \neq 0 A B − B A = 0 은 결함이 아니라 정보다. 양자역학의 교환자와 불확정성 원리가 통째로
여기에 얹혀 있다.
증명을 성분으로 내려가서 하는 습관을 여기서 들여 둔다. 곱의 정의를 다시 적으면
( A B ) i j = ∑ k a i k b k j (AB)_{ij} = \sum_k a_{ik}b_{kj} ( A B ) ij = ∑ k a ik b k j 이고, 합의 인덱스 k k k 가 두 인수 사이에서 이웃해 있다 는 것이
읽는 요령이다. ∑ k b k j a i k \sum_k b_{kj}a_{ik} ∑ k b k j a ik 처럼 순서가 뒤바뀌어 나와도 곱셈은 스칼라 곱이라 자리를
옮길 수 있으니, k k k 가 이웃하도록 다시 적어 A B AB A B 인지 B A BA B A 인지 판별한다.
크로네커 델타 δ i j \delta_{ij} δ ij 로 단위행렬을 I = [ δ i j ] I = [\delta_{ij}] I = [ δ ij ] 라 쓰면 I A = A IA = A I A = A 가 한 줄이다.
( I A ) i j = ∑ k δ i k a k j = a i j (IA)_{ij} = \sum_k \delta_{ik} a_{kj} = a_{ij} ( I A ) ij = k ∑ δ ik a k j = a ij
δ i k \delta_{ik} δ ik 가 k = i k = i k = i 일 때만 살아남아 합이 한 항으로 무너진다. 델타는 이렇게 합을 골라내는
장치 이고, 이 쓰임은 이후 계속 나온다.
같은 방식으로 결합법칙과 전치 규칙이 확인된다.
[ A ( B C ) ] i j = ∑ k a i k ( ∑ l b k l c l j ) = ∑ k , l a i k b k l c l j = [ ( A B ) C ] i j [A(BC)]_{ij} = \sum_k a_{ik}\Big(\sum_l b_{kl}c_{lj}\Big) = \sum_{k,l} a_{ik}b_{kl}c_{lj} = [(AB)C]_{ij} [ A ( B C ) ] ij = k ∑ a ik ( l ∑ b k l c l j ) = k , l ∑ a ik b k l c l j = [( A B ) C ] ij
[ ( A B ) T ] i j = ( A B ) j i = ∑ k a j k b k i = ∑ k ( B T ) i k ( A T ) k j = ( B T A T ) i j [(AB)^{\mathsf{T}}]_{ij} = (AB)_{ji} = \sum_k a_{jk}b_{ki}
= \sum_k (B^{\mathsf{T}})_{ik}(A^{\mathsf{T}})_{kj} = (B^{\mathsf{T}}A^{\mathsf{T}})_{ij} [( A B ) T ] ij = ( A B ) j i = k ∑ a j k b k i = k ∑ ( B T ) ik ( A T ) k j = ( B T A T ) ij
두 번째 줄에서 순서가 뒤집히는 이유가 눈에 보인다 — 전치가 두 인덱스를 각각 뒤집으니, k k k 를
다시 이웃하게 만들려면 인수의 순서를 바꾸는 수밖에 없다.
직관
대각합은 성분 몇 개를 더한 시시한 양처럼 보이지만, 좌표를 바꿔도 변하지 않는 두 양 중
하나다(다른 하나가 행렬식). 그 불변성이 전부 아래 한 줄에서 나온다 —
tr ( A B ) = tr ( B A ) \operatorname{tr}(AB) = \operatorname{tr}(BA) tr ( A B ) = tr ( B A ) . 곱의 순서를 바꿔도 대각합이 같다는 것은,
대각합이 “곱하는 순서”라는 자의적인 선택을 보지 않는다는 뜻이다. 6절의 닮음 불변성이 이 한 줄의
따름정리다.
정사각 행렬의 대각합 은 주대각 성분의 합이다.
tr A = ∑ i = 1 n a i i \operatorname{tr} A = \sum_{i=1}^{n} a_{ii} tr A = i = 1 ∑ n a ii
tr ( A + B ) = tr A + tr B \operatorname{tr}(A+B) = \operatorname{tr}A + \operatorname{tr}B tr ( A + B ) = tr A + tr B 와
tr ( c A ) = c tr A \operatorname{tr}(cA) = c\operatorname{tr}A tr ( c A ) = c tr A 는 자명하다 — 대각합은 선형 연산 이다
(행렬식은 그렇지 않다). 중요한 것은 순서에 대한 성질이다.
tr ( A B ) = ∑ i ∑ j a i j b j i = ∑ j ∑ i b j i a i j = tr ( B A ) \operatorname{tr}(AB) = \sum_i \sum_j a_{ij}b_{ji} = \sum_j \sum_i b_{ji}a_{ij} = \operatorname{tr}(BA) tr ( A B ) = i ∑ j ∑ a ij b j i = j ∑ i ∑ b j i a ij = tr ( B A )
A B ≠ B A AB \ne BA A B = B A 여도 성립한다. 셋 이상이면 A B C = A ( B C ) ABC = A(BC) A B C = A ( B C ) 로 묶어 같은 논법을 반복해
tr ( A B C ) = tr ( B C A ) = tr ( C A B ) \operatorname{tr}(ABC) = \operatorname{tr}(BCA) = \operatorname{tr}(CAB) tr ( A B C ) = tr ( B C A ) = tr ( C A B )
를 얻는다. 순환 순서 만 허용된다는 점에 주의할 것 — tr ( A C B ) \operatorname{tr}(ACB) tr ( A C B ) 는 일반적으로
다르다.
교환자 는 두 행렬이 순서를 얼마나 신경 쓰는지를 재는 양이다.
[ A , B ] = A B − B A [A, B] = AB - BA [ A , B ] = A B − B A
[ A , B ] = − [ B , A ] [A,B] = -[B,A] [ A , B ] = − [ B , A ] , [ A , B + C ] = [ A , B ] + [ A , C ] [A, B+C] = [A,B] + [A,C] [ A , B + C ] = [ A , B ] + [ A , C ] 이고, 위 결과에서
tr [ A , B ] = 0 \operatorname{tr}[A,B] = 0 tr [ A , B ] = 0 이 곧바로 나온다.
직관
교환자의 표준 예가 파울리 행렬 이다.
σ 1 = [ 0 1 1 0 ] , σ 2 = [ 0 − i i 0 ] , σ 3 = [ 1 0 0 − 1 ] \sigma_1 = \begin{bmatrix} 0 & 1 \\ 1 & 0\end{bmatrix},\quad
\sigma_2 = \begin{bmatrix} 0 & -i \\ i & 0\end{bmatrix},\quad
\sigma_3 = \begin{bmatrix} 1 & 0 \\ 0 & -1\end{bmatrix} σ 1 = [ 0 1 1 0 ] , σ 2 = [ 0 i − i 0 ] , σ 3 = [ 1 0 0 − 1 ] 직접 곱해 보면 σ 1 2 = σ 2 2 = σ 3 2 = I \sigma_1^2 = \sigma_2^2 = \sigma_3^2 = I σ 1 2 = σ 2 2 = σ 3 2 = I 이고, 서로 다른 둘은 반교환 한다
(σ i σ j = − σ j σ i \sigma_i\sigma_j = -\sigma_j\sigma_i σ i σ j = − σ j σ i ). 그리고
[ σ 1 , σ 2 ] = [ i 0 0 − i ] − [ − i 0 0 i ] = 2 i σ 3 [\sigma_1, \sigma_2] = \begin{bmatrix} i & 0 \\ 0 & -i\end{bmatrix} - \begin{bmatrix} -i & 0 \\ 0 & i\end{bmatrix} = 2i\,\sigma_3 [ σ 1 , σ 2 ] = [ i 0 0 − i ] − [ − i 0 0 i ] = 2 i σ 3 전자의 스핀이 2 × 2 2 \times 2 2 × 2 행렬로 기술되는 이유, 스핀 성분을 동시에 확정할 수 없는 이유가
이 한 줄이다. 반도체에서는 스핀트로닉스와 스핀–궤도 결합에서 그대로 다시 만난다.
모양으로 정의되는 것들이 먼저다.
대각행렬 i ≠ j i \ne j i = j 이면 a i j = 0 a_{ij} = 0 a ij = 0 . 곱과 거듭제곱이 성분별로 계산되고, 대각행렬끼리는
언제나 교환한다. 성분이 전부 0이 아니면 가역이고 역행렬도 대각행렬이다(1 / a i i 1/a_{ii} 1/ a ii ).
스칼라행렬 대각성분이 전부 같은 c c c 인 대각행렬. S A = A S = c A SA = AS = cA S A = A S = c A 라서 스칼라를 곱한 것과
구별되지 않는다.
단위행렬 I I I 대각성분이 전부 1인 스칼라행렬. A I = I A = A AI = IA = A A I = I A = A .
상·하 삼각행렬 대각선 한쪽이 전부 0. 행렬식이 대각성분의 곱이고, 연립방정식이 대입만으로
풀린다(2절). 삼각행렬의 역행렬도 삼각행렬이다.
영행렬 O O O 모든 성분이 0. A + O = A A + O = A A + O = A , O A = A O = O OA = AO = O O A = A O = O .
전치·켤레와 역행렬의 관계로 정의되는 것들이 그다음이고, 여기가 1.3의 무대다. 실수 성분에서
전치가 하던 역할을 복소 성분에서는 켤레전치 A † = A ˉ T A^{\dagger} = \bar{A}^{\mathsf{T}} A † = A ˉ T 가 맡는다.
이름 조건 실/복소 대칭 (symmetric) A = A T A = A^{\mathsf{T}} A = A T 실 반대칭 (skew-symmetric) A = − A T A = -A^{\mathsf{T}} A = − A T — 대각성분이 전부 0실 직교 (orthogonal) A − 1 = A T A^{-1} = A^{\mathsf{T}} A − 1 = A T , 즉 A T A = I A^{\mathsf{T}}A = I A T A = I 실 에르미트 (Hermitian) A = A † A = A^{\dagger} A = A † 복소 반에르미트 (anti-Hermitian) A = − A † A = -A^{\dagger} A = − A † 복소 유니터리 (unitary) A − 1 = A † A^{-1} = A^{\dagger} A − 1 = A † , 즉 A † A = I A^{\dagger}A = I A † A = I 복소 정규 (normal) A A † = A † A AA^{\dagger} = A^{\dagger}A A A † = A † A 복소
오른쪽 세 줄이 왼쪽 세 줄의 복소 확장이다 — 실수 에르미트 행렬은 곧 대칭행렬이고, 실수 유니터리
행렬은 곧 직교행렬이다. 에르미트 조건 a ˉ j i = a i j \bar{a}_{ji} = a_{ij} a ˉ j i = a ij 는 대각성분이 실수여야 한다는
뜻을 포함하고, 그래서 관측량의 기댓값이 실수로 나온다.
정규행렬 은 자기 자신의 켤레전치와 교환하는 행렬이다. 위 표의 나머지 여섯 종류가 전부 정규
행렬이고, 1.3에서 “유니터리 변환으로 대각화할 수 있는 행렬은 정확히 정규행렬”이라는 스펙트럼
정리로 되돌아온다. 지금은 이름만 두고 간다.
직관
덧셈과 곱셈이 있으면 다항식을 넣을 수 있고, 다항식을 넣을 수 있으면 수렴하는 멱급수는 무엇이든
넣을 수 있다. e A e^{A} e A 가 뜻을 갖는 이유가 그것뿐이다. 그리고 이 정의가 실제로 쓸모 있는 이유는,
연립 상미분방정식 x ′ = A x \mathbf{x}' = A\mathbf{x} x ′ = A x 의 해가 스칼라 문제와 똑같이 e A t x 0 e^{At}\mathbf{x}_0 e A t x 0 로
적히기 때문이다(1.4). 지수함수는 “무한소 변화를 유한 시간 쌓은 것”이고, 그 문장은 행렬에서도
그대로 참이다.
정사각 행렬 A A A 의 거듭제곱 A k A^k A k 는 곱을 반복한 것이고, 상수항 c c c 는 c I cI c I 로 읽는다. 그러면
다항식 p ( A ) p(A) p ( A ) 가 정의되고, 급수가 성분마다 수렴하면 급수도 정의된다.
e A = ∑ k = 0 ∞ 1 k ! A k , sin A = ∑ k = 0 ∞ ( − 1 ) k ( 2 k + 1 ) ! A 2 k + 1 e^{A} = \sum_{k=0}^{\infty}\frac{1}{k!}A^{k},
\qquad
\sin A = \sum_{k=0}^{\infty}\frac{(-1)^k}{(2k+1)!}A^{2k+1} e A = k = 0 ∑ ∞ k ! 1 A k , sin A = k = 0 ∑ ∞ ( 2 k + 1 )! ( − 1 ) k A 2 k + 1
계산은 거의 언제나 거듭제곱이 반복되는 구조를 찾는 것 으로 끝난다. 대각행렬이면 성분마다
따로 계산하면 되고
D = [ a 0 0 b ] ⟹ f ( D ) = [ f ( a ) 0 0 f ( b ) ] D = \begin{bmatrix} a & 0 \\ 0 & b\end{bmatrix}
\;\Longrightarrow\;
f(D) = \begin{bmatrix} f(a) & 0 \\ 0 & f(b)\end{bmatrix} D = [ a 0 0 b ] ⟹ f ( D ) = [ f ( a ) 0 0 f ( b ) ]
제곱이 단위행렬로 돌아오는 행렬이면 짝수 항과 홀수 항이 각각 코사인과 사인으로 뭉친다.
σ k 2 = I \sigma_k^2 = I σ k 2 = I 인 파울리 행렬이 그 예다.
e i θ σ k = I cos θ + i σ k sin θ e^{i\theta \sigma_k} = I\cos\theta + i\,\sigma_k \sin\theta e i θ σ k = I cos θ + i σ k sin θ
오일러 공식이 행렬로 그대로 올라온 것이고, 스핀 회전 연산자가 이 꼴이다. 대각화가 되는
일반적인 경우는 1.3에서 다룬다 — 대각화란 결국 f ( A ) f(A) f ( A ) 를 계산 가능하게 만드는 절차 다.
두 결과를 미리 적어 둔다. H H H 가 에르미트이면
U = e i H 는 유니터리다 U = e^{iH} \quad\text{는 유니터리다} U = e i H 는 유니터리다
U † = e − i H † = e − i H = U − 1 U^{\dagger} = e^{-iH^{\dagger}} = e^{-iH} = U^{-1} U † = e − i H † = e − i H = U − 1 이기 때문이다. 양자역학에서 관측량(에르미트)이
시간 발전 연산자(유니터리)를 만들어 내는 구조가 정확히 이 한 줄이다. 그리고
det ( e H ) = e tr H \det\!\big(e^{H}\big) = e^{\operatorname{tr} H} det ( e H ) = e tr H
행렬식이 곱을 좋아하고 대각합이 합을 좋아하는 두 성질이 지수함수를 사이에 두고 맞물린 결과다.
주의
e A + B = e A e B e^{A+B} = e^{A}e^{B} e A + B = e A e B 는 A A A 와 B B B 가 교환할 때만 참이다. 급수를 두어 항 곱해 보면
A B AB A B 와 B A BA B A 가 섞여 나오면서 어긋난다. 지수 법칙이 무너지는 자리는 물리에서 흔하고, 그 차이를
정리해 주는 것이 베이커–하우스도르프 전개다.
e − T A e T = A + [ A , T ] + 1 2 ! [ [ A , T ] , T ] + ⋯ e^{-T}Ae^{T} = A + [A,T] + \tfrac{1}{2!}\big[[A,T],T\big] + \cdots e − T A e T = A + [ A , T ] + 2 ! 1 [ [ A , T ] , T ] + ⋯ 교환자가 0이면 우변이 첫 항만 남는다 — 교환자가 어긋남의 크기를 재고 있다는 것이 눈에 보인다.
직관
행렬식을 “이렇게 곱하고 저렇게 빼는 수”로 배우면 아무것도 남지 않는다. det A \det A det A 는 A A A 가 부피를
몇 배로 만드는가 이다. 단위 정육면체를 넣으면 A A A 의 열들이 만드는 평행육면체가 나오고, 그 부피가
∣ det A ∣ |\det A| ∣ det A ∣ 다. 부호는 방향(오른손이 왼손이 되었는가)이다. 그러면 det A = 0 \det A = 0 det A = 0 의 뜻도 즉시 보인다 —
부피를 0으로 짓뭉갰다 , 즉 차원이 줄었고 되돌릴 수 없다.
그림 1.2-1. 2차원에서의 행렬식. 단위 정사각형이 A의 두 열벡터가 이루는 평행사변형으로 옮겨지고, 그 넓이가 |det A|다. 열이 서로 평행해지는 순간 넓이가 0이 되고 행렬식도 0이 된다.직접 작도
정사각 행렬에만 정의된다. 2차·3차는 직접 써 두는 편이 빠르다.
det [ a b c d ] = a d − b c \det \begin{bmatrix} a & b \\ c & d \end{bmatrix} = ad - bc det [ a c b d ] = a d − b c
3차 행렬식을 성분으로 펼치면 삼중 스칼라곱 ( a × b ) ⋅ c (\mathbf{a}\times\mathbf{b})\cdot\mathbf{c} ( a × b ) ⋅ c 와
같은 식이 된다. 외적의 크기가 평행사변형의 넓이라는 사실(1.1.6 면적분 )에 높이를
곱한 것이므로, 그 값은 세 벡터가 만드는 평행육면체의 부피 다. 위 직관의 3차원 판이 이것이고,
세 벡터가 한 평면에 놓이면 — 즉 선형 종속이면 — 부피가 0이라서 행렬식도 0이 된다.
n n n 개를 늘어놓는 방법은 n ! n! n ! 가지이고, 어떤 배열이든 두 개씩 맞바꾸기를 되풀이해 기준 순서
1 , 2 , … , n 1,2,\dots,n 1 , 2 , … , n 에서 도달할 수 있다. 맞바꾼 횟수는 경로마다 다르지만 홀짝은 언제나 같다 .
그래서 각 배열에 홀짝 (parity)이 정해지고, 이것을 레비–치비타 기호 로 적는다.
ε i j … = { + 1 i j … 가 짝치환 − 1 i j … 가 홀치환 0 인덱스가 겹치면 \varepsilon_{ij\ldots} =
\begin{cases}
+1 & ij\ldots \text{가 짝치환} \\
-1 & ij\ldots \text{가 홀치환} \\
0 & \text{인덱스가 겹치면}
\end{cases} ε ij … = ⎩ ⎨ ⎧ + 1 − 1 0 ij … 가 짝치환 ij … 가 홀치환 인덱스가 겹치면
이 기호로 n n n 차 행렬식의 정의가 한 줄이 된다.
det A = ∑ i , j , … ε i j … a 1 i a 2 j ⋯ \det A = \sum_{i,j,\ldots} \varepsilon_{ij\ldots}\,a_{1i}\,a_{2j}\cdots det A = i , j , … ∑ ε ij … a 1 i a 2 j ⋯
인덱스는 1부터 n n n 까지 자유롭게 돌려도 된다 — 겹치는 조합은 ε \varepsilon ε 이 0으로 지워 준다.
n = 2 n = 2 n = 2 이면 ε 12 = + 1 \varepsilon_{12} = +1 ε 12 = + 1 , ε 21 = − 1 \varepsilon_{21} = -1 ε 21 = − 1 이라 a 11 a 22 − a 12 a 21 a_{11}a_{22} - a_{12}a_{21} a 11 a 22 − a 12 a 21
두 항이고, n = 3 n = 3 n = 3 이면 여섯 항이다. 항의 절반은 음수 라서, 성분이 큰 행렬식이 아주 작은
값을 가질 수 있다. 수치적으로 위험한 자리가 여기다.
ε \varepsilon ε 의 성질이 그대로 행렬식의 성질로 번역된다. 두 인덱스를 맞바꾸면 ε \varepsilon ε 의
부호가 바뀌므로 두 행(열)을 맞바꾸면 행렬식의 부호가 바뀐다. 인덱스가 겹치면 ε \varepsilon ε 이
0이므로 두 행(열)이 같으면 행렬식이 0이다. 정의가 각 행에 대해 한 번씩만 곱을 쓰므로 각
행(열)에 대해 선형 이다. 그리고 정의를 행 기준으로 쓰든 열 기준으로 쓰든 같은 값이 나오므로
det A T = det A \det A^{\mathsf{T}} = \det A det A T = det A 이고, 이것이 행에 대한 모든 성질이 열에도 그대로 적용되는 이유다.
같은 기호가 1.13 텐서에서 유사텐서로 다시 나오고, 1.1.2 기울기·발산·회전 의 회전을
( ∇ × F ) i = ε i j k ∂ j F k (\nabla\times\mathbf{F})_i = \varepsilon_{ijk}\partial_j F_k ( ∇ × F ) i = ε ij k ∂ j F k 로 적는 표기도 이것이다.
직관
성질을 하나씩 외울 필요가 없다. 세 조건이 행렬식을 유일하게 결정한다 : ① 각 열에
대해 선형이고(다중선형), ② 두 열을 맞바꾸면 부호가 뒤집히며(교대), ③ det I = 1 \det I = 1 det I = 1 이다. 부피
배율이라는 그림에서 셋 다 자명하다 — 한 변을 두 배 늘리면 부피가 두 배, 두 변을 맞바꾸면 방향이
뒤집히고, 단위 정육면체의 부피는 1이다. 나머지 성질은 전부 이 셋의 따름정리이고, 앞 절의
ε \varepsilon ε 정의가 셋을 동시에 만족하는 유일한 식이다.
한 행(열)이 전부 0이면 det A = 0 \det A = 0 det A = 0 .
두 행(열)이 같거나 비례하면 det A = 0 \det A = 0 det A = 0 . (부피가 납작해진다)
한 행에 다른 행의 상수배를 더해도 행렬식은 변하지 않는다 . — 다중선형성으로 쪼개면 남는
항이 “두 행이 같은 행렬식”이라 0이기 때문이다. 소거를 마음 놓고 쓸 수 있는 근거다.
한 행에 c c c 를 곱하면 행렬식도 c c c 배. 따라서 det ( c A ) = c n det A \det(cA) = c^n \det A det ( c A ) = c n det A .
두 행을 맞바꾸면 부호가 바뀐다.
det A T = det A \det A^{\mathsf{T}} = \det A det A T = det A . 그래서 행에 대한 성질이 열에도 그대로 적용된다.
삼각행렬(대각행렬 포함)의 행렬식은 대각성분의 곱이다.
det ( A B ) = det ( B A ) = det A ⋅ det B \det(AB) = \det(BA) = \det A \cdot \det B det ( A B ) = det ( B A ) = det A ⋅ det B . 부피 배율을 연달아 적용하면 배율이 곱해진다 —
성분으로 증명하려면 고생스럽지만 기하로는 한 줄이다. A B ≠ B A AB \ne BA A B = B A 여도 두 행렬식은 같다.
마지막 두 줄이 실제 계산법 을 준다. 행 연산으로 삼각행렬을 만들고 대각성분을 곱하면
O ( n 3 ) O(n^3) O ( n 3 ) 이다. 이때 회계를 두 가지 해 둬야 한다 — 행 교환마다 부호를 뒤집고 , 행에 곱한
상수는 밖으로 빼서 기억한다. 소거에서는 행에 상수를 곱해도 해집합이 안 변하지만, 행렬식은
그만큼 변한다.
∣ 3 2 1 2 3 1 1 1 4 ∣ → 소거 3 ⋅ 2 ⋅ 5 6 ⋅ 1 3 ∣ 1 2 3 1 3 0 1 1 5 0 0 54 5 ∣ = 5 3 ⋅ 54 5 = 18 \begin{vmatrix} 3 & 2 & 1 \\ 2 & 3 & 1 \\ 1 & 1 & 4 \end{vmatrix}
\;\xrightarrow{\ \text{소거}\ }\;
3 \cdot 2 \cdot \tfrac{5}{6} \cdot \tfrac{1}{3}
\begin{vmatrix} 1 & \tfrac{2}{3} & \tfrac{1}{3} \\[2pt] 0 & 1 & \tfrac{1}{5} \\[2pt] 0 & 0 & \tfrac{54}{5} \end{vmatrix}
= \tfrac{5}{3}\cdot\tfrac{54}{5} = 18 3 2 1 2 3 1 1 1 4 소거 3 ⋅ 2 ⋅ 6 5 ⋅ 3 1 1 0 0 3 2 1 0 3 1 5 1 5 54 = 3 5 ⋅ 5 54 = 18
앞의 네 인수가 각 단계에서 행을 나눌 때 밖으로 뺀 상수들이다. 이 회계를 빠뜨리는 것이 손으로
행렬식을 구할 때 가장 흔한 실수다.
M i j M_{ij} M ij 를 i i i 행과 j j j 열을 지운 ( n − 1 ) (n-1) ( n − 1 ) 차 소행렬식, C i j = ( − 1 ) i + j M i j C_{ij} = (-1)^{i+j} M_{ij} C ij = ( − 1 ) i + j M ij 를 여인수라 하면
임의의 행 i i i 에 대해
det A = ∑ j = 1 n a i j C i j \det A = \sum_{j=1}^{n} a_{ij} C_{ij} det A = j = 1 ∑ n a ij C ij
이고, 어느 행이나 열로 전개해도 값이 같다. 부호 ( − 1 ) i + j (-1)^{i+j} ( − 1 ) i + j 가 체스판처럼 번갈아 붙는 것이
앞 절 ε \varepsilon ε 의 교대성이 남긴 흔적이다. 0이 많은 행이나 열을 골라 전개하면 항이 줄어드니,
손으로 계산할 때는 먼저 행 연산으로 0을 만들어 두고 전개한다.
여기서 한 걸음 더 나간 항등식이 이 장의 여러 결과를 한꺼번에 만들어 낸다. 위 전개에서
a i j a_{ij} a ij 자리에 다른 행 k k k 의 성분을 끼워 넣으면 어떻게 될까?
∑ j = 1 n a k j C i j = δ i k det A \sum_{j=1}^{n} a_{kj} C_{ij} = \delta_{ik}\,\det A j = 1 ∑ n a k j C ij = δ ik det A
k = i k = i k = i 이면 원래의 전개라 det A \det A det A 이고, k ≠ i k \ne i k = i 이면 i i i 행이 k k k 행으로 바뀐 행렬의 행렬식 을
전개한 꼴인데 그 행렬은 i i i 행과 k k k 행이 같으므로 0이다. 자기 것이 아닌 여인수와 짝지으면
0이 된다는 뜻에서 이것을 낯선 여인수 (alien cofactor) 관계라 부른다.
행렬식은 행과 열을 가리지 않으므로(det A T = det A \det A^{\mathsf{T}} = \det A det A T = det A ) 열 쪽에도 같은 식이 있다.
j j j 열의 여인수에 다른 열 k k k 의 성분을 짝지으면
∑ i = 1 n a i k C i j = δ j k det A \sum_{i=1}^{n} a_{ik}\, C_{ij} = \delta_{jk}\,\det A i = 1 ∑ n a ik C ij = δ j k det A
이고, 이유도 같다 — k ≠ j k \ne j k = j 이면 두 열이 같은 행렬의 행렬식이라 0이다.
직관
두 식이 세 가지를 동시에 준다.
행 쪽 식은 행렬 곱으로 A ( adj A ) = ( det A ) I A\,(\operatorname{adj} A) = (\det A)\,I A ( adj A ) = ( det A ) I , 열 쪽 식은
( adj A ) A = ( det A ) I (\operatorname{adj} A)\,A = (\det A)\,I ( adj A ) A = ( det A ) I 다.
양쪽에서 곱해도 같다는 것이 요점이다. 4절에서 adj A / det A \operatorname{adj}A/\det A adj A / det A 를 역행렬이라
부르려면 A A − 1 = I AA^{-1} = I A A − 1 = I 와 A − 1 A = I A^{-1}A = I A − 1 A = I 가 둘 다 필요한데, 행 쪽 식이 앞엣것을 열 쪽 식이
뒤엣것을 준다. 한쪽만으로는 “오른쪽 역행렬”까지밖에 말하지 못한다.
방정식 A x = b A\mathbf{x} = \mathbf{b} A x = b 의 i i i 번째 식에 C i k C_{ik} C ik 를 곱해 전부 더하면, 위 관계 때문에
x k x_k x k 의 계수만 det A \det A det A 로 살아남고 나머지는 전부 0이 된다. 그것이 아래 크래머 공식이다.
유도가 두 줄이다. x 1 det A x_1 \det A x 1 det A 에서 시작해 x 1 x_1 x 1 을 첫 열 안으로 밀어 넣고, 거기에 둘째 열의
x 2 x_2 x 2 배와 셋째 열의 x 3 x_3 x 3 배를 더한다(행렬식은 변하지 않는다). 그러면 첫 열이 통째로
A x = b A\mathbf{x} = \mathbf{b} A x = b 의 좌변이 되어 b \mathbf{b} b 로 바뀐다.
x 1 det A = ∣ a 11 x 1 a 12 a 13 a 21 x 1 a 22 a 23 a 31 x 1 a 32 a 33 ∣ = ∣ ∑ k a 1 k x k a 12 a 13 ∑ k a 2 k x k a 22 a 23 ∑ k a 3 k x k a 32 a 33 ∣ = ∣ b 1 a 12 a 13 b 2 a 22 a 23 b 3 a 32 a 33 ∣ x_1 \det A =
\begin{vmatrix} a_{11}x_1 & a_{12} & a_{13} \\ a_{21}x_1 & a_{22} & a_{23} \\ a_{31}x_1 & a_{32} & a_{33}\end{vmatrix}
=
\begin{vmatrix} \sum_k a_{1k}x_k & a_{12} & a_{13} \\ \sum_k a_{2k}x_k & a_{22} & a_{23} \\ \sum_k a_{3k}x_k & a_{32} & a_{33}\end{vmatrix}
=
\begin{vmatrix} b_1 & a_{12} & a_{13} \\ b_2 & a_{22} & a_{23} \\ b_3 & a_{32} & a_{33}\end{vmatrix} x 1 det A = a 11 x 1 a 21 x 1 a 31 x 1 a 12 a 22 a 32 a 13 a 23 a 33 = ∑ k a 1 k x k ∑ k a 2 k x k ∑ k a 3 k x k a 12 a 22 a 32 a 13 a 23 a 33 = b 1 b 2 b 3 a 12 a 22 a 32 a 13 a 23 a 33
따라서 det A ≠ 0 \det A \ne 0 det A = 0 일 때 유일한 해는
x j = det A j det A , j = 1 , … , n x_j = \frac{\det A_j}{\det A}, \qquad j = 1, \dots, n x j = det A det A j , j = 1 , … , n
이다. 해가 계수의 유리함수 로 명시적으로 쓰인다는 것이 이 공식의 값어치다. 계수를 문자로 둔 채
해가 어떻게 변하는지 논해야 할 때, 혹은 “해가 존재할 조건”을 대수적으로 따질 때 쓴다.
동차계(b = 0 \mathbf{b} = \mathbf{0} b = 0 )에서는 모든 A j A_j A j 가 0인 열을 가져 det A j = 0 \det A_j = 0 det A j = 0 이다. 그래서
det A ≠ 0 \det A \ne 0 det A = 0 이면 x = 0 \mathbf{x} = \mathbf{0} x = 0 뿐이고, 자명하지 않은 해가 있으려면
det A = 0 \det A = 0 det A = 0 이어야 한다. 이 한 줄이 1.3 고유값 방정식의 출발점이고, 3절과 4절에서 계수
언어로 다시 정리된다.
계산 도구로는 쓰지 않는다. n + 1 n+1 n + 1 개의 행렬식이 필요해서 가우스 소거보다 압도적으로 느리고,
det A \det A det A 가 0에 가까우면 수치적으로도 나쁘다.
직관
A x = b A\mathbf{x} = \mathbf{b} A x = b 는 두 가지로 읽힌다. 행 그림 은 각 방정식을 하나의 초평면으로 보고
해를 그 교집합으로 본다 — 고등학교에서 배운 그림이다. 열 그림 은 A A A 의 열벡터들을 몇 배씩
섞어서 b \mathbf{b} b 를 만드는 문제로 본다. 계산은 행 그림으로 하고, 이해는 열 그림으로 한다.
“해가 있는가”가 “b \mathbf{b} b 가 열들이 만드는 공간 안에 있는가”로 바뀌는 순간, 3절의 계수와
4절의 가역성이 전부 같은 질문의 다른 표현이었다는 것이 보인다.
그림 1.2-2. 같은 연립방정식의 두 그림. 행 그림에서 해는 두 직선의 교점이고, 열 그림에서 해는 두 열벡터를 몇 배씩 더해 b를 만드는 계수다. 미지수가 셋 이상이면 행 그림은 그릴 수 없게 되지만 열 그림은 개념적으로 그대로 살아 있다.직접 작도
n n n 개의 미지수를 가진 방정식 하나는 R n \mathbb{R}^n R n 의 초평면이고, m m m 개의 방정식은 m m m 개의
초평면이다. 해집합은 그 교집합이므로 점 하나이거나, 직선·평면 같은 아핀 부분공간이거나, 비어
있다. 해가 정확히 두 개 인 경우는 없다 — 이것이 선형계의 가장 중요한 구조적 사실이고,
3절에서 계수로 설명된다.
열 그림에서는 1절의 식
A x = x 1 a 1 + ⋯ + x n a n = b A\mathbf{x} = x_1 \mathbf{a}_1 + \cdots + x_n \mathbf{a}_n = \mathbf{b} A x = x 1 a 1 + ⋯ + x n a n = b
가 전부다. 해가 존재한다 ⟺ \iff ⟺ b \mathbf{b} b 가 열벡터들의 일차결합으로 표현된다 .
해가 유일하다 ⟺ \iff ⟺ 그 표현 방법이 하나뿐이다.
말을 미리 정해 둔다. 방정식이 미지수보다 많으면 과결정 (overdetermined), 같으면 결정 ,
적으면 부족결정 (underdetermined)이라 한다. 해가 하나라도 있으면 무모순 (consistent),
하나도 없으면 모순 (inconsistent)이다. 과결정이라고 해가 없는 것도, 부족결정이라고 해가 무한한
것도 아니다 — 개수는 힌트일 뿐이고 답은 계수가 준다(3절). 아래 회로 예제가 과결정인데도 해가
유일한 경우다.
계수와 우변을 붙여 쓴 첨가행렬 [ A ∣ b ] [A \mid \mathbf{b}] [ A ∣ b ] 위에서 작업한다. 허용되는 기본 행 연산은
셋이다.
두 행을 맞바꾼다.
한 행에 0이 아닌 상수를 곱한다.
한 행에 다른 행의 상수배를 더한다.
셋 다 역연산이 같은 종류의 행 연산이다. 그래서 “A A A 에서 B B B 로 행 연산으로 갈 수 있다”는 관계는
동치관계 다 — 자기 자신으로 갈 수 있고(반사), 되돌아올 수 있고(대칭), 이어 붙일 수 있다(추이).
이 관계로 이어진 두 계를 행 동치 라 하고, 행 동치인 계는 해집합이 같다.
주의
열 연산은 허용되지 않는다. 한 열에 다른 열의 상수배를 더하면 방정식 자체가 달라져 해가
바뀌고, 첨가열을 건드리면 우변이 뒤섞인다. 열을 맞바꾸는 것만은 미지수의 순서를 바꾸는 일이라
따로 기록해 두면 되살릴 수 있지만(아래 완전 피벗팅), 그 기록이 없으면 답을 잃는다. 첨가행렬
위에서 작업하다 보면 행과 열이 대칭으로 보여도, 해집합을 그냥 보존하는 쪽은 행뿐이다. (반면 행렬식 을 계산할 때는 열 연산도 쓸 수 있다 — 그때는 해집합이 아니라
값을 보존하면 되기 때문이다. 같은 표를 두고 무엇을 보존하려는지가 다르다.)
알고리즘은 두 단계다.
전진 소거 왼쪽 위부터 피벗을 골라, 그 아래 행들에서 해당 열을 0으로 만든다. 다음 행·다음
열로 내려가며 반복한다. 결과가 행 사다리꼴이다.
후진 대입 맨 아래 방정식부터 미지수를 하나씩 구해 위로 올라간다.
n × n n \times n n × n 계에서 전진 소거는 약 2 3 n 3 \tfrac{2}{3}n^3 3 2 n 3 번, 후진 대입은 약 n 2 n^2 n 2 번의 연산이 든다.
비용은 사실상 전부 소거에 있고 , 우변이 여러 개라면 소거를 한 번만 해 두고 우변마다 대입만
반복하면 된다. LU 분해가 바로 이 관찰을 자료구조로 굳힌 것이다(1.12).
I I I 에 행 연산을 한 번 적용해 얻은 행렬을 기본행렬 이라 한다. 4 × 4 4 \times 4 4 × 4 에서 2·3행 교환,
1행의 − 5 -5 − 5 배를 3행에 더하기, 4행에 8 곱하기는 각각 다음이다.
E 1 = [ 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 ] , E 2 = [ 1 0 0 0 0 1 0 0 − 5 0 1 0 0 0 0 1 ] , E 3 = [ 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 8 ] E_1 = \begin{bmatrix}1&0&0&0\\0&0&1&0\\0&1&0&0\\0&0&0&1\end{bmatrix},\quad
E_2 = \begin{bmatrix}1&0&0&0\\0&1&0&0\\-5&0&1&0\\0&0&0&1\end{bmatrix},\quad
E_3 = \begin{bmatrix}1&0&0&0\\0&1&0&0\\0&0&1&0\\0&0&0&8\end{bmatrix} E 1 = 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 , E 2 = 1 0 − 5 0 0 1 0 0 0 0 1 0 0 0 0 1 , E 3 = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 8
E A EA E A 가 그 연산을 마친 행렬이다. 세 종류 모두 det E ≠ 0 \det E \ne 0 det E = 0 이라 가역이고, 역행렬 역시 같은
종류의 기본행렬이다(E 1 − 1 = E 1 E_1^{-1} = E_1 E 1 − 1 = E 1 , E 2 E_2 E 2 는 + 5 +5 + 5 , E 3 E_3 E 3 는 1 / 8 1/8 1/8 ). 소거 전체는 가역행렬들을
왼쪽에 차례로 곱한 것 이므로
[ A ∣ b ] ⟶ [ E k ⋯ E 1 A ∣ E k ⋯ E 1 b ] [A \mid \mathbf{b}] \;\longrightarrow\; [E_k \cdots E_1 A \mid E_k \cdots E_1 \mathbf{b}] [ A ∣ b ] ⟶ [ E k ⋯ E 1 A ∣ E k ⋯ E 1 b ]
이고, M = E k ⋯ E 1 M = E_k\cdots E_1 M = E k ⋯ E 1 이 가역이라 A x = b A\mathbf{x} = \mathbf{b} A x = b 와 M A x = M b MA\mathbf{x} = M\mathbf{b} M A x = M b 의
해집합이 같다. 앞 절에서 “되돌릴 수 있으니 해가 보존된다”고 말한 것의 정확한 뜻이 이것이다.
4절의 가우스–조던은 여기서 M A = I MA = I M A = I 가 되도록 밀어붙이는 것이고, 그때 M = A − 1 M = A^{-1} M = A − 1 이다.
실무에서 기본행렬을 실제로 만들어 곱하지는 않는다 — 행을 직접 고치는 편이 훨씬 싸다. 이것은
증명과 알고리즘 설계를 위한 언어 다.
직관
소거가 끝난 행렬은 계단 모양 이다. 계단 아래는 전부 0이고, 계단이 꺾이는 자리마다 0이 아닌
피벗이 하나씩 있다. 이 계단 하나가 이후의 거의 모든 질문에 답한다 — 피벗의 개수는 계수(3절),
피벗이 없는 열은 자유 변수, 오른쪽 첨가열에만 피벗이 서면 모순이다. 모양이 곧 답이다.
그림 1.2-3. 행 사다리꼴이 된 첨가행렬. 계단선 아래는 전부 0이고, 꺾이는 자리의 피벗이 각각 하나의 주 변수를 결정한다. 피벗이 없는 열에 대응하는 미지수는 자유롭게 정할 수 있고, 자유 변수의 개수가 곧 해집합의 차원이다.직접 작도
행 사다리꼴의 조건은 두 줄이다. ① 0이 아닌 행들이 위쪽에 모여 있고, ② 아래 행의 첫 0이 아닌
성분은 위 행의 그것보다 오른쪽에 있다. 각 행에서 처음 나오는 0이 아닌 성분이 피벗 이다.
피벗을 1로 맞출 필요는 없다 — 이론적으로도 수치적으로도 이득이 없다.
여기서 한 걸음 더 나가 피벗을 1로 만들고 피벗이 있는 열의 위쪽까지 0으로 만들면
기약 행 사다리꼴 (RREF)이다. RREF는 유일하다 — 어떤 순서로 소거하든 같은 결과에
도달한다. 사다리꼴 자체는 유일하지 않으므로, “이 행렬의 표준형”을 말하려면 RREF여야 한다.
직관
답은 두 개의 계수를 비교하는 것 으로 끝난다. 계수행렬 A A A 의 피벗 개수와 첨가행렬
[ A ∣ b ] [A \mid \mathbf{b}] [ A ∣ b ] 의 피벗 개수를 비교한다. 첨가행렬 쪽이 하나 더 많다는 것은 소거 끝에
0 = ( 0 이 아닌 수 ) 0 = (0\text{이 아닌 수}) 0 = ( 0 이 아닌 수 ) 꼴의 행이 생겼다는 뜻이고, 그건 모순이다. 두 계수가 같으면 해가 있고,
그때 자유 변수의 개수가 해의 자유도 다.
m × n m \times n m × n 계 A x = b A\mathbf{x} = \mathbf{b} A x = b 에 대해 r = rank A r = \operatorname{rank} A r = rank A ,
r ~ = rank [ A ∣ b ] \tilde{r} = \operatorname{rank}[A \mid \mathbf{b}] r ~ = rank [ A ∣ b ] 라 하면
조건 해 r < r ~ r < \tilde{r} r < r ~ 해가 없다 (모순) r = r ~ = n r = \tilde{r} = n r = r ~ = n 해가 정확히 하나 r = r ~ < n r = \tilde{r} < n r = r ~ < n 해가 무한히 많다 — 자유도 n − r n - r n − r
동차계 A x = 0 A\mathbf{x} = \mathbf{0} A x = 0 에서는 b = 0 \mathbf{b} = \mathbf{0} b = 0 이라 항상 r = r ~ r = \tilde{r} r = r ~ 이고,
x = 0 \mathbf{x} = \mathbf{0} x = 0 이라는 자명한 해가 언제나 있다. 따라서 동차계의 질문은 “해가 있는가”가
아니라 **“자명하지 않은 해가 있는가”**이고, 답은 r < n r < n r < n 이다. 미지수보다 방정식이 적으면(m < n m < n m < n )
r ≤ m < n r \le m < n r ≤ m < n 이므로 자명하지 않은 해가 반드시 존재한다. 정사각(m = n m = n m = n )이면 r < n r < n r < n 이 곧
det A = 0 \det A = 0 det A = 0 이라, 1절 크래머 공식 끝의 결론과 같은 말이 된다.
비동차계의 일반해는
x = x p + x h \mathbf{x} = \mathbf{x}_p + \mathbf{x}_h x = x p + x h
로, 특수해 하나 + 동차해 전체 다. 미분방정식에서 같은 구조를 다시 만나게 된다(1.4). 선형성이
있는 곳에서는 언제나 이 모양이다.
일반해를 ”x = 3 + 2 z x = 3 + 2z x = 3 + 2 z , y = 4 − z y = 4 - z y = 4 − z , z z z 는 자유”처럼 적어 두면 모양이 보이지 않는다. 자유 변수를
매개변수로 놓고 벡터로 다시 쓰면 정체가 드러난다.
x = [ 3 + 2 t 4 − t t ] = [ 3 4 0 ] ⏟ x p + t [ 2 − 1 1 ] ⏟ ∈ N ( A ) \mathbf{x} = \begin{bmatrix} 3 + 2t \\ 4 - t \\ t \end{bmatrix}
= \underbrace{\begin{bmatrix} 3 \\ 4 \\ 0 \end{bmatrix}}_{\mathbf{x}_p}
+\; t \underbrace{\begin{bmatrix} 2 \\ -1 \\ 1 \end{bmatrix}}_{\in\, N(A)} x = 3 + 2 t 4 − t t = x p 3 4 0 + t ∈ N ( A ) 2 − 1 1
직선의 매개변수 방정식이다. 같은 계의 동차 버전 을 풀면 x = t ( 2 , − 1 , 1 ) T \mathbf{x} = t\,(2, -1, 1)^{\mathsf{T}} x = t ( 2 , − 1 , 1 ) T
가 나온다 — 원점을 지나는 같은 방향의 직선이다. 즉 비동차계의 해집합은 동차계의 해집합을
x p \mathbf{x}_p x p 만큼 평행이동한 것 이고, 그래서 원점을 지나지 않는다. 자유 변수가 둘이면
매개변수가 둘인 평면이 된다.
이 그림이 앞 문단의 x = x p + x h \mathbf{x} = \mathbf{x}_p + \mathbf{x}_h x = x p + x h 를 눈에 보이게 만든다. 해집합의
모양 (방향과 차원)은 A A A 가 정하고, 위치 만 b \mathbf{b} b 가 정한다.
말로만 하면 남는 것이 없으니 한 번 끝까지 돌려 본다. 회로의 노드 해석은 이 장의 방법이 곧바로
쓰이는 자리다. 키르히호프 법칙 — 마디에서 들어오는 전류의 합은 나가는 전류의 합과 같고(KCL),
닫힌 고리에서 전압 강하의 합은 기전력과 같다(KVL) — 을 마디 두 개와 고리 두 개에 적용하면
미지 전류 i 1 , i 2 , i 3 i_1, i_2, i_3 i 1 , i 2 , i 3 에 대한 네 개의 방정식이 나온다.
i 1 − i 2 + i 3 = 0 (마디 P) − i 1 + i 2 − i 3 = 0 (마디 Q) 10 i 2 + 25 i 3 = 90 (오른쪽 고리) 20 i 1 + 10 i 2 = 80 (왼쪽 고리) \begin{aligned}
i_1 - i_2 + i_3 &= 0 &&\text{(마디 P)}\\
-i_1 + i_2 - i_3 &= 0 &&\text{(마디 Q)}\\
10\,i_2 + 25\,i_3 &= 90 &&\text{(오른쪽 고리)}\\
20\,i_1 + 10\,i_2 &= 80 &&\text{(왼쪽 고리)}
\end{aligned} i 1 − i 2 + i 3 − i 1 + i 2 − i 3 10 i 2 + 25 i 3 20 i 1 + 10 i 2 = 0 = 0 = 90 = 80 ( 마디 P) ( 마디 Q) ( 오른쪽 고리 ) ( 왼쪽 고리 )
미지수 셋에 방정식 넷 — 과결정이다. 첨가행렬에 소거를 돌린다. 1행으로 1열을 정리하면
(2행에 1행을 더하고, 4행에서 1행의 20배를 뺀다)
[ 1 − 1 1 0 − 1 1 − 1 0 0 10 25 90 20 10 0 80 ] ⟶ [ 1 − 1 1 0 0 0 0 0 0 10 25 90 0 30 − 20 80 ] \left[\begin{array}{ccc|c}
1 & -1 & 1 & 0 \\
-1 & 1 & -1 & 0 \\
0 & 10 & 25 & 90 \\
20 & 10 & 0 & 80
\end{array}\right]
\longrightarrow
\left[\begin{array}{ccc|c}
1 & -1 & 1 & 0 \\
0 & 0 & 0 & 0 \\
0 & 10 & 25 & 90 \\
0 & 30 & -20 & 80
\end{array}\right] 1 − 1 0 20 − 1 1 10 10 1 − 1 25 0 0 0 90 80 ⟶ 1 0 0 0 − 1 0 10 30 1 0 25 − 20 0 0 90 80
2행이 통째로 사라졌다. 이것은 계산의 부작용이 아니라 물리적 사실의 발견 이다 — 마디 Q의 KCL은
마디 P의 KCL과 같은 말이었다. 전하가 어디서도 쌓이지 않으므로 마디 하나의 식은 나머지에 딸려
온다. 다음 피벗 자리가 0이므로 행을 올려 10 i 2 10\,i_2 10 i 2 를 피벗으로 삼고, 4행에서 그 3배를 뺀다.
⟶ [ 1 − 1 1 0 0 10 25 90 0 0 − 95 − 190 0 0 0 0 ] \longrightarrow
\left[\begin{array}{ccc|c}
1 & -1 & 1 & 0 \\
0 & 10 & 25 & 90 \\
0 & 0 & -95 & -190 \\
0 & 0 & 0 & 0
\end{array}\right] ⟶ 1 0 0 0 − 1 10 0 0 1 25 − 95 0 0 90 − 190 0
후진 대입: i 3 = 2 i_3 = 2 i 3 = 2 , 10 i 2 + 50 = 90 10 i_2 + 50 = 90 10 i 2 + 50 = 90 에서 i 2 = 4 i_2 = 4 i 2 = 4 , i 1 = i 2 − i 3 = 2 i_1 = i_2 - i_3 = 2 i 1 = i 2 − i 3 = 2 . 단위는 암페어다.
읽어 낼 것이 세 가지다. ① 피벗이 3개이므로 r = r ~ = 3 = n r = \tilde{r} = 3 = n r = r ~ = 3 = n — 방정식이 넷이어도 해는
유일하다. ② 0 = 0 0 = 0 0 = 0 행은 종속된 방정식이 있었다는 신호일 뿐이지만, 마지막 열에만 0이 아닌
수가 남은 행이 나왔다면 모순이다 — 회로를 잘못 세웠다는 뜻이고, 소거는 모델의 오류까지 잡아
준다. ③ 두 번째 단계에서 행을 바꾼 것처럼, 피벗 자리가 0이면 행 교환이 필수다. 다음 절에서
보듯 0에 가깝기만 해도 바꿔야 한다.
직관
종이 위에서는 피벗이 0이 아니기만 하면 되지만, 컴퓨터에서는 0에 가까운 피벗이 0보다 위험하다.
작은 수로 나누면 큰 수가 나오고, 그 큰 수를 다시 빼면 유효숫자가 통째로 날아간다. 그래서 실제
구현은 매 단계에서 그 열의 절댓값이 가장 큰 성분을 피벗으로 끌어올린다. 수학적으로는 아무 일도
하지 않은 행 교환 하나가, 수치적으로는 답이 되느냐 쓰레기가 되느냐를 가른다.
부분 피벗팅 은 각 단계에서 해당 열의 남은 성분 중 절댓값이 최대인 행을 피벗 행으로 교환하는
전략이다. 비용은 비교 몇 번뿐인데 수치 안정성은 크게 좋아진다 — 표준 라이브러리의 기본값이다.
열까지 바꾸는 완전 피벗팅은 미지수의 순서를 함께 추적해야 해서 거의 쓰지 않는다.
문제가 얼마나 “예민한지”는 조건수 로 잰다.
κ ( A ) = ∥ A ∥ ∥ A − 1 ∥ \kappa(A) = \lVert A \rVert \, \lVert A^{-1} \rVert κ ( A ) = ∥ A ∥ ∥ A − 1 ∥
여기서 ∥ ⋅ ∥ \lVert\cdot\rVert ∥ ⋅ ∥ 는 벡터 노름에서 유도된 행렬 노름 (연산자 노름)이다 —
∥ A ∥ = max x ≠ 0 ∥ A x ∥ / ∥ x ∥ \lVert A \rVert = \max_{\mathbf{x} \ne \mathbf{0}} \lVert A\mathbf{x}\rVert / \lVert \mathbf{x}\rVert ∥ A ∥ = max x = 0 ∥ A x ∥ / ∥ x ∥ ,
곧 A A A 가 벡터를 늘일 수 있는 최대 배율. 어느 벡터 노름을 쓰느냐에 따라 값이 달라지므로 조건수도
하나가 아니고, 따로 말하지 않으면 스펙트럼 노름 (2 2 2 -노름)을 뜻한다. 그때 κ 2 ( A ) \kappa_2(A) κ 2 ( A ) 는
가장 큰 특이값과 가장 작은 특이값의 비다(1.12). 어느 유도 노름에서든 ∥ I ∥ = 1 \lVert I \rVert = 1 ∥ I ∥ = 1 이라
κ ( A ) ≥ 1 \kappa(A) \ge 1 κ ( A ) ≥ 1 이고, 1에 가까울수록 순한 계다.
이 값이 크면 b \mathbf{b} b 의 작은 오차가 x \mathbf{x} x 의 큰 오차로 증폭된다. 대략 κ ≈ 10 k \kappa \approx 10^k κ ≈ 1 0 k
이면 유효숫자를 k k k 자리쯤 잃는다고 본다. 조건수가 큰 계는 알고리즘의 문제가 아니라 문제 자체의
성질 이고, 더 좋은 소거법으로 고칠 수 없다. 자세한 것은 1.12 수치해석에서 다룬다.
벡터 v 1 , … , v k \mathbf{v}_1, \dots, \mathbf{v}_k v 1 , … , v k 가 선형 독립 이라는 것은
c 1 v 1 + ⋯ + c k v k = 0 ⟹ c 1 = ⋯ = c k = 0 c_1 \mathbf{v}_1 + \cdots + c_k \mathbf{v}_k = \mathbf{0}
\;\Longrightarrow\;
c_1 = \cdots = c_k = 0 c 1 v 1 + ⋯ + c k v k = 0 ⟹ c 1 = ⋯ = c k = 0
이 성립한다는 뜻이다. 그렇지 않으면 선형 종속 이고, 이때 적어도 하나는 나머지의 조합으로
쓸 수 있다.
판정은 결국 동차계 풀기다. 벡터들을 열로 세운 행렬 V V V 에 대해 V c = 0 V\mathbf{c} = \mathbf{0} V c = 0 이
자명한 해만 갖는지 보면 되고, 2절의 결론에 따라 피벗이 열 개수만큼 서는지 가 기준이다.
k k k 개의 벡터가 R n \mathbb{R}^n R n 에 있을 때 k > n k > n k > n 이면 무조건 종속이다 — n n n 차원 공간에 독립인
방향이 n n n 개보다 많을 수 없다.
실제로 “이 벡터 묶음에서 독립인 것만 남기라”는 요구는 소거로 처리한다. 벡터들을 행 으로 세워
사다리꼴로 만들면, 남은 0이 아닌 행들이 원래 묶음과 같은 공간을 생성하는 독립 집합이다.
행 연산이 되돌릴 수 있는 조작이므로 거꾸로 돌려 원래 벡터를 전부 복원할 수 있고, 그래서 생성하는
공간이 같다.
주의
그렇게 얻은 행들은 원래 벡터들의 조합 이지 원래 벡터가 아니다. “원래 묶음에서 몇 개를 골라
기저를 만들라”는 요구라면 벡터를 열 로 세워 소거하고 피벗이 선 열의 원래 벡터 를 고른다.
일반적으로 행 연산은 행공간을 보존하지만 열공간은 바꾼다. [ 1 1 1 1 ] → [ 1 1 0 0 ] \begin{bmatrix}1&1\\1&1\end{bmatrix}
\to \begin{bmatrix}1&1\\0&0\end{bmatrix} [ 1 1 1 1 ] → [ 1 0 1 0 ] 에서 열공간이 ( 1 , 1 ) T (1,1)^{\mathsf{T}} ( 1 , 1 ) T 방향에서
( 1 , 0 ) T (1,0)^{\mathsf{T}} ( 1 , 0 ) T 방향으로 바뀐 것이 그 예다. 차원 은 양쪽 다 보존된다(그래서 계수를
사다리꼴에서 셀 수 있다). 바뀌는 것은 공간 자체다.
직관
계수는 사상이 짓눌러도 살아남는 차원의 수 다. A A A 를 R n \mathbb{R}^n R n 에서 R m \mathbb{R}^m R m 으로 가는
사상으로 보면, 상은 R m \mathbb{R}^m R m 안의 어떤 평평한 조각이고 그 조각의 차원이 rank A \operatorname{rank} A rank A
다. 계산으로는 “사다리꼴에서 피벗의 개수”라는 시시한 정의지만, 뜻은 이 행렬이 실제로 몇 차원어치
정보를 옮기는가 이다.
rank A \operatorname{rank} A rank A 는 A A A 의 열들 중 선형 독립인 것의 최대 개수로 정의한다. 행 연산은 열들
사이의 종속 관계를 바꾸지 않으므로, 계수는 행 사다리꼴의 피벗 개수 와 같다. 성질 몇 가지를
적어 둔다.
rank A ≤ min ( m , n ) \operatorname{rank} A \le \min(m, n) rank A ≤ min ( m , n ) . 등호가 성립하면 최대 계수 라 한다.
rank A = 0 ⟺ A = 0 \operatorname{rank} A = 0 \iff A = 0 rank A = 0 ⟺ A = 0 .
rank ( A B ) ≤ min ( rank A , rank B ) \operatorname{rank}(AB) \le \min(\operatorname{rank} A, \operatorname{rank} B) rank ( A B ) ≤ min ( rank A , rank B ) — 곱은 계수를
늘리지 못한다. 한 번 짓눌린 차원은 되살아나지 않는다.
rank ( A + B ) ≤ rank A + rank B \operatorname{rank}(A + B) \le \operatorname{rank} A + \operatorname{rank} B rank ( A + B ) ≤ rank A + rank B .
계수는 특이성의 정도 를 재는 양이기도 하다. n × n n \times n n × n 행렬에서 r = n r = n r = n 이면 가역,
r = n − 1 r = n-1 r = n − 1 이면 종속 관계가 하나, r = n − 2 r = n-2 r = n − 2 이면 둘 — 이런 식이다. “특이하다/아니다”라는 이분법을
눈금으로 바꾼 것이 계수다.
직관
독립인 열 의 최대 개수와 독립인 행 의 최대 개수가 항상 같다. 처음 보면 이상하다 —
3 × 100 3 \times 100 3 × 100 행렬에서 열은 100개, 행은 3개인데 둘이 같다니. 하지만 사다리꼴을 떠올리면 당장
납득된다. 계단은 하나뿐이다. 그 계단의 꺾이는 횟수를 세로로 세면 0이 아닌 행의 개수이고,
가로로 세면 피벗 열의 개수다. 같은 것을 두 방향에서 센 것이다.
rank A = rank A T \operatorname{rank} A = \operatorname{rank} A^{\mathsf{T}} rank A = rank A T
사다리꼴에 기대지 않는 증명도 짧다. 행계수가 r r r 이면 A A A 의 모든 행이 어떤 r r r 개의 행
v ( 1 ) , … , v ( r ) \mathbf{v}_{(1)},\dots,\mathbf{v}_{(r)} v ( 1 ) , … , v ( r ) 의 조합이다. 그 관계식
a ( i ) = ∑ s c i s v ( s ) \mathbf{a}_{(i)} = \sum_{s} c_{is}\mathbf{v}_{(s)} a ( i ) = ∑ s c i s v ( s ) 를 성분으로 풀어 열 방향으로 다시 묶으면 ,
A A A 의 각 열이 c c c 들로 만든 같은 r r r 개의 열벡터 의 조합이 된다. 그러므로 열계수는 r r r 을 넘지
못한다. 같은 논법을 A T A^{\mathsf{T}} A T 에 적용하면 반대 부등식이 나오고, 둘을 합치면 등호다.
이 정리 덕분에 “계수”를 행 쪽에서 정의하든 열 쪽에서 정의하든 같아지고, det A T = det A \det A^{\mathsf{T}} = \det A det A T = det A
와 함께 행과 열의 대칭성을 보장한다. 실질적으로는 긴 쪽이 아니라 짧은 쪽이 계수의 상한 이라는
사실을 준다. 그래서 정사각이 아닌 행렬은 행이든 열이든 한쪽이 반드시 종속이다.
계수를 소거 없이 행렬식으로 판정할 수도 있다. A A A 에서 몇 개의 행과 열을 지워 얻은 정사각 행렬을
부분행렬 이라 하면, rank A = r \operatorname{rank} A = r rank A = r 은 다음 두 조건이 함께 성립한다는 말과 같다.
0이 아닌 r × r r \times r r × r 부분행렬식이 하나라도 있다.
모든 ( r + 1 ) × ( r + 1 ) (r{+}1) \times (r{+}1) ( r + 1 ) × ( r + 1 ) 부분행렬식이 0이다.
근거는 간단하다 — 행 연산은 계수도 바꾸지 않고 “행렬식이 0이 아니다”라는 성질도 바꾸지
않으므로, 사다리꼴에서 왼쪽 위 r × r r \times r r × r 블록(삼각이고 대각성분이 전부 0이 아니다)을 보면
된다. 정사각 행렬에서는 r = n r = n r = n 이 곧 det A ≠ 0 \det A \ne 0 det A = 0 이라, 4절 가역성 목록의 한 줄이 된다.
직관
정의역의 모든 차원은 둘 중 하나로 간다. 눌려서 0이 되거나, 살아남아 상을 이루거나. 그러니
n = ( 눌린 차원 ) + ( 살아남은 차원 ) n = (\text{눌린 차원}) + (\text{살아남은 차원}) n = ( 눌린 차원 ) + ( 살아남은 차원 ) 은 당연하다. 이 당연함이 이 장에서 가장 많이
쓰이는 정리다 — 해집합의 크기, 가역성의 판정, 6절의 단사·전사 판정이 모두 이 한 식의 따름정리다.
그림 1.2-4. 계수–퇴화차수 정리. 정의역에서 핵에 해당하는 n−r 차원은 통째로 0으로 눌리고, 나머지 r 차원이 상과 일대일로 대응한다. 정의역의 차원은 두 조각의 합이므로 n = r + (n−r)이다.직접 작도
A x = 0 A\mathbf{x} = \mathbf{0} A x = 0 의 해집합을 영공간 N ( A ) N(A) N ( A ) , 그 차원을 퇴화차수
nullity A \operatorname{nullity} A nullity A 라 한다. 영공간이 실제로 부분공간이라는 것부터 확인해 두면
(A x 1 = A x 2 = 0 A\mathbf{x}_1 = A\mathbf{x}_2 = \mathbf{0} A x 1 = A x 2 = 0 이면
A ( c 1 x 1 + c 2 x 2 ) = 0 A(c_1\mathbf{x}_1 + c_2\mathbf{x}_2) = \mathbf{0} A ( c 1 x 1 + c 2 x 2 ) = 0 ) 차원을 말할 자격이 생긴다. 그리고
rank A + nullity A = n \operatorname{rank} A + \operatorname{nullity} A = n rank A + nullity A = n
이다(n n n 은 열의 개수 , 즉 정의역의 차원이다 — 행의 개수가 아니다. 자주 틀리는 자리다).
2절의 “자유 변수의 개수 = n − r n - r n − r “이 정확히 이 정리다. 자유 변수 하나가 영공간의 기저 벡터
하나에 대응한다 — 자유 변수 x r + j x_{r+j} x r + j 만 1로 놓고 나머지 자유 변수를 0으로 놓아 얻은 해가
j j j 번째 기저 벡터이고, 이렇게 만든 n − r n-r n − r 개는 자명하게 독립이다.
정사각 행렬 A A A (n × n n \times n n × n )에서는 따름정리가 특히 강하다.
rank A = n ⟺ N ( A ) = { 0 } ⟺ det A ≠ 0 ⟺ A − 1 가 존재 \operatorname{rank} A = n
\iff N(A) = \{\mathbf{0}\}
\iff \det A \ne 0
\iff A^{-1}\text{가 존재} rank A = n ⟺ N ( A ) = { 0 } ⟺ det A = 0 ⟺ A − 1 가 존재
정사각일 때만 “단사이면 전사”가 성립한다는 점을 기억할 것. 직사각 행렬에서는 둘이 완전히 다른
조건이다.
해가 존재하면 해집합은
{ x p + v : v ∈ N ( A ) } \{\, \mathbf{x}_p + \mathbf{v} \;:\; \mathbf{v} \in N(A) \,\} { x p + v : v ∈ N ( A ) }
이고 차원은 n − r n - r n − r 이다. r = n r = n r = n 이면 N ( A ) = { 0 } N(A) = \{\mathbf{0}\} N ( A ) = { 0 } 이라 해가 딱 하나, r < n r < n r < n 이면
n − r n-r n − r 차원의 평면 전체가 해다.
b \mathbf{b} b 쪽의 조건도 같은 언어로 정리된다. 해가 존재할 필요충분조건은 b \mathbf{b} b 가
A A A 의 열공간 C ( A ) C(A) C ( A ) 안에 있다는 것이고, rank [ A ∣ b ] = rank A \operatorname{rank}[A \mid \mathbf{b}] = \operatorname{rank} A rank [ A ∣ b ] = rank A
는 “b \mathbf{b} b 를 붙여도 열공간이 커지지 않았다”의 다른 표현일 뿐이다.
f 1 , … , f n f_1, \dots, f_n f 1 , … , f n 이 n − 1 n-1 n − 1 번 미분 가능할 때 브론스키안 을 다음으로 정의한다.
W ( x ) = ∣ f 1 f 2 ⋯ f n f 1 ′ f 2 ′ ⋯ f n ′ ⋮ ⋮ ⋮ f 1 ( n − 1 ) f 2 ( n − 1 ) ⋯ f n ( n − 1 ) ∣ W(x) = \begin{vmatrix}
f_1 & f_2 & \cdots & f_n \\
f_1' & f_2' & \cdots & f_n' \\
\vdots & \vdots & & \vdots \\
f_1^{(n-1)} & f_2^{(n-1)} & \cdots & f_n^{(n-1)}
\end{vmatrix} W ( x ) = f 1 f 1 ′ ⋮ f 1 ( n − 1 ) f 2 f 2 ′ ⋮ f 2 ( n − 1 ) ⋯ ⋯ ⋯ f n f n ′ ⋮ f n ( n − 1 )
W ≢ 0 W \not\equiv 0 W ≡ 0 이면 (즉 어느 한 점에서라도 0이 아니면) 그 함수들은 선형 독립 이다.
1 , x , sin x 1, x, \sin x 1 , x , sin x 를 넣어 보면 W = − sin x ≢ 0 W = -\sin x \not\equiv 0 W = − sin x ≡ 0 이라 독립이고, x , sin x , 2 x − 3 sin x x, \sin x, 2x - 3\sin x x , sin x , 2 x − 3 sin x 를
넣으면 세 번째 열이 앞 두 열의 조합이라 W ≡ 0 W \equiv 0 W ≡ 0 이다.
주의
역은 성립하지 않는다. “종속 ⇒ W ≡ 0 \Rightarrow W \equiv 0 ⇒ W ≡ 0 “은 참이지만 ”W ≡ 0 ⇒ W \equiv 0 \Rightarrow W ≡ 0 ⇒ 종속”은
거짓이다. 반례가 ( − 1 , 1 ) (-1, 1) ( − 1 , 1 ) 에서의 x 3 x^3 x 3 과 ∣ x 3 ∣ |x^3| ∣ x 3 ∣ 이다 — 두 구간에서 각각 비례하지만 부호가
달라 전체 구간에서는 독립인데, 브론스키안은 항등적으로 0이다.
그래서 브론스키안은 독립을 확인하는 도구 이지 종속을 확인하는 도구가 아니다. 다만 같은
선형 미분방정식의 해들에 대해서는 역도 성립한다 — 1.4에서 해의 기본계를 다룰 때 이 사실이
쓰인다.
정사각 행렬 A A A 에 대해
A A − 1 = A − 1 A = I AA^{-1} = A^{-1}A = I A A − 1 = A − 1 A = I
를 만족하는 A − 1 A^{-1} A − 1 이 존재하면 A A A 를 가역 (정칙)이라 하고, 없으면 특이 하다고 한다.
역행렬은 존재하면 유일하다. 만약 B B B 와 C C C 가 모두 역행렬이라면
B = B I = B ( A C ) = ( B A ) C = I C = C B = BI = B(AC) = (BA)C = IC = C B = B I = B ( A C ) = ( B A ) C = I C = C 이기 때문이다 — 결합법칙 한 줄로 끝난다.
정사각 행렬에서는 한쪽 역만 확인해도 충분하다. A B = I AB = I A B = I 이면 자동으로 B A = I BA = I B A = I 다. 이것은
계수–퇴화차수 정리의 따름정리이지 정의의 일부가 아니며, 직사각 행렬에서는 성립하지 않는다.
역행렬이 존재하지 않는 행렬이 실제로 있다는 것도 확인해 두자.
A = [ 1 1 0 0 ] A = \begin{bmatrix}1&1\\0&0\end{bmatrix} A = [ 1 0 1 0 ] , B = [ 1 0 − 1 0 ] B = \begin{bmatrix}1&0\\-1&0\end{bmatrix} B = [ 1 − 1 0 0 ] 이면
A B = O AB = O A B = O 이다. 만약 A − 1 A^{-1} A − 1 이 있다면 양변에 왼쪽부터 곱해 B = O B = O B = O 가 나와야 하는데 B ≠ O B \ne O B = O 다.
같은 논법을 오른쪽에서 B − 1 B^{-1} B − 1 로 하면 A = O A = O A = O 이 나온다. 그러므로 둘 다 특이하다.
곱과 전치에 대한 성질은 전치와 같은 모양이다.
( A B ) − 1 = B − 1 A − 1 , ( A T ) − 1 = ( A − 1 ) T ( A − 1 ) − 1 = A , det ( A − 1 ) = 1 det A \begin{gathered}
(AB)^{-1} = B^{-1}A^{-1}, \qquad (A^{\mathsf{T}})^{-1} = (A^{-1})^{\mathsf{T}} \\[4pt]
(A^{-1})^{-1} = A, \qquad \det(A^{-1}) = \frac{1}{\det A}
\end{gathered} ( A B ) − 1 = B − 1 A − 1 , ( A T ) − 1 = ( A − 1 ) T ( A − 1 ) − 1 = A , det ( A − 1 ) = det A 1
순서가 뒤집히는 것은 옷을 벗는 순서를 생각하면 된다. 겉옷을 나중에 입었으면 먼저 벗는다.
인수가 몇 개든 ( A B C D ) − 1 = D − 1 C − 1 B − 1 A − 1 (ABCD)^{-1} = D^{-1}C^{-1}B^{-1}A^{-1} ( A B C D ) − 1 = D − 1 C − 1 B − 1 A − 1 이다. 그리고 마지막 등식이
“det A = 0 \det A = 0 det A = 0 이면 역행렬이 없다”의 가장 짧은 증명이다 — det A ⋅ det ( A − 1 ) = det I = 1 \det A \cdot \det(A^{-1}) = \det I = 1 det A ⋅ det ( A − 1 ) = det I = 1
인데 왼쪽 인수가 0이면 등식이 성립할 수 없다.
n × n n \times n n × n 행렬 A A A 에 대해 다음은 모두 동치다.
A − 1 A^{-1} A − 1 이 존재한다.
det A ≠ 0 \det A \ne 0 det A = 0 .
rank A = n \operatorname{rank} A = n rank A = n (피벗이 n n n 개).
A A A 의 열들이 선형 독립이다. 행들도 마찬가지다.
A A A 의 열들이 R n \mathbb{R}^n R n 을 생성한다.
A x = 0 A\mathbf{x} = \mathbf{0} A x = 0 의 해가 x = 0 \mathbf{x} = \mathbf{0} x = 0 뿐이다 (N ( A ) = { 0 } N(A) = \{\mathbf{0}\} N ( A ) = { 0 } ).
모든 b \mathbf{b} b 에 대해 A x = b A\mathbf{x} = \mathbf{b} A x = b 가 유일한 해를 갖는다.
A A A 의 기약 행 사다리꼴이 I I I 다.
A A A 가 기본행렬들의 곱이다.
0이 A A A 의 고유값이 아니다. (1.3)
마지막 줄이 이 장과 1.3을 잇는 다리다. 고유값 λ \lambda λ 에 대한 조건 det ( A − λ I ) = 0 \det(A - \lambda I) = 0 det ( A − λ I ) = 0 은
“A − λ I A - \lambda I A − λ I 가 특이하다”이고, 그것이 곧 “( A − λ I ) x = 0 (A - \lambda I)\mathbf{x} = \mathbf{0} ( A − λ I ) x = 0 이 자명하지
않은 해를 갖는다”이다. 고유값 문제는 처음부터 끝까지 이 목록의 응용 이다.
직관
A A A 를 I I I 로 만드는 행 연산의 순서를 찾았다면, **같은 순서를 I I I 에 적용한 결과가 A − 1 A^{-1} A − 1 **이다.
행 연산 하나하나가 기본행렬을 왼쪽에 곱하는 일이므로, A A A 를 I I I 로 만드는 조작들의 곱이 곧
A − 1 A^{-1} A − 1 이기 때문이다. 두 행렬을 나란히 붙여 놓고 왼쪽이 I I I 가 될 때까지 밀면 오른쪽이 답이 되어
있다 — 별도의 공식이 필요 없다.
[ A ∣ I ] → 행 연산 [ I ∣ A − 1 ] [\,A \mid I\,] \;\xrightarrow{\;\text{행 연산}\;}\; [\,I \mid A^{-1}\,] [ A ∣ I ] 행 연산 [ I ∣ A − 1 ]
2절의 기본행렬 언어로 적으면 정확히 이렇다. M = E k ⋯ E 1 M = E_k\cdots E_1 M = E k ⋯ E 1 이 M A = I MA = I M A = I 를 만들었다면
같은 M M M 이 M I = M = A − 1 MI = M = A^{-1} M I = M = A − 1 을 만든다. 오른쪽 칸은 그 곱을 대신 기억해 주는 장부 다.
n n n 개의 우변 e 1 , … , e n \mathbf{e}_1, \dots, \mathbf{e}_n e 1 , … , e n 에 대해 A x j = e j A\mathbf{x}_j = \mathbf{e}_j A x j = e j 를 한꺼번에
푸는 것이라고 봐도 된다 — 그 해들을 열로 세운 것이 A − 1 A^{-1} A − 1 이다. 왼쪽을 I I I 로 만들지 못하고
0인 행이 생기면 A A A 는 특이하다. 계산 도중에 판정까지 함께 끝난다. 비용은 O ( n 3 ) O(n^3) O ( n 3 ) 으로
소거와 같은 차수다.
직관
1절의 낯선 여인수 관계 A ( adj A ) = ( adj A ) A = ( det A ) I A\,(\operatorname{adj}A) = (\operatorname{adj}A)\,A = (\det A)\,I A ( adj A ) = ( adj A ) A = ( det A ) I 를
det A \det A det A 로 나누면 그대로 역행렬 공식이다 — 양쪽에서 곱한 것이 둘 다 I I I 라서 곧바로 역행렬 이지
한쪽 역이 아니다. 이 공식의 가치는 역행렬의 각 성분이 원래 성분들의 다항식 비율로 명시된다 는 데 있다 —
계수를 문자로 둔 채 미분하거나 극한을 취해야 할 때 필요하다. 계산 도구로는 쓰지 않는다.
여인수 C i j C_{ij} C ij 로 이루어진 행렬의 전치를 수반행렬 adj A = [ C i j ] T \operatorname{adj} A = [C_{ij}]^{\mathsf{T}} adj A = [ C ij ] T
라 하면
A − 1 = 1 det A adj A 성분으로는 ( A − 1 ) i j = C j i det A = ( − 1 ) i + j M j i det A \begin{gathered}
A^{-1} = \frac{1}{\det A}\operatorname{adj} A \\[4pt]
\text{성분으로는}\quad
(A^{-1})_{ij} = \frac{C_{ji}}{\det A} = \frac{(-1)^{i+j}M_{ji}}{\det A}
\end{gathered} A − 1 = det A 1 adj A 성분으로는 ( A − 1 ) ij = det A C j i = det A ( − 1 ) i + j M j i
이다. 2 × 2 2 \times 2 2 × 2 에서는 외울 만하다.
[ a b c d ] − 1 = 1 a d − b c [ d − b − c a ] \begin{bmatrix} a & b \\ c & d \end{bmatrix}^{-1}
= \frac{1}{ad - bc}\begin{bmatrix} d & -b \\ -c & a \end{bmatrix} [ a c b d ] − 1 = a d − b c 1 [ d − c − b a ]
주의
인덱스가 뒤집힌다. A − 1 A^{-1} A − 1 의 ( i , j ) (i,j) ( i , j ) 자리에 오는 것은 C i j C_{ij} C ij 가 아니라 C j i C_{ji} C j i 다 —
전치를 취한다는 말이 그 뜻이다. 2 × 2 2\times2 2 × 2 에서 d d d 와 a a a 가 자리를 바꾸고 b b b , c c c 의 부호만
바뀌는 것도 이 전치 때문이다. 손으로 여인수를 늘어놓고 전치를 잊는 것이 이 공식의 표준적인
실수다.
계수를 문자로 둔 채 미분해야 하는 상황의 대표적인 결과 하나를 적어 둔다. A A A 의 성분이 어떤
변수 x x x 에 딸려 있으면, 라플라스 전개를 a i j a_{ij} a ij 로 편미분한 것이 C i j C_{ij} C ij 이므로
d ( det A ) d x = det A ∑ i , j ( A − 1 ) j i d a i j d x \frac{d(\det A)}{dx} = \det A \sum_{i,j} (A^{-1})_{ji}\,\frac{da_{ij}}{dx} d x d ( det A ) = det A i , j ∑ ( A − 1 ) j i d x d a ij
이다. 야코비안이 좌표에 따라 어떻게 변하는지, 뉴턴 반복에서 야코비 행렬식이 어떻게 움직이는지를
따질 때 나오는 식이고, 수반행렬 공식이 없으면 적을 수 없다.
주의
실무에서는 역행렬을 명시적으로 구하지 않는다. x = A − 1 b \mathbf{x} = A^{-1}\mathbf{b} x = A − 1 b 라고 쓰는 것은
수식 표기일 뿐이고, 실제로는 A x = b A\mathbf{x} = \mathbf{b} A x = b 를 소거로 푼다. 역행렬을 구해서 곱하면
연산량이 세 배쯤 늘고 반올림 오차도 더 쌓인다. 희소행렬이라면 더 나쁘다 — 대부분 0이던 행렬의
역행렬은 거의 항상 빽빽해서, 메모리에 올릴 수조차 없게 된다. 소자 시뮬레이션의 행렬이 정확히
이 경우다.
1절에서 A B = A C AB = AC A B = A C 인데 B ≠ C B \ne C B = C 일 수 있다고 경고했다. 이제 그 조건을 정확히 말할 수 있다.
n × n n \times n n × n 행렬에 대해
rank A = n \operatorname{rank} A = n rank A = n 이면 A B = A C ⇒ B = C AB = AC \Rightarrow B = C A B = A C ⇒ B = C . (A − 1 A^{-1} A − 1 을 왼쪽에서 곱하면 끝난다)
A B = O AB = O A B = O 인데 A ≠ O A \ne O A = O 이고 B ≠ O B \ne O B = O 이면, rank A < n \operatorname{rank} A < n rank A < n 이면서
rank B < n \operatorname{rank} B < n rank B < n 이다.
A A A 가 특이하면 A B AB A B 와 B A BA B A 도 특이하다.
두 번째 줄의 이유는 이렇다. A A A 가 특이하면 A x = 0 A\mathbf{x} = \mathbf{0} A x = 0 에 자명하지 않은 해가 있고,
그 해에 B B B 를 곱하면 B A x = 0 BA\mathbf{x} = \mathbf{0} B A x = 0 이므로 B A BA B A 도 특이하다. A B AB A B 쪽은 전치를 취해
( A B ) T = B T A T (AB)^{\mathsf{T}} = B^{\mathsf{T}}A^{\mathsf{T}} ( A B ) T = B T A T 에 같은 논법을 적용하면 된다.
직관
방정식이 미지수보다 많으면(m > n m > n m > n ) 대개 해가 없다. 계측 데이터를 모델에 맞추는 상황이 늘 그렇다.
이때 할 일은 포기가 아니라 “가장 덜 틀린 것”을 고르는 것 이다. 기하로 보면 답은 명확하다 —
b \mathbf{b} b 가 열공간 밖에 있으니, 열공간 위로 정사영 한 점을 대신 맞춘다. 오차 벡터가
열공간에 수직이 되도록 하는 것이 최선이라는 뜻이고, 그 수직 조건을 식으로 쓰면 정규방정식이 된다.
그림 1.2-5. 최소제곱의 기하. b가 A의 열공간 밖에 있으면 Ax = b는 해가 없다. 열공간 위의 점 중 b에 가장 가까운 것은 정사영이고, 그때 잔차 b − Ax̂ 가 열공간 전체와 수직이다. 이 수직 조건을 A의 열마다 적어 모은 것이 정규방정식이다.직접 작도
∥ A x − b ∥ \lVert A\mathbf{x} - \mathbf{b} \rVert ∥ A x − b ∥ 를 최소로 만드는 x ^ \hat{\mathbf{x}} x ^ 는, 잔차가 A A A 의 모든
열과 수직이라는 조건 A T ( b − A x ^ ) = 0 A^{\mathsf{T}}(\mathbf{b} - A\hat{\mathbf{x}}) = \mathbf{0} A T ( b − A x ^ ) = 0 을 만족한다.
정리하면 정규방정식 이다.
A T A x ^ = A T b A^{\mathsf{T}}A\,\hat{\mathbf{x}} = A^{\mathsf{T}}\mathbf{b} A T A x ^ = A T b
A A A 의 열이 독립이면 A T A A^{\mathsf{T}}A A T A 가 가역이라 해가 유일하고
x ^ = ( A T A ) − 1 A T b = A + b \hat{\mathbf{x}} = (A^{\mathsf{T}}A)^{-1}A^{\mathsf{T}}\mathbf{b} = A^{+}\mathbf{b} x ^ = ( A T A ) − 1 A T b = A + b
로 쓴다. 여기 붙은 열 독립 조건이 이 공식의 전제 다 — rank A = n \operatorname{rank} A = n rank A = n , 즉 열 기준
최대 계수여야 A T A A^{\mathsf{T}}A A T A 가 가역이다. A + A^{+} A + 가 유사역행렬 (무어–펜로즈)이고, 정사각
가역 행렬이면 A + = A − 1 A^{+} = A^{-1} A + = A − 1 이므로 역행렬 개념의 확장이 맞다. 그리고 P = A A + P = AA^{+} P = A A + 는 열공간
위로의 정사영 연산자 로, P 2 = P P^2 = P P 2 = P 이고 P T = P P^{\mathsf{T}} = P P T = P 다 — 두 번 사영해도 달라지지
않는다는 당연한 사실이 식으로는 이렇게 적힌다.
주의
( A T A ) − 1 A T (A^{\mathsf{T}}A)^{-1}A^{\mathsf{T}} ( A T A ) − 1 A T 는 열이 독립일 때만 쓸 수 있는 식이다.
rank A < n \operatorname{rank} A < n rank A < n 이면 A T A A^{\mathsf{T}}A A T A 가 특이해서 역행렬이 아예 없다. 열에 중복된
정보가 있다는 뜻이고, 그때는 정규방정식이 해를 하나로 좁히지 못한다 — 잔차를 똑같이 최소로 만드는
x ^ \hat{\mathbf{x}} x ^ 가 N ( A ) N(A) N ( A ) 방향으로 무한히 많다. 3절의 x p + x h \mathbf{x}_p + \mathbf{x}_h x p + x h 구조가
여기서도 그대로다.
유사역행렬 A + A^{+} A + 자체는 그런 행렬에도 있다. 무어–펜로즈 유사역행렬의 정의는 위 공식이 아니라
네 조건
A A + A = A , A + A A + = A + ( A A + ) T = A A + , ( A + A ) T = A + A \begin{gathered}
AA^{+}A = A, \qquad A^{+}AA^{+} = A^{+} \\[4pt]
(AA^{+})^{\mathsf{T}} = AA^{+}, \qquad (A^{+}A)^{\mathsf{T}} = A^{+}A
\end{gathered} A A + A = A , A + A A + = A + ( A A + ) T = A A + , ( A + A ) T = A + A 이고, 이것을 만족하는 A + A^{+} A + 는 어떤 크기·어떤 계수의 행렬에도 유일하게 존재한다 (복소
성분이면 전치 자리에 켤레전치가 들어간다). 계수가 부족할 때 A + b A^{+}\mathbf{b} A + b 는 무한히 많은
최소제곱해 중 노름이 가장 작은 것 을 골라 준다. 구하는 방법은 특이값 분해이고 1.12에서 다룬다.
위의 ( A T A ) − 1 A T (A^{\mathsf{T}}A)^{-1}A^{\mathsf{T}} ( A T A ) − 1 A T 는 열이 독립일 때 그 A + A^{+} A + 와 일치하는 특수한
경우의 식이다.
다만 A T A A^{\mathsf{T}}A A T A 는 조건수가 A A A 의 제곱 이 된다(스펙트럼 노름 기준). 그래서 실제 수치 계산은 정규방정식을
직접 풀지 않고 QR 분해나 특이값 분해로 우회한다(1.12). 통계적 의미는 1.11에서 다룬다.
직관
“벡터는 크기와 방향을 가진 양”이라는 정의는 여기서 버린다. 벡터의 본질은 화살표가 아니라
더할 수 있고 늘릴 수 있으며 그 결과가 여전히 같은 집합 안에 있다 는 것뿐이다. 이 조건만
남기고 나머지를 전부 지우면, 다항식도 함수도 행렬도 신호도 전부 벡터가 된다. 그리고 앞의 네 절에서
증명한 것들 — 독립, 기저, 차원, 계수 — 이 한 줄도 고치지 않고 그대로 이식된다. 추상화의
값어치가 바로 이 이식성이다.
집합 V V V 에 덧셈과 스칼라배가 정의되어 있고 다음이 성립하면 벡터공간 이다.
덧셈에 대해 닫혀 있고, 교환·결합법칙이 성립하며, 영벡터 0 \mathbf{0} 0 과 각 원소의 덧셈
역원 − v -\mathbf{v} − v 가 있다.
스칼라배에 대해 닫혀 있고, a ( b v ) = ( a b ) v a(b\mathbf{v}) = (ab)\mathbf{v} a ( b v ) = ( ab ) v , 1 v = v 1\mathbf{v} = \mathbf{v} 1 v = v ,
그리고 두 종류의 분배법칙 a ( u + v ) = a u + a v a(\mathbf{u}+\mathbf{v}) = a\mathbf{u}+a\mathbf{v} a ( u + v ) = a u + a v ,
( a + b ) v = a v + b v (a+b)\mathbf{v} = a\mathbf{v}+b\mathbf{v} ( a + b ) v = a v + b v 가 성립한다.
공리를 외울 필요는 없다. 요점은 닫힘 이다. 실제로 무언가가 벡터공간인지 확인할 때 어긋나는
것은 거의 항상 닫힘 조건이다.
예를 훑어 두면 감각이 잡힌다.
R n \mathbb{R}^n R n , C n \mathbb{C}^n C n — 원형.
m × n m \times n m × n 행렬 전체 — 1절에서 이미 확인했다. 차원은 m n mn mn 이고, 기저는 한 자리만 1이고
나머지가 0인 행렬 m n mn mn 개다.
차수가 n n n 이하인 다항식 전체 — 차원 n + 1 n+1 n + 1 , 기저 { 1 , x , … , x n } \{1, x, \dots, x^n\} { 1 , x , … , x n } .
구간 [ a , b ] [a,b] [ a , b ] 에서 연속인 함수 전체 — 무한 차원 이다. 여기가 푸리에 급수와 양자역학이 사는 곳이다.
{ e i x , e − i x , sin x , cos x , x sin x } \{e^{ix}, e^{-ix}, \sin x, \cos x, x\sin x\} { e i x , e − i x , sin x , cos x , x sin x } 의 일차결합 전체 — 앞의 넷은 서로 종속이라
차원이 3이다. 기저는 { sin x , cos x , x sin x } \{\sin x, \cos x, x\sin x\} { sin x , cos x , x sin x } 나 { e i x , e − i x , x sin x } \{e^{ix}, e^{-ix}, x\sin x\} { e i x , e − i x , x sin x } .
어떤 선형 미분방정식의 해 전체 — 해공간이 벡터공간이라는 사실이 1.4·1.6의 출발점이다.
위 예가 실제로 그런 해공간이다.
V V V 의 부분집합 W W W 가 덧셈과 스칼라배에 대해 닫혀 있으면 부분공간 이다(0 ∈ W \mathbf{0} \in W 0 ∈ W 는
자동으로 따라온다).
벡터들의 가능한 모든 일차결합의 집합을 생성 (span)이라 하고, 언제나 부분공간이다.
span \operatorname{span} span 이 V V V 전체이면서 선형 독립인 집합이 기저 이고, 기저의 원소 개수가
V V V 의 차원 이다. 기저를 어떻게 고르든 개수가 같다는 것은 3절의 “R n \mathbb{R}^n R n 에서 n + 1 n+1 n + 1 개는
반드시 종속”에서 나온다 — 원소가 더 많은 기저도, 더 적은 기저도 존재할 수 없다.
기저가 주는 것은 하나다.
v = c 1 b 1 + ⋯ + c n b n 의 계수 c i 가 유일하다 \mathbf{v} = c_1\mathbf{b}_1 + \cdots + c_n\mathbf{b}_n \quad\text{의 계수 } c_i \text{가 유일하다} v = c 1 b 1 + ⋯ + c n b n 의 계수 c i 가 유일하다
생성은 “적어도 하나의 표현이 있다”를 주고 독립은 “많아야 하나”를 주므로, 둘을 합치면 정확히
하나다.
3절에서 정의한 N ( A ) N(A) N ( A ) 와 C ( A ) C(A) C ( A ) 가 부분공간의 대표적인 예다. 계수–퇴화차수 정리는 이제
"dim C ( A ) + dim N ( A ) = n \dim C(A) + \dim N(A) = n dim C ( A ) + dim N ( A ) = n "으로 읽힌다.
주의
부분집합이라고 부분공간인 것은 아니다. 조건을 하나 붙여 잘라 낸 집합은 대개 닫힘이 깨진다.
차수 3 이하 다항식 중 f ( 1 ) = 1 f(1) = 1 f ( 1 ) = 1 인 것들을 모으면, 두 개를 더했을 때 f ( 1 ) = 2 f(1) = 2 f ( 1 ) = 2 가 되어 집합
밖으로 나간다 — 벡터공간이 아니다. 반면 f ( 1 ) = 0 f(1) = 0 f ( 1 ) = 0 인 것들을 모으면 닫혀 있고, 차원 3의
부분공간이 된다(기저: x − 1 x-1 x − 1 , x 2 − 1 x^2-1 x 2 − 1 , x 3 − 1 x^3-1 x 3 − 1 ).
가르는 기준은 언제나 하나다 — 조건이 동차인가. f ( 1 ) = 0 f(1) = 0 f ( 1 ) = 0 은 동차라서 부분공간이고,
f ( 1 ) = 1 f(1) = 1 f ( 1 ) = 1 은 아니라서 아니다. 2절에서 동차계의 해집합만 부분공간이고 비동차계의 해집합은
아핀 조각이었던 것과 정확히 같은 이유다.
직관
R 3 \mathbb{R}^3 R 3 의 벡터를 ( 1 , 2 , 3 ) (1, 2, 3) ( 1 , 2 , 3 ) 이라고 쓸 때 우리는 이미 표준기저를 몰래 골라 놓은 것 이다.
벡터 자체는 숫자 세 개가 아니다. 숫자는 기저를 정한 뒤에야 생긴다. 이 구분을 한 번 확실히 해
두면 6절의 닮음 변환이 어렵지 않다 — 대상은 그대로인데 좌표만 바꿔 적는 일 이기 때문이다.
기저 B = ( b 1 , … , b n ) \mathcal{B} = (\mathbf{b}_1, \dots, \mathbf{b}_n) B = ( b 1 , … , b n ) 을 고정하면 각 v ∈ V \mathbf{v} \in V v ∈ V 에
계수 벡터
[ v ] B = ( c 1 , … , c n ) T ∈ R n [\mathbf{v}]_{\mathcal{B}} = (c_1, \dots, c_n)^{\mathsf{T}} \in \mathbb{R}^n [ v ] B = ( c 1 , … , c n ) T ∈ R n
가 유일하게 대응한다. 이 대응은 덧셈과 스칼라배를 보존하는 일대일 대응, 즉 동형사상 이다.
따라서 n n n 차원 실벡터공간은 어느 것이나 R n \mathbb{R}^n R n 과 구조가 같다. 다항식이든 함수의
유한차원 부분공간이든, 기저만 정하면 앞 네 절의 행렬 계산을 그대로 쓸 수 있다는 뜻이다.
직관
지금까지의 벡터공간에는 길이도 각도도 없었다. 더하고 늘리는 것만 되는 헐거운 구조다. 내적은
거기에 자를 하나 얹는 장치이고, 기하적으로는 정사영 이다. ⟨ a , b ⟩ \langle \mathbf{a}, \mathbf{b}\rangle ⟨ a , b ⟩ 는
“b \mathbf{b} b 가 a \mathbf{a} a 방향으로 얼마나 뻗어 있는가”에 a \mathbf{a} a 의 길이를 곱한 값이다.
그래서 내적이 0이라는 것은 한쪽 방향으로 전혀 뻗지 않았다 — 수직이라는 뜻이 된다.
그림 1.2-6. 내적의 기하적 의미. b에서 a가 놓인 직선으로 수선을 내린 발이 정사영 p이고, 내적은 p의 부호 있는 길이에 |a|를 곱한 값이다. b를 a에 수직한 방향으로 아무리 움직여도 내적은 변하지 않는다.직접 작도
실벡터공간에서 내적 ⟨ ⋅ , ⋅ ⟩ \langle \cdot, \cdot \rangle ⟨ ⋅ , ⋅ ⟩ 은 다음을 만족하는 함수다.
대칭성 ⟨ u , v ⟩ = ⟨ v , u ⟩ \langle \mathbf{u}, \mathbf{v}\rangle = \langle \mathbf{v}, \mathbf{u}\rangle ⟨ u , v ⟩ = ⟨ v , u ⟩
선형성 각 인자에 대해 선형 (실수에서는 대칭성 때문에 양쪽이 같다)
양의 정부호성 ⟨ v , v ⟩ ≥ 0 \langle \mathbf{v}, \mathbf{v}\rangle \ge 0 ⟨ v , v ⟩ ≥ 0 이고, 등호는 v = 0 \mathbf{v} = \mathbf{0} v = 0 일 때만
R n \mathbb{R}^n R n 의 표준 내적은 ⟨ u , v ⟩ = u T v = ∑ i u i v i \langle \mathbf{u}, \mathbf{v}\rangle = \mathbf{u}^{\mathsf{T}}\mathbf{v} = \sum_i u_i v_i ⟨ u , v ⟩ = u T v = ∑ i u i v i
다. 복소공간에서는 성분마다 켤레를 하나 붙여
⟨ u , v ⟩ = u † v = ∑ i u ˉ i v i \langle \mathbf{u}, \mathbf{v}\rangle = \mathbf{u}^{\dagger}\mathbf{v} = \sum_i \bar{u}_i v_i ⟨ u , v ⟩ = u † v = ∑ i u ˉ i v i
로 정의한다. 그래야 ⟨ v , v ⟩ = ∑ ∣ v i ∣ 2 \langle \mathbf{v}, \mathbf{v}\rangle = \sum |v_i|^2 ⟨ v , v ⟩ = ∑ ∣ v i ∣ 2 이 실수이자 음이 아닌
값으로 남아 길이를 정의할 수 있다. 그러면 대칭성은 켤레 대칭성
⟨ u , v ⟩ = ⟨ v , u ⟩ ‾ \langle \mathbf{u}, \mathbf{v}\rangle = \overline{\langle \mathbf{v}, \mathbf{u}\rangle} ⟨ u , v ⟩ = ⟨ v , u ⟩ 로 바뀐다.
주의
복소 내적은 한쪽 인자에 대해서만 선형 이고, 그 한쪽이 어디인지가 책마다 다르다. 수학 쪽은
보통 첫 인자에 선형, 물리 쪽은 둘째 인자에 선형(첫 인자는 켤레선형)으로 잡는다. 디랙 표기
⟨ ψ ∣ ϕ ⟩ \langle \psi \mid \phi \rangle ⟨ ψ ∣ ϕ ⟩ 가 후자다. 이 백과는 물리 관례를 따른다 — 위의
u † v \mathbf{u}^{\dagger}\mathbf{v} u † v 에서 켤레가 앞쪽 u \mathbf{u} u 에 붙은 것이 그 뜻이고,
아래 함수공간 정의에서 켤레가 f f f 쪽에 붙는 것도 같은 이유다. 따라서
⟨ c u , v ⟩ = c ˉ ⟨ u , v ⟩ , ⟨ u , c v ⟩ = c ⟨ u , v ⟩ \langle c\,\mathbf{u}, \mathbf{v}\rangle = \bar{c}\,\langle \mathbf{u}, \mathbf{v}\rangle,
\qquad
\langle \mathbf{u}, c\,\mathbf{v}\rangle = c\,\langle \mathbf{u}, \mathbf{v}\rangle ⟨ c u , v ⟩ = c ˉ ⟨ u , v ⟩ , ⟨ u , c v ⟩ = c ⟨ u , v ⟩ 이다. 계수 공식에서 어느 쪽이 앞에 오는가 가 이 관례에 걸려 있으니(아래 정규직교기저 절),
다른 책의 식을 옮겨 올 때 켤레의 위치를 먼저 확인할 것.
내적에서 노름 이 유도된다.
∥ v ∥ = ⟨ v , v ⟩ \lVert \mathbf{v} \rVert = \sqrt{\langle \mathbf{v}, \mathbf{v}\rangle} ∥ v ∥ = ⟨ v , v ⟩
그리고 코시–슈바르츠 부등식 이 따라온다.
∣ ⟨ u , v ⟩ ∣ ≤ ∥ u ∥ ∥ v ∥ |\langle \mathbf{u},\mathbf{v}\rangle| \le \lVert\mathbf{u}\rVert\,\lVert\mathbf{v}\rVert ∣ ⟨ u , v ⟩ ∣ ≤ ∥ u ∥ ∥ v ∥
증명이 한 줄짜리 요령이다. v ≠ 0 \mathbf{v} \ne \mathbf{0} v = 0 일 때
λ = ⟨ v , u ⟩ / ⟨ v , v ⟩ \lambda = \langle \mathbf{v}, \mathbf{u}\rangle / \langle \mathbf{v}, \mathbf{v}\rangle λ = ⟨ v , u ⟩ / ⟨ v , v ⟩ 로 놓고
u \mathbf{u} u 에서 v \mathbf{v} v 성분을 뺀 것의 길이가 음이 아니라는 사실 만 쓴다.
0 ≤ ⟨ u − λ v , u − λ v ⟩ = ⟨ u , u ⟩ − ∣ ⟨ u , v ⟩ ∣ 2 ⟨ v , v ⟩ 0 \le \langle \mathbf{u} - \lambda\mathbf{v},\, \mathbf{u} - \lambda\mathbf{v}\rangle
= \langle \mathbf{u},\mathbf{u}\rangle - \frac{|\langle \mathbf{u},\mathbf{v}\rangle|^2}{\langle \mathbf{v},\mathbf{v}\rangle} 0 ≤ ⟨ u − λ v , u − λ v ⟩ = ⟨ u , u ⟩ − ⟨ v , v ⟩ ∣ ⟨ u , v ⟩ ∣ 2
정리하면 곧바로 부등식이다. 등호는 u = λ v \mathbf{u} = \lambda\mathbf{v} u = λ v 일 때, 즉 두 벡터가 평행할
때만 성립한다 — 성분을 빼고 나면 아무것도 남지 않는 경우 다. 기하로 읽으면 “정사영은 원래
벡터보다 길 수 없다”이고, 그림에서 ∣ cos θ ∣ ≤ 1 |\cos\theta| \le 1 ∣ cos θ ∣ ≤ 1 인 것과 같은 말이다.
이 부등식이 있어야 각도를
cos θ = ⟨ u , v ⟩ ∥ u ∥ ∥ v ∥ \cos\theta = \frac{\langle \mathbf{u}, \mathbf{v}\rangle}{\lVert\mathbf{u}\rVert\,\lVert\mathbf{v}\rVert} cos θ = ∥ u ∥ ∥ v ∥ ⟨ u , v ⟩
로 정의할 수 있다 — 우변의 절댓값이 1을 넘지 않는다는 보장이 곧 코시–슈바르츠이기 때문이다.
n n n 차원에서도, 함수공간에서도 “두 대상이 이루는 각”을 말할 수 있는 근거가 이것이다. 여기서
삼각부등식 ∥ u + v ∥ ≤ ∥ u ∥ + ∥ v ∥ \lVert \mathbf{u}+\mathbf{v}\rVert \le \lVert\mathbf{u}\rVert + \lVert\mathbf{v}\rVert ∥ u + v ∥ ≤ ∥ u ∥ + ∥ v ∥
도 따라온다.
내적에서 온 노름은 하나의 등식을 더 만족한다.
∥ u + v ∥ 2 + ∥ u − v ∥ 2 = 2 ( ∥ u ∥ 2 + ∥ v ∥ 2 ) \lVert \mathbf{u}+\mathbf{v}\rVert^2 + \lVert \mathbf{u}-\mathbf{v}\rVert^2
= 2\big(\lVert\mathbf{u}\rVert^2 + \lVert\mathbf{v}\rVert^2\big) ∥ u + v ∥ 2 + ∥ u − v ∥ 2 = 2 ( ∥ u ∥ 2 + ∥ v ∥ 2 )
평행사변형 등식 이다. 좌변의 두 항을 각각 전개하면 교차항이
+ 2 Re ⟨ u , v ⟩ +2\operatorname{Re}\langle \mathbf{u},\mathbf{v}\rangle + 2 Re ⟨ u , v ⟩ 와
− 2 Re ⟨ u , v ⟩ -2\operatorname{Re}\langle \mathbf{u},\mathbf{v}\rangle − 2 Re ⟨ u , v ⟩ 로 나와 서로 지워지고, 남는 것이
우변이다. 평행사변형의 두 대각선 제곱의 합이 네 변 제곱의 합과 같다는 초등 기하가
그대로 올라온 것이고, 뒤집어 말하면 이 등식을 만족하지 않는 노름은 어떤 내적에서도 나올 수
없다. 길이만 있고 각도는 없는 공간이 있다는 뜻이다.
직관
직교기저의 이점은 좌표를 구하려고 연립방정식을 풀 필요가 없다 는 것 하나로 요약된다. 일반적인
기저에서 좌표를 구하려면 B c = v B\mathbf{c} = \mathbf{v} B c = v 를 풀어야 하지만, 정규직교기저에서는
c i = ⟨ u i , v ⟩ c_i = \langle \mathbf{u}_i, \mathbf{v}\rangle c i = ⟨ u i , v ⟩ 로 내적 한 번 이면 끝난다. 다른 기저 벡터들이
그 방향에 아무 기여도 하지 않기 때문이다. 푸리에 계수 공식이 정확히 이 문장이고, 그래서 푸리에
급수는 마법이 아니라 직교기저에서의 좌표 읽기다.
⟨ u i , u j ⟩ = 0 ( i ≠ j ) \langle \mathbf{u}_i, \mathbf{u}_j\rangle = 0\;(i \ne j) ⟨ u i , u j ⟩ = 0 ( i = j ) 이면 직교집합 , 여기에
∥ u i ∥ = 1 \lVert \mathbf{u}_i \rVert = 1 ∥ u i ∥ = 1 까지 더하면 정규직교집합 이다. 크로네커 델타로 쓰면
⟨ u i , u j ⟩ = δ i j \langle \mathbf{u}_i, \mathbf{u}_j\rangle = \delta_{ij} ⟨ u i , u j ⟩ = δ ij 한 줄이다. 0이 아닌 벡터들의 직교집합은
자동으로 선형 독립이다 — 독립성을 따로 확인할 필요가 없다는 것도 큰 이점이다.
정규직교기저 { u 1 , … , u n } \{\mathbf{u}_1, \dots, \mathbf{u}_n\} { u 1 , … , u n } 에 대해 v = ∑ j c j u j \mathbf{v} = \sum_j c_j \mathbf{u}_j v = ∑ j c j u j 의
양변에 u i \mathbf{u}_i u i 를 앞에서 내적하면 j = i j = i j = i 항만 살아남아 c i c_i c i 가 그대로 나온다.
v = ∑ i = 1 n ⟨ u i , v ⟩ u i , ∥ v ∥ 2 = ∑ i = 1 n ∣ ⟨ u i , v ⟩ ∣ 2 \mathbf{v} = \sum_{i=1}^{n} \langle \mathbf{u}_i, \mathbf{v}\rangle\,\mathbf{u}_i,
\qquad
\lVert \mathbf{v}\rVert^2 = \sum_{i=1}^{n} |\langle \mathbf{u}_i, \mathbf{v}\rangle|^2 v = i = 1 ∑ n ⟨ u i , v ⟩ u i , ∥ v ∥ 2 = i = 1 ∑ n ∣ ⟨ u i , v ⟩ ∣ 2
뒤쪽이 파세발 등식 이고, 피타고라스 정리를 n n n 차원으로 늘린 것이다. 물리에서는
“각 모드가 가진 에너지의 합이 전체 에너지”로 읽힌다. 두 벡터의 내적도 좌표만으로 계산된다 —
v , w \mathbf{v}, \mathbf{w} v , w 의 좌표 벡터를 a , b \mathbf{a}, \mathbf{b} a , b 라 하면
⟨ v , w ⟩ = a † b \langle \mathbf{v}, \mathbf{w}\rangle = \mathbf{a}^{\dagger}\mathbf{b} ⟨ v , w ⟩ = a † b 이다.
주의
계수 공식에서 기저 벡터가 앞(켤레 쪽)에 온다. 물리 관례에서
⟨ v , u i ⟩ \langle \mathbf{v}, \mathbf{u}_i\rangle ⟨ v , u i ⟩ 은 c i c_i c i 가 아니라 c ˉ i \bar{c}_i c ˉ i 다. 실벡터공간에서는 둘이
같아서 티가 나지 않다가, 복소수로 넘어가는 순간 계수가 통째로 켤레로 뒤집힌다. 그람–슈미트에서
빼는 항도 같은 이유로 ⟨ u ^ i , a j ⟩ u ^ i \langle \hat{\mathbf{u}}_i, \mathbf{a}_j\rangle\,\hat{\mathbf{u}}_i ⟨ u ^ i , a j ⟩ u ^ i 이다.
기저가 직교이기만 하고 정규화되어 있지 않으면 나누기만 하나 붙는다.
c i = ⟨ u i , v ⟩ ⟨ u i , u i ⟩ c_i = \frac{\langle \mathbf{u}_i, \mathbf{v}\rangle}{\langle \mathbf{u}_i, \mathbf{u}_i\rangle} c i = ⟨ u i , u i ⟩ ⟨ u i , v ⟩
르장드르 다항식처럼 관례적 정규화가 1이 아닌 함수족에서 실제로 쓰는 형태가 이쪽이다.
열들이 정규직교기저를 이루는 정사각 행렬이 1절의 직교행렬 이다. Q T Q = I Q^{\mathsf{T}}Q = I Q T Q = I 이므로
Q − 1 = Q T Q^{-1} = Q^{\mathsf{T}} Q − 1 = Q T — 역행렬이 전치만으로 구해진다. 게다가
∥ Q x ∥ = ∥ x ∥ \lVert Q\mathbf{x}\rVert = \lVert \mathbf{x}\rVert ∥ Q x ∥ = ∥ x ∥ 이라 길이와 각도를 보존한다(6절).
수치적으로도 오차를 증폭하지 않아, 안정적인 알고리즘은 대개 직교행렬로 짜여 있다.
그림 1.2-7. 그람–슈미트의 한 단계. a2에서 a1 방향 정사영을 빼면 남는 성분 v2는 a1과 수직이다. 이것을 길이 1로 정규화하면 두 번째 정규직교 벡터가 된다.직접 작도
독립인 a 1 , … , a k \mathbf{a}_1, \dots, \mathbf{a}_k a 1 , … , a k 에서 시작해
v j = a j − ∑ i < j ⟨ u ^ i , a j ⟩ u ^ i , u ^ j = v j ∥ v j ∥ \mathbf{v}_j = \mathbf{a}_j - \sum_{i<j} \langle \hat{\mathbf{u}}_i, \mathbf{a}_j\rangle\,\hat{\mathbf{u}}_i,
\qquad
\hat{\mathbf{u}}_j = \frac{\mathbf{v}_j}{\lVert \mathbf{v}_j\rVert} v j = a j − i < j ∑ ⟨ u ^ i , a j ⟩ u ^ i , u ^ j = ∥ v j ∥ v j
를 차례로 계산한다. 결과는 원래 벡터들과 같은 공간을 생성하는 정규직교기저다. 부분합의
성질도 유지된다 — 처음 j j j 개가 생성하는 공간이 원래 처음 j j j 개가 생성하던 공간과 같다.
이 과정을 행렬로 적으면 A = Q R A = QR A = QR 이 되고(Q Q Q 는 정규직교 열, R R R 은 상삼각), 최소제곱과 고유값
알고리즘의 핵심 도구가 된다. 다만 위에 적은 고전적 형태는 수치적으로 불안정해서 실제 구현은
수정 그람–슈미트나 하우스홀더 반사를 쓴다(1.12).
직관
성분의 합을 적분으로 바꾸기만 하면 지금까지의 모든 것이 함수에 그대로 적용된다.
∑ i u ˉ i v i → ∫ w ( x ) f ( x ) ‾ g ( x ) d x \sum_i \bar{u}_i v_i \to \int w(x)\,\overline{f(x)}\,g(x)\,dx ∑ i u ˉ i v i → ∫ w ( x ) f ( x ) g ( x ) d x — 이 치환 하나가 전부다. 직교성,
정규화, 계수 공식, 파세발까지 문장 하나 고칠 필요가 없다. 급수 전개는 무한 차원 공간에서의
좌표 읽기 라는 관점이 1.5·1.6·1.10을 관통한다.
구간 [ a , b ] [a,b] [ a , b ] 의 함수들에 가중함수 w ( x ) ≥ 0 w(x) \ge 0 w ( x ) ≥ 0 으로
⟨ f , g ⟩ = ∫ a b w ( x ) f ( x ) ‾ g ( x ) d x \langle f, g\rangle = \int_a^b w(x)\,\overline{f(x)}\,g(x)\,dx ⟨ f , g ⟩ = ∫ a b w ( x ) f ( x ) g ( x ) d x
를 주면 내적공간이 된다. ⟨ f , f ⟩ > 0 \langle f, f\rangle > 0 ⟨ f , f ⟩ > 0 이 보장되려면 w w w 가 (고립된 점을 빼고) 양수여야
한다는 것이 가중함수에 붙는 유일한 조건이다. 이때 ⟨ f , g ⟩ = 0 \langle f, g\rangle = 0 ⟨ f , g ⟩ = 0 인 두 함수를
직교한다 고 말한다. [ − π , π ] [-\pi, \pi] [ − π , π ] 에서 { sin n x , cos n x } \{\sin nx, \cos nx\} { sin n x , cos n x } 가 직교집합이라는 사실이 푸리에
급수의 전부다.
그람–슈미트를 함수에 그대로 돌리면 고전 직교다항식이 나온다. 무엇이 나오는지는 구간과
가중함수가 정한다.
다항식 구간 가중함수 w ( x ) w(x) w ( x ) 르장드르 P n P_n P n [ − 1 , 1 ] [-1, 1] [ − 1 , 1 ] 1 1 1 체비쇼프 1종 T n T_n T n [ − 1 , 1 ] [-1, 1] [ − 1 , 1 ] ( 1 − x 2 ) − 1 / 2 (1-x^2)^{-1/2} ( 1 − x 2 ) − 1/2 체비쇼프 2종 U n U_n U n [ − 1 , 1 ] [-1, 1] [ − 1 , 1 ] ( 1 − x 2 ) 1 / 2 (1-x^2)^{1/2} ( 1 − x 2 ) 1/2 라게르 L n L_n L n [ 0 , ∞ ) [0, \infty) [ 0 , ∞ ) e − x e^{-x} e − x 에르미트 H n H_n H n ( − ∞ , ∞ ) (-\infty, \infty) ( − ∞ , ∞ ) e − x 2 e^{-x^2} e − x 2
1 , x , x 2 , … 1, x, x^2, \dots 1 , x , x 2 , … 에 앞 절의 공식을 적용하기만 하면 된다. 예컨대 [ − 1 , 1 ] [-1,1] [ − 1 , 1 ] 에 w = 1 w=1 w = 1 로 시작하면
u ^ 0 = 1 / 2 \hat{u}_0 = 1/\sqrt{2} u ^ 0 = 1/ 2 , u ^ 1 = x 3 / 2 \hat{u}_1 = x\sqrt{3/2} u ^ 1 = x 3/2 , 그다음이 x 2 − 1 3 x^2 - \tfrac13 x 2 − 3 1 의 정규화 —
5 / 8 ( 3 x 2 − 1 ) \sqrt{5/8}\,(3x^2-1) 5/8 ( 3 x 2 − 1 ) 로, 르장드르 다항식 P n P_n P n 의 정규화된 꼴이다. 이 다항식들이 1.5에서는
미분방정식의 해로, 1.6에서는 스투름–리우빌 문제의 고유함수로 다시 등장한다. 같은 대상을 세
방향에서 만나는 것 이고, 그중 가장 기계적인 통로가 여기다.
유한 차원과 다른 점이 하나 있다. 무한 차원에서는 기저가 정말로 공간 전체를 덮는지 — 완비성 을
따로 물어야 한다. f f f 를 정규직교집합 { ϕ n } \{\phi_n\} { ϕ n } 으로 전개하고 남는 오차의 길이가 음이 아니라는
사실만 쓰면 베셀 부등식 이 나온다.
∥ f ∥ 2 ≥ ∑ n ∣ ⟨ ϕ n , f ⟩ ∣ 2 \lVert f \rVert^2 \ge \sum_n |\langle \phi_n, f\rangle|^2 ∥ f ∥ 2 ≥ n ∑ ∣ ⟨ ϕ n , f ⟩ ∣ 2
부등호가 남아 있다는 것은 { ϕ n } \{\phi_n\} { ϕ n } 이 잡아내지 못한 성분이 있다 는 뜻이다. 등호가 모든
f f f 에 대해 성립할 때 그 집합을 완비라 하고, 그때 베셀 부등식이 앞 절의 파세발 등식이 된다.
파세발은 베셀의 등호 조건 이고, 완비성은 그 등호가 언제나 성립한다는 주장이다.
수렴의 뜻도 유한 차원보다 약하다. 여기서 요구하는 것은 오차의 노름 이 0으로 가는 것
(평균수렴)이지 모든 점에서 값이 맞아떨어지는 것(균등수렴)이 아니다. 그 덕분에 불연속점이 있는
함수도 연속함수의 급수로 전개할 수 있다 — 사각파의 푸리에 급수가 그 예이고, 불연속점에서 급수가
튀는 깁스 현상은 이 약한 수렴이 허용하는 대가다.
극한이 공간 안에 남는다는 보장까지 갖춘 내적공간이 힐베르트 공간 이고, 양자역학의 상태공간이
바로 그것이다. 어떤 함수족이 완비인가 — 즉 그 급수가 정말 원래 함수로 수렴하는가 — 는
스투름–리우빌 이론이 답한다(1.6).
직관
정규직교 전개 f = ∑ i ⟨ ϕ i , f ⟩ ϕ i f = \sum_i \langle \phi_i, f\rangle \phi_i f = ∑ i ⟨ ϕ i , f ⟩ ϕ i 를 자세히 보면, f f f 가 오른쪽 끝에
그대로 붙어 있고 나머지는 f f f 가 무엇이든 상관없는 부품 이다. 그 부품만 떼어 내면
“아무것도 하지 않는 연산자”의 한 표현이 된다. 이 사소해 보이는 재배열이 실제 계산에서 가장
많이 쓰이는 도구다 — 아무 자리에나 끼워 넣어도 값이 변하지 않으면서, 식을 원하는 기저로 갈라
놓기 때문이다.
디랙은 벡터를 켓 ∣ f ⟩ |f\rangle ∣ f ⟩ , 그 켤레를 브라 ⟨ f ∣ \langle f| ⟨ f ∣ 로 적고, 둘을 이어 붙인
⟨ f ∣ g ⟩ \langle f | g \rangle ⟨ f ∣ g ⟩ 을 내적으로 읽자고 제안했다. 이 표기로 전개식을 다시 쓰면
∣ f ⟩ = ∑ i ∣ ϕ i ⟩ ⟨ ϕ i ∣ f ⟩ = ( ∑ i ∣ ϕ i ⟩ ⟨ ϕ i ∣ ) ∣ f ⟩ |f\rangle = \sum_i |\phi_i\rangle\langle \phi_i | f\rangle
= \Big(\sum_i |\phi_i\rangle\langle \phi_i|\Big)|f\rangle ∣ f ⟩ = i ∑ ∣ ϕ i ⟩ ⟨ ϕ i ∣ f ⟩ = ( i ∑ ∣ ϕ i ⟩ ⟨ ϕ i ∣ ) ∣ f ⟩
이고, { ϕ i } \{\phi_i\} { ϕ i } 가 완비이면 괄호 안이 항등 연산자다.
I = ∑ i ∣ ϕ i ⟩ ⟨ ϕ i ∣ I = \sum_i |\phi_i\rangle\langle \phi_i| I = i ∑ ∣ ϕ i ⟩ ⟨ ϕ i ∣
항등원의 분해 다. ∣ ϕ i ⟩ ⟨ ϕ i ∣ |\phi_i\rangle\langle\phi_i| ∣ ϕ i ⟩ ⟨ ϕ i ∣ 하나하나는 ϕ i \phi_i ϕ i 방향으로의 정사영
연산자이고, 그것들을 전부 더하면 아무것도 하지 않는 연산자가 된다는 뜻이다 — 4절의
P = A A + P = AA^{+} P = A A + 가 부분공간 하나에 대해 하던 일의 완전한 버전이다.
이 표기의 값어치는 아무 데나 끼워 넣을 수 있다 는 데 있다. ⟨ f ∣ g ⟩ \langle f | g\rangle ⟨ f ∣ g ⟩ 사이에
끼우면 ∑ i ⟨ f ∣ ϕ i ⟩ ⟨ ϕ i ∣ g ⟩ \sum_i \langle f|\phi_i\rangle\langle\phi_i|g\rangle ∑ i ⟨ f ∣ ϕ i ⟩ ⟨ ϕ i ∣ g ⟩ 이 되어 좌표만으로 쓴 내적이 나오고,
연산자 양쪽에 끼우면 6절의 행렬 원소가 나온다. 같은 조작을 델타함수에 적용하면
δ ( x − t ) = ∑ n ϕ n ( t ) ‾ ϕ n ( x ) \delta(x - t) = \sum_n \overline{\phi_n(t)}\,\phi_n(x) δ ( x − t ) = n ∑ ϕ n ( t ) ϕ n ( x )
인 완비성 관계 가 되고, 이것이 1.8 그린 함수를 고유함수 전개로 만드는 출발점이다.
직관
선형 변환은 격자를 격자로 보내는 사상 이다. 변환 뒤에도 직선은 직선으로 남고, 평행하던 선은
평행한 채로 남으며, 등간격은 등간격으로 남고, 원점은 제자리에 있다. 이 네 가지가 눈에 보이는
‘선형’의 정체이고, 식으로 적으면 T ( a u + b v ) = a T ( u ) + b T ( v ) T(a\mathbf{u}+b\mathbf{v}) = aT(\mathbf{u})+bT(\mathbf{v}) T ( a u + b v ) = a T ( u ) + b T ( v )
한 줄이다. 먼저 섞고 변환하나, 변환하고 섞으나 같다 — 겹침이 보존된다는 말의 전부다.
그림 1.2-8. 선형 변환이 평면의 격자를 옮기는 모습. 정사각 격자가 평행사변형 격자가 되지만 직선성·평행성·등간격은 보존되고 원점은 움직이지 않는다. 격자 전체의 운명은 단위 정사각형 하나가 어디로 가는지로 완전히 결정된다.직접 작도
벡터공간 V V V 에서 W W W 로 가는 사상 T T T 가 모든 u , v \mathbf{u}, \mathbf{v} u , v 와 스칼라 a , b a, b a , b 에 대해
T ( a u + b v ) = a T ( u ) + b T ( v ) T(a\mathbf{u} + b\mathbf{v}) = a\,T(\mathbf{u}) + b\,T(\mathbf{v}) T ( a u + b v ) = a T ( u ) + b T ( v )
를 만족하면 선형 변환 이다. a = b = 0 a = b = 0 a = b = 0 을 넣으면 T ( 0 ) = 0 T(\mathbf{0}) = \mathbf{0} T ( 0 ) = 0 이 따라온다 —
원점이 반드시 고정된다.
예가 넓다는 것이 이 개념의 값어치다. 평면의 회전·반사·확대·전단, 어떤 부분공간 위로의 정사영,
다항식의 미분과 정적분, 수열의 시프트가 전부 선형 변환이다. 벡터 미적분의 미분 연산자
— 1.1.2 기울기·발산·회전 — 도, 적분 — 1.1.5 이중·삼중 적분 — 도 마찬가지이고, 그래서 전자기학의
방정식들이 겹침 원리를 따른다. 양자역학의 관측량이 선형 연산자인 것도 같은 구조다.
주의
평행이동은 선형이 아니다. T ( x ) = A x + c T(\mathbf{x}) = A\mathbf{x} + \mathbf{c} T ( x ) = A x + c (c ≠ 0 \mathbf{c} \ne \mathbf{0} c = 0 )
는 원점을 옮기므로 위 정의를 만족하지 않는다. 이런 사상은 아핀 변환 이라 부른다. 컴퓨터
그래픽스에서 좌표를 하나 늘려 ( x , 1 ) (\mathbf{x}, 1) ( x , 1 ) 로 쓰는 동차좌표 기법은, 아핀 변환을 한 차원 높은
공간에서의 선형 변환으로 바꿔 다루기 위한 장치다.
선형이 아닌 연산은 이 밖에도 흔하고, 오류의 상당수가 그것을 선형이라고 착각해서 생긴다.
제곱근, 로그, 제곱, 역수, 절댓값은 전부 선형이 아니다. 행렬을 받는 연산 중에서도 전치는
선형이지만 행렬식과 역행렬은 선형이 아니다 — det ( A + B ) ≠ det A + det B \det(A+B) \ne \det A + \det B det ( A + B ) = det A + det B 이고
( A + B ) − 1 ≠ A − 1 + B − 1 (A+B)^{-1} \ne A^{-1}+B^{-1} ( A + B ) − 1 = A − 1 + B − 1 이다. 반면 대각합은 선형이다(1절). 미분 d / d x d/dx d / d x 와 정적분은
선형이고, 이 사실 위에 1.4의 상수계수 미분방정식 이론이 통째로 얹혀 있다.
복소켤레는 미묘하다. A + B ‾ = A ˉ + B ˉ \overline{A+B} = \bar{A}+\bar{B} A + B = A ˉ + B ˉ 는 참이지만 c A ‾ = c ˉ A ˉ \overline{cA} = \bar{c}\bar{A} c A = c ˉ A ˉ 라
스칼라가 켤레로 나온다 — 켤레선형 이다. 5절 복소 내적의 첫 인자가 정확히 이 성질이다.
V V V 의 기저 B = ( b 1 , … , b n ) \mathcal{B} = (\mathbf{b}_1, \dots, \mathbf{b}_n) B = ( b 1 , … , b n ) 과 W W W 의 기저 C \mathcal{C} C 를
고정하면
A = [ [ T b 1 ] C ⋯ [ T b n ] C ] A = \begin{bmatrix} [T\mathbf{b}_1]_{\mathcal{C}} & \cdots & [T\mathbf{b}_n]_{\mathcal{C}} \end{bmatrix} A = [ [ T b 1 ] C ⋯ [ T b n ] C ]
가 T T T 의 행렬 표현이고, 모든 v \mathbf{v} v 에 대해
[ T v ] C = A [ v ] B [T\mathbf{v}]_{\mathcal{C}} = A\,[\mathbf{v}]_{\mathcal{B}} [ T v ] C = A [ v ] B 가 성립한다. 유한 차원에서 선형 변환과
행렬은 (기저를 고정하면) 일대일로 대응한다.
R n \mathbb{R}^n R n 에서 표준기저를 쓰면 A A A 의 j j j 번째 열은 그냥 T ( e j ) T(\mathbf{e}_j) T ( e j ) 다. 회전 변환의 행렬을
외우지 않아도 되는 이유가 이것이다 — e 1 \mathbf{e}_1 e 1 과 e 2 \mathbf{e}_2 e 2 가 각각 어디로 가는지만 그려
보면 열이 그대로 나온다.
R ( θ ) = [ cos θ − sin θ sin θ cos θ ] R(\theta) = \begin{bmatrix} \cos\theta & -\sin\theta \\ \sin\theta & \cos\theta \end{bmatrix} R ( θ ) = [ cos θ sin θ − sin θ cos θ ]
거꾸로 e j \mathbf{e}_j e j 는 열을 뽑아내는 도구이기도 하다. A e j A\mathbf{e}_j A e j 가 A A A 의 j j j 번째 열이고
e i T A \mathbf{e}_i^{\mathsf{T}}A e i T A 가 i i i 번째 행이며, e i T A e j = a i j \mathbf{e}_i^{\mathsf{T}}A\,\mathbf{e}_j = a_{ij} e i T A e j = a ij 다.
성분 하나를 “꺼내는” 이 표기가 다음 절의 출발점이다.
직관
행렬 표현은 유한 차원 이야기처럼 보이지만, 정규직교기저와 내적만 있으면 무한 차원에서도 그대로
쓸 수 있다. 5절의 계수 공식이 “벡터의 좌표 = 기저와의 내적”이었으니, 연산자의 좌표는
“기저와 기저 사이에 연산자를 끼운 내적”이다. 이렇게 얻은 수들을 행렬 원소 라 부르고,
양자역학의 계산은 사실상 전부 행렬 원소를 구하는 일이다.
정규직교기저 { ϕ μ } \{\phi_\mu\} { ϕ μ } 에서 연산자 A A A 의 행렬 원소는
a ν μ = ⟨ ϕ ν , A ϕ μ ⟩ = ⟨ ϕ ν ∣ A ∣ ϕ μ ⟩ a_{\nu\mu} = \langle \phi_\nu, A\phi_\mu\rangle = \langle \phi_\nu | A | \phi_\mu\rangle a ν μ = ⟨ ϕ ν , A ϕ μ ⟩ = ⟨ ϕ ν ∣ A ∣ ϕ μ ⟩
이다. 그러면 ψ = ∑ μ c μ ϕ μ \psi = \sum_\mu c_\mu \phi_\mu ψ = ∑ μ c μ ϕ μ 에 대해 A ψ A\psi A ψ 의 좌표가 정확히 행렬 곱으로 나온다.
A ψ = ∑ ν ( ∑ μ a ν μ c μ ) ϕ ν ⟺ b = A c A\psi = \sum_\nu \Big(\sum_\mu a_{\nu\mu}c_\mu\Big)\phi_\nu
\qquad\Longleftrightarrow\qquad
\mathbf{b} = A\,\mathbf{c} A ψ = ν ∑ ( μ ∑ a ν μ c μ ) ϕ ν ⟺ b = A c
디랙 표기로는 앞 절의 항등원 분해를 양쪽에 한 번씩 끼운 것이다.
A = I A I = ∑ ν μ ∣ ϕ ν ⟩ a ν μ ⟨ ϕ μ ∣ A = I\,A\,I = \sum_{\nu\mu} |\phi_\nu\rangle\,a_{\nu\mu}\,\langle\phi_\mu| A = I A I = ν μ ∑ ∣ ϕ ν ⟩ a ν μ ⟨ ϕ μ ∣
연산자는 행렬 원소의 모음으로 완전히 결정된다. 그래서 “무한 차원 연산자”라는 말이
“무한히 큰 행렬”과 같은 뜻이 되고, 실제 계산에서는 기저를 유한 개로 잘라 유한 행렬로 근사한다 —
양자역학 계산과 유한요소법이 공유하는 발상이다. 항등 연산자의 행렬 원소가
⟨ ϕ ν ∣ ϕ μ ⟩ = δ ν μ \langle\phi_\nu|\phi_\mu\rangle = \delta_{\nu\mu} ⟨ ϕ ν ∣ ϕ μ ⟩ = δ ν μ , 즉 단위행렬이라는 점도 확인해 두자.
직관
1절에서 전치를 “행과 열을 맞바꾸는 것”이라 정의하고, 언젠가 더 깊은 뜻을 준다고 미뤄 두었다.
그 뜻이 이것이다. 내적이 있으면 연산자를 오른쪽 인자에 적용하는 대신 왼쪽 인자에 적용해도
같은 값이 나오게 하는 짝 이 하나 정해진다. 그 짝이 수반 연산자이고, 좌표로 적으면 정확히
켤레전치 행렬이 된다. 전치는 배열을 뒤집는 조작이 아니라 내적을 사이에 두고 반대편으로
건너가는 방법 이었던 것이다.
A A A 의 수반 연산자 A † A^{\dagger} A † 는 모든 f , g f, g f , g 에 대해
⟨ f , A g ⟩ = ⟨ A † f , g ⟩ \langle f, A g\rangle = \langle A^{\dagger} f, g\rangle ⟨ f , A g ⟩ = ⟨ A † f , g ⟩
를 만족하는 연산자로 정의한다. 정규직교기저에서 양변의 행렬 원소를 비교하면
( A † ) ν μ = a μ ν ‾ (A^{\dagger})_{\nu\mu} = \overline{a_{\mu\nu}} ( A † ) ν μ = a μν
이다 — 인덱스를 뒤집고 켤레를 취하는 것 , 즉 1절의 켤레전치 행렬이다. 정의는 기저를 전혀
쓰지 않았는데 결과가 그 행렬로 떨어진다는 것이 요점이다. 그래서 1절의 이름들이 전부 연산자
언어로 올라간다 — A = A † A = A^{\dagger} A = A † 이면 에르미트(자체 수반) , A † = A − 1 A^{\dagger} = A^{-1} A † = A − 1 이면
유니터리 , 실수 유니터리이면 직교 다.
주의
수반은 연산자만의 성질이 아니라 내적과 정의역까지 함께 봐야 정해진다. 미분 연산자
A = − i d / d x A = -i\,d/dx A = − i d / d x 를 ( − ∞ , ∞ ) (-\infty,\infty) ( − ∞ , ∞ ) 의 제곱적분가능 함수에서 보면, 부분적분에서 나오는 경계항이
무한대에서 사라지므로 A † = A A^{\dagger} = A A † = A — 자체 수반이다. 그런데 같은 연산자를 [ − 1 , 1 ] [-1, 1] [ − 1 , 1 ] 로
잘라 놓으면 경계항이 남아 자체 수반이 아니게 된다.
⟨ f , − i d d x g ⟩ = [ − i f ˉ g ] − 1 1 + ⟨ − i d d x f , g ⟩ \langle f, -i\tfrac{d}{dx}g\rangle
= \Big[-i\,\bar{f}g\Big]_{-1}^{1} + \langle -i\tfrac{d}{dx}f,\, g\rangle ⟨ f , − i d x d g ⟩ = [ − i f ˉ g ] − 1 1 + ⟨ − i d x d f , g ⟩ 경계항이 사라지도록 정의역(경계조건)을 고르는 것이 자체 수반성의 절반 이라는 뜻이다. 이
관찰이 1.6 스투름–리우빌 이론의 출발점이고, 양자역학에서 운동량 연산자에 경계조건이 따라붙는
이유이며, 그 결과로 고유값이 실수이고 고유함수가 직교한다는 정리(1.3)가 성립하는 근거다.
유한 차원에서는 이런 미묘함이 없어 보이지만, 그때도 “내적이 무엇인가”에 따라 수반이 달라지는
것은 마찬가지다.
ker T = { v ∈ V : T v = 0 } , im T = { T v : v ∈ V } \ker T = \{\mathbf{v} \in V : T\mathbf{v} = \mathbf{0}\},
\qquad
\operatorname{im} T = \{T\mathbf{v} : \mathbf{v} \in V\} ker T = { v ∈ V : T v = 0 } , im T = { T v : v ∈ V }
둘 다 부분공간이다(ker T \ker T ker T 는 V V V 의, im T \operatorname{im} T im T 는 W W W 의). 그리고
T T T 가 단사 (T u = T v ⇒ u = v T\mathbf{u} = T\mathbf{v} \Rightarrow \mathbf{u} = \mathbf{v} T u = T v ⇒ u = v )
⟺ ker T = { 0 } \iff \ker T = \{\mathbf{0}\} ⟺ ker T = { 0 }
T T T 가 전사 ⟺ im T = W \iff \operatorname{im} T = W ⟺ im T = W
단사 판정이 “모든 쌍을 비교”에서 “핵이 0뿐인지”로 바뀌는 것이 선형성이 주는 절약이다. 차이
T u − T v = T ( u − v ) T\mathbf{u} - T\mathbf{v} = T(\mathbf{u}-\mathbf{v}) T u − T v = T ( u − v ) 가 핵의 원소인지만 보면 되기 때문이다.
dim V = dim W = n \dim V = \dim W = n dim V = dim W = n 인 유한 차원에서만 단사와 전사가 서로를 함의한다. 무한 차원에서는 성립하지
않는다 — 수열을 한 칸 미는 시프트 연산자는 단사이면서 전사가 아니다.
T : U → V T: U \to V T : U → V 의 행렬이 A A A , S : V → W S: V \to W S : V → W 의 행렬이 B B B 이면 S ∘ T S \circ T S ∘ T 의 행렬은 B A BA B A 다.
T T T 가 가역이면 그 역변환의 행렬은 A − 1 A^{-1} A − 1 이고, 4절의 동치 조건 목록이 그대로
“T T T 가 동형사상일 조건”이 된다. 수반에 대해서도 순서가 뒤집힌다 —
( S T ) † = T † S † (ST)^{\dagger} = T^{\dagger}S^{\dagger} ( S T ) † = T † S † 이고, 이유는 정의를 두 번 적용하는 것뿐이다.
그림 1.2-9. 직교 변환의 두 종류. 왼쪽 det = +1에서는 두 기저가 각도와 길이를 유지한 채 함께 돌아가, e1에서 e2로 가는 회전 방향이 변환 뒤에도 반시계 그대로다. 오른쪽 det = −1에서는 반사선 위의 벡터 r이 제자리에 있고 그에 수직인 n은 부호가 뒤집히며, Qe1에서 Qe2로 가는 방향이 시계 방향으로 바뀐다 — 이 방향의 역전이 손잡이가 뒤집혔다는 말의 뜻이다.직접 작도
길이 보존을 식으로 쓰면 모든 x \mathbf{x} x 에 대해
∥ Q x ∥ 2 = ( Q x ) T ( Q x ) = x T Q T Q x = x T x \lVert Q\mathbf{x}\rVert^2 = (Q\mathbf{x})^{\mathsf{T}}(Q\mathbf{x})
= \mathbf{x}^{\mathsf{T}}Q^{\mathsf{T}}Q\,\mathbf{x} = \mathbf{x}^{\mathsf{T}}\mathbf{x} ∥ Q x ∥ 2 = ( Q x ) T ( Q x ) = x T Q T Q x = x T x 이고,
이것이 모든 x \mathbf{x} x 에서 성립할 조건이 Q T Q = I Q^{\mathsf{T}}Q = I Q T Q = I 다. 여기에 행렬식을 취하면
det ( Q T Q ) = ( det Q ) 2 = 1 ⟹ det Q = ± 1 \det(Q^{\mathsf{T}}Q) = (\det Q)^2 = 1
\quad\Longrightarrow\quad
\det Q = \pm 1 det ( Q T Q ) = ( det Q ) 2 = 1 ⟹ det Q = ± 1
det Q = + 1 \det Q = +1 det Q = + 1 이면 회전 , − 1 -1 − 1 이면 반사가 섞인 변환 이다. 부피의 크기는 그대로이고 부호만
갈리는 것이니, 1절의 “행렬식은 부호 있는 부피 배율”이 그대로 읽힌다.
주어진 직교행렬이 무엇을 하는지는 움직이지 않는 방향을 찾아 알아낸다.
Q r = r Q\mathbf{r} = \mathbf{r} Q r = r 을 푼다 → 3차원에서 det Q = + 1 \det Q = +1 det Q = + 1 이면 회전축 이 나온다.
Q r = − r Q\mathbf{r} = -\mathbf{r} Q r = − r 을 푼다 → det Q = − 1 \det Q = -1 det Q = − 1 이면 반사면의 법선 이 나온다.
예를 하나 보자. Q = [ 0 0 1 − 1 0 0 0 − 1 0 ] Q = \begin{bmatrix} 0&0&1\\ -1&0&0\\ 0&-1&0\end{bmatrix} Q = 0 − 1 0 0 0 − 1 1 0 0 은 det Q = 1 \det Q = 1 det Q = 1 이라
회전이다. Q r = r Q\mathbf{r} = \mathbf{r} Q r = r 을 풀면 r ∥ ( 1 , − 1 , 1 ) \mathbf{r} \parallel (1,-1,1) r ∥ ( 1 , − 1 , 1 ) 이 나오고, Q Q Q 가
e 1 → − e 2 → e 3 → e 1 \mathbf{e}_1 \to -\mathbf{e}_2 \to \mathbf{e}_3 \to \mathbf{e}_1 e 1 → − e 2 → e 3 → e 1 로 축들을 돌리므로
Q 3 = I Q^3 = I Q 3 = I — 그 축에 대한 120 ∘ 120^\circ 12 0 ∘ 회전이다(부호는 축의 방향을 어느 쪽으로 잡느냐가 정한다). 고유값 문제를 정식으로 배우기 전에도 이 정도는
손으로 읽어 낼 수 있고, 사실 위 두 방정식이 이미 고유값 ± 1 \pm1 ± 1 에 대한 고유벡터 문제다(1.3).
주의
3차원에서 회전은 교환하지 않는다. 책을 하나 놓고 x x x 축으로 90 ∘ 90^\circ 9 0 ∘ 돌린 뒤 z z z 축으로
90 ∘ 90^\circ 9 0 ∘ 돌린 것과, 순서를 바꾼 것은 서로 다른 자세로 끝난다. 직접 해 보면 5초면 확인된다.
2차원에서 회전이 교환하는 것은 모든 회전이 같은 축(z z z )에 대한 회전이기 때문이지 회전의 성질이
아니다. 이 비가환성이 회전군 S O ( 3 ) SO(3) S O ( 3 ) 의 구조를 만들고, 각운동량 연산자들이 교환하지 않는 이유가
된다(1.13).
직관
x ′ = M x \mathbf{x}' = M\mathbf{x} x ′ = M x 라는 같은 식이 두 가지 전혀 다른 상황을 뜻할 수 있다. 축을 고정하고
벡터를 옮겼거나 , 벡터를 고정하고 축을 옮겼거나. 앞엣것을 능동, 뒤엣것을 수동 변환이라
한다. 물리량이 실제로 변한 것인지, 우리가 보는 눈금이 바뀐 것인지는 완전히 다른 이야기인데
수식은 똑같이 생겼다. 어느 쪽인지는 언제나 문맥이 정하고, 두 행렬은 서로 역이다.
그림 1.2-10. 같은 식의 두 해석. 왼쪽은 능동 변환 — 축은 그대로 두고 벡터를 θ만큼 돌린다. 오른쪽은 수동 변환 — 벡터는 그대로 두고 축을 θ만큼 돌려 성분을 다시 읽는다. 벡터를 +θ 돌리는 것과 축을 +θ 돌리는 것은 성분에 대해 서로 반대로 작용하므로 두 행렬은 서로 역이자 전치다.직접 작도
2차원에서 두 행렬을 나란히 적으면 차이가 한눈에 보인다.
[ X Y ] = [ cos θ − sin θ sin θ cos θ ] [ x y ] ⏟ 능동 — 벡터가 돈다 [ x ′ y ′ ] = [ cos θ sin θ − sin θ cos θ ] [ x y ] ⏟ 수동 — 축이 돈다 \underbrace{\begin{bmatrix} X \\ Y\end{bmatrix}
= \begin{bmatrix} \cos\theta & -\sin\theta \\ \sin\theta & \cos\theta\end{bmatrix}
\begin{bmatrix} x \\ y\end{bmatrix}}_{\text{능동 — 벡터가 돈다}}
\qquad
\underbrace{\begin{bmatrix} x' \\ y'\end{bmatrix}
= \begin{bmatrix} \cos\theta & \sin\theta \\ -\sin\theta & \cos\theta\end{bmatrix}
\begin{bmatrix} x \\ y\end{bmatrix}}_{\text{수동 — 축이 돈다}} 능동 — 벡터가 돈다 [ X Y ] = [ cos θ sin θ − sin θ cos θ ] [ x y ] 수동 — 축이 돈다 [ x ′ y ′ ] = [ cos θ − sin θ sin θ cos θ ] [ x y ]
두 행렬은 서로 전치이자 역행렬이고, 각각 R ( θ ) R(\theta) R ( θ ) 와 R ( − θ ) R(-\theta) R ( − θ ) 다. 축을 반시계로 돌리면
벡터의 성분은 시계 방향으로 도는 것처럼 보인다 — 기차 안에서 창밖 풍경이 반대로 흐르는 것과
같은 일이다.
수동 변환은 기저 변환 의 다른 이름이고, 그래서 다음 절로 곧바로 이어진다. 그리고
1.1.1 스칼라장과 벡터장 에서 “벡터란 좌표축을 회전시켰을 때 성분이 위치벡터와 같은 규칙으로 변하는
양”이라고 정의했던 것이 바로 수동 변환 쪽 이야기다 — 텐서의 정의(1.13)가 통째로 이 관점 위에
세워진다.
직관
대상은 그대로인데 좌표만 바꾸면 행렬이 달라진다. 같은 회전을 다른 기저로 적으면 다른 숫자
배열이 나오지만 회전 자체는 변하지 않았다. 그러면 자연히 다음 질문이 나온다 — 좌표를 잘 고르면
행렬을 얼마나 단순하게 만들 수 있는가? 이 질문이 1.3 전체이고, 그 답이 대각화다. 그리고 좌표를
바꿔도 변하지 않는 양들(행렬식, 대각합, 계수, 고유값)이 사상의 진짜 성질 이다.
그림 1.2-11. 닮음 변환의 교환 도식. 아래 경로(B로 한 번에)와 위 경로(P로 좌표를 바꾸고, A를 적용하고, 다시 되돌리기)의 결과가 같다. 그래서 B = P⁻¹AP이고, 이때 A와 B는 닮았다고 한다.직접 작도
두 기저 B \mathcal{B} B , C \mathcal{C} C 사이의 기저 변환 행렬 P P P 를
[ v ] B = P [ v ] C [\mathbf{v}]_{\mathcal{B}} = P\,[\mathbf{v}]_{\mathcal{C}} [ v ] B = P [ v ] C 로 정의한다(P P P 의 열은 C \mathcal{C} C 의
기저 벡터들을 B \mathcal{B} B 좌표로 적은 것이다). 같은 선형 변환의 두 행렬 표현 사이에는
B = P − 1 A P B = P^{-1} A P B = P − 1 A P
가 성립하고, 이 관계에 있는 두 행렬을 닮았다 고 한다. 닮음은 동치관계이고 다음 양들을
보존한다.
det B = det A , tr B = tr A , rank B = rank A det ( B − λ I ) = det ( A − λ I ) \begin{gathered}
\det B = \det A, \qquad \operatorname{tr} B = \operatorname{tr} A, \qquad
\operatorname{rank} B = \operatorname{rank} A \\[4pt]
\det(B - \lambda I) = \det(A - \lambda I)
\end{gathered} det B = det A , tr B = tr A , rank B = rank A det ( B − λ I ) = det ( A − λ I )
증명이 전부 1절의 성질 한 줄씩이다. 행렬식은 곱의 성질로
det ( P − 1 A P ) = det ( P ) − 1 det ( A ) det ( P ) = det A \det(P^{-1}AP) = \det(P)^{-1}\det(A)\det(P) = \det A det ( P − 1 A P ) = det ( P ) − 1 det ( A ) det ( P ) = det A 이고, 대각합은 순환 성질로
tr ( P − 1 A P ) = tr ( A P P − 1 ) = tr A \operatorname{tr}(P^{-1}AP) = \operatorname{tr}(APP^{-1}) = \operatorname{tr}A tr ( P − 1 A P ) = tr ( A P P − 1 ) = tr A 이며, 계수는
가역행렬을 곱해도 변하지 않는다는 사실에서 나온다. 마지막 것이 특성다항식 이고 따라서
고유값도 보존된다. 좌표를 어떻게 고르든 살아남는 이 양들이 행렬이 아니라 사상의 성질이라는 뜻이다.
기저가 정규직교이고 P P P 가 유니터리이면 P − 1 = P † P^{-1} = P^{\dagger} P − 1 = P † 이라 닮음이
B = P † A P B = P^{\dagger}AP B = P † A P 가 된다. 이때는 수반 관계도 함께 보존되어, 에르미트 행렬은 에르미트로,
유니터리는 유니터리로 남는다. 1.3이 “유니터리 닮음으로 대각화한다”를 목표로 삼는 이유가
이것이다 — 정규직교기저 사이를 옮겨 다니면 구조가 하나도 깨지지 않는다.
여기까지가 좌표를 고정한 채 할 수 있는 이야기다. 남은 질문은 하나다 — 어떤 좌표를 고르면 A A A 가
가장 단순해지는가. 만약 P − 1 A P P^{-1}AP P − 1 A P 가 대각행렬이 되도록 P P P 를 고를 수 있다면, 그 좌표에서
사상은 축마다 늘이거나 줄이는 일밖에 하지 않는다. 거듭제곱도, 지수함수도, 연립 미분방정식도
그 좌표에서는 스칼라 문제로 흩어진다. 그런 P P P 의 열이 무엇이어야 하는지, 언제 그런 P P P 가
존재하는지, 존재하지 않으면 어디까지 갈 수 있는지가 1.3 행렬 고유값 문제다.