콘텐츠로 이동

1부 수학 기초 1.2

선형대수

선형대수는 겹침을 다루는 수학이다. 입력을 두 배로 넣으면 출력도 두 배가 되고, 두 입력을 함께 넣으면 각각의 출력을 더한 것이 나오는 계 — 그런 계만 골라내 끝까지 밀어붙인 것이 이 장이다.

자연이 선형이어서가 아니다. 대부분의 물리는 비선형이고, 우리는 그것을 어떤 동작점 근처에서 선형으로 근사해서 푼다. 그래서 선형대수는 근사의 언어이자, 그 근사를 컴퓨터에 넘길 때의 표준 형식이다.

이 장에서 행렬은 두 얼굴로 나온다.

  • 연립방정식의 계수표 — 1절부터 4절. 미지수가 nn개인 일차 연립방정식을 어떻게 풀고, 언제 풀리며, 답이 몇 개인지.
  • 선형 사상의 좌표 표현 — 5절과 6절. 벡터공간 사이의 사상을 기저를 하나 골라 숫자로 적으면 행렬이 된다.

같은 것을 두 번 설명하는 게 아니다. 첫 번째 얼굴은 계산을 주고, 두 번째 얼굴은 이유를 준다. 1.3 행렬 고유값 문제는 이 둘이 만나는 자리다 — 사상을 가장 단순하게 보이도록 만드는 좌표를 찾는 문제이면서, 동시에 어떤 연립방정식이 자명하지 않은 해를 갖는 조건이다.

이 장이 뒤에서 어디로 흘러가는지만 미리 적어 둔다. 소자 시뮬레이션은 포아송 방정식과 캐리어 연속 방정식을 격자 위에서 이산화해 수십만 차원의 희소 선형계로 바꾼 뒤 반복해 푸는 일이고, 양자역학의 관측량은 에르미트 행렬이며, 결정 안의 밴드 구조는 주기 퍼텐셜에 대한 고유값 문제다. 회로의 노드 해석도, 계측 데이터의 최소제곱 피팅도 결국 Ax=bA\mathbf{x} = \mathbf{b}다.

m×nm \times n 행렬은 mm개의 행과 nn개의 열로 배열된 수들이다. (i,j)(i, j) 성분을 aija_{ij}로 쓰고, 행렬 전체를 A=[aij]A = [a_{ij}]로 줄여 쓴다.

A=[a11a12a1na21a22a2nam1am2amn]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}

첨자 순서는 행이 먼저, 열이 나중이다. 사소해 보이지만 이 규약을 놓치면 전치와 곱셈이 전부 어긋난다. m=nm = n이면 정사각 행렬, n×1n \times 1 행렬은 열벡터, 1×n1 \times n 행렬은 행벡터다. 이 백과에서 벡터는 따로 말하지 않는 한 열벡터이고 v\mathbf{v}처럼 굵게 쓴다.

일차 연립방정식

a11x1+a12x2++a1nxn=b1    am1x1+am2x2++amnxn=bm\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}

Ax=bA \mathbf{x} = \mathbf{b} 한 줄이 된다. 미지수 이름 x1,,xnx_1, \dots, x_n이 사라진 것에 주목할 것 — 방정식의 정보는 전부 계수 배열에 들어 있었고, 이름은 자리를 표시하는 역할만 했다.

이 장은 인덱스가 많다. 성분의 자리를 가리키는 것, 크기를 가리키는 것, 소행렬식과 여인수에 붙는 것이 뒤섞이고, 게다가 대소문자만 다른 짝이 여럿이라 눈으로는 구분되지 않는다. 한 번에 정리해 두고 시작한다.

기호읽는 법무엇을 가리키는가
A, B, MA,\ B,\ M대문자 로만행렬 전체. 크기는 m×nm \times n (mm = 행 수, nn = 열 수)
aija_{ij}에이 아이 제이AAiijj성분 하나
x, b\mathbf{x},\ \mathbf{b}굵은 소문자열벡터. 성분은 x1,,xnx_1, \dots, x_n
aj\mathbf{a}_jAAjj번째 열벡터
i, j, k, li,\ j,\ k,\ l성분의 자리(행 번호·열 번호)를 세는 인덱스
m, n, pm,\ n,\ p크기. rr은 계수(rank)로만 쓴다
δij\delta_{ij}크로네커 델타i=ji = j면 1, 아니면 0
εijk\varepsilon_{ijk\ldots}레비–치비타 기호짝치환 +1+1, 홀치환 1-1, 중복이 있으면 0
MijM_{ij}소행렬식 (minor)ii행과 jj열을 지운 (n1)(n-1)행렬식
CijC_{ij}여인수 (cofactor)(1)i+jMij(-1)^{i+j} M_{ij}
ATA^{\mathsf{T}}에이 전치(AT)ij=aji(A^{\mathsf{T}})_{ij} = a_{ji}
Aˉ\bar{A}에이 켤레성분마다 복소켤레를 취한 것
AA^{\dagger}에이 대거켤레전치 AˉT\bar{A}^{\mathsf{T}}
adjA\operatorname{adj} A수반행렬여인수 행렬의 전치 [Cij]T[C_{ij}]^{\mathsf{T}}
trA\operatorname{tr} A대각합 (trace)iaii\sum_i a_{ii}
detA\det A행렬식정사각 행렬에 딸린 수 하나
v\lVert \mathbf{v} \rVert노름벡터의 길이

크기가 같은 두 행렬에 대해 [aij]+[bij]=[aij+bij][a_{ij}] + [b_{ij}] = [a_{ij} + b_{ij}], c[aij]=[caij]c[a_{ij}] = [c\,a_{ij}]로 정의한다. 이 두 연산에 대해 m×nm \times n 행렬 전체는 5절에서 정의할 벡터공간의 공리를 그대로 만족한다 — 행렬 자체가 벡터인 셈이다.

전치 ATA^{\mathsf{T}}(i,j)(i,j) 성분이 ajia_{ji}n×mn \times m 행렬이다. 성질 셋만 외워 두면 된다.

(AT)T=A,(A+B)T=AT+BT,(AB)T=BTAT(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}}

세 번째에서 순서가 뒤집히는 것이 요점이다. 합성의 순서를 뒤집는 연산이라는 신호이고, 역행렬에서도 같은 모양 (AB)1=B1A1(AB)^{-1} = B^{-1}A^{-1}이 나온다. 인수가 몇 개든 마찬가지다.

(ABCD)T=DTCTBTAT(ABCD)^{\mathsf{T}} = D^{\mathsf{T}}C^{\mathsf{T}}B^{\mathsf{T}}A^{\mathsf{T}}

AAm×pm \times p, BBp×np \times n일 때 곱 C=ABC = ABm×nm \times n이고

cij=k=1paikbkjc_{ij} = \sum_{k=1}^{p} a_{ik} b_{kj}

이다. AA의 열 개수와 BB의 행 개수가 같아야 곱이 정의된다. 합성으로 읽으면 당연하다 — BB가 뱉은 벡터의 차원이 AA가 받는 벡터의 차원과 맞아야 한다. 이 조건이 맞는 두 행렬을 곱할 수 있다(conformable)고 한다.

곱을 열 단위로 보는 습관을 들이면 이후가 편해진다. BB의 열을 b1,,bn\mathbf{b}_1, \dots, \mathbf{b}_n 이라 하면

AB=[Ab1Ab2Abn]AB = \begin{bmatrix} A\mathbf{b}_1 & A\mathbf{b}_2 & \cdots & A\mathbf{b}_n \end{bmatrix}

이다. 실제 수치 라이브러리(LAPACK 등)가 곱을 열 단위로 나눠 여러 코어에 뿌리는 근거가 이 항등식이다. 특히 AxA\mathbf{x}AA의 열들을 x\mathbf{x}의 성분만큼 섞은 것이다.

Ax=x1a1+x2a2++xnanA\mathbf{x} = x_1 \mathbf{a}_1 + x_2 \mathbf{a}_2 + \cdots + x_n \mathbf{a}_n

2절의 ‘열 그림’이 이 식이고, 3절의 계수와 4절의 가역성이 전부 이 식의 따름정리다.

곱은 결합적(A(BC)=(AB)CA(BC) = (AB)C)이고 덧셈에 분배적이다. 결합법칙은 합성의 결합법칙이므로 증명 없이도 납득된다.

인덱스 표기 — 크로네커 델타와 세 가지 확인

섹션 제목: “인덱스 표기 — 크로네커 델타와 세 가지 확인”

증명을 성분으로 내려가서 하는 습관을 여기서 들여 둔다. 곱의 정의를 다시 적으면 (AB)ij=kaikbkj(AB)_{ij} = \sum_k a_{ik}b_{kj}이고, 합의 인덱스 kk가 두 인수 사이에서 이웃해 있다는 것이 읽는 요령이다. kbkjaik\sum_k b_{kj}a_{ik}처럼 순서가 뒤바뀌어 나와도 곱셈은 스칼라 곱이라 자리를 옮길 수 있으니, kk가 이웃하도록 다시 적어 ABAB인지 BABA인지 판별한다.

크로네커 델타 δij\delta_{ij}로 단위행렬을 I=[δij]I = [\delta_{ij}]라 쓰면 IA=AIA = A가 한 줄이다.

(IA)ij=kδikakj=aij(IA)_{ij} = \sum_k \delta_{ik} a_{kj} = a_{ij}

δik\delta_{ik}k=ik = i일 때만 살아남아 합이 한 항으로 무너진다. 델타는 이렇게 합을 골라내는 장치이고, 이 쓰임은 이후 계속 나온다.

같은 방식으로 결합법칙과 전치 규칙이 확인된다.

[A(BC)]ij=kaik(lbklclj)=k,laikbklclj=[(AB)C]ij[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} [(AB)T]ij=(AB)ji=kajkbki=k(BT)ik(AT)kj=(BTAT)ij[(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}

두 번째 줄에서 순서가 뒤집히는 이유가 눈에 보인다 — 전치가 두 인덱스를 각각 뒤집으니, kk를 다시 이웃하게 만들려면 인수의 순서를 바꾸는 수밖에 없다.

정사각 행렬의 대각합은 주대각 성분의 합이다.

trA=i=1naii\operatorname{tr} A = \sum_{i=1}^{n} a_{ii}

tr(A+B)=trA+trB\operatorname{tr}(A+B) = \operatorname{tr}A + \operatorname{tr}Btr(cA)=ctrA\operatorname{tr}(cA) = c\operatorname{tr}A는 자명하다 — 대각합은 선형 연산이다 (행렬식은 그렇지 않다). 중요한 것은 순서에 대한 성질이다.

tr(AB)=ijaijbji=jibjiaij=tr(BA)\operatorname{tr}(AB) = \sum_i \sum_j a_{ij}b_{ji} = \sum_j \sum_i b_{ji}a_{ij} = \operatorname{tr}(BA)

ABBAAB \ne BA여도 성립한다. 셋 이상이면 ABC=A(BC)ABC = A(BC)로 묶어 같은 논법을 반복해

tr(ABC)=tr(BCA)=tr(CAB)\operatorname{tr}(ABC) = \operatorname{tr}(BCA) = \operatorname{tr}(CAB)

를 얻는다. 순환 순서만 허용된다는 점에 주의할 것 — tr(ACB)\operatorname{tr}(ACB)는 일반적으로 다르다.

교환자는 두 행렬이 순서를 얼마나 신경 쓰는지를 재는 양이다.

[A,B]=ABBA[A, B] = AB - BA

[A,B]=[B,A][A,B] = -[B,A], [A,B+C]=[A,B]+[A,C][A, B+C] = [A,B] + [A,C]이고, 위 결과에서 tr[A,B]=0\operatorname{tr}[A,B] = 0이 곧바로 나온다.

모양으로 정의되는 것들이 먼저다.

  • 대각행렬 iji \ne j이면 aij=0a_{ij} = 0. 곱과 거듭제곱이 성분별로 계산되고, 대각행렬끼리는 언제나 교환한다. 성분이 전부 0이 아니면 가역이고 역행렬도 대각행렬이다(1/aii1/a_{ii}).
  • 스칼라행렬 대각성분이 전부 같은 cc인 대각행렬. SA=AS=cASA = AS = cA라서 스칼라를 곱한 것과 구별되지 않는다.
  • 단위행렬 II 대각성분이 전부 1인 스칼라행렬. AI=IA=AAI = IA = A.
  • 상·하 삼각행렬 대각선 한쪽이 전부 0. 행렬식이 대각성분의 곱이고, 연립방정식이 대입만으로 풀린다(2절). 삼각행렬의 역행렬도 삼각행렬이다.
  • 영행렬 OO 모든 성분이 0. A+O=AA + O = A, OA=AO=OOA = AO = O.

전치·켤레와 역행렬의 관계로 정의되는 것들이 그다음이고, 여기가 1.3의 무대다. 실수 성분에서 전치가 하던 역할을 복소 성분에서는 켤레전치 A=AˉTA^{\dagger} = \bar{A}^{\mathsf{T}}가 맡는다.

이름조건실/복소
대칭 (symmetric)A=ATA = A^{\mathsf{T}}
반대칭 (skew-symmetric)A=ATA = -A^{\mathsf{T}} — 대각성분이 전부 0
직교 (orthogonal)A1=ATA^{-1} = A^{\mathsf{T}}, 즉 ATA=IA^{\mathsf{T}}A = I
에르미트 (Hermitian)A=AA = A^{\dagger}복소
반에르미트 (anti-Hermitian)A=AA = -A^{\dagger}복소
유니터리 (unitary)A1=AA^{-1} = A^{\dagger}, 즉 AA=IA^{\dagger}A = I복소
정규 (normal)AA=AAAA^{\dagger} = A^{\dagger}A복소

오른쪽 세 줄이 왼쪽 세 줄의 복소 확장이다 — 실수 에르미트 행렬은 곧 대칭행렬이고, 실수 유니터리 행렬은 곧 직교행렬이다. 에르미트 조건 aˉji=aij\bar{a}_{ji} = a_{ij}는 대각성분이 실수여야 한다는 뜻을 포함하고, 그래서 관측량의 기댓값이 실수로 나온다.

정규행렬은 자기 자신의 켤레전치와 교환하는 행렬이다. 위 표의 나머지 여섯 종류가 전부 정규 행렬이고, 1.3에서 “유니터리 변환으로 대각화할 수 있는 행렬은 정확히 정규행렬”이라는 스펙트럼 정리로 되돌아온다. 지금은 이름만 두고 간다.

정사각 행렬 AA의 거듭제곱 AkA^k는 곱을 반복한 것이고, 상수항 cccIcI로 읽는다. 그러면 다항식 p(A)p(A)가 정의되고, 급수가 성분마다 수렴하면 급수도 정의된다.

eA=k=01k!Ak,sinA=k=0(1)k(2k+1)!A2k+1e^{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}

계산은 거의 언제나 거듭제곱이 반복되는 구조를 찾는 것으로 끝난다. 대각행렬이면 성분마다 따로 계산하면 되고

D=[a00b]    f(D)=[f(a)00f(b)]D = \begin{bmatrix} a & 0 \\ 0 & b\end{bmatrix} \;\Longrightarrow\; f(D) = \begin{bmatrix} f(a) & 0 \\ 0 & f(b)\end{bmatrix}

제곱이 단위행렬로 돌아오는 행렬이면 짝수 항과 홀수 항이 각각 코사인과 사인으로 뭉친다. σk2=I\sigma_k^2 = I인 파울리 행렬이 그 예다.

eiθσk=Icosθ+iσksinθe^{i\theta \sigma_k} = I\cos\theta + i\,\sigma_k \sin\theta

오일러 공식이 행렬로 그대로 올라온 것이고, 스핀 회전 연산자가 이 꼴이다. 대각화가 되는 일반적인 경우는 1.3에서 다룬다 — 대각화란 결국 f(A)f(A)를 계산 가능하게 만드는 절차다.

두 결과를 미리 적어 둔다. HH가 에르미트이면

U=eiH는 유니터리다U = e^{iH} \quad\text{는 유니터리다}

U=eiH=eiH=U1U^{\dagger} = e^{-iH^{\dagger}} = e^{-iH} = U^{-1}이기 때문이다. 양자역학에서 관측량(에르미트)이 시간 발전 연산자(유니터리)를 만들어 내는 구조가 정확히 이 한 줄이다. 그리고

det ⁣(eH)=etrH\det\!\big(e^{H}\big) = e^{\operatorname{tr} H}

행렬식이 곱을 좋아하고 대각합이 합을 좋아하는 두 성질이 지수함수를 사이에 두고 맞물린 결과다.

e₁ e₂ 1 단위 정사각형 A 열 = a₁, a₂ a₁ a₂ 5 넓이 = |det A|
그림 1.2-1. 2차원에서의 행렬식. 단위 정사각형이 A의 두 열벡터가 이루는 평행사변형으로 옮겨지고, 그 넓이가 |det A|다. 열이 서로 평행해지는 순간 넓이가 0이 되고 행렬식도 0이 된다.직접 작도

정사각 행렬에만 정의된다. 2차·3차는 직접 써 두는 편이 빠르다.

det[abcd]=adbc\det \begin{bmatrix} a & b \\ c & d \end{bmatrix} = ad - bc

3차 행렬식을 성분으로 펼치면 삼중 스칼라곱 (a×b)c(\mathbf{a}\times\mathbf{b})\cdot\mathbf{c} 와 같은 식이 된다. 외적의 크기가 평행사변형의 넓이라는 사실(1.1.6면적분)에 높이를 곱한 것이므로, 그 값은 세 벡터가 만드는 평행육면체의 부피다. 위 직관의 3차원 판이 이것이고, 세 벡터가 한 평면에 놓이면 — 즉 선형 종속이면 — 부피가 0이라서 행렬식도 0이 된다.

nn개를 늘어놓는 방법은 n!n!가지이고, 어떤 배열이든 두 개씩 맞바꾸기를 되풀이해 기준 순서 1,2,,n1,2,\dots,n에서 도달할 수 있다. 맞바꾼 횟수는 경로마다 다르지만 홀짝은 언제나 같다. 그래서 각 배열에 홀짝(parity)이 정해지고, 이것을 레비–치비타 기호로 적는다.

εij={+1ij가 짝치환1ij가 홀치환0인덱스가 겹치면\varepsilon_{ij\ldots} = \begin{cases} +1 & ij\ldots \text{가 짝치환} \\ -1 & ij\ldots \text{가 홀치환} \\ 0 & \text{인덱스가 겹치면} \end{cases}

이 기호로 nn차 행렬식의 정의가 한 줄이 된다.

detA=i,j,εija1ia2j\det A = \sum_{i,j,\ldots} \varepsilon_{ij\ldots}\,a_{1i}\,a_{2j}\cdots

인덱스는 1부터 nn까지 자유롭게 돌려도 된다 — 겹치는 조합은 ε\varepsilon이 0으로 지워 준다. n=2n = 2이면 ε12=+1\varepsilon_{12} = +1, ε21=1\varepsilon_{21} = -1이라 a11a22a12a21a_{11}a_{22} - a_{12}a_{21} 두 항이고, n=3n = 3이면 여섯 항이다. 항의 절반은 음수라서, 성분이 큰 행렬식이 아주 작은 값을 가질 수 있다. 수치적으로 위험한 자리가 여기다.

ε\varepsilon의 성질이 그대로 행렬식의 성질로 번역된다. 두 인덱스를 맞바꾸면 ε\varepsilon의 부호가 바뀌므로 두 행(열)을 맞바꾸면 행렬식의 부호가 바뀐다. 인덱스가 겹치면 ε\varepsilon이 0이므로 두 행(열)이 같으면 행렬식이 0이다. 정의가 각 행에 대해 한 번씩만 곱을 쓰므로 각 행(열)에 대해 선형이다. 그리고 정의를 행 기준으로 쓰든 열 기준으로 쓰든 같은 값이 나오므로 detAT=detA\det A^{\mathsf{T}} = \det A이고, 이것이 행에 대한 모든 성질이 열에도 그대로 적용되는 이유다.

같은 기호가 1.13 텐서에서 유사텐서로 다시 나오고, 1.1.2기울기·발산·회전의 회전을 (×F)i=εijkjFk(\nabla\times\mathbf{F})_i = \varepsilon_{ijk}\partial_j F_k로 적는 표기도 이것이다.

  • 한 행(열)이 전부 0이면 detA=0\det A = 0.
  • 두 행(열)이 같거나 비례하면 detA=0\det A = 0. (부피가 납작해진다)
  • 한 행에 다른 행의 상수배를 더해도 행렬식은 변하지 않는다. — 다중선형성으로 쪼개면 남는 항이 “두 행이 같은 행렬식”이라 0이기 때문이다. 소거를 마음 놓고 쓸 수 있는 근거다.
  • 한 행에 cc를 곱하면 행렬식도 cc배. 따라서 det(cA)=cndetA\det(cA) = c^n \det A.
  • 두 행을 맞바꾸면 부호가 바뀐다.
  • detAT=detA\det A^{\mathsf{T}} = \det A. 그래서 행에 대한 성질이 열에도 그대로 적용된다.
  • 삼각행렬(대각행렬 포함)의 행렬식은 대각성분의 곱이다.
  • det(AB)=det(BA)=detAdetB\det(AB) = \det(BA) = \det A \cdot \det B. 부피 배율을 연달아 적용하면 배율이 곱해진다 — 성분으로 증명하려면 고생스럽지만 기하로는 한 줄이다. ABBAAB \ne BA여도 두 행렬식은 같다.

마지막 두 줄이 실제 계산법을 준다. 행 연산으로 삼각행렬을 만들고 대각성분을 곱하면 O(n3)O(n^3)이다. 이때 회계를 두 가지 해 둬야 한다 — 행 교환마다 부호를 뒤집고, 행에 곱한 상수는 밖으로 빼서 기억한다. 소거에서는 행에 상수를 곱해도 해집합이 안 변하지만, 행렬식은 그만큼 변한다.

321231114   소거   32561312313011500545=53545=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

앞의 네 인수가 각 단계에서 행을 나눌 때 밖으로 뺀 상수들이다. 이 회계를 빠뜨리는 것이 손으로 행렬식을 구할 때 가장 흔한 실수다.

MijM_{ij}ii행과 jj열을 지운 (n1)(n-1)차 소행렬식, Cij=(1)i+jMijC_{ij} = (-1)^{i+j} M_{ij}를 여인수라 하면 임의의 행 ii에 대해

detA=j=1naijCij\det A = \sum_{j=1}^{n} a_{ij} C_{ij}

이고, 어느 행이나 열로 전개해도 값이 같다. 부호 (1)i+j(-1)^{i+j}가 체스판처럼 번갈아 붙는 것이 앞 절 ε\varepsilon의 교대성이 남긴 흔적이다. 0이 많은 행이나 열을 골라 전개하면 항이 줄어드니, 손으로 계산할 때는 먼저 행 연산으로 0을 만들어 두고 전개한다.

여기서 한 걸음 더 나간 항등식이 이 장의 여러 결과를 한꺼번에 만들어 낸다. 위 전개에서 aija_{ij} 자리에 다른 행 kk의 성분을 끼워 넣으면 어떻게 될까?

j=1nakjCij=δikdetA\sum_{j=1}^{n} a_{kj} C_{ij} = \delta_{ik}\,\det A

k=ik = i이면 원래의 전개라 detA\det A이고, kik \ne i이면 ii행이 kk행으로 바뀐 행렬의 행렬식을 전개한 꼴인데 그 행렬은 ii행과 kk행이 같으므로 0이다. 자기 것이 아닌 여인수와 짝지으면 0이 된다는 뜻에서 이것을 낯선 여인수(alien cofactor) 관계라 부른다.

행렬식은 행과 열을 가리지 않으므로(detAT=detA\det A^{\mathsf{T}} = \det A) 열 쪽에도 같은 식이 있다. jj열의 여인수에 다른 열 kk의 성분을 짝지으면

i=1naikCij=δjkdetA\sum_{i=1}^{n} a_{ik}\, C_{ij} = \delta_{jk}\,\det A

이고, 이유도 같다 — kjk \ne j이면 두 열이 같은 행렬의 행렬식이라 0이다.

유도가 두 줄이다. x1detAx_1 \det A에서 시작해 x1x_1을 첫 열 안으로 밀어 넣고, 거기에 둘째 열의 x2x_2배와 셋째 열의 x3x_3배를 더한다(행렬식은 변하지 않는다). 그러면 첫 열이 통째로 Ax=bA\mathbf{x} = \mathbf{b}의 좌변이 되어 b\mathbf{b}로 바뀐다.

x1detA=a11x1a12a13a21x1a22a23a31x1a32a33=ka1kxka12a13ka2kxka22a23ka3kxka32a33=b1a12a13b2a22a23b3a32a33x_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}

따라서 detA0\det A \ne 0일 때 유일한 해는

xj=detAjdetA,j=1,,nx_j = \frac{\det A_j}{\det A}, \qquad j = 1, \dots, n

이다. 해가 계수의 유리함수로 명시적으로 쓰인다는 것이 이 공식의 값어치다. 계수를 문자로 둔 채 해가 어떻게 변하는지 논해야 할 때, 혹은 “해가 존재할 조건”을 대수적으로 따질 때 쓴다.

동차계(b=0\mathbf{b} = \mathbf{0})에서는 모든 AjA_j가 0인 열을 가져 detAj=0\det A_j = 0이다. 그래서 detA0\det A \ne 0이면 x=0\mathbf{x} = \mathbf{0}뿐이고, 자명하지 않은 해가 있으려면 detA=0\det A = 0이어야 한다. 이 한 줄이 1.3 고유값 방정식의 출발점이고, 3절과 4절에서 계수 언어로 다시 정리된다.

계산 도구로는 쓰지 않는다. n+1n+1개의 행렬식이 필요해서 가우스 소거보다 압도적으로 느리고, detA\det A가 0에 가까우면 수치적으로도 나쁘다.

행 그림 — 직선의 교점 열 그림 — 벡터의 결합 2x + y = 5 x − y = 1 (2, 1) a₁ a₂ 2a₁ + a₂ b 2a₁ + 1·a₂ = b
그림 1.2-2. 같은 연립방정식의 두 그림. 행 그림에서 해는 두 직선의 교점이고, 열 그림에서 해는 두 열벡터를 몇 배씩 더해 b를 만드는 계수다. 미지수가 셋 이상이면 행 그림은 그릴 수 없게 되지만 열 그림은 개념적으로 그대로 살아 있다.직접 작도

nn개의 미지수를 가진 방정식 하나는 Rn\mathbb{R}^n의 초평면이고, mm개의 방정식은 mm개의 초평면이다. 해집합은 그 교집합이므로 점 하나이거나, 직선·평면 같은 아핀 부분공간이거나, 비어 있다. 해가 정확히 두 개인 경우는 없다 — 이것이 선형계의 가장 중요한 구조적 사실이고, 3절에서 계수로 설명된다.

열 그림에서는 1절의 식

Ax=x1a1++xnan=bA\mathbf{x} = x_1 \mathbf{a}_1 + \cdots + x_n \mathbf{a}_n = \mathbf{b}

가 전부다. 해가 존재한다     \iff b\mathbf{b}가 열벡터들의 일차결합으로 표현된다. 해가 유일하다     \iff 그 표현 방법이 하나뿐이다.

말을 미리 정해 둔다. 방정식이 미지수보다 많으면 과결정(overdetermined), 같으면 결정, 적으면 부족결정(underdetermined)이라 한다. 해가 하나라도 있으면 무모순(consistent), 하나도 없으면 모순(inconsistent)이다. 과결정이라고 해가 없는 것도, 부족결정이라고 해가 무한한 것도 아니다 — 개수는 힌트일 뿐이고 답은 계수가 준다(3절). 아래 회로 예제가 과결정인데도 해가 유일한 경우다.

가우스 소거 — 해집합을 보존하는 변형

섹션 제목: “가우스 소거 — 해집합을 보존하는 변형”

계수와 우변을 붙여 쓴 첨가행렬 [Ab][A \mid \mathbf{b}] 위에서 작업한다. 허용되는 기본 행 연산은 셋이다.

  1. 두 행을 맞바꾼다.
  2. 한 행에 0이 아닌 상수를 곱한다.
  3. 한 행에 다른 행의 상수배를 더한다.

셋 다 역연산이 같은 종류의 행 연산이다. 그래서 “AA에서 BB로 행 연산으로 갈 수 있다”는 관계는 동치관계다 — 자기 자신으로 갈 수 있고(반사), 되돌아올 수 있고(대칭), 이어 붙일 수 있다(추이). 이 관계로 이어진 두 계를 행 동치라 하고, 행 동치인 계는 해집합이 같다.

알고리즘은 두 단계다.

  • 전진 소거 왼쪽 위부터 피벗을 골라, 그 아래 행들에서 해당 열을 0으로 만든다. 다음 행·다음 열로 내려가며 반복한다. 결과가 행 사다리꼴이다.
  • 후진 대입 맨 아래 방정식부터 미지수를 하나씩 구해 위로 올라간다.

n×nn \times n 계에서 전진 소거는 약 23n3\tfrac{2}{3}n^3번, 후진 대입은 약 n2n^2번의 연산이 든다. 비용은 사실상 전부 소거에 있고, 우변이 여러 개라면 소거를 한 번만 해 두고 우변마다 대입만 반복하면 된다. LU 분해가 바로 이 관찰을 자료구조로 굳힌 것이다(1.12).

기본행렬 — 행 연산도 행렬 곱이다

섹션 제목: “기본행렬 — 행 연산도 행렬 곱이다”

II에 행 연산을 한 번 적용해 얻은 행렬을 기본행렬이라 한다. 4×44 \times 4에서 2·3행 교환, 1행의 5-5배를 3행에 더하기, 4행에 8 곱하기는 각각 다음이다.

E1=[1000001001000001],E2=[1000010050100001],E3=[1000010000100008]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}

EAEA가 그 연산을 마친 행렬이다. 세 종류 모두 detE0\det E \ne 0이라 가역이고, 역행렬 역시 같은 종류의 기본행렬이다(E11=E1E_1^{-1} = E_1, E2E_2+5+5, E3E_31/81/8). 소거 전체는 가역행렬들을 왼쪽에 차례로 곱한 것이므로

[Ab]    [EkE1AEkE1b][A \mid \mathbf{b}] \;\longrightarrow\; [E_k \cdots E_1 A \mid E_k \cdots E_1 \mathbf{b}]

이고, M=EkE1M = E_k\cdots E_1이 가역이라 Ax=bA\mathbf{x} = \mathbf{b}MAx=MbMA\mathbf{x} = M\mathbf{b}의 해집합이 같다. 앞 절에서 “되돌릴 수 있으니 해가 보존된다”고 말한 것의 정확한 뜻이 이것이다. 4절의 가우스–조던은 여기서 MA=IMA = I가 되도록 밀어붙이는 것이고, 그때 M=A1M = A^{-1}이다.

실무에서 기본행렬을 실제로 만들어 곱하지는 않는다 — 행을 직접 고치는 편이 훨씬 싸다. 이것은 증명과 알고리즘 설계를 위한 언어다.

x₁ x₂ x₃ x₄ x₅ b 0 000 000 000 피벗 행 0 = 0 아래는 전부 0 피벗 없는 열(x₃, x₅) = 자유 변수 → 해가 2차원 평면
그림 1.2-3. 행 사다리꼴이 된 첨가행렬. 계단선 아래는 전부 0이고, 꺾이는 자리의 피벗이 각각 하나의 주 변수를 결정한다. 피벗이 없는 열에 대응하는 미지수는 자유롭게 정할 수 있고, 자유 변수의 개수가 곧 해집합의 차원이다.직접 작도

행 사다리꼴의 조건은 두 줄이다. ① 0이 아닌 행들이 위쪽에 모여 있고, ② 아래 행의 첫 0이 아닌 성분은 위 행의 그것보다 오른쪽에 있다. 각 행에서 처음 나오는 0이 아닌 성분이 피벗이다. 피벗을 1로 맞출 필요는 없다 — 이론적으로도 수치적으로도 이득이 없다.

여기서 한 걸음 더 나가 피벗을 1로 만들고 피벗이 있는 열의 위쪽까지 0으로 만들면 기약 행 사다리꼴(RREF)이다. RREF는 유일하다 — 어떤 순서로 소거하든 같은 결과에 도달한다. 사다리꼴 자체는 유일하지 않으므로, “이 행렬의 표준형”을 말하려면 RREF여야 한다.

m×nm \times nAx=bA\mathbf{x} = \mathbf{b}에 대해 r=rankAr = \operatorname{rank} A, r~=rank[Ab]\tilde{r} = \operatorname{rank}[A \mid \mathbf{b}]라 하면

조건
r<r~r < \tilde{r}해가 없다 (모순)
r=r~=nr = \tilde{r} = n해가 정확히 하나
r=r~<nr = \tilde{r} < n해가 무한히 많다 — 자유도 nrn - r

동차계 Ax=0A\mathbf{x} = \mathbf{0}에서는 b=0\mathbf{b} = \mathbf{0}이라 항상 r=r~r = \tilde{r}이고, x=0\mathbf{x} = \mathbf{0}이라는 자명한 해가 언제나 있다. 따라서 동차계의 질문은 “해가 있는가”가 아니라 **“자명하지 않은 해가 있는가”**이고, 답은 r<nr < n이다. 미지수보다 방정식이 적으면(m<nm < n) rm<nr \le m < n이므로 자명하지 않은 해가 반드시 존재한다. 정사각(m=nm = n)이면 r<nr < n이 곧 detA=0\det A = 0이라, 1절 크래머 공식 끝의 결론과 같은 말이 된다.

비동차계의 일반해는

x=xp+xh\mathbf{x} = \mathbf{x}_p + \mathbf{x}_h

로, 특수해 하나 + 동차해 전체다. 미분방정식에서 같은 구조를 다시 만나게 된다(1.4). 선형성이 있는 곳에서는 언제나 이 모양이다.

일반해를 ”x=3+2zx = 3 + 2z, y=4zy = 4 - z, zz는 자유”처럼 적어 두면 모양이 보이지 않는다. 자유 변수를 매개변수로 놓고 벡터로 다시 쓰면 정체가 드러난다.

x=[3+2t4tt]=[340]xp+  t[211]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=t(2,1,1)T\mathbf{x} = t\,(2, -1, 1)^{\mathsf{T}} 가 나온다 — 원점을 지나는 같은 방향의 직선이다. 즉 비동차계의 해집합은 동차계의 해집합을 xp\mathbf{x}_p만큼 평행이동한 것이고, 그래서 원점을 지나지 않는다. 자유 변수가 둘이면 매개변수가 둘인 평면이 된다.

이 그림이 앞 문단의 x=xp+xh\mathbf{x} = \mathbf{x}_p + \mathbf{x}_h를 눈에 보이게 만든다. 해집합의 모양(방향과 차원)은 AA가 정하고, 위치b\mathbf{b}가 정한다.

회로 방정식 — 소거가 실제로 하는 일

섹션 제목: “회로 방정식 — 소거가 실제로 하는 일”

말로만 하면 남는 것이 없으니 한 번 끝까지 돌려 본다. 회로의 노드 해석은 이 장의 방법이 곧바로 쓰이는 자리다. 키르히호프 법칙 — 마디에서 들어오는 전류의 합은 나가는 전류의 합과 같고(KCL), 닫힌 고리에서 전압 강하의 합은 기전력과 같다(KVL) — 을 마디 두 개와 고리 두 개에 적용하면 미지 전류 i1,i2,i3i_1, i_2, i_3에 대한 네 개의 방정식이 나온다.

i1i2+i3=0(마디 P)i1+i2i3=0(마디 Q)10i2+25i3=90(오른쪽 고리)20i1+10i2=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}

미지수 셋에 방정식 넷 — 과결정이다. 첨가행렬에 소거를 돌린다. 1행으로 1열을 정리하면 (2행에 1행을 더하고, 4행에서 1행의 20배를 뺀다)

[1110111001025902010080][1110000001025900302080]\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]

2행이 통째로 사라졌다. 이것은 계산의 부작용이 아니라 물리적 사실의 발견이다 — 마디 Q의 KCL은 마디 P의 KCL과 같은 말이었다. 전하가 어디서도 쌓이지 않으므로 마디 하나의 식은 나머지에 딸려 온다. 다음 피벗 자리가 0이므로 행을 올려 10i210\,i_2를 피벗으로 삼고, 4행에서 그 3배를 뺀다.

[1110010259000951900000]\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]

후진 대입: i3=2i_3 = 2, 10i2+50=9010 i_2 + 50 = 90에서 i2=4i_2 = 4, i1=i2i3=2i_1 = i_2 - i_3 = 2. 단위는 암페어다.

읽어 낼 것이 세 가지다. 피벗이 3개이므로 r=r~=3=nr = \tilde{r} = 3 = n — 방정식이 넷이어도 해는 유일하다. 0=00 = 0 행은 종속된 방정식이 있었다는 신호일 뿐이지만, 마지막 열에만 0이 아닌 수가 남은 행이 나왔다면 모순이다 — 회로를 잘못 세웠다는 뜻이고, 소거는 모델의 오류까지 잡아 준다. 두 번째 단계에서 행을 바꾼 것처럼, 피벗 자리가 0이면 행 교환이 필수다. 다음 절에서 보듯 0에 가깝기만 해도 바꿔야 한다.

유한 자릿수의 현실 — 피벗팅과 조건수

섹션 제목: “유한 자릿수의 현실 — 피벗팅과 조건수”

부분 피벗팅은 각 단계에서 해당 열의 남은 성분 중 절댓값이 최대인 행을 피벗 행으로 교환하는 전략이다. 비용은 비교 몇 번뿐인데 수치 안정성은 크게 좋아진다 — 표준 라이브러리의 기본값이다. 열까지 바꾸는 완전 피벗팅은 미지수의 순서를 함께 추적해야 해서 거의 쓰지 않는다.

문제가 얼마나 “예민한지”는 조건수로 잰다.

κ(A)=AA1\kappa(A) = \lVert A \rVert \, \lVert A^{-1} \rVert

여기서 \lVert\cdot\rVert 는 벡터 노름에서 유도된 행렬 노름(연산자 노름)이다 — A=maxx0Ax/x\lVert A \rVert = \max_{\mathbf{x} \ne \mathbf{0}} \lVert A\mathbf{x}\rVert / \lVert \mathbf{x}\rVert, 곧 AA가 벡터를 늘일 수 있는 최대 배율. 어느 벡터 노름을 쓰느냐에 따라 값이 달라지므로 조건수도 하나가 아니고, 따로 말하지 않으면 스펙트럼 노름(22-노름)을 뜻한다. 그때 κ2(A)\kappa_2(A) 는 가장 큰 특이값과 가장 작은 특이값의 비다(1.12). 어느 유도 노름에서든 I=1\lVert I \rVert = 1 이라 κ(A)1\kappa(A) \ge 1 이고, 1에 가까울수록 순한 계다.

이 값이 크면 b\mathbf{b}의 작은 오차가 x\mathbf{x}의 큰 오차로 증폭된다. 대략 κ10k\kappa \approx 10^k 이면 유효숫자를 kk자리쯤 잃는다고 본다. 조건수가 큰 계는 알고리즘의 문제가 아니라 문제 자체의 성질이고, 더 좋은 소거법으로 고칠 수 없다. 자세한 것은 1.12 수치해석에서 다룬다.

벡터 v1,,vk\mathbf{v}_1, \dots, \mathbf{v}_k선형 독립이라는 것은

c1v1++ckvk=0    c1==ck=0c_1 \mathbf{v}_1 + \cdots + c_k \mathbf{v}_k = \mathbf{0} \;\Longrightarrow\; c_1 = \cdots = c_k = 0

이 성립한다는 뜻이다. 그렇지 않으면 선형 종속이고, 이때 적어도 하나는 나머지의 조합으로 쓸 수 있다.

판정은 결국 동차계 풀기다. 벡터들을 열로 세운 행렬 VV에 대해 Vc=0V\mathbf{c} = \mathbf{0}이 자명한 해만 갖는지 보면 되고, 2절의 결론에 따라 피벗이 열 개수만큼 서는지가 기준이다. kk개의 벡터가 Rn\mathbb{R}^n에 있을 때 k>nk > n이면 무조건 종속이다 — nn차원 공간에 독립인 방향이 nn개보다 많을 수 없다.

실제로 “이 벡터 묶음에서 독립인 것만 남기라”는 요구는 소거로 처리한다. 벡터들을 으로 세워 사다리꼴로 만들면, 남은 0이 아닌 행들이 원래 묶음과 같은 공간을 생성하는 독립 집합이다. 행 연산이 되돌릴 수 있는 조작이므로 거꾸로 돌려 원래 벡터를 전부 복원할 수 있고, 그래서 생성하는 공간이 같다.

rankA\operatorname{rank} AAA의 열들 중 선형 독립인 것의 최대 개수로 정의한다. 행 연산은 열들 사이의 종속 관계를 바꾸지 않으므로, 계수는 행 사다리꼴의 피벗 개수와 같다. 성질 몇 가지를 적어 둔다.

  • rankAmin(m,n)\operatorname{rank} A \le \min(m, n). 등호가 성립하면 최대 계수라 한다.
  • rankA=0    A=0\operatorname{rank} A = 0 \iff A = 0.
  • rank(AB)min(rankA,rankB)\operatorname{rank}(AB) \le \min(\operatorname{rank} A, \operatorname{rank} B) — 곱은 계수를 늘리지 못한다. 한 번 짓눌린 차원은 되살아나지 않는다.
  • rank(A+B)rankA+rankB\operatorname{rank}(A + B) \le \operatorname{rank} A + \operatorname{rank} B.

계수는 특이성의 정도를 재는 양이기도 하다. n×nn \times n 행렬에서 r=nr = n이면 가역, r=n1r = n-1이면 종속 관계가 하나, r=n2r = n-2이면 둘 — 이런 식이다. “특이하다/아니다”라는 이분법을 눈금으로 바꾼 것이 계수다.

rankA=rankAT\operatorname{rank} A = \operatorname{rank} A^{\mathsf{T}}

사다리꼴에 기대지 않는 증명도 짧다. 행계수가 rr이면 AA의 모든 행이 어떤 rr개의 행 v(1),,v(r)\mathbf{v}_{(1)},\dots,\mathbf{v}_{(r)}의 조합이다. 그 관계식 a(i)=scisv(s)\mathbf{a}_{(i)} = \sum_{s} c_{is}\mathbf{v}_{(s)}를 성분으로 풀어 열 방향으로 다시 묶으면, AA의 각 열이 cc들로 만든 같은 rr개의 열벡터의 조합이 된다. 그러므로 열계수는 rr을 넘지 못한다. 같은 논법을 ATA^{\mathsf{T}}에 적용하면 반대 부등식이 나오고, 둘을 합치면 등호다.

이 정리 덕분에 “계수”를 행 쪽에서 정의하든 열 쪽에서 정의하든 같아지고, detAT=detA\det A^{\mathsf{T}} = \det A 와 함께 행과 열의 대칭성을 보장한다. 실질적으로는 긴 쪽이 아니라 짧은 쪽이 계수의 상한이라는 사실을 준다. 그래서 정사각이 아닌 행렬은 행이든 열이든 한쪽이 반드시 종속이다.

계수를 소거 없이 행렬식으로 판정할 수도 있다. AA에서 몇 개의 행과 열을 지워 얻은 정사각 행렬을 부분행렬이라 하면, rankA=r\operatorname{rank} A = r 은 다음 두 조건이 함께 성립한다는 말과 같다.

  • 0이 아닌 r×rr \times r 부분행렬식이 하나라도 있다.
  • 모든 (r+1)×(r+1)(r{+}1) \times (r{+}1) 부분행렬식이 0이다.

근거는 간단하다 — 행 연산은 계수도 바꾸지 않고 “행렬식이 0이 아니다”라는 성질도 바꾸지 않으므로, 사다리꼴에서 왼쪽 위 r×rr \times r 블록(삼각이고 대각성분이 전부 0이 아니다)을 보면 된다. 정사각 행렬에서는 r=nr = n이 곧 detA0\det A \ne 0이라, 4절 가역성 목록의 한 줄이 된다.

정의역 ℝⁿ N(A) — 핵 차원 n − r 나머지 r 차원분 공역 ℝᵐ C(A) — 상(열공간) 차원 r = rank A 0 A n = r + (n − r)
그림 1.2-4. 계수–퇴화차수 정리. 정의역에서 핵에 해당하는 n−r 차원은 통째로 0으로 눌리고, 나머지 r 차원이 상과 일대일로 대응한다. 정의역의 차원은 두 조각의 합이므로 n = r + (n−r)이다.직접 작도

Ax=0A\mathbf{x} = \mathbf{0}의 해집합을 영공간 N(A)N(A), 그 차원을 퇴화차수 nullityA\operatorname{nullity} A라 한다. 영공간이 실제로 부분공간이라는 것부터 확인해 두면 (Ax1=Ax2=0A\mathbf{x}_1 = A\mathbf{x}_2 = \mathbf{0}이면 A(c1x1+c2x2)=0A(c_1\mathbf{x}_1 + c_2\mathbf{x}_2) = \mathbf{0}) 차원을 말할 자격이 생긴다. 그리고

rankA+nullityA=n\operatorname{rank} A + \operatorname{nullity} A = n

이다(nn열의 개수, 즉 정의역의 차원이다 — 행의 개수가 아니다. 자주 틀리는 자리다). 2절의 “자유 변수의 개수 = nrn - r“이 정확히 이 정리다. 자유 변수 하나가 영공간의 기저 벡터 하나에 대응한다 — 자유 변수 xr+jx_{r+j}만 1로 놓고 나머지 자유 변수를 0으로 놓아 얻은 해가 jj번째 기저 벡터이고, 이렇게 만든 nrn-r개는 자명하게 독립이다.

정사각 행렬 AA(n×nn \times n)에서는 따름정리가 특히 강하다.

rankA=n    N(A)={0}    detA0    A1가 존재\operatorname{rank} A = n \iff N(A) = \{\mathbf{0}\} \iff \det A \ne 0 \iff A^{-1}\text{가 존재}

정사각일 때만 “단사이면 전사”가 성립한다는 점을 기억할 것. 직사각 행렬에서는 둘이 완전히 다른 조건이다.

해가 존재하면 해집합은

{xp+v  :  vN(A)}\{\, \mathbf{x}_p + \mathbf{v} \;:\; \mathbf{v} \in N(A) \,\}

이고 차원은 nrn - r이다. r=nr = n이면 N(A)={0}N(A) = \{\mathbf{0}\}이라 해가 딱 하나, r<nr < n이면 nrn-r 차원의 평면 전체가 해다.

b\mathbf{b} 쪽의 조건도 같은 언어로 정리된다. 해가 존재할 필요충분조건은 b\mathbf{b}AA의 열공간 C(A)C(A) 안에 있다는 것이고, rank[Ab]=rankA\operatorname{rank}[A \mid \mathbf{b}] = \operatorname{rank} A 는 “b\mathbf{b}를 붙여도 열공간이 커지지 않았다”의 다른 표현일 뿐이다.

f1,,fnf_1, \dots, f_nn1n-1번 미분 가능할 때 브론스키안을 다음으로 정의한다.

W(x)=f1f2fnf1f2fnf1(n1)f2(n1)fn(n1)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≢0W \not\equiv 0이면 (즉 어느 한 점에서라도 0이 아니면) 그 함수들은 선형 독립이다. 1,x,sinx1, x, \sin x를 넣어 보면 W=sinx≢0W = -\sin x \not\equiv 0이라 독립이고, x,sinx,2x3sinxx, \sin x, 2x - 3\sin x를 넣으면 세 번째 열이 앞 두 열의 조합이라 W0W \equiv 0이다.

정사각 행렬 AA에 대해

AA1=A1A=IAA^{-1} = A^{-1}A = I

를 만족하는 A1A^{-1}이 존재하면 AA가역(정칙)이라 하고, 없으면 특이하다고 한다. 역행렬은 존재하면 유일하다. 만약 BBCC가 모두 역행렬이라면 B=BI=B(AC)=(BA)C=IC=CB = BI = B(AC) = (BA)C = IC = C이기 때문이다 — 결합법칙 한 줄로 끝난다.

정사각 행렬에서는 한쪽 역만 확인해도 충분하다. AB=IAB = I이면 자동으로 BA=IBA = I다. 이것은 계수–퇴화차수 정리의 따름정리이지 정의의 일부가 아니며, 직사각 행렬에서는 성립하지 않는다.

역행렬이 존재하지 않는 행렬이 실제로 있다는 것도 확인해 두자. A=[1100]A = \begin{bmatrix}1&1\\0&0\end{bmatrix}, B=[1010]B = \begin{bmatrix}1&0\\-1&0\end{bmatrix}이면 AB=OAB = O이다. 만약 A1A^{-1}이 있다면 양변에 왼쪽부터 곱해 B=OB = O가 나와야 하는데 BOB \ne O다. 같은 논법을 오른쪽에서 B1B^{-1}로 하면 A=OA = O이 나온다. 그러므로 둘 다 특이하다.

곱과 전치에 대한 성질은 전치와 같은 모양이다.

(AB)1=B1A1,(AT)1=(A1)T(A1)1=A,det(A1)=1detA\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}

순서가 뒤집히는 것은 옷을 벗는 순서를 생각하면 된다. 겉옷을 나중에 입었으면 먼저 벗는다. 인수가 몇 개든 (ABCD)1=D1C1B1A1(ABCD)^{-1} = D^{-1}C^{-1}B^{-1}A^{-1}이다. 그리고 마지막 등식이 “detA=0\det A = 0이면 역행렬이 없다”의 가장 짧은 증명이다 — detAdet(A1)=detI=1\det A \cdot \det(A^{-1}) = \det I = 1 인데 왼쪽 인수가 0이면 등식이 성립할 수 없다.

n×nn \times n 행렬 AA에 대해 다음은 모두 동치다.

  • A1A^{-1}이 존재한다.
  • detA0\det A \ne 0.
  • rankA=n\operatorname{rank} A = n (피벗이 nn개).
  • AA의 열들이 선형 독립이다. 행들도 마찬가지다.
  • AA의 열들이 Rn\mathbb{R}^n을 생성한다.
  • Ax=0A\mathbf{x} = \mathbf{0}의 해가 x=0\mathbf{x} = \mathbf{0}뿐이다 (N(A)={0}N(A) = \{\mathbf{0}\}).
  • 모든 b\mathbf{b}에 대해 Ax=bA\mathbf{x} = \mathbf{b}가 유일한 해를 갖는다.
  • AA의 기약 행 사다리꼴이 II다.
  • AA가 기본행렬들의 곱이다.
  • 0이 AA의 고유값이 아니다. (1.3)

마지막 줄이 이 장과 1.3을 잇는 다리다. 고유값 λ\lambda에 대한 조건 det(AλI)=0\det(A - \lambda I) = 0은 “AλIA - \lambda I가 특이하다”이고, 그것이 곧 “(AλI)x=0(A - \lambda I)\mathbf{x} = \mathbf{0}이 자명하지 않은 해를 갖는다”이다. 고유값 문제는 처음부터 끝까지 이 목록의 응용이다.

[AI]    행 연산    [IA1][\,A \mid I\,] \;\xrightarrow{\;\text{행 연산}\;}\; [\,I \mid A^{-1}\,]

2절의 기본행렬 언어로 적으면 정확히 이렇다. M=EkE1M = E_k\cdots E_1MA=IMA = I를 만들었다면 같은 MMMI=M=A1MI = M = A^{-1}을 만든다. 오른쪽 칸은 그 곱을 대신 기억해 주는 장부다.

nn개의 우변 e1,,en\mathbf{e}_1, \dots, \mathbf{e}_n에 대해 Axj=ejA\mathbf{x}_j = \mathbf{e}_j를 한꺼번에 푸는 것이라고 봐도 된다 — 그 해들을 열로 세운 것이 A1A^{-1}이다. 왼쪽을 II로 만들지 못하고 0인 행이 생기면 AA는 특이하다. 계산 도중에 판정까지 함께 끝난다. 비용은 O(n3)O(n^3)으로 소거와 같은 차수다.

여인수 CijC_{ij}로 이루어진 행렬의 전치를 수반행렬 adjA=[Cij]T\operatorname{adj} A = [C_{ij}]^{\mathsf{T}} 라 하면

A1=1detAadjA성분으로는(A1)ij=CjidetA=(1)i+jMjidetA\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}

이다. 2×22 \times 2에서는 외울 만하다.

[abcd]1=1adbc[dbca]\begin{bmatrix} a & b \\ c & d \end{bmatrix}^{-1} = \frac{1}{ad - bc}\begin{bmatrix} d & -b \\ -c & a \end{bmatrix}

계수를 문자로 둔 채 미분해야 하는 상황의 대표적인 결과 하나를 적어 둔다. AA의 성분이 어떤 변수 xx에 딸려 있으면, 라플라스 전개를 aija_{ij}로 편미분한 것이 CijC_{ij}이므로

d(detA)dx=detAi,j(A1)jidaijdx\frac{d(\det A)}{dx} = \det A \sum_{i,j} (A^{-1})_{ji}\,\frac{da_{ij}}{dx}

이다. 야코비안이 좌표에 따라 어떻게 변하는지, 뉴턴 반복에서 야코비 행렬식이 어떻게 움직이는지를 따질 때 나오는 식이고, 수반행렬 공식이 없으면 적을 수 없다.

1절에서 AB=ACAB = AC인데 BCB \ne C일 수 있다고 경고했다. 이제 그 조건을 정확히 말할 수 있다. n×nn \times n 행렬에 대해

  • rankA=n\operatorname{rank} A = n이면 AB=ACB=CAB = AC \Rightarrow B = C. (A1A^{-1}을 왼쪽에서 곱하면 끝난다)
  • AB=OAB = O인데 AOA \ne O이고 BOB \ne O이면, rankA<n\operatorname{rank} A < n 이면서 rankB<n\operatorname{rank} B < n이다.
  • AA가 특이하면 ABABBABA도 특이하다.

두 번째 줄의 이유는 이렇다. AA가 특이하면 Ax=0A\mathbf{x} = \mathbf{0}에 자명하지 않은 해가 있고, 그 해에 BB를 곱하면 BAx=0BA\mathbf{x} = \mathbf{0}이므로 BABA도 특이하다. ABAB 쪽은 전치를 취해 (AB)T=BTAT(AB)^{\mathsf{T}} = B^{\mathsf{T}}A^{\mathsf{T}}에 같은 논법을 적용하면 된다.

C(A) — 열공간 a₁ a₂ b A x̂ b − A x̂ 잔차가 모든 열과 수직 ⟺ Aᵀ(b − A x̂) = 0 ⟺ AᵀA x̂ = Aᵀb
그림 1.2-5. 최소제곱의 기하. b가 A의 열공간 밖에 있으면 Ax = b는 해가 없다. 열공간 위의 점 중 b에 가장 가까운 것은 정사영이고, 그때 잔차 b − Ax̂ 가 열공간 전체와 수직이다. 이 수직 조건을 A의 열마다 적어 모은 것이 정규방정식이다.직접 작도

Axb\lVert A\mathbf{x} - \mathbf{b} \rVert를 최소로 만드는 x^\hat{\mathbf{x}}는, 잔차가 AA의 모든 열과 수직이라는 조건 AT(bAx^)=0A^{\mathsf{T}}(\mathbf{b} - A\hat{\mathbf{x}}) = \mathbf{0}을 만족한다. 정리하면 정규방정식이다.

ATAx^=ATbA^{\mathsf{T}}A\,\hat{\mathbf{x}} = A^{\mathsf{T}}\mathbf{b}

AA의 열이 독립이면 ATAA^{\mathsf{T}}A가 가역이라 해가 유일하고

x^=(ATA)1ATb=A+b\hat{\mathbf{x}} = (A^{\mathsf{T}}A)^{-1}A^{\mathsf{T}}\mathbf{b} = A^{+}\mathbf{b}

로 쓴다. 여기 붙은 열 독립 조건이 이 공식의 전제다 — rankA=n\operatorname{rank} A = n, 즉 열 기준 최대 계수여야 ATAA^{\mathsf{T}}A 가 가역이다. A+A^{+}유사역행렬(무어–펜로즈)이고, 정사각 가역 행렬이면 A+=A1A^{+} = A^{-1}이므로 역행렬 개념의 확장이 맞다. 그리고 P=AA+P = AA^{+}는 열공간 위로의 정사영 연산자로, P2=PP^2 = P이고 PT=PP^{\mathsf{T}} = P다 — 두 번 사영해도 달라지지 않는다는 당연한 사실이 식으로는 이렇게 적힌다.

다만 ATAA^{\mathsf{T}}A는 조건수가 AA제곱이 된다(스펙트럼 노름 기준). 그래서 실제 수치 계산은 정규방정식을 직접 풀지 않고 QR 분해나 특이값 분해로 우회한다(1.12). 통계적 의미는 1.11에서 다룬다.

집합 VV에 덧셈과 스칼라배가 정의되어 있고 다음이 성립하면 벡터공간이다.

  • 덧셈에 대해 닫혀 있고, 교환·결합법칙이 성립하며, 영벡터 0\mathbf{0}과 각 원소의 덧셈 역원 v-\mathbf{v}가 있다.
  • 스칼라배에 대해 닫혀 있고, a(bv)=(ab)va(b\mathbf{v}) = (ab)\mathbf{v}, 1v=v1\mathbf{v} = \mathbf{v}, 그리고 두 종류의 분배법칙 a(u+v)=au+ava(\mathbf{u}+\mathbf{v}) = a\mathbf{u}+a\mathbf{v}, (a+b)v=av+bv(a+b)\mathbf{v} = a\mathbf{v}+b\mathbf{v}가 성립한다.

공리를 외울 필요는 없다. 요점은 닫힘이다. 실제로 무언가가 벡터공간인지 확인할 때 어긋나는 것은 거의 항상 닫힘 조건이다.

예를 훑어 두면 감각이 잡힌다.

  • Rn\mathbb{R}^n, Cn\mathbb{C}^n — 원형.
  • m×nm \times n 행렬 전체 — 1절에서 이미 확인했다. 차원은 mnmn이고, 기저는 한 자리만 1이고 나머지가 0인 행렬 mnmn개다.
  • 차수가 nn 이하인 다항식 전체 — 차원 n+1n+1, 기저 {1,x,,xn}\{1, x, \dots, x^n\}.
  • 구간 [a,b][a,b]에서 연속인 함수 전체 — 무한 차원이다. 여기가 푸리에 급수와 양자역학이 사는 곳이다.
  • {eix,eix,sinx,cosx,xsinx}\{e^{ix}, e^{-ix}, \sin x, \cos x, x\sin x\}의 일차결합 전체 — 앞의 넷은 서로 종속이라 차원이 3이다. 기저는 {sinx,cosx,xsinx}\{\sin x, \cos x, x\sin x\}{eix,eix,xsinx}\{e^{ix}, e^{-ix}, x\sin x\}.
  • 어떤 선형 미분방정식의 해 전체 — 해공간이 벡터공간이라는 사실이 1.4·1.6의 출발점이다. 위 예가 실제로 그런 해공간이다.

VV의 부분집합 WW가 덧셈과 스칼라배에 대해 닫혀 있으면 부분공간이다(0W\mathbf{0} \in W는 자동으로 따라온다).

벡터들의 가능한 모든 일차결합의 집합을 생성(span)이라 하고, 언제나 부분공간이다. span\operatorname{span}VV 전체이면서 선형 독립인 집합이 기저이고, 기저의 원소 개수가 VV차원이다. 기저를 어떻게 고르든 개수가 같다는 것은 3절의 “Rn\mathbb{R}^n에서 n+1n+1개는 반드시 종속”에서 나온다 — 원소가 더 많은 기저도, 더 적은 기저도 존재할 수 없다.

기저가 주는 것은 하나다.

v=c1b1++cnbn의 계수 ci가 유일하다\mathbf{v} = c_1\mathbf{b}_1 + \cdots + c_n\mathbf{b}_n \quad\text{의 계수 } c_i \text{가 유일하다}

생성은 “적어도 하나의 표현이 있다”를 주고 독립은 “많아야 하나”를 주므로, 둘을 합치면 정확히 하나다.

3절에서 정의한 N(A)N(A)C(A)C(A)가 부분공간의 대표적인 예다. 계수–퇴화차수 정리는 이제 "dimC(A)+dimN(A)=n\dim C(A) + \dim N(A) = n"으로 읽힌다.

좌표 — 기저를 골라야 숫자가 된다

섹션 제목: “좌표 — 기저를 골라야 숫자가 된다”

기저 B=(b1,,bn)\mathcal{B} = (\mathbf{b}_1, \dots, \mathbf{b}_n)을 고정하면 각 vV\mathbf{v} \in V에 계수 벡터

[v]B=(c1,,cn)TRn[\mathbf{v}]_{\mathcal{B}} = (c_1, \dots, c_n)^{\mathsf{T}} \in \mathbb{R}^n

가 유일하게 대응한다. 이 대응은 덧셈과 스칼라배를 보존하는 일대일 대응, 즉 동형사상이다. 따라서 nn차원 실벡터공간은 어느 것이나 Rn\mathbb{R}^n과 구조가 같다. 다항식이든 함수의 유한차원 부분공간이든, 기저만 정하면 앞 네 절의 행렬 계산을 그대로 쓸 수 있다는 뜻이다.

a b p θ ⟨a, b⟩ = |a| |b| cos θ = |a| · (p의 부호 있는 길이)
그림 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
  • 선형성 각 인자에 대해 선형 (실수에서는 대칭성 때문에 양쪽이 같다)
  • 양의 정부호성 v,v0\langle \mathbf{v}, \mathbf{v}\rangle \ge 0이고, 등호는 v=0\mathbf{v} = \mathbf{0}일 때만

Rn\mathbb{R}^n의 표준 내적은 u,v=uTv=iuivi\langle \mathbf{u}, \mathbf{v}\rangle = \mathbf{u}^{\mathsf{T}}\mathbf{v} = \sum_i u_i v_i 다. 복소공간에서는 성분마다 켤레를 하나 붙여 u,v=uv=iuˉivi\langle \mathbf{u}, \mathbf{v}\rangle = \mathbf{u}^{\dagger}\mathbf{v} = \sum_i \bar{u}_i v_i 로 정의한다. 그래야 v,v=vi2\langle \mathbf{v}, \mathbf{v}\rangle = \sum |v_i|^2이 실수이자 음이 아닌 값으로 남아 길이를 정의할 수 있다. 그러면 대칭성은 켤레 대칭성 u,v=v,u\langle \mathbf{u}, \mathbf{v}\rangle = \overline{\langle \mathbf{v}, \mathbf{u}\rangle}로 바뀐다.

내적에서 노름이 유도된다.

v=v,v\lVert \mathbf{v} \rVert = \sqrt{\langle \mathbf{v}, \mathbf{v}\rangle}

그리고 코시–슈바르츠 부등식이 따라온다.

u,vuv|\langle \mathbf{u},\mathbf{v}\rangle| \le \lVert\mathbf{u}\rVert\,\lVert\mathbf{v}\rVert

증명이 한 줄짜리 요령이다. v0\mathbf{v} \ne \mathbf{0}일 때 λ=v,u/v,v\lambda = \langle \mathbf{v}, \mathbf{u}\rangle / \langle \mathbf{v}, \mathbf{v}\rangle로 놓고 u\mathbf{u}에서 v\mathbf{v} 성분을 뺀 것의 길이가 음이 아니라는 사실만 쓴다.

0uλv,uλv=u,uu,v2v,v0 \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}

정리하면 곧바로 부등식이다. 등호는 u=λv\mathbf{u} = \lambda\mathbf{v}일 때, 즉 두 벡터가 평행할 때만 성립한다 — 성분을 빼고 나면 아무것도 남지 않는 경우다. 기하로 읽으면 “정사영은 원래 벡터보다 길 수 없다”이고, 그림에서 cosθ1|\cos\theta| \le 1인 것과 같은 말이다.

이 부등식이 있어야 각도를

cosθ=u,vuv\cos\theta = \frac{\langle \mathbf{u}, \mathbf{v}\rangle}{\lVert\mathbf{u}\rVert\,\lVert\mathbf{v}\rVert}

정의할 수 있다 — 우변의 절댓값이 1을 넘지 않는다는 보장이 곧 코시–슈바르츠이기 때문이다. nn차원에서도, 함수공간에서도 “두 대상이 이루는 각”을 말할 수 있는 근거가 이것이다. 여기서 삼각부등식 u+vu+v\lVert \mathbf{u}+\mathbf{v}\rVert \le \lVert\mathbf{u}\rVert + \lVert\mathbf{v}\rVert 도 따라온다.

내적에서 온 노름은 하나의 등식을 더 만족한다.

u+v2+uv2=2(u2+v2)\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)

평행사변형 등식이다. 좌변의 두 항을 각각 전개하면 교차항이 +2Reu,v+2\operatorname{Re}\langle \mathbf{u},\mathbf{v}\rangle2Reu,v-2\operatorname{Re}\langle \mathbf{u},\mathbf{v}\rangle 로 나와 서로 지워지고, 남는 것이 우변이다. 평행사변형의 두 대각선 제곱의 합이 네 변 제곱의 합과 같다는 초등 기하가 그대로 올라온 것이고, 뒤집어 말하면 이 등식을 만족하지 않는 노름은 어떤 내적에서도 나올 수 없다. 길이만 있고 각도는 없는 공간이 있다는 뜻이다.

ui,uj=0  (ij)\langle \mathbf{u}_i, \mathbf{u}_j\rangle = 0\;(i \ne j)이면 직교집합, 여기에 ui=1\lVert \mathbf{u}_i \rVert = 1까지 더하면 정규직교집합이다. 크로네커 델타로 쓰면 ui,uj=δij\langle \mathbf{u}_i, \mathbf{u}_j\rangle = \delta_{ij} 한 줄이다. 0이 아닌 벡터들의 직교집합은 자동으로 선형 독립이다 — 독립성을 따로 확인할 필요가 없다는 것도 큰 이점이다.

정규직교기저 {u1,,un}\{\mathbf{u}_1, \dots, \mathbf{u}_n\}에 대해 v=jcjuj\mathbf{v} = \sum_j c_j \mathbf{u}_j의 양변에 ui\mathbf{u}_i를 앞에서 내적하면 j=ij = i 항만 살아남아 cic_i가 그대로 나온다.

v=i=1nui,vui,v2=i=1nui,v2\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

뒤쪽이 파세발 등식이고, 피타고라스 정리를 nn차원으로 늘린 것이다. 물리에서는 “각 모드가 가진 에너지의 합이 전체 에너지”로 읽힌다. 두 벡터의 내적도 좌표만으로 계산된다 — v,w\mathbf{v}, \mathbf{w}의 좌표 벡터를 a,b\mathbf{a}, \mathbf{b}라 하면 v,w=ab\langle \mathbf{v}, \mathbf{w}\rangle = \mathbf{a}^{\dagger}\mathbf{b}이다.

기저가 직교이기만 하고 정규화되어 있지 않으면 나누기만 하나 붙는다.

ci=ui,vui,uic_i = \frac{\langle \mathbf{u}_i, \mathbf{v}\rangle}{\langle \mathbf{u}_i, \mathbf{u}_i\rangle}

르장드르 다항식처럼 관례적 정규화가 1이 아닌 함수족에서 실제로 쓰는 형태가 이쪽이다.

열들이 정규직교기저를 이루는 정사각 행렬이 1절의 직교행렬이다. QTQ=IQ^{\mathsf{T}}Q = I이므로 Q1=QTQ^{-1} = Q^{\mathsf{T}} — 역행렬이 전치만으로 구해진다. 게다가 Qx=x\lVert Q\mathbf{x}\rVert = \lVert \mathbf{x}\rVert이라 길이와 각도를 보존한다(6절). 수치적으로도 오차를 증폭하지 않아, 안정적인 알고리즘은 대개 직교행렬로 짜여 있다.

a₁ a₂ ⟨û₁, a₂⟩ û₁ v₂ v₂ = a₂ − ⟨û₁, a₂⟩ û₁ , û₂ = v₂ / ‖v₂‖
그림 1.2-7. 그람–슈미트의 한 단계. a2에서 a1 방향 정사영을 빼면 남는 성분 v2는 a1과 수직이다. 이것을 길이 1로 정규화하면 두 번째 정규직교 벡터가 된다.직접 작도

독립인 a1,,ak\mathbf{a}_1, \dots, \mathbf{a}_k에서 시작해

vj=aji<ju^i,aju^i,u^j=vjvj\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}

를 차례로 계산한다. 결과는 원래 벡터들과 같은 공간을 생성하는 정규직교기저다. 부분합의 성질도 유지된다 — 처음 jj개가 생성하는 공간이 원래 처음 jj개가 생성하던 공간과 같다.

이 과정을 행렬로 적으면 A=QRA = QR이 되고(QQ는 정규직교 열, RR은 상삼각), 최소제곱과 고유값 알고리즘의 핵심 도구가 된다. 다만 위에 적은 고전적 형태는 수치적으로 불안정해서 실제 구현은 수정 그람–슈미트나 하우스홀더 반사를 쓴다(1.12).

구간 [a,b][a,b]의 함수들에 가중함수 w(x)0w(x) \ge 0으로

f,g=abw(x)f(x)g(x)dx\langle f, g\rangle = \int_a^b w(x)\,\overline{f(x)}\,g(x)\,dx

를 주면 내적공간이 된다. f,f>0\langle f, f\rangle > 0이 보장되려면 ww가 (고립된 점을 빼고) 양수여야 한다는 것이 가중함수에 붙는 유일한 조건이다. 이때 f,g=0\langle f, g\rangle = 0인 두 함수를 직교한다고 말한다. [π,π][-\pi, \pi]에서 {sinnx,cosnx}\{\sin nx, \cos nx\}가 직교집합이라는 사실이 푸리에 급수의 전부다.

그람–슈미트를 함수에 그대로 돌리면 고전 직교다항식이 나온다. 무엇이 나오는지는 구간과 가중함수가 정한다.

다항식구간가중함수 w(x)w(x)
르장드르 PnP_n[1,1][-1, 1]11
체비쇼프 1종 TnT_n[1,1][-1, 1](1x2)1/2(1-x^2)^{-1/2}
체비쇼프 2종 UnU_n[1,1][-1, 1](1x2)1/2(1-x^2)^{1/2}
라게르 LnL_n[0,)[0, \infty)exe^{-x}
에르미트 HnH_n(,)(-\infty, \infty)ex2e^{-x^2}

1,x,x2,1, x, x^2, \dots에 앞 절의 공식을 적용하기만 하면 된다. 예컨대 [1,1][-1,1]w=1w=1로 시작하면 u^0=1/2\hat{u}_0 = 1/\sqrt{2}, u^1=x3/2\hat{u}_1 = x\sqrt{3/2}, 그다음이 x213x^2 - \tfrac13의 정규화 — 5/8(3x21)\sqrt{5/8}\,(3x^2-1) 로, 르장드르 다항식 PnP_n의 정규화된 꼴이다. 이 다항식들이 1.5에서는 미분방정식의 해로, 1.6에서는 스투름–리우빌 문제의 고유함수로 다시 등장한다. 같은 대상을 세 방향에서 만나는 것이고, 그중 가장 기계적인 통로가 여기다.

유한 차원과 다른 점이 하나 있다. 무한 차원에서는 기저가 정말로 공간 전체를 덮는지 — 완비성을 따로 물어야 한다. ff를 정규직교집합 {ϕn}\{\phi_n\}으로 전개하고 남는 오차의 길이가 음이 아니라는 사실만 쓰면 베셀 부등식이 나온다.

f2nϕn,f2\lVert f \rVert^2 \ge \sum_n |\langle \phi_n, f\rangle|^2

부등호가 남아 있다는 것은 {ϕn}\{\phi_n\}이 잡아내지 못한 성분이 있다는 뜻이다. 등호가 모든 ff에 대해 성립할 때 그 집합을 완비라 하고, 그때 베셀 부등식이 앞 절의 파세발 등식이 된다. 파세발은 베셀의 등호 조건이고, 완비성은 그 등호가 언제나 성립한다는 주장이다.

수렴의 뜻도 유한 차원보다 약하다. 여기서 요구하는 것은 오차의 노름이 0으로 가는 것 (평균수렴)이지 모든 점에서 값이 맞아떨어지는 것(균등수렴)이 아니다. 그 덕분에 불연속점이 있는 함수도 연속함수의 급수로 전개할 수 있다 — 사각파의 푸리에 급수가 그 예이고, 불연속점에서 급수가 튀는 깁스 현상은 이 약한 수렴이 허용하는 대가다.

극한이 공간 안에 남는다는 보장까지 갖춘 내적공간이 힐베르트 공간이고, 양자역학의 상태공간이 바로 그것이다. 어떤 함수족이 완비인가 — 즉 그 급수가 정말 원래 함수로 수렴하는가 — 는 스투름–리우빌 이론이 답한다(1.6).

디랙은 벡터를 f|f\rangle, 그 켤레를 브라 f\langle f|로 적고, 둘을 이어 붙인 fg\langle f | g \rangle을 내적으로 읽자고 제안했다. 이 표기로 전개식을 다시 쓰면

f=iϕiϕif=(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

이고, {ϕi}\{\phi_i\}가 완비이면 괄호 안이 항등 연산자다.

I=iϕiϕiI = \sum_i |\phi_i\rangle\langle \phi_i|

항등원의 분해다. ϕiϕi|\phi_i\rangle\langle\phi_i| 하나하나는 ϕi\phi_i 방향으로의 정사영 연산자이고, 그것들을 전부 더하면 아무것도 하지 않는 연산자가 된다는 뜻이다 — 4절의 P=AA+P = AA^{+}가 부분공간 하나에 대해 하던 일의 완전한 버전이다.

이 표기의 값어치는 아무 데나 끼워 넣을 수 있다는 데 있다. fg\langle f | g\rangle 사이에 끼우면 ifϕiϕig\sum_i \langle f|\phi_i\rangle\langle\phi_i|g\rangle이 되어 좌표만으로 쓴 내적이 나오고, 연산자 양쪽에 끼우면 6절의 행렬 원소가 나온다. 같은 조작을 델타함수에 적용하면

δ(xt)=nϕn(t)ϕn(x)\delta(x - t) = \sum_n \overline{\phi_n(t)}\,\phi_n(x)

완비성 관계가 되고, 이것이 1.8 그린 함수를 고유함수 전개로 만드는 출발점이다.

e₁ e₂ 정의역의 격자 A Ae₁ Ae₂ 상의 격자 — 여전히 등간격 평행
그림 1.2-8. 선형 변환이 평면의 격자를 옮기는 모습. 정사각 격자가 평행사변형 격자가 되지만 직선성·평행성·등간격은 보존되고 원점은 움직이지 않는다. 격자 전체의 운명은 단위 정사각형 하나가 어디로 가는지로 완전히 결정된다.직접 작도

벡터공간 VV에서 WW로 가는 사상 TT가 모든 u,v\mathbf{u}, \mathbf{v}와 스칼라 a,ba, b에 대해

T(au+bv)=aT(u)+bT(v)T(a\mathbf{u} + b\mathbf{v}) = a\,T(\mathbf{u}) + b\,T(\mathbf{v})

를 만족하면 선형 변환이다. a=b=0a = b = 0을 넣으면 T(0)=0T(\mathbf{0}) = \mathbf{0}이 따라온다 — 원점이 반드시 고정된다.

예가 넓다는 것이 이 개념의 값어치다. 평면의 회전·반사·확대·전단, 어떤 부분공간 위로의 정사영, 다항식의 미분과 정적분, 수열의 시프트가 전부 선형 변환이다. 벡터 미적분의 미분 연산자 — 1.1.2기울기·발산·회전 — 도, 적분 — 1.1.5이중·삼중 적분 — 도 마찬가지이고, 그래서 전자기학의 방정식들이 겹침 원리를 따른다. 양자역학의 관측량이 선형 연산자인 것도 같은 구조다.

행렬 표현 — 기저를 정하면 행렬이 나온다

섹션 제목: “행렬 표현 — 기저를 정하면 행렬이 나온다”

VV의 기저 B=(b1,,bn)\mathcal{B} = (\mathbf{b}_1, \dots, \mathbf{b}_n)WW의 기저 C\mathcal{C}를 고정하면

A=[[Tb1]C[Tbn]C]A = \begin{bmatrix} [T\mathbf{b}_1]_{\mathcal{C}} & \cdots & [T\mathbf{b}_n]_{\mathcal{C}} \end{bmatrix}

TT의 행렬 표현이고, 모든 v\mathbf{v}에 대해 [Tv]C=A[v]B[T\mathbf{v}]_{\mathcal{C}} = A\,[\mathbf{v}]_{\mathcal{B}}가 성립한다. 유한 차원에서 선형 변환과 행렬은 (기저를 고정하면) 일대일로 대응한다.

Rn\mathbb{R}^n에서 표준기저를 쓰면 AAjj번째 열은 그냥 T(ej)T(\mathbf{e}_j)다. 회전 변환의 행렬을 외우지 않아도 되는 이유가 이것이다 — e1\mathbf{e}_1e2\mathbf{e}_2가 각각 어디로 가는지만 그려 보면 열이 그대로 나온다.

R(θ)=[cosθsinθsinθcosθ]R(\theta) = \begin{bmatrix} \cos\theta & -\sin\theta \\ \sin\theta & \cos\theta \end{bmatrix}

거꾸로 ej\mathbf{e}_j는 열을 뽑아내는 도구이기도 하다. AejA\mathbf{e}_jAAjj번째 열이고 eiTA\mathbf{e}_i^{\mathsf{T}}Aii번째 행이며, eiTAej=aij\mathbf{e}_i^{\mathsf{T}}A\,\mathbf{e}_j = a_{ij}다. 성분 하나를 “꺼내는” 이 표기가 다음 절의 출발점이다.

정규직교기저 {ϕμ}\{\phi_\mu\}에서 연산자 AA의 행렬 원소는

aνμ=ϕν,Aϕμ=ϕνAϕμa_{\nu\mu} = \langle \phi_\nu, A\phi_\mu\rangle = \langle \phi_\nu | A | \phi_\mu\rangle

이다. 그러면 ψ=μcμϕμ\psi = \sum_\mu c_\mu \phi_\mu에 대해 AψA\psi의 좌표가 정확히 행렬 곱으로 나온다.

Aψ=ν(μaνμcμ)ϕνb=AcA\psi = \sum_\nu \Big(\sum_\mu a_{\nu\mu}c_\mu\Big)\phi_\nu \qquad\Longleftrightarrow\qquad \mathbf{b} = A\,\mathbf{c}

디랙 표기로는 앞 절의 항등원 분해를 양쪽에 한 번씩 끼운 것이다.

A=IAI=νμϕνaνμϕμA = I\,A\,I = \sum_{\nu\mu} |\phi_\nu\rangle\,a_{\nu\mu}\,\langle\phi_\mu|

연산자는 행렬 원소의 모음으로 완전히 결정된다. 그래서 “무한 차원 연산자”라는 말이 “무한히 큰 행렬”과 같은 뜻이 되고, 실제 계산에서는 기저를 유한 개로 잘라 유한 행렬로 근사한다 — 양자역학 계산과 유한요소법이 공유하는 발상이다. 항등 연산자의 행렬 원소가 ϕνϕμ=δνμ\langle\phi_\nu|\phi_\mu\rangle = \delta_{\nu\mu}, 즉 단위행렬이라는 점도 확인해 두자.

AA수반 연산자 AA^{\dagger}는 모든 f,gf, g에 대해

f,Ag=Af,g\langle f, A g\rangle = \langle A^{\dagger} f, g\rangle

를 만족하는 연산자로 정의한다. 정규직교기저에서 양변의 행렬 원소를 비교하면

(A)νμ=aμν(A^{\dagger})_{\nu\mu} = \overline{a_{\mu\nu}}

이다 — 인덱스를 뒤집고 켤레를 취하는 것, 즉 1절의 켤레전치 행렬이다. 정의는 기저를 전혀 쓰지 않았는데 결과가 그 행렬로 떨어진다는 것이 요점이다. 그래서 1절의 이름들이 전부 연산자 언어로 올라간다 — A=AA = A^{\dagger}이면 에르미트(자체 수반), A=A1A^{\dagger} = A^{-1}이면 유니터리, 실수 유니터리이면 직교다.

kerT={vV:Tv=0},imT={Tv:vV}\ker T = \{\mathbf{v} \in V : T\mathbf{v} = \mathbf{0}\}, \qquad \operatorname{im} T = \{T\mathbf{v} : \mathbf{v} \in V\}

둘 다 부분공간이다(kerT\ker TVV의, imT\operatorname{im} TWW의). 그리고

  • TT단사(Tu=Tvu=vT\mathbf{u} = T\mathbf{v} \Rightarrow \mathbf{u} = \mathbf{v})     kerT={0}\iff \ker T = \{\mathbf{0}\}
  • TT전사     imT=W\iff \operatorname{im} T = W

단사 판정이 “모든 쌍을 비교”에서 “핵이 0뿐인지”로 바뀌는 것이 선형성이 주는 절약이다. 차이 TuTv=T(uv)T\mathbf{u} - T\mathbf{v} = T(\mathbf{u}-\mathbf{v})가 핵의 원소인지만 보면 되기 때문이다.

dimV=dimW=n\dim V = \dim W = n인 유한 차원에서만 단사와 전사가 서로를 함의한다. 무한 차원에서는 성립하지 않는다 — 수열을 한 칸 미는 시프트 연산자는 단사이면서 전사가 아니다.

T:UVT: U \to V의 행렬이 AA, S:VWS: V \to W의 행렬이 BB이면 STS \circ T의 행렬은 BABA다. TT가 가역이면 그 역변환의 행렬은 A1A^{-1}이고, 4절의 동치 조건 목록이 그대로 “TT가 동형사상일 조건”이 된다. 수반에 대해서도 순서가 뒤집힌다 — (ST)=TS(ST)^{\dagger} = T^{\dagger}S^{\dagger}이고, 이유는 정의를 두 번 적용하는 것뿐이다.

det Q = +1 — 회전 det Q = −1 — 반사 e₁ e₂ Q e₁ Q e₂ θ 손잡이 유지 반사선 e₁ e₂ Q e₁ Q e₂ Q r = r n Q n = −n 손잡이 뒤집힘
그림 1.2-9. 직교 변환의 두 종류. 왼쪽 det = +1에서는 두 기저가 각도와 길이를 유지한 채 함께 돌아가, e1에서 e2로 가는 회전 방향이 변환 뒤에도 반시계 그대로다. 오른쪽 det = −1에서는 반사선 위의 벡터 r이 제자리에 있고 그에 수직인 n은 부호가 뒤집히며, Qe1에서 Qe2로 가는 방향이 시계 방향으로 바뀐다 — 이 방향의 역전이 손잡이가 뒤집혔다는 말의 뜻이다.직접 작도

길이 보존을 식으로 쓰면 모든 x\mathbf{x}에 대해 Qx2=(Qx)T(Qx)=xTQTQx=xTx\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}이고, 이것이 모든 x\mathbf{x}에서 성립할 조건이 QTQ=IQ^{\mathsf{T}}Q = I다. 여기에 행렬식을 취하면

det(QTQ)=(detQ)2=1detQ=±1\det(Q^{\mathsf{T}}Q) = (\det Q)^2 = 1 \quad\Longrightarrow\quad \det Q = \pm 1

detQ=+1\det Q = +1이면 회전, 1-1이면 반사가 섞인 변환이다. 부피의 크기는 그대로이고 부호만 갈리는 것이니, 1절의 “행렬식은 부호 있는 부피 배율”이 그대로 읽힌다.

주어진 직교행렬이 무엇을 하는지는 움직이지 않는 방향을 찾아 알아낸다.

  • Qr=rQ\mathbf{r} = \mathbf{r} 을 푼다 → 3차원에서 detQ=+1\det Q = +1이면 회전축이 나온다.
  • Qr=rQ\mathbf{r} = -\mathbf{r} 을 푼다 → detQ=1\det Q = -1이면 반사면의 법선이 나온다.

예를 하나 보자. Q=[001100010]Q = \begin{bmatrix} 0&0&1\\ -1&0&0\\ 0&-1&0\end{bmatrix}detQ=1\det Q = 1이라 회전이다. Qr=rQ\mathbf{r} = \mathbf{r}을 풀면 r(1,1,1)\mathbf{r} \parallel (1,-1,1)이 나오고, QQe1e2e3e1\mathbf{e}_1 \to -\mathbf{e}_2 \to \mathbf{e}_3 \to \mathbf{e}_1로 축들을 돌리므로 Q3=IQ^3 = I — 그 축에 대한 120120^\circ 회전이다(부호는 축의 방향을 어느 쪽으로 잡느냐가 정한다). 고유값 문제를 정식으로 배우기 전에도 이 정도는 손으로 읽어 낼 수 있고, 사실 위 두 방정식이 이미 고유값 ±1\pm1에 대한 고유벡터 문제다(1.3).

능동 — 축 고정, 벡터가 돈다 수동 — 벡터 고정, 축이 돈다 x y r R = M r θ ‖R‖ = ‖r‖, 성분이 실제로 바뀐다 x y x′ y′ r θ 벡터는 그대로, 읽는 눈금이 바뀐다
그림 1.2-10. 같은 식의 두 해석. 왼쪽은 능동 변환 — 축은 그대로 두고 벡터를 θ만큼 돌린다. 오른쪽은 수동 변환 — 벡터는 그대로 두고 축을 θ만큼 돌려 성분을 다시 읽는다. 벡터를 +θ 돌리는 것과 축을 +θ 돌리는 것은 성분에 대해 서로 반대로 작용하므로 두 행렬은 서로 역이자 전치다.직접 작도

2차원에서 두 행렬을 나란히 적으면 차이가 한눈에 보인다.

[XY]=[cosθsinθsinθcosθ][xy]능동 — 벡터가 돈다[xy]=[cosθsinθsinθcosθ][xy]수동 — 축이 돈다\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{수동 — 축이 돈다}}

두 행렬은 서로 전치이자 역행렬이고, 각각 R(θ)R(\theta)R(θ)R(-\theta)다. 축을 반시계로 돌리면 벡터의 성분은 시계 방향으로 도는 것처럼 보인다 — 기차 안에서 창밖 풍경이 반대로 흐르는 것과 같은 일이다.

수동 변환은 기저 변환의 다른 이름이고, 그래서 다음 절로 곧바로 이어진다. 그리고 1.1.1스칼라장과 벡터장에서 “벡터란 좌표축을 회전시켰을 때 성분이 위치벡터와 같은 규칙으로 변하는 양”이라고 정의했던 것이 바로 수동 변환 쪽 이야기다 — 텐서의 정의(1.13)가 통째로 이 관점 위에 세워진다.

𝓑 좌표 [v]𝓑 ∈ ℝⁿ 𝓑 좌표 [T v]𝓑 𝓒 좌표 [v]𝓒 ∈ ℝⁿ 𝓒 좌표 [T v]𝓒 A B = P⁻¹ A P P P⁻¹ 같은 사상 T, 좌표만 다르다 — 어느 길로 돌아도 결과가 같다
그림 1.2-11. 닮음 변환의 교환 도식. 아래 경로(B로 한 번에)와 위 경로(P로 좌표를 바꾸고, A를 적용하고, 다시 되돌리기)의 결과가 같다. 그래서 B = P⁻¹AP이고, 이때 A와 B는 닮았다고 한다.직접 작도

두 기저 B\mathcal{B}, C\mathcal{C} 사이의 기저 변환 행렬 PP[v]B=P[v]C[\mathbf{v}]_{\mathcal{B}} = P\,[\mathbf{v}]_{\mathcal{C}}로 정의한다(PP의 열은 C\mathcal{C}의 기저 벡터들을 B\mathcal{B} 좌표로 적은 것이다). 같은 선형 변환의 두 행렬 표현 사이에는

B=P1APB = P^{-1} A P

가 성립하고, 이 관계에 있는 두 행렬을 닮았다고 한다. 닮음은 동치관계이고 다음 양들을 보존한다.

detB=detA,trB=trA,rankB=rankAdet(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}

증명이 전부 1절의 성질 한 줄씩이다. 행렬식은 곱의 성질로 det(P1AP)=det(P)1det(A)det(P)=detA\det(P^{-1}AP) = \det(P)^{-1}\det(A)\det(P) = \det A이고, 대각합은 순환 성질로 tr(P1AP)=tr(APP1)=trA\operatorname{tr}(P^{-1}AP) = \operatorname{tr}(APP^{-1}) = \operatorname{tr}A이며, 계수는 가역행렬을 곱해도 변하지 않는다는 사실에서 나온다. 마지막 것이 특성다항식이고 따라서 고유값도 보존된다. 좌표를 어떻게 고르든 살아남는 이 양들이 행렬이 아니라 사상의 성질이라는 뜻이다.

기저가 정규직교이고 PP가 유니터리이면 P1=PP^{-1} = P^{\dagger}이라 닮음이 B=PAPB = P^{\dagger}AP가 된다. 이때는 수반 관계도 함께 보존되어, 에르미트 행렬은 에르미트로, 유니터리는 유니터리로 남는다. 1.3이 “유니터리 닮음으로 대각화한다”를 목표로 삼는 이유가 이것이다 — 정규직교기저 사이를 옮겨 다니면 구조가 하나도 깨지지 않는다.


여기까지가 좌표를 고정한 채 할 수 있는 이야기다. 남은 질문은 하나다 — 어떤 좌표를 고르면 AA가 가장 단순해지는가. 만약 P1APP^{-1}AP가 대각행렬이 되도록 PP를 고를 수 있다면, 그 좌표에서 사상은 축마다 늘이거나 줄이는 일밖에 하지 않는다. 거듭제곱도, 지수함수도, 연립 미분방정식도 그 좌표에서는 스칼라 문제로 흩어진다. 그런 PP의 열이 무엇이어야 하는지, 언제 그런 PP가 존재하는지, 존재하지 않으면 어디까지 갈 수 있는지가 1.3 행렬 고유값 문제다.