선형대수(linear algebra)는 일차식만 다루는 대수학이다. 곱이나 제곱이 섞이지 않은 식만 본다는 뜻이니 얼핏 좁아 보이지만, 실제로는 반대다. 물리의 역학과 전자기, 통계의 회귀, 컴퓨터 그래픽스의 회전과 투영, 기계학습의 거의 모든 계산이 이 언어로 적힌다. 세상의 많은 문제가 "복잡하지만 국소적으로는 일차"이기 때문이다.
이 문서는 그것을 혼자 읽어 학사 과정 수준까지 도달하도록 다시 썼다. 원래 문서는 정의와 정리를 목록으로 적어 둔 필기였고 그림이 하나도 없었다. 선형대수는 그림 없이 읽히지 않는 과목이므로 그것이 이번 재작성의 가장 큰 이유다.
함수의 집합론적 정의(정의역·공역·치역, 단사·전사·전단사, 합성, 역함수) — 7장 선형변환이 이 어휘 위에 선다
연립방정식, 이차방정식의 근의 공식, 인수정리 — 3장과 8장
삼각비와 삼각함수, 코사인법칙 — 5장의 내적과 7장의 회전
복소수와 극형식 — 8장의 복소 고유값
시그마 기호와 적분 — 9장의 함수 공간 내적에서 한 번
미적분은 거의 필요하지 않다. 9장에서 함수의 내적을 정의할 때 정적분을 한 번 쓰는 것이 전부다.
이 문서가 지키려는 약속
어떤 기호도 정의하기 전에 쓰지 않는다. 처음 나오는 자리에서 이름·뜻·읽는 법을 함께 밝힌다.
모든 계산에 "이것이 기하적으로 무엇을 하는가"를 붙인다. 행 연산만 늘어놓으면 원래 문서와 다를 바 없다.
예제 풀이는 답에 이르는 계산만 적지 않는다. 무엇을 묻는지, 무엇을 아는지, 왜 그 방법을 고르는지부터 적는다.
수치 예제는 손으로 검산되는 크기(2×2, 3×3)로 유지한다. 계산이 지저분해지면 독자는 개념이 아니라 산수를 따라가게 된다.
권장 순서와 장별 난이도
아래 순서가 표준이다. 3장에서 10장까지 개념이 한 줄로 쌓이므로 건너뛰지 않는 편이 좋다.
장
주제
난이도
예상 시간
앞에 필요한 장
3
연립일차방정식과 행렬
★★
6시간
-
4
행렬식
★★
4시간
3
5
벡터와 유클리드 공간
★★
5시간
3
6
일반 벡터공간
★★★
7시간
3, 4, 5
7
선형변환
★★★
6시간
6
8
고유값과 고유벡터
★★★
7시간
4, 6, 7
9
내적공간과 직교성
★★★
7시간
5, 6
10
특이값 분해와 응용
★★★★
6시간
8, 9
총 48시간 남짓이다. 하루 2시간이면 한 달이 채 안 되는 분량이다.
어디가 걸리는지 미리 알려 둔다. 6장에서 ℝ𝑛 을 떠나 공리로 올라가는 대목과 10장의 특이값 분해다. 앞의 것은 갑자기 추상적으로 느껴져서 걸리고, 뒤의 것은 앞의 여러 장을 한꺼번에 쓰기 때문에 걸린다. 6장에서 막히면 "다항식과 함수도 벡터처럼 더하고 늘일 수 있다"는 예로 돌아가면 풀린다.
7장 선형변환은 원래 문서에 아예 없던 장이다. 그것이 없으면 6장의 기저 변환과 8장의 닮음이 왜 필요한지 알 수 없다. 이 문서의 허리이므로 건너뛰지 말 것.
이 문서의 표기 규약
행렬은 대문자 𝐴,𝐵,𝑃, 벡터는 굵은 소문자 𝐮,𝐯,𝐱 로 쓴다. 스칼라는 보통 소문자 𝑎,𝑘,𝜆 다.
벡터는 특별한 말이 없으면 열벡터다. 𝐱=(𝑥1,𝑥2,𝑥3) 처럼 가로로 적어도 계산에서는 세로로 세운다.
행렬 성분은 𝑎𝑖𝑗 로 쓰고 행 번호를 먼저 적는다.
전치는 𝐴𝑇, 역행렬은 𝐴−1, 단위행렬은 𝐼𝑛 이다.
스칼라는 실수로 본다. 복소수가 필요한 자리는 8장에서 명시한다.
이 문서는 rank 를 랭크로 적는다. '계수'는 일차식의 계수(coefficient)에 이미 쓰고 있어 겹치기 때문이다.
선형대수는 연립일차방정식에서 시작한다. 늘 그렇게 시작하는 데는 이유가 있다. 공학과 자연과학에서 만나는 문제 가운데 놀랄 만큼 많은 것이 '여러 개의 일차식이 동시에 성립하는 상태를 찾아라'라는 모양으로 정리되고, 그 모양을 다루는 도구를 만들다 보면 행렬·벡터·고유값이 차례로 필요해지기 때문이다. 이 문서가 앞으로 세우는 모든 개념의 뿌리가 여기 있다.
이 장에서 답할 질문은 셋이다. 연립방정식의 답은 몇 개일 수 있는가, 답을 기계적으로 구하는 절차는 무엇인가, 그리고 그 절차를 왜 행렬이라는 새 기호로 적는가.
앞에서 가져오는 것은 기초수학의 연립방정식과 좌표평면 위의 직선, 그리고 시그마 기호 ∑ 정도다. 행렬과 벡터 표기는 기초수학에 없었으므로 이 장에서 처음부터 만든다.
일차방정식과 해가 놓이는 모양
𝑥1,𝑥2,…,𝑥𝑛 에 대한 일차방정식(linear equation)이란
𝑎1𝑥1+𝑎2𝑥2+⋯+𝑎𝑛𝑥𝑛=𝑏
꼴로 적히는 식이다. 미지수끼리 곱하지 않고(𝑥1𝑥2 금지), 제곱하지 않고(𝑥21 금지), 미지수가 함수 안에 들어가지도 않는다(sin𝑥1 금지). 𝑎𝑖 를 계수, 𝑏 를 상수항이라 한다. 이런 방정식 여러 개를 한꺼번에 만족시키는 값을 찾는 것이 연립일차방정식(system of linear equations)이고, 그런 값들의 모임을 해집합이라 한다.
미지수가 둘이면 일차방정식 하나는 좌표평면 위의 직선 하나다. 그러면 연립방정식을 푸는 일은 직선들의 공통점을 찾는 일이 된다. 그리고 두 직선이 놓일 수 있는 방법은 세 가지밖에 없다.
<한 점에서 만나거나, 나란해서 만나지 않거나, 아예 겹치거나 셋뿐이다. 답이 ‘정확히 두 개’인 연립일차방정식은 존재할 수 없다는 것이 이 그림의 요점이다>[원본 보기]
답이 정확히 둘인 경우가 없다는 것은 우연이 아니다. 서로 다른 두 점을 지나는 직선은 하나뿐이므로, 두 직선이 두 점을 공유하면 그 순간 같은 직선이 되어 공유점이 무한히 많아진다. 연립일차방정식의 해는 없거나, 하나거나, 무수히 많거나 셋 중 하나다. 이 사실은 미지수가 몇 개든, 방정식이 몇 개든 그대로 성립한다.
미지수가 셋이면 일차방정식 하나가 평면 하나가 된다. 상황이 조금 복잡해지지만 결론은 같다.
<세 평면이 한 점에서 만나면 해가 하나, 한 직선을 공유하면 그 직선 위의 점이 모두 해가 되어 무수히 많고, 공통점이 없으면 해가 없다. 오른쪽처럼 두 평면이 나란하면 세 번째 평면이 아무리 가로질러도 셋 모두를 지나는 점은 생기지 않는다>[원본 보기]
예제 1
다음 세 연립방정식은 각각 해가 몇 개인가. 계산으로 풀지 말고 두 직선의 배치로 답하라.
(1)𝑦=−2𝑥+5 와 𝑦=𝑥−1 이므로 기울기가 −2 와 1 로 다르다. 기울기가 다른 두 직선은 반드시 한 점에서 만난다. 해가 하나. 실제로 (2,1) 이다(2⋅2+1=5, 2−1=1).
(2) 둘째 식의 양변을 2로 나누면 2𝑥+𝑦=3.5 다. 첫 식은 2𝑥+𝑦=5 이니 같은 값이 5도 되고 3.5도 되어야 한다는 말이 된다. 그런 (𝑥,𝑦) 는 없다. 기울기가 같고 지나는 자리가 다른 두 직선, 곧 나란한 직선이다. 해가 없다.
(3) 둘째 식은 첫 식의 양변에 2를 곱한 것이다. 두 식이 같은 직선을 나타내므로 그 직선 위의 모든 점이 해다. 해가 무수히 많다.
여기서 눈여겨볼 것은 (2)와 (3)의 차이가 상수항 하나라는 점이다. 왼쪽 변이 비례하면 오른쪽 변도 같은 비율이어야 하고, 아니면 모순이 된다. 뒤에서 소거법을 돌릴 때 이 모순은 0=1 이라는 행으로 나타난다.
예제 2
𝑥+2𝑦=3, 3𝑥+𝑘𝑦=9 가 (1) 해가 하나, (2) 해가 무수히 많은 경우가 되도록 𝑘 를 정하라. 해가 없는 𝑘 도 있는가?
풀이 보기
둘째 식이 첫 식의 상수배가 되는 순간이 갈림길이다. 왼쪽 변에서 𝑥 의 계수가 1에서 3으로, 곧 3배가 되었으므로 𝑦 의 계수도 3배여야 한다. 즉 𝑘=6.
𝑘=6 일 때 둘째 식은 3𝑥+6𝑦=9 인데, 이것은 첫 식의 양변에 3을 곱한 것과 완전히 같다(오른쪽도 3×3=9 로 맞는다). 두 식이 같은 직선이므로 해가 무수히 많다.
𝑘≠6 이면 기울기가 달라 해가 하나다.
해가 없으려면 왼쪽 변은 비례하는데 오른쪽 변이 그 비율을 어겨야 한다. 그런데 오른쪽 변은 이미 3 과 9 로 정확히 3배다. 그러니 해가 없는 𝑘 는 없다. 상수항이 미리 짜여 있어 모순이 생길 여지가 사라진 것이다.
첨가행렬 — 기호를 걷어낸다
연립방정식을 손으로 풀 때 실제로 계산에 쓰이는 것은 계수와 상수항뿐이다. 𝑥 니 𝑦 니 하는 글자와 +, = 는 자리를 표시할 뿐 값이 없다. 그렇다면 자리만 지키고 글자는 지워 버리면 된다. 그 지운 결과가 행렬이다.
행렬(matrix)은 수를 직사각형으로 늘어놓은 것이다. 가로줄을 행(row), 세로줄을 열(column)이라 하고, 행이 𝑚 개 열이 𝑛 개면 𝑚×𝑛 행렬이라 부른다(행 먼저, 열 나중이다). 𝑖 행 𝑗 열에 있는 수를 𝑎𝑖𝑗 로 적고 성분 또는 원소라 한다. 아래첨자도 행 먼저다.
굵은 소문자 𝐛 는 수를 한 줄로 세운 것, 곧 𝑚×1 행렬을 뜻한다. 이것을 열벡터라 하고 5장에서 제대로 다룬다. 지금은 '세로로 세운 수의 나열'로만 읽어도 된다. 미지수도 같은 방식으로 세워 𝐱 라 쓰면, 연립방정식 전체를 𝐴𝐱=𝐛 라는 한 줄로 적을 수 있다. 이 표기가 왜 정당한지는 곱을 정의한 뒤에 확인한다.
예제 3
다음 연립방정식의 계수행렬과 첨가행렬을 적어라. 미지수의 순서는 𝑥,𝑦,𝑧 로 한다.
2𝑥+𝑦−𝑧=3,𝑥−𝑦+2𝑧=1,3𝑥+2𝑦=10
풀이 보기
조심할 것은 빠진 항의 자리를 0으로 채우는 일이다. 셋째 식에 𝑧 가 없다고 해서 그 자리를 비워 두면 열이 어긋난다.
확인하는 방법이 있다. 첫째 열은 언제나 𝑥 의 계수만 모인 열이어야 한다. 위에서 첫째 열이 2,1,3 인데 세 식의 𝑥 계수가 그대로 2, 1, 3이다. 나머지 열도 같은 식으로 훑어보면 된다.
미지수의 순서를 바꾸면 열의 순서가 바뀐다. 그래서 순서를 한 번 정하면 끝까지 지켜야 한다. 이것이 첨가행렬을 쓸 때 가장 흔한 실수의 원인이다.
예제 4
다음 첨가행렬이 나타내는 연립방정식을 미지수 𝑥,𝑦,𝑧 로 복원하라. 그리고 같은 행렬을 미지수 순서를 𝑧,𝑦,𝑥 로 정해 읽으면 어떤 연립방정식이 되는지도 적어라.
[𝐴∣𝐛]=⎡⎢
⎢
⎢⎣10−25031−14−100⎤⎥
⎥
⎥⎦
풀이 보기
복원은 첨가행렬을 만드는 절차를 거꾸로 밟는 것이다. 행 하나가 방정식 하나이고, 열 하나가 미지수 하나이며, 세로선 오른쪽이 상수항이다.
1행의 계수는 1,0,−2 이고 상수항이 5이므로 𝑥−2𝑧=5 다. 계수가 0인 항은 적지 않는다. 같은 식으로 2행은 3𝑦+𝑧=−1, 3행은 4𝑥−𝑦=0 이다.
𝑥−2𝑧=5,3𝑦+𝑧=−1,4𝑥−𝑦=0
순서를 바꿔 읽으면. 이번에는 첫째 열이 𝑧, 둘째 열이 𝑦, 셋째 열이 𝑥 의 계수다. 자리를 그대로 옮겨 적으면
𝑧−2𝑥=5,3𝑦+𝑥=−1,4𝑧−𝑦=0
이다. 같은 수 배열이 전혀 다른 연립방정식이 되었다.
답이 말이 되는가. 둘째 결과에서 미지수별로 계수를 다시 열로 모아 보면 𝑧 열이 (1,0,4), 𝑦 열이 (0,3,−1), 𝑥 열이 (−2,1,0) 으로 원래 행렬의 세 열 그대로다 ✓.
앞 예제가 '순서를 한 번 정하면 끝까지 지켜야 한다'고 한 말의 뜻이 여기서 보인다. 첨가행렬은 미지수의 이름을 기억하지 않는다. 이름표는 사람이 따로 들고 있어야 하고, 그것을 놓치면 계산이 전부 맞아도 답이 틀린다.
기본 행연산과 가우스 소거법
연립방정식을 풀 때 우리가 실제로 하는 조작은 셋뿐이다.
한 방정식의 양변에 0이 아닌 수를 곱한다
두 방정식의 자리를 바꾼다
한 방정식의 상수배를 다른 방정식에 더한다
이 셋은 해집합을 바꾸지 않는다. 이유는 셋 모두 되돌릴 수 있기 때문이다. 𝑘 배 한 것은 1/𝑘 배로, 자리를 바꾼 것은 다시 바꿔서, 𝑘 배를 더한 것은 𝑘 배를 빼서 원래대로 돌아간다. 되돌릴 수 있다는 것은 조작 전의 해와 조작 후의 해가 정확히 같은 것들이라는 뜻이다. 1번에서 𝑘≠0 을 요구하는 이유도 여기 있다. 0을 곱하면 그 식이 0=0 이 되어 정보가 사라지고, 되돌릴 방법이 없어진다.
첨가행렬에 대해 같은 조작을 적으면 기본 행연산(elementary row operation)이 된다. 표기는 다음과 같이 쓴다.
연산
표기
되돌리는 연산
i 행에 0이 아닌 k 를 곱한다
𝑅𝑖←𝑘𝑅𝑖
𝑅𝑖←(1/𝑘)𝑅𝑖
i 행과 j 행을 바꾼다
𝑅𝑖↔𝑅𝑗
같은 연산을 한 번 더
j 행의 k 배를 i 행에 더한다
𝑅𝑖←𝑅𝑖+𝑘𝑅𝑗
𝑅𝑖←𝑅𝑖−𝑘𝑅𝑗
두 행렬이 기본 행연산을 거듭해 서로 옮겨 갈 수 있으면 행동치(row equivalent)라 한다. 행동치인 두 첨가행렬은 같은 해집합을 갖는다.
그러면 목표가 분명해진다. 해가 눈에 보일 때까지 행연산으로 단순하게 만든다. 기하로 보면 이렇다.
<초록 점이 한 번도 움직이지 않았다는 것이 요점이다. 소거법은 답을 옮기는 것이 아니라, 같은 답을 지나는 더 읽기 쉬운 직선쌍을 찾아가는 절차다>[원본 보기]
어디까지 단순하게 만들 것인가를 정해 두어야 절차가 끝난다. 두 가지 기준이 있다.
행사다리꼴(row echelon form, REF) — 다음 두 조건을 만족하는 행렬이다.
성분이 전부 0인 행이 있다면 맨 아래에 모여 있다
0이 아닌 행에서 왼쪽 끝의 0이 아닌 성분(선행성분)은, 바로 위 행의 선행성분보다 오른쪽에 있다
기약 행사다리꼴(reduced row echelon form, RREF) — 행사다리꼴이면서 (3) 모든 선행성분이 1이고 (4) 선행성분이 있는 열에서 그 1을 뺀 나머지가 전부 0인 행렬이다.
선행성분이 자리 잡는 위치를 축(pivot)이라 하고, 축이 있는 열을 축열이라 한다. 어떤 행렬을 어떤 순서로 소거하더라도 축의 위치는 언제나 같고, 기약 행사다리꼴은 단 하나뿐이다. 이 사실 덕분에 '축의 개수'가 그 행렬만의 성질이 된다.
<별표 자리에는 어떤 수가 와도 좋다. 계단이 내려가는 자리가 축이고, 계단 아래는 반드시 0이다. 기약 행사다리꼴까지 가면 축이 있는 열은 1 하나와 0들만 남는다>[원본 보기]
행사다리꼴까지만 만들고 아래에서 위로 대입해 올라가는 방법을 가우스 소거법(Gaussian elimination), 기약 행사다리꼴까지 밀어붙여 대입 없이 답을 읽는 방법을 가우스-조던 소거법(Gauss-Jordan elimination)이라 한다. 손으로 풀 때는 앞엣것이 대개 빠르다.
예제 5
가우스 소거법으로 풀어라. 𝑥+2𝑦+3𝑧=9, 2𝑥−𝑦+𝑧=8, 3𝑥−𝑧=3.
풀이 보기
첨가행렬을 적는다. 셋째 식에 𝑦 가 없으니 그 자리는 0이다.
⎡⎢
⎢
⎢⎣12392−11830−13⎤⎥
⎥
⎥⎦
첫째 열부터 비운다. 1행의 선행성분이 1이라 계산이 편하다. 𝑅2←𝑅2−2𝑅1, 𝑅3←𝑅3−3𝑅1.
⎡⎢
⎢
⎢⎣12390−5−5−100−6−10−24⎤⎥
⎥
⎥⎦
2행과 3행을 각각 −5, −2 로 나눠 수를 작게 만든다. 𝑅2←−15𝑅2, 𝑅3←−12𝑅3.
⎡⎢
⎢
⎢⎣1239011203512⎤⎥
⎥
⎥⎦
둘째 열을 비운다.𝑅3←𝑅3−3𝑅2.
⎡⎢
⎢
⎢⎣123901120026⎤⎥
⎥
⎥⎦
행사다리꼴이 되었다. 이제 아래에서 위로 올라간다. 셋째 행은 2𝑧=6 이니 𝑧=3. 둘째 행은 𝑦+𝑧=2 이니 𝑦=−1. 첫째 행은 𝑥+2(−1)+3(3)=9 이니 𝑥=2.
답은 (𝑥,𝑦,𝑧)=(2,−1,3) 이다.
검산은 원래 식에 넣어서 한다. 소거 중간 결과에 넣으면 계산 실수를 그대로 물려받는다. 2+2(−1)+3(3)=9 ✓, 2(2)−(−1)+3=8 ✓, 3(2)−3=3 ✓.
기하로는 세 평면이 점 (2,−1,3) 하나에서 만난 것이다. 축이 세 열 모두에 있었다는 것이 '해가 하나'의 신호다.
예제 6
다음을 가우스 소거법으로 풀어라. 2𝑦+3𝑧=8, 𝑥+2𝑦+𝑧=5, 2𝑥+𝑦−𝑧=1.
풀이 보기
첨가행렬을 적는다. 첫 식에 𝑥 가 없으므로 1행 1열이 0이다.
⎡⎢
⎢
⎢⎣0238121521−11⎤⎥
⎥
⎥⎦
여기서 곧바로 막힌다. 소거는 1행 1열의 성분으로 아래를 지우는 절차인데, 그 자리가 0이면 몇 배를 해서 더해도 아래가 지워지지 않는다. 축이 될 자리에 0이 놓인 것이다. 이때 필요한 것이 행 교환이고, 기본 행연산 셋 중 둘째가 있는 이유가 이것이다.
1열에 0이 아닌 성분을 가진 행을 위로 올린다. 𝑅1↔𝑅2.
⎡⎢
⎢
⎢⎣1215023821−11⎤⎥
⎥
⎥⎦
첫째 열을 비운다. 2행은 이미 0이니 3행만 손대면 된다. 𝑅3←𝑅3−2𝑅1.
⎡⎢
⎢
⎢⎣121502380−3−3−9⎤⎥
⎥
⎥⎦
3행이 전부 −3 의 배수다. 𝑅3←−13𝑅3 으로 줄이면 3행이 (0,1,1∣3) 이 되는데, 그러면 2행의 축 2보다 3행의 1이 다루기 편하다. 한 번 더 바꾼다. 𝑅2↔𝑅3.
⎡⎢
⎢
⎢⎣121501130238⎤⎥
⎥
⎥⎦
두 번의 교환은 성격이 다르다. 앞엣것은 필수이고 뒤엣것은 선택이다. 축이 0이면 바꾸지 않고는 진행이 안 되지만, 뒤엣것은 하지 않아도 답이 같고 다만 분수가 생긴다. 수치계산에서 부분 피벗팅(partial pivoting)이라 부르는 것이 뒤엣것을 규칙으로 만든 것이다.
둘째 열을 비운다.𝑅3←𝑅3−2𝑅2.
⎡⎢
⎢
⎢⎣121501130012⎤⎥
⎥
⎥⎦
행사다리꼴이다. 아래에서 위로 올라간다. 𝑧=2, 𝑦+2=3 이니 𝑦=1, 𝑥+2(1)+2=5 이니 𝑥=1.
답은 (𝑥,𝑦,𝑧)=(1,1,2) 다.
검산은 원래 식에 넣는다. 2(1)+3(2)=8 ✓, 1+2(1)+2=5 ✓, 2(1)+1−2=1 ✓.
규칙 하나를 챙겨 간다. 축 자리에 0이 나오면 아래에서 0이 아닌 행을 끌어올린다. 그런 행이 하나도 없으면 그 열에는 축이 없는 것이고, 같은 행에 머문 채 다음 열로 넘어간다. 이 규칙 덕에 소거법은 어떤 행렬에서도 멈추지 않는다. 그리고 행 교환이 필요했다는 사실은 뒤의 LU 분해에서 𝑃𝐴=𝐿𝑈 의 𝑃 로 남는다.
크기가 커질 때 무엇이 늘어나는지 세어 두면 좋다. 𝑛 개 열을 차례로 비우는 데 드는 곱셈이 대략 𝑛3/3 번이다. 𝑛=4 이면 스무 번 남짓이고 𝑛=100 이면 33만 번쯤인데, 다음 장에서 볼 여인자 전개의 𝑛! 에 비하면 비교가 되지 않을 만큼 적다. 큰 연립방정식을 실제로 푸는 방법은 언제나 소거법인 이유가 이 셈에 있다.
기약 행사다리꼴에서 해를 읽는다
소거를 끝냈으면 답의 개수는 보기만 하면 나온다. 확인할 것은 두 가지뿐이다.
<왼쪽에서 오른쪽으로 두 번만 물으면 세 경우가 갈린다. 첫 물음은 모순이 있는가를, 둘째 물음은 자유롭게 정할 수 있는 미지수가 남았는가를 묻는다>[원본 보기]
첫째, 맨 오른쪽 열(상수 열)에 축이 있으면 0𝑥1+⋯+0𝑥𝑛=1 이라는 행이 있다는 뜻이고, 이는 0=1 이므로 해가 없다. 이런 연립방정식을 불능이라 한다.
둘째, 그런 행이 없다면 해는 반드시 있다. 이때 축이 없는 열에 대응하는 미지수를 자유변수(free variable)라 하고, 축열에 대응하는 미지수를 선도변수라 한다. 자유변수는 아무 값이나 골라도 되고, 그 값을 정하면 선도변수가 따라서 정해진다. 그러니 자유변수가 하나도 없으면 해가 하나, 하나라도 있으면 해가 무수히 많다.
예제 8
다음을 풀고 해집합을 매개변수로 나타내라. 𝑥+𝑦+2𝑧=4, 2𝑥+3𝑦+5𝑧=11, 𝑥+2𝑦+3𝑧=7.
상수항 하나를 1만큼 옮겼을 뿐인데 무수히 많던 해가 통째로 사라졌다. 기하로 보면 한 직선을 공유하던 세 평면 중 하나가 나란히 밀려나, 세 평면을 동시에 지나는 점이 없어진 것이다.
왼쪽 변만 보고 해의 개수를 말할 수 없다는 것이 이 예제의 교훈이다. 왼쪽 변은 '해가 하나인가 아닌가'를 정하고, 상수항은 '아예 없는가 무수히 많은가'를 정한다.
동차연립일차방정식
상수항이 전부 0인 연립방정식 𝐴𝐱=𝟎 을 동차연립일차방정식(homogeneous system)이라 한다. 이 경우는 특별히 다룰 만한 이유가 있다.
첫째, 해가 없는 경우가 없다. 모든 미지수를 0으로 두면 언제나 성립하기 때문이다. 이 해 𝐱=𝟎 을 자명해(trivial solution)라 한다. 소거를 해도 상수 열이 계속 0이라 0=1 꼴이 나올 수 없다. 그래서 동차연립방정식의 답은 자명해뿐이거나 무수히 많거나 둘 중 하나다.
둘째, 미지수가 방정식보다 많으면 자명하지 않은 해가 반드시 있다. 축은 행마다 많아야 하나씩 생기므로 축의 개수는 방정식의 개수를 넘지 못한다. 미지수가 그보다 많으면 축이 없는 열, 곧 자유변수가 반드시 남는다.
예제 10
𝑥+2𝑦+3𝑧=0, 2𝑥+5𝑦+4𝑧=0 의 해를 모두 구하라.
풀이 보기
미지수 셋에 방정식 둘이므로 위 성질에 따라 자명하지 않은 해가 반드시 있다. 상수 열이 계속 0이니 계수행렬만 소거해도 된다.
축이 1열과 2열에 있으므로 𝑧 가 자유변수다. 𝑧=𝑡 로 두면 𝑥=−7𝑡, 𝑦=2𝑡 다.
(𝑥,𝑦,𝑧)=𝑡(−7,2,1)
해집합이 원점을 지나는 직선이다. 동차연립방정식의 해집합이 언제나 원점을 지나는 것은 자명해가 늘 들어 있기 때문이고, 이 성질이 6장에서 '영공간'이라는 이름을 얻는다.
검산. 𝑡=1 일 때 (−7,2,1) 이고 −7+4+3=0 ✓, −14+10+4=0 ✓.
행렬의 연산
행렬을 기록 수단으로만 쓸 것이라면 여기서 멈춰도 된다. 그러나 행렬끼리 더하고 곱할 수 있게 만들면, 연립방정식을 하나의 방정식처럼 다룰 수 있게 된다. 그것이 이 절의 목적이다.
합, 스칼라배, 전치
합과 스칼라배는 짐작한 대로다. 크기가 같은 두 행렬은 같은 자리끼리 더하고, 수를 곱할 때는 모든 성분에 곱한다. 크기가 다르면 합을 정의하지 않는다.
(𝐴+𝐵)𝑖𝑗=𝑎𝑖𝑗+𝑏𝑖𝑗,(𝑘𝐴)𝑖𝑗=𝑘𝑎𝑖𝑗
전치(transpose)는 행과 열을 맞바꾼 것이고 𝐴𝑇 로 적는다. 𝑚×𝑛 행렬의 전치는 𝑛×𝑚 행렬이다.
(𝐴𝑇)𝑖𝑗=𝑎𝑗𝑖
대각선을 축으로 접었다고 보면 된다. 두 번 접으면 제자리이므로 (𝐴𝑇)𝑇=𝐴 다.
곱은 왜 그렇게 정의되는가
행렬 곱의 정의는 처음 보면 뜬금없다. 왜 같은 자리끼리 곱하지 않고 '앞 행렬의 행과 뒤 행렬의 열을 짝지어 곱해 더하는가.' 답은 행렬이 변환이기 때문이다.
먼저 행렬과 벡터의 곱부터 본다. 𝐴 가 𝑚×𝑛 이고 𝐱 가 𝑛×1 일 때
𝐴𝐱=[𝑎11𝑎12𝑎21𝑎22][𝑥1𝑥2]=𝑥1[𝑎11𝑎21]+𝑥2[𝑎12𝑎22]
로 정의한다. 즉 𝐴𝐱 는 𝐴 의 열들에 𝐱 의 성분을 각각 곱해 더한 것이다. 여러 벡터에 수를 곱해 더한 것을 일차결합(linear combination)이라 하는데, 6장에서 본격적으로 다룰 이름이다. 이렇게 정의하면 앞에서 약속했던 𝐴𝐱=𝐛 가 정확히 원래 연립방정식이 된다. 직접 풀어 보면 𝑖 번째 성분이 𝑎𝑖1𝑥1+⋯+𝑎𝑖𝑛𝑥𝑛 이기 때문이다.
이제 𝐴 를 '벡터를 넣으면 벡터가 나오는 장치'로 볼 수 있다. 그러면 자연스러운 물음이 생긴다. 장치를 두 번 통과시키면 어떻게 되는가. 먼저 𝐵 를 거치고 다음에 𝐴 를 거친 결과 𝐴(𝐵𝐱) 를 한 번에 내주는 행렬이 있다면, 그것을 𝐴𝐵 라 부르는 것이 옳다.
<단위 정사각형을 B 로 보내고 다시 A 로 보낸 결과가, 처음부터 AB 로 보낸 결과와 같다. AB 의 각 열이 A 에 B 의 그 열을 곱한 것이라는 사실이 곱셈 규칙의 정체다>[원본 보기]
그림에서 읽을 것은 이것이다. 𝐵 의 열들은 𝐞1,𝐞2 가 𝐵 를 통과한 결과이고, 거기에 다시 𝐴 를 먹이면 𝐴𝐵 의 열이 나온다. 그러니
𝐴𝐵의𝑗번째열=𝐴×(𝐵의𝑗번째열)
이고, 이것을 성분으로 풀어 쓰면 익히 아는 규칙이 된다.
(𝐴𝐵)𝑖𝑗=∑𝑛𝑘=1𝑎𝑖𝑘𝑏𝑘𝑗
곧 𝐴 의 𝑖 행과 𝐵 의 𝑗 열을 앞에서부터 짝지어 곱해 더한 값이다. 짝이 맞으려면 𝐴 의 열 수와 𝐵 의 행 수가 같아야 한다. (𝑚×𝑛)(𝑛×𝑝)=(𝑚×𝑝) 라고 외워도 좋지만, 가운데 두 수가 같아야 하고 그 둘이 사라진다고 기억하는 편이 쓸모 있다.
곱셈의 항등원은 대각선이 1이고 나머지가 0인 단위행렬𝐼𝑛 이다. 모든 𝑛×𝑛 행렬 𝐴 에 대해 𝐴𝐼=𝐼𝐴=𝐴 다.
예제 11
𝐴=[2113], 𝐱=[12] 에 대해 𝐴𝐱 를 두 가지 방법으로 구하고, 𝐵=[0−121] 에 대해 (𝐴𝐵)𝑇=𝐵𝑇𝐴𝑇 를 확인하라.
풀이 보기
열의 일차결합으로.𝐱 의 성분 1과 2를 𝐴 의 두 열에 각각 곱해 더한다.
𝐴𝐱=1[21]+2[13]=[21]+[26]=[47]
행과 열의 곱으로. 1행 (2,1) 과 (1,2) 의 곱은 2+2=4, 2행 (1,3) 과의 곱은 1+6=7. 같은 답이 나왔다. 두 방법은 같은 계산을 다른 순서로 훑은 것뿐이다.
이제 전치를 확인한다. 먼저 곱을 구한다.
𝐴𝐵=[2113][0−121]=[0+2−2+10+6−1+3]=[2−162]
따라서 (𝐴𝐵)𝑇=[26−12] 다. 반대쪽을 계산하면
𝐵𝑇𝐴𝑇=[02−11][2113]=[0+20+6−2+1−1+3]=[26−12]
같다. 순서가 뒤집힌다는 것이 이 공식의 요점이고, 옷을 벗을 때 겉옷을 먼저 벗는 것과 같은 이치다. 𝐴𝑇𝐵𝑇 로 적으면 크기부터 맞지 않는 경우가 많다.
결합법칙은 성립하고 교환법칙은 성립하지 않는다
행렬 곱은 수의 곱과 닮았지만 결정적으로 하나가 다르다. 여기서 넘어가면 뒤에서 계속 틀린다.
먼저 성립하는 것부터. 결합법칙 (𝐴𝐵)𝐶=𝐴(𝐵𝐶) 는 성립한다. 이유는 그림 없이도 보인다. 두 쪽 다 '𝐶 를 거치고 𝐵 를 거치고 𝐴 를 거친다'는 같은 절차를 뜻하기 때문이다. 괄호는 어느 두 단계를 먼저 묶어 계산하느냐를 말할 뿐, 순서를 바꾸지 않는다. 분배법칙 𝐴(𝐵+𝐶)=𝐴𝐵+𝐴𝐶 도 성립한다.
성립하지 않는 것은 교환법칙이다. 𝐴𝐵 와 𝐵𝐴 는 일반적으로 다르다.
<반사를 먼저 하고 회전한 것과, 회전을 먼저 하고 반사한 것은 서로 다른 도형을 준다. 두 결과 모두 반사이지만 축이 다르다. 행렬 곱에서 순서는 지울 수 없는 정보다>[원본 보기]
예제 12
𝐴=[0−110](원점을 중심으로 한 90° 회전), 𝐵=[100−1](𝑥 축에 대한 반사)에 대해 𝐴𝐵 와 𝐵𝐴 를 구하고 비교하라.
두 결과가 다르다. 부호만 다른 것이 아니라 서로 다른 변환이다. 𝐴𝐵 는 (𝑥,𝑦) 를 (𝑦,𝑥) 로 보내니 직선 𝑦=𝑥 에 대한 반사이고, 𝐵𝐴 는 (−𝑦,−𝑥) 로 보내니 직선 𝑦=−𝑥 에 대한 반사다.
한 점으로 확인해 보자. (1,0) 을 넣으면 𝐴𝐵 는 (0,1) 을, 𝐵𝐴 는 (0,−1) 을 준다. 정반대다.
왜 그런가.𝐴𝐵 는 '반사한 다음 회전'이고 𝐵𝐴 는 '회전한 다음 반사'다. 옷을 입는 순서와 같아서, 순서를 바꾸면 다른 결과가 나오는 것이 오히려 자연스럽다. 수의 곱에서 교환법칙이 성립하는 쪽이 특별한 경우다.
함께 기억할 것이 둘 더 있다. 𝐴𝐵=𝑂(영행렬)인데 𝐴 도 𝐵 도 영행렬이 아닌 경우가 있고([1000][0001]=𝑂), 따라서 𝐴𝐶=𝐵𝐶 라고 해서 𝐴=𝐵 라 결론지을 수도 없다. 양변을 행렬로 나눈다는 조작은 없다. 그 대신 쓰는 것이 다음 절의 역행렬이다.
역행렬
수 𝑎≠0 에 대해 𝑎𝑥=𝑏 를 풀 때 우리는 양변에 1/𝑎 를 곱한다. 행렬에서도 같은 것을 하고 싶다. 𝐴𝐱=𝐛 의 양변 왼쪽에 무언가를 곱해 𝐱 만 남기는 것이다.
정사각행렬 𝐴 에 대해 𝐴𝐵=𝐵𝐴=𝐼 를 만족하는 𝐵 가 있으면 𝐴 를 가역(invertible) 또는 정칙이라 하고, 그 𝐵 를 역행렬이라 하며 𝐴−1 로 적는다. 그런 𝐵 가 없으면 𝐴 는 특이(singular)하다고 한다. 역행렬은 있다면 하나뿐이다. 𝐵 와 𝐶 가 둘 다 역행렬이면 𝐵=𝐵𝐼=𝐵(𝐴𝐶)=(𝐵𝐴)𝐶=𝐼𝐶=𝐶 이기 때문이다. 결합법칙이 여기서 값을 한다.
<역행렬은 A 가 격자에 한 일을 정확히 되돌린다. 되돌릴 수 없는 경우 — 서로 다른 두 점이 같은 자리로 겹쳐 버리는 경우 — 가 언제 생기는지는 4장에서 행렬식이 답한다>[원본 보기]
2×2 는 공식이 있다.
𝐴=[𝑎𝑏𝑐𝑑]⟹𝐴−1=1𝑎𝑑−𝑏𝑐[𝑑−𝑏−𝑐𝑎](𝑎𝑑−𝑏𝑐≠0)
대각선 두 성분을 맞바꾸고, 나머지 둘에 음수 부호를 붙이고, 𝑎𝑑−𝑏𝑐 로 나눈다. 곱해 보면 정말 𝐼 가 된다. 이 𝑎𝑑−𝑏𝑐 라는 수가 다음 장의 주인공인 행렬식이고, 이것이 0이면 나눌 수 없으니 역행렬도 없다.
크기가 커지면 공식보다 소거법이 낫다. 방법은 이렇다. 𝐴 오른쪽에 단위행렬을 붙인 [𝐴∣𝐼] 를 만들고, 왼쪽이 𝐼 가 될 때까지 기본 행연산을 한다. 그러면 오른쪽에 저절로 𝐴−1 가 나타난다.
왜 그런가. 기본 행연산 하나하나는 단위행렬에 그 연산을 한 번 적용해 만든 행렬, 곧 기본행렬(elementary matrix)𝐸 를 왼쪽에 곱하는 것과 같다. 그러니 소거를 𝑘 번 해서 왼쪽이 𝐼 가 되었다면 𝐸𝑘⋯𝐸1𝐴=𝐼 이고, 같은 연산을 오른쪽 절반에도 똑같이 했으므로 오른쪽은 𝐸𝑘⋯𝐸1𝐼=𝐸𝑘⋯𝐸1 다. 그런데 𝐸𝑘⋯𝐸1=𝐴−1 이다. 두 절반에 같은 일을 하는 것이 이 요령의 전부다.
예제 13
2𝑥+3𝑦=8, 𝑥+2𝑦=5 를 역행렬로 풀어라.
풀이 보기
계수행렬은 𝐴=[2312] 이고 𝑎𝑑−𝑏𝑐=4−3=1 이다. 0이 아니므로 역행렬이 있다.
𝐴−1=11[2−3−12]=[2−3−12]
𝐴𝐱=𝐛 의 양변 왼쪽에 𝐴−1 를 곱한다. 순서가 중요하다. 곱은 교환되지 않으므로 오른쪽에 곱하면 𝐱 가 남지 않는다.
𝐱=𝐴−1𝐛=[2−3−12][85]=[16−15−8+10]=[12]
검산. 2(1)+3(2)=8 ✓, 1+2(2)=5 ✓.
한 가지 짚어 둘 것이 있다. 연립방정식 하나를 푸는 데는 역행렬이 소거법보다 느리다. 역행렬을 구하는 일 자체가 소거법을 여러 번 하는 것이기 때문이다. 역행렬이 값을 하는 곳은 같은 𝐴 에 여러 𝐛 를 풀어야 할 때, 그리고 식을 기호로 정리해야 할 때다.
예제 14
𝐴=⎡⎢
⎢⎣123014560⎤⎥
⎥⎦ 의 역행렬을 구하라.
풀이 보기
[𝐴∣𝐼] 를 만들고 왼쪽을 𝐼 로 만든다.
⎡⎢
⎢
⎢⎣123100014010560001⎤⎥
⎥
⎥⎦
𝑅3←𝑅3−5𝑅1 을 하면
⎡⎢
⎢
⎢⎣1231000140100−4−15−501⎤⎥
⎥
⎥⎦
이어서 𝑅3←𝑅3+4𝑅2 를 하면 3행의 왼쪽이 정리된다.
⎡⎢
⎢
⎢⎣123100014010001−541⎤⎥
⎥
⎥⎦
여기까지가 아래를 비우는 단계다. 이제 위를 비운다. 𝑅2←𝑅2−4𝑅3, 𝑅1←𝑅1−3𝑅3.
⎡⎢
⎢
⎢⎣12016−12−301020−15−4001−541⎤⎥
⎥
⎥⎦
마지막으로 𝑅1←𝑅1−2𝑅2.
⎡⎢
⎢
⎢⎣100−2418501020−15−4001−541⎤⎥
⎥
⎥⎦
𝐴−1=⎡⎢
⎢⎣−2418520−15−4−541⎤⎥
⎥⎦
검산은 𝐴𝐴−1 의 성분 몇 개만 봐도 된다. 1행 1열은 1(−24)+2(20)+3(−5)=−24+40−15=1 ✓, 1행 2열은 1(18)+2(−15)+3(4)=18−30+12=0 ✓.
소거 도중 왼쪽에 전부 0인 행이 나타나면 거기서 멈춘다. 그 행은 어떤 연산으로도 1을 만들어 낼 수 없으므로 왼쪽이 𝐼 가 될 수 없고, 그것이 곧 𝐴 가 특이행렬이라는 뜻이다.
역행렬의 성질을 모아 둔다. 증명은 모두 '곱했더니 𝐼 가 되더라'를 확인하는 한 줄이다.
성질
식
한 줄 이유
두 번 뒤집으면 제자리
(𝐴−1)−1=𝐴
𝐴 가 𝐴−1 의 역행렬이기도 하다
곱의 역행렬은 순서가 뒤집힌다
(𝐴𝐵)−1=𝐵−1𝐴−1
(𝐴𝐵)(𝐵−1𝐴−1)=𝐴𝐼𝐴−1=𝐼
전치와 역은 자리를 바꿔도 된다
(𝐴𝑇)−1=(𝐴−1)𝑇
𝐴𝑇(𝐴−1)𝑇=(𝐴−1𝐴)𝑇=𝐼
스칼라배
(𝑘𝐴)−1=(1/𝑘)𝐴−1
𝑘≠0 일 때
곱이 가역이면 각각도 가역
𝐴𝐵 가 가역 ⇒𝐴,𝐵 가 가역
되돌릴 수 있는 두 단계는 각각도 되돌릴 수 있다
특별한 모양의 행렬과 LU 분해
정사각행렬 가운데 소거법이 특히 쉬워지는 모양이 있다. 이름을 붙여 둔다.
이름
조건
왜 편한가
상삼각행렬
주대각선 아래가 모두 0
이미 행사다리꼴이라 대입만 하면 된다
하삼각행렬
주대각선 위가 모두 0
위에서 아래로 차례로 대입한다
대각행렬
주대각선 밖이 모두 0
방정식들이 서로 얽혀 있지 않다
대칭행렬
𝐴=𝐴𝑇
행과 열을 구분할 필요가 없다
삼각행렬은 주대각선 성분이 모두 0이 아닐 때에만 가역이다. 대각선에 0이 있으면 그 열에 축을 만들 수 없기 때문이다. 삼각행렬끼리의 곱은 같은 종류의 삼각행렬이고, 가역인 삼각행렬의 역행렬도 같은 종류다.
대칭행렬에 대해서는 한 가지만 기억해 두면 8장과 9장이 편해진다. 임의의 행렬 𝐴 에 대해 𝐴𝑇𝐴 와 𝐴𝐴𝑇 는 언제나 대칭행렬이다. (𝐴𝑇𝐴)𝑇=𝐴𝑇(𝐴𝑇)𝑇=𝐴𝑇𝐴 이기 때문이다.
이제 삼각행렬이 왜 쓸모 있는지를 보여 주는 LU 분해로 마무리한다. 같은 계수행렬 𝐴 에 상수항 𝐛 만 바꿔 가며 수십 번 풀어야 하는 상황을 생각해 보자. 매번 처음부터 소거하는 것은 낭비다. 소거 과정 자체를 저장해 두면 좋겠는데, 그 저장 방식이 LU 분해다.
행 교환 없이 소거해서 상삼각행렬 𝑈 를 얻었다면, 그때 쓴 배수들을 제자리에 적어 넣은 하삼각행렬𝐿 이 함께 만들어지고 𝐴=𝐿𝑈 가 성립한다. 규칙은 하나다. 𝑅𝑖←𝑅𝑖−𝑘𝑅𝑗 를 했다면 𝐿 의 (𝑖,𝑗) 자리에 𝑘 를 적는다. 대각선은 1로 채운다.
이렇게 두면 𝐴𝐱=𝐛 가 𝐿(𝑈𝐱)=𝐛 이므로, 𝐿𝐲=𝐛 를 위에서 아래로 풀어 𝐲 를 얻고 𝑈𝐱=𝐲 를 아래에서 위로 풀면 끝난다. 삼각행렬 두 번이라 대입만 하면 되고, 𝐛 가 바뀌어도 𝐿 과 𝑈 는 그대로 쓴다.
예제 15
𝐴=⎡⎢
⎢⎣2114−60−272⎤⎥
⎥⎦ 를 LU 분해하고, 그것으로 𝐴𝐱=(5,−2,9)𝑇 를 풀어라.
풀이 보기
행 교환 없이 소거하면서 쓴 배수를 옆에 적어 둔다.
𝑅2←𝑅2−2𝑅1 (배수 2), 𝑅3←𝑅3+𝑅1 (배수 −1), 그리고 𝑅3←𝑅3+𝑅2 (배수 −1).
𝑈=⎡⎢
⎢⎣2110−8−2001⎤⎥
⎥⎦,𝐿=⎡⎢
⎢⎣100210−1−11⎤⎥
⎥⎦
확인해 두자. 𝐿 의 3행 (−1,−1,1) 에 𝑈 를 곱하면 (−2,−1+8,−1+2+1)=(−2,7,2) 로 𝐴 의 3행과 같다.
왼쪽 아래가 0이므로 상삼각행렬이다. 우연이 아니다. 그 자리는 𝐴 의 2행과 𝐵 의 1열의 곱인데, 𝐴 의 2행은 앞부분이 0이고 𝐵 의 1열은 뒷부분이 0이라 겹쳐 곱해지는 항이 하나도 없다. 크기가 커져도 같은 논리가 그대로 통한다. 대각선 성분이 1×4=4, 3×2=6 으로 대각선끼리 곱해진 값이 되는 것도 눈여겨볼 만하다. 4장에서 다시 쓴다.
역행렬은 𝑎𝑑−𝑏𝑐=3 이므로
𝐴−1=13[3−201]=[1−2/301/3]
역시 상삼각행렬이다. 소거로 생각하면 당연하다. [𝐴∣𝐼] 를 소거할 때 이미 아래가 비어 있으니 위를 비우는 연산만 하게 되고, 그 연산들은 오른쪽 절반의 아래쪽을 건드리지 않는다.
3장 정리
이 장에서 새로 정한 기호와 말을 모은다. 다음 장부터는 설명 없이 쓴다.
기호 또는 용어
뜻
𝑚×𝑛 행렬
가로줄 m 개, 세로줄 n 개로 수를 늘어놓은 것. 성분은 𝑎𝑖𝑗 (행 먼저)
𝐴𝐱=𝐛
연립일차방정식을 한 줄로 적은 것. 𝐴 는 계수행렬, 𝐛 는 상수항 열
[𝐴∣𝐛]
첨가행렬. 계수행렬 오른쪽에 상수항 열을 붙인 것
기본 행연산
배수 곱하기, 행 바꾸기, 배수를 다른 행에 더하기. 해집합을 바꾸지 않는다
행사다리꼴 REF, 기약 행사다리꼴 RREF
소거의 두 종착점. RREF 는 행렬마다 하나뿐이다
축(pivot), 자유변수
선행성분의 자리와, 축이 없는 열에 대응하는 미지수
동차연립방정식
상수항이 전부 0. 자명해뿐이거나 해가 무수히 많다
𝐴𝑇
전치. (𝐴𝑇)𝑖𝑗=𝑎𝑗𝑖 이고 (𝐴𝐵)𝑇=𝐵𝑇𝐴𝑇
𝐴𝐵
변환의 합성. (𝐴𝐵)𝑖𝑗=∑𝑘𝑎𝑖𝑘𝑏𝑘𝑗. 결합법칙은 성립, 교환법칙은 성립하지 않는다
𝐼𝑛
단위행렬. 곱셈의 항등원
𝐴−1
역행렬. 𝐴𝐴−1=𝐴−1𝐴=𝐼. [𝐴∣𝐼] 를 소거해 구한다
기본행렬 𝐸
단위행렬에 기본 행연산을 한 번 한 것. 왼쪽에 곱하면 그 연산이 된다
삼각·대각·대칭행렬
소거가 쉬워지는 모양들. 삼각행렬은 대각선에 0이 없어야 가역
𝐴=𝐿𝑈
LU 분해. 소거 과정을 저장해 두고 상수항만 바꿔 가며 재사용한다
남겨 둔 물음이 하나 있다. 2×2 역행렬 공식에 나온 𝑎𝑑−𝑏𝑐 는 도대체 무엇이며, 왜 이 값이 0인지 아닌지가 가역성을 가르는가. 다음 장이 그 답이다.
행렬식
앞 장에서 2×2 역행렬 공식에 𝑎𝑑−𝑏𝑐 라는 수가 나왔다. 이 값이 0이면 역행렬이 없다고 했는데, 왜 하필 이 조합인지는 말하지 않았다. 이 장이 그 답이다.
결론을 먼저 말해 둔다. 𝑎𝑑−𝑏𝑐 는 넓이다. 정확히는 행렬의 두 열이 만드는 평행사변형의 넓이이고, 3×3 이면 세 열이 만드는 상자의 부피다. 그러면 '이 값이 0이다'는 '넓이가 0이다', 곧 납작하게 찌부러졌다는 뜻이 되고, 찌부러진 것을 되돌릴 수 없다는 사실에서 역행렬이 없다는 결론이 곧바로 나온다.
이 장에서 답할 질문은 셋이다. 행렬식은 무엇을 재는 값인가, 어떻게 계산하는가, 그리고 0이라는 것이 무엇을 뜻하는가. 앞 장의 기본 행연산과 삼각행렬을 계속 쓴다.
시작하기 전에 말 하나를 미리 빌린다. 이 장은 행렬의 열을 '평면 위의 화살표'로 그린다. 원점에서 출발해 점 (𝑎,𝑏) 에 화살촉을 둔 것을 그 열의 화살표라 하고, 점 𝑃 에서 점 𝑄 로 가는 화살표는 ⟶𝑃𝑄 로 적는다. 성분은 도착 좌표에서 출발 좌표를 뺀 것, 곧 ⟶𝑃𝑄=(𝑥𝑄−𝑥𝑃,𝑦𝑄−𝑦𝑃) 다. 화살표의 길이와 두 화살표가 이루는 각을 제대로 정의하는 것은 5장이고, 이 장에서 쓰는 것은 넓이와 부피, 그리고 도는 방향뿐이라 그 정의를 앞당길 필요가 없다.
도는 방향은 여기서 정해 둔다. 평면에서 첫 화살표를 둘째 화살표 쪽으로 180° 안쪽으로 돌릴 때 반시계로 돌면 두 화살표가 이 순서로 양의 방향을 이룬다 하고, 시계로 돌면 음의 방향이라 한다. 공간에서는 화살표가 셋이라 이름이 하나 더 필요하다. 오른손의 엄지·검지·중지를 서로 직각이 되게 펴서 엄지를 첫째 화살표에, 검지를 둘째 화살표에 맞췄을 때 중지가 셋째 화살표와 같은 쪽(정확히는 셋째 화살표와 이루는 각이 90° 보다 작은 쪽)을 가리키면, 세 화살표가 이 순서로 오른손 좌표계(right-handed system)를 이룬다고 한다. 같은 일을 왼손으로 해야 맞으면 왼손 좌표계(left-handed system)다. 표준적인 𝑥,𝑦,𝑧 축이 이 순서로 오른손 좌표계이고, 두 축을 맞바꾸거나 한 축의 방향을 뒤집으면 왼손 좌표계로 바뀐다. 이 장에서 행렬식의 부호가 기록하는 것이 바로 이 구별이다.
넓이에서 출발한다
2×2 행렬 𝐴=[𝑎𝑐𝑏𝑑] 의 두 열은 평면 위의 화살표 둘이다. 첫 열이 (𝑎,𝑏), 둘째 열이 (𝑐,𝑑) 다. 이 둘을 두 변으로 삼는 평행사변형을 그려 보자.
<가운데 그림이 ad − bc 라는 조합의 정체다. 두 벡터를 감싸는 직사각형에서 바깥 조각 여섯을 덜어 내면 평행사변형이 남는다. 오른쪽은 두 열의 순서를 바꾸면 넓이는 그대로이고 부호만 뒤집힌다는 것을 보인다>[원본 보기]
가운데 그림을 따라가 보자. 두 벡터를 감싸는 직사각형의 넓이는 (𝑎+𝑐)(𝑏+𝑑) 다. 여기서 바깥에 남는 조각은 삼각형 넷과 직사각형 둘인데, 삼각형은 두 개씩 짝지어 넓이가 𝑎𝑏 와 𝑐𝑑 이고 직사각형 둘의 넓이는 2𝑏𝑐 다. 빼면
(𝑎+𝑐)(𝑏+𝑑)−𝑎𝑏−𝑐𝑑−2𝑏𝑐=𝑎𝑏+𝑎𝑑+𝑐𝑏+𝑐𝑑−𝑎𝑏−𝑐𝑑−2𝑏𝑐=𝑎𝑑−𝑏𝑐
가 남는다. 𝑎𝑑−𝑏𝑐 는 평행사변형의 넓이였다.
다만 이 값은 음수가 될 수 있다. 넓이가 음수일 수는 없으니 무언가 더 있다는 뜻이다. 그 무언가가 방향이다. 첫 열에서 둘째 열로 갈 때 반시계로 돌면 양수, 시계로 돌면 음수다. 그래서 이 값을 부호 있는 넓이라 부르고, 정식 이름을 붙여 행렬식(determinant)이라 한다. 표기는 det𝐴 또는 세로 막대 |𝐴| 다.
det[𝑎𝑐𝑏𝑑]=∣𝑎𝑐𝑏𝑑∣=𝑎𝑑−𝑏𝑐
방향까지 담는 편이 왜 나은가. 넓이만 재려면 절댓값을 씌우면 되지만, 그러면 계산 규칙이 지저분해진다. 부호를 살려 두면 곱셈이 깔끔하게 성립하고(뒤에서 본다), 덤으로 변환이 평면을 뒤집었는지를 알려 준다. 거울에 비친 상은 넓이가 같아도 왼손이 오른손이 되는데, 행렬식의 부호가 정확히 그것을 기록한다.
예제 17
𝐴=[3112] 와, 두 열을 맞바꾼 𝐴′=[1321] 의 행렬식을 구하고 뜻을 말하라.
풀이 보기
det𝐴=3⋅2−1⋅1=5, det𝐴′=1⋅1−3⋅2=−5.
크기가 같고 부호만 반대다. 두 경우 모두 같은 평행사변형을 그린다. 열의 순서만 바꿨으니 도형이 달라질 리 없다. 달라진 것은 첫 열에서 둘째 열로 도는 방향뿐이다.
𝐴 에서는 (3,1) 에서 (1,2) 로 반시계로 돈다. 𝐴′ 에서는 (1,2) 에서 (3,1) 로 시계로 돈다. 그래서 부호가 갈렸다.
넓이만 알고 싶으면 절댓값을 취해 |det𝐴|=5 라고 하면 된다. 앞으로 '넓이'라고 할 때는 절댓값을, '행렬식'이라 할 때는 부호까지 포함한 값을 뜻한다.
예제 18
세 점 𝑃(1,1), 𝑄(4,2), 𝑅(2,3) 이 만드는 삼각형의 넓이를 구하라. 또 세 점이 한 직선 위에 있을 조건을 행렬식으로 적어라.
풀이 보기
삼각형은 평행사변형의 절반이다. 그러니 𝑃 를 원점으로 옮겨 두 변을 벡터로 만들고, 그 둘이 이루는 평행사변형의 넓이를 반으로 나누면 된다.
⟶𝑃𝑄=(4−1,2−1)=(3,1),⟶𝑃𝑅=(2−1,3−1)=(1,2)
두 벡터를 열로 세워 행렬식을 구한다. 앞 예제와 같은 행렬이라 값은 5다.
삼각형넓이=12∣det[3112]∣=12×5=52
세 점이 한 직선 위에 있다면 두 벡터가 같은 직선을 향하므로 평행사변형이 납작해지고 넓이가 0이 된다. 조건은
det[𝑥2−𝑥1𝑥3−𝑥1𝑦2−𝑦1𝑦3−𝑦1]=0
이다. 확인해 보자. 𝑅 을 (7,3) 으로 바꾸면 ⟶𝑃𝑅=(6,2) 인데 이것은 ⟶𝑃𝑄=(3,1) 의 2배다. 행렬식은 3⋅2−1⋅6=0 이고, 실제로 세 점이 한 직선 위에 있다.
좌표기하에서 외우던 삼각형 넓이 공식이 이 행렬식을 풀어 쓴 것이다.
3×3 과 여인자 전개
미지수가 셋이면 열이 셋이고, 세 화살표가 만드는 것은 상자(평행육면체)다. 행렬식은 그 부피가 된다.
<왼쪽의 부피 1짜리 정육면체가 오른쪽 상자로 바뀌었고 그 부피가 8이다. 2차원에서 넓이였던 것이 차원 하나 올라가 부피가 된 것뿐이며, 부호는 세 벡터가 오른손 좌표계를 이루는지를 기록한다>[원본 보기]
그러면 3×3 행렬식을 어떻게 계산하는가. 부피를 직접 재는 대신 차원을 하나씩 내리는 방법을 쓴다.
정사각행렬 𝐴 에서 𝑖 행과 𝑗 열을 통째로 지워 만든 작은 행렬의 행렬식을 소행렬식(minor)이라 하고 𝑀𝑖𝑗 로 적는다. 여기에 부호를 붙인
𝐶𝑖𝑗=(−1)𝑖+𝑗𝑀𝑖𝑗
를 여인자(cofactor)라 한다. 부호 (−1)𝑖+𝑗 는 외울 것이 아니라 체스판 무늬로 기억하면 된다. 왼쪽 위가 + 이고 한 칸 옮길 때마다 뒤집힌다.
⎡⎢
⎢⎣+−+−+−+−+⎤⎥
⎥⎦
이제 어느 한 행(또는 한 열)을 골라 그 행의 성분과 여인자를 짝지어 곱해 더하면 행렬식이 나온다. 이것을 여인자 전개(cofactor expansion)라 한다.
어느 행을 골라도 같은 값이 나온다는 것이 이 정의의 놀라운 점이고, 증명은 길지만 결과는 계산할 때마다 확인할 수 있다. 크기 1인 행렬은 det[𝑎]=𝑎 로 시작한다. 그러면 2×2 는 첫 행으로 전개해 𝑎⋅𝑑−𝑐⋅𝑏 가 되어 앞에서 본 식과 맞는다.
실전에서 중요한 것은 0이 가장 많은 행이나 열을 고르는 것이다. 성분이 0이면 그 여인자는 계산할 필요조차 없다.
이 정의는 재귀다
여인자 전개를 다시 보면, 𝑛×𝑛 행렬식이 (𝑛−1)×(𝑛−1) 행렬식들로 정의되어 있다. 그것이 또 한 단계 아래로 내려가고, 결국 1×1 에서 멈춘다. 자기보다 작은 같은 문제로 되돌리는 정의, 곧 재귀적 정의다.
det[𝑎]=𝑎,det[𝑎𝑏𝑐𝑑]=𝑎det[𝑑]−𝑏det[𝑐]=𝑎𝑑−𝑏𝑐
3×3 도 같은 방식으로 2×2 셋으로 내려간다. 이렇게 층층이 쌓인 정의이기 때문에 크기가 커질수록 계산이 폭발한다. 𝑛×𝑛 하나를 풀려면 (𝑛−1)×(𝑛−1) 을 𝑛 개 풀어야 하므로, 필요한 곱셈이 대략 𝑛! 이다. 10×10 이면 300만 번을 넘는다.
3×3 에 한해서는 사루스 법칙(rule of Sarrus)이라는 요령이 있다. 행렬 오른쪽에 1열과 2열을 다시 적고, 왼쪽 위에서 오른쪽 아래로 내려가는 대각선 셋은 더하고 반대 방향 대각선 셋은 빼는 것이다. 여인자 전개를 풀어 쓴 것과 같은 결과가 나온다.
다만 이 요령은 3×3 에서만 통한다.4×4 에 같은 방식을 쓰면 항이 8개밖에 안 나오는데 실제로는 24개가 필요하다. 대각선 세기가 안 통하는 크기에서 습관대로 쓰다가 틀리는 일이 잦으니, 처음부터 여인자 전개와 소거만 쓰는 편이 안전하다.
예제 19
𝐴=⎡⎢
⎢⎣2013−12140⎤⎥
⎥⎦ 의 행렬식을 1행으로 전개해 구하고, 2열로 전개해도 같은 값이 나오는지 확인하라.
풀이 보기
1행으로. 성분은 2,0,1 이고 부호는 +,−,+ 다. 가운데는 0이라 건너뛴다.
𝐶11=+∣−1240∣=0−8=−8,𝐶13=+∣3−114∣=12+1=13
det𝐴=2(−8)+0+1(13)=−16+13=−3
2열로. 성분은 0,−1,4 이고 부호는 위에서부터 −,+,− 다.
𝐶22=+∣2110∣=−1,𝐶32=−∣2132∣=−(4−3)=−1
det𝐴=0+(−1)(−1)+4(−1)=1−4=−3
같다. 부호가 음수라는 것은 세 열이 왼손 좌표계를 이룬다는 뜻이고, 상자의 부피는 |−3|=3 이다.
여인자를 계산할 때 가장 흔한 실수는 부호를 성분의 부호와 섞는 것이다. 𝑎22=−1 이고 𝐶22 의 체스판 부호는 + 다. 이 둘을 곱해서 (−1)×(−1)=1 이 된 것이지, 어느 한쪽만 보고 판단하면 안 된다.
예제 20
𝐵=⎡⎢
⎢⎣123004560⎤⎥
⎥⎦ 의 행렬식을 가장 적은 계산으로 구하라.
풀이 보기
0이 가장 많은 줄을 찾는다. 2행에 0이 둘 있으므로 2행으로 전개하면 항이 하나만 남는다.
2행의 성분은 0,0,4 이고, 𝑎23=4 의 체스판 부호는 (−1)2+3=−1 이다.
𝐶23=−∣1256∣=−(6−10)=4
det𝐵=4×4=16
1행으로 전개했다면 2×2 행렬식을 세 번 구해야 했다. 줄을 잘 고르는 것만으로 계산량이 삼분의 일이 되었다.
크기가 커지면 이 차이가 감당할 수 없을 만큼 벌어진다. 𝑛×𝑛 을 여인자 전개로 끝까지 풀면 곱셈이 𝑛! 에 가깝게 필요하다. 𝑛=20 이면 계산기로도 끝나지 않는다. 그래서 실제 계산은 다음 절의 방법을 쓴다.
행 연산이 행렬식에 하는 일
앞 장에서 소거법으로 행렬을 삼각행렬까지 밀어붙일 수 있었다. 그 과정에서 행렬식이 어떻게 변하는지 알면, 소거로 행렬식을 구할 수 있다.
<가장 중요한 것은 오른쪽이다. 한 벡터를 다른 벡터와 나란한 방향으로 밀어도 밑변과 높이가 그대로라 넓이가 변하지 않는다. 소거에서 가장 많이 쓰는 연산이 행렬식을 건드리지 않는다는 뜻이다>[원본 보기]
행 연산
행렬식의 변화
기하로 보면
한 행에 k 를 곱한다
𝑘 배가 된다
한 변이 k 배면 넓이도 k 배
두 행을 바꾼다
부호가 뒤집힌다
도는 방향이 반대가 된다
한 행의 배수를 다른 행에 더한다
변하지 않는다
밑변과 높이가 그대로다
이 표에서 곧바로 따라오는 것이 몇 가지 있다.
어떤 행이 전부 0이면 행렬식은 0이다. 그 행에 0을 곱해도 행렬이 그대로이므로 det𝐴=0⋅det𝐴 이기 때문이다
두 행이 같으면 행렬식은 0이다. 두 행을 바꿔도 같은 행렬인데 부호가 뒤집혀야 하므로 det𝐴=−det𝐴 이기 때문이다
한 행이 다른 행의 배수이면 행렬식은 0이다. 배수를 빼면 0인 행이 생긴다
그리고 결정적인 것 하나. 삼각행렬의 행렬식은 주대각선 성분의 곱이다.
det⎡⎢
⎢⎣𝑢11∗∗0𝑢22∗00𝑢33⎤⎥
⎥⎦=𝑢11𝑢22𝑢33
1열로 전개하면 𝑢11 항 하나만 남고, 남은 2×2 에 같은 논리를 되풀이하면 된다.
이 둘을 합치면 실전 절차가 나온다. 소거로 삼각행렬을 만들고 대각선을 곱한다. 도중에 행을 바꿨으면 그 횟수만큼 부호를 뒤집고, 행을 𝑘 로 나눴으면 나중에 𝑘 를 곱해 준다. 배수를 더하는 연산은 아무것도 하지 않아도 된다.
마지막으로 전치에 대한 사실 하나. det𝐴𝑇=det𝐴 다. 여인자 전개를 행으로 해도 열로 해도 같은 값이 나온다고 했는데, 전치는 행과 열을 맞바꾸는 것이니 같을 수밖에 없다. 이 덕분에 행에 대해 성립하는 모든 성질이 열에 대해서도 그대로 성립한다.
<행렬의 모양을 먼저 보고 가장 싼 길을 고른다. 갈림길의 조건에 해당하는 첫 줄을 택하면 된다. 곁들인 메모가 말하듯, 크기가 조금만 커져도 실제 계산의 기본은 소거로 삼각화하는 길이다>[원본 보기]
예제 21
𝐴=⎡⎢
⎢⎣1232−1130−1⎤⎥
⎥⎦ 의 행렬식을 소거로 구하라. 앞 장에서 이 행렬로 연립방정식을 푼 적이 있다.
풀이 보기
배수를 더하는 연산만 쓰면 행렬식이 변하지 않으므로 마지막에 보정할 것이 없다. 그 점을 노리고 나눗셈을 피한다.
𝑅2←𝑅2−2𝑅1, 𝑅3←𝑅3−3𝑅1 을 하면
⎡⎢
⎢⎣1230−5−50−6−10⎤⎥
⎥⎦
다음으로 𝑅3←𝑅3−65𝑅2 를 한다. 분수가 나오지만 이 연산도 행렬식을 바꾸지 않는다.
⎡⎢
⎢⎣1230−5−500−4⎤⎥
⎥⎦
3행의 마지막 성분은 −10−65(−5)=−10+6=−4 다. 이제 대각선을 곱한다.
det𝐴=1×(−5)×(−4)=20
검산으로 1행 여인자 전개를 해 본다. 1(1−0)−2(−2−3)+3(0+3)=1+10+9=20 ✓.
앞 장에서 이 행렬로 만든 연립방정식은 해가 하나였다. 행렬식이 0이 아닌 것과 딱 맞아떨어진다. 세 평면이 부피가 20인 상자를 만들 만큼 서로 '다른 방향'을 향하고 있었던 것이다.
만약 3장에서처럼 𝑅2←−15𝑅2 같은 나눗셈을 했다면 행렬식이 −1/5 배가 되므로, 마지막에 −5 를 곱해 되돌려야 한다. 연립방정식을 풀 때는 마음대로 나눠도 되지만 행렬식을 구할 때는 장부를 적어야 한다.
예제 22
다음 두 행렬의 행렬식을 계산 없이 판정하라.
𝑃=⎡⎢
⎢⎣123246789⎤⎥
⎥⎦,𝑄=⎡⎢
⎢⎣123456579⎤⎥
⎥⎦
풀이 보기
𝑃. 2행 (2,4,6) 은 1행 (1,2,3) 의 2배다. 한 행이 다른 행의 배수이면 행렬식은 0이다. 𝑅2←𝑅2−2𝑅1 을 하면 2행이 통째로 0이 되고, 0인 행이 있는 행렬의 행렬식은 0이다. 따라서 det𝑃=0.
𝑄. 눈에 덜 띄지만 3행이 1행과 2행의 합이다. (1+4,2+5,3+6)=(5,7,9) ✓. 𝑅3←𝑅3−𝑅1−𝑅2 를 하면 3행이 0이 된다. 따라서 det𝑄=0.
두 경우 모두 세 행이 서로 독립된 정보를 담고 있지 않다는 것이 공통점이다. 셋째 방정식이 앞의 둘에서 이미 따라 나오는 군더더기라는 뜻이고, 3장에서 소거했더니 0인 행이 나오던 상황이 바로 이것이다.
기하로는 세 벡터가 한 평면 안에 눌려 있어 상자가 납작하다. 부피가 0이다.
곱의 행렬식
행렬식이 넓이 배율이라는 관점을 밀고 나가면 곱셈 규칙이 저절로 나온다.
<넓이를 두 배로 만드는 변환을 겪고 다시 두 배로 만드는 변환을 겪으면 넓이가 네 배가 된다. 배율은 더해지지 않고 곱해진다는 것이 곱의 행렬식 공식의 전부다>[원본 보기]
𝐴 가 넓이를 |det𝐴| 배로 만드는 변환이고 𝐵 가 |det𝐵| 배로 만드는 변환이라면, 이어서 적용한 𝐴𝐵 는 넓이를 두 배율의 곱만큼 만든다. 부호까지 따져도 성립한다.
det(𝐴𝐵)=det𝐴⋅det𝐵
엄밀한 증명은 기본행렬을 거쳐 간다. 기본행렬 𝐸 에 대해 det(𝐸𝐴)=det𝐸⋅det𝐴 임은 앞 절의 표가 그대로 말해 주고(각 행 연산이 행렬식에 하는 일이 곧 det𝐸 다), 가역행렬은 기본행렬의 곱으로 쓸 수 있으므로 하나씩 떼어 내면 된다. 둘 중 하나가 특이행렬이면 양변이 모두 0이 된다.
여기서 따라오는 것들이 있다.
성질
식
왜
역행렬의 행렬식
det(𝐴−1)=1/det𝐴
det𝐴⋅det(𝐴−1)=det𝐼=1
스칼라배
det(𝑘𝐴)=𝑘𝑛det𝐴
n 개의 행에 각각 k 를 곱한 셈이다
전치
det𝐴𝑇=det𝐴
행으로 전개하나 열로 전개하나 같다
거듭제곱
det(𝐴𝑚)=(det𝐴)𝑚
곱의 규칙을 되풀이한다
합은 규칙이 없다
det(𝐴+𝐵)≠det𝐴+det𝐵
넓이는 더해지는 양이 아니다
예제 23
𝐴=[2111], 𝐵=[1234] 에 대해 det(𝐴𝐵)=det𝐴det𝐵 를 직접 확인하라.
풀이 보기
각각의 행렬식부터. det𝐴=2⋅1−1⋅1=1, det𝐵=1⋅4−2⋅3=−2 이므로 곱은 −2 여야 한다.
𝐴𝐵=[2111][1234]=[2+34+41+32+4]=[5846]
det(𝐴𝐵)=5⋅6−8⋅4=30−32=−2 ✓
뜻을 읽어 두자. det𝐴=1 은 𝐴 가 넓이를 전혀 바꾸지 않는 변환이라는 뜻이다(모양은 바꾸지만 넓이는 그대로다). det𝐵=−2 는 넓이를 두 배로 늘리면서 평면을 뒤집는다는 뜻이다. 둘을 이어 붙이면 넓이는 두 배, 뒤집힘은 한 번이니 −2 다.
순서를 바꿔 𝐵𝐴 를 계산해도 행렬식은 −2 다. 곱 자체는 교환되지 않지만 행렬식은 교환된다. 두 수의 곱이라 순서가 상관없기 때문이다.
예제 24
det𝐴=5 인 3×3 행렬 𝐴 에 대해 det(2𝐴), det(𝐴−1), det(𝐴𝑇𝐴) 를 구하라. 또 det(𝐴+𝐴)=det𝐴+det𝐴 인가?
풀이 보기
det(2𝐴). 스칼라배는 각 행마다 걸린다. 행이 셋이므로 2 를 세 번 뽑아낸다.
det(2𝐴)=23det𝐴=8×5=40
det(𝐴−1).𝐴𝐴−1=𝐼 의 양변에 행렬식을 취하면 det𝐴⋅det(𝐴−1)=1 이므로 det(𝐴−1)=1/5.
det(𝐴𝑇𝐴). 곱의 규칙과 전치의 규칙을 이어 쓴다.
det(𝐴𝑇𝐴)=det(𝐴𝑇)det𝐴=(det𝐴)2=25
제곱이라 언제나 0 이상이다. 9장에서 𝐴𝑇𝐴 가 자주 나오는데, 그때 이 사실이 쓰인다.
마지막 물음은 함정이다.𝐴+𝐴=2𝐴 이므로 왼쪽은 40이고 오른쪽은 5+5=10 이다. 같지 않다. 행렬식에는 덧셈 규칙이 없다. 넓이가 '더하면 더해지는' 양이 아니기 때문이다. 이 착각이 행렬식에서 가장 흔한 실수다.
행렬식이 0 이라는 것
이제 처음 물음으로 돌아간다. det𝐴=0 은 무엇을 뜻하는가.
<두 열이 같은 직선 위에 놓이는 순간 평행사변형이 선분으로 찌부러진다. 평면 전체를 만들어 내지 못하니 되돌릴 수도 없다. 행렬식이 0인 것과 역행렬이 없는 것이 같은 말인 이유가 이 그림에 있다>[원본 보기]
넓이가 0이라는 것은 두 열이 같은 직선 위에 놓였다는 뜻이다. 그러면 𝐴𝐱 는 아무리 𝐱 를 바꿔도 그 직선 위의 점밖에 만들지 못한다. 평면 전체가 직선 하나로 눌린 것이다.
이렇게 되면 되돌릴 수 없다. 직선 위의 한 점만 봐도 그 점으로 오는 𝐱 가 여러 개이고, 직선 밖의 점으로 오는 𝐱 는 하나도 없다. 어느 쪽이든 '거꾸로 가는 함수'를 만들 수 없다. 그래서
det𝐴≠0 이면 𝐴 는 가역이고, det𝐴=0 이면 특이행렬이다.
3장의 소거법으로 보아도 결론이 같다. 소거로 삼각행렬을 만들었을 때 대각선에 0이 있으면 행렬식이 0이고, 그것은 축이 모자란다는 뜻이며, 축이 모자라면 [𝐴∣𝐼] 의 왼쪽을 𝐼 로 만들 수 없다. 세 이야기가 같은 이야기다.
det𝐴≠0 일 때
det𝐴=0 일 때
역행렬이 있다
역행렬이 없다
𝐴𝐱=𝐛 가 모든 𝐛 에 대해 해를 하나 갖는다
𝐛 에 따라 해가 없거나 무수히 많다
𝐴𝐱=𝟎 이 자명해만 갖는다
𝐴𝐱=𝟎 이 자명하지 않은 해를 갖는다
축이 모든 열에 있다
축이 없는 열이 있다
열들이 공간을 가득 채운다
열들이 더 낮은 차원에 눌려 있다
표의 마지막 줄이 6장과 7장으로 이어진다. 𝐴 를 '벡터를 벡터로 보내는 장치'로 보면, det𝐴≠0 은 그 장치가 공간을 눌러 찌부러뜨리지 않는다는 뜻이고 det𝐴=0 은 찌부러뜨린다는 뜻이다. 찌부러진 것은 되돌릴 수 없다. 3장에서 '서로 다른 점이 같은 자리로 겹쳐 버리면 역행렬이 없다'고 했던 것이 바로 이 이야기다.
예제 25
𝐴=[1224] 에 대해 𝐴𝐱=𝐛 를 𝐛=(3,6) 과 𝐛=(3,7) 두 경우로 풀어라.
풀이 보기
먼저 det𝐴=1⋅4−2⋅2=0 이다. 역행렬이 없으니 𝐱=𝐴−1𝐛 로는 풀 수 없고, 𝐛 에 따라 답이 달라질 것을 예상할 수 있다.
𝐛=(3,6). 첨가행렬을 소거한다.
[123246]𝑅2−2𝑅1←←←←←←←←←←←←←→[123000]
𝑦 가 자유변수다. 𝑦=𝑡 로 두면 𝑥=3−2𝑡 이므로 해는 (3,0)+𝑡(−2,1) 인 직선이다. 해가 무수히 많다.
𝐛=(3,7).
[123247]𝑅2−2𝑅1←←←←←←←←←←←←←→[123001]
마지막 행이 0=1 이다. 해가 없다.
왜 갈렸는가. 𝐴 의 두 열 (1,2) 와 (2,4) 는 같은 직선 위에 있으므로 𝐴𝐱 가 만들 수 있는 것은 그 직선 위의 점뿐이다. (3,6) 은 그 직선 위에 있고(3×(1,2)), (3,7) 은 그 직선 밖에 있다. 행렬식이 0이면 '도달할 수 있는 곳'이 좁아진다는 것이 이 예제의 요점이다.
예제 26
𝐴=⎡⎢
⎢⎣1232𝑘6111⎤⎥
⎥⎦ 가 특이행렬이 되는 𝑘 를 구하고, 그때 어떤 일이 일어나는지 설명하라.
풀이 보기
1행으로 여인자 전개한다.
det𝐴=1∣𝑘611∣−2∣2611∣+3∣2𝑘11∣=(𝑘−6)−2(2−6)+3(2−𝑘)
=𝑘−6+8+6−3𝑘=−2𝑘+8
특이행렬이 되려면 det𝐴=0 이므로 𝑘=4 다.
𝑘=4 를 넣어 보면 2행이 (2,4,6) 인데, 이것은 1행 (1,2,3) 의 정확히 2배다. 앞 절의 성질대로 행렬식이 0이 되는 것이 당연하다.
뜻을 읽으면 이렇다. 둘째 방정식이 첫째 방정식에 2를 곱한 것에 지나지 않아 새로운 정보가 없다. 미지수 셋에 쓸 만한 방정식은 둘뿐이니 해가 하나로 정해질 수 없고, 상수항이 맞으면 무수히 많고 어긋나면 아예 없다.
𝑘 를 4 근처에서 움직여 보면 행렬식이 0을 지나며 부호가 바뀐다. 상자가 납작해졌다가 반대쪽으로 뒤집히는 것이다.
수반행렬과 크라메르 공식
여인자를 한 번 더 써서 역행렬의 공식을 만들 수 있다. 소거법보다 느리지만, 기호로 다뤄야 할 때 필요하다.
여인자를 제자리에 모두 모은 행렬 𝐂=[𝐶𝑖𝑗] 를 여인자행렬이라 하고, 그 전치를 수반행렬(adjugate)이라 하며 adj(𝐴)=𝐂𝑇 로 적는다. 전치를 취한다는 점을 놓치기 쉽다.
여기서 두 가지 사실을 쓴다. 하나는 여인자 전개 ∑𝑗𝑎𝑖𝑗𝐶𝑖𝑗=det𝐴 이고, 다른 하나는 다른 행의 여인자와 짝지어 전개하면 0이라는 것이다.
∑𝑛𝑗=1𝑎𝑖𝑗𝐶𝑘𝑗=0(𝑖≠𝑘)
왜 0인가. 이 합은 𝐴 의 𝑘 행을 𝑖 행으로 갈아 끼운 행렬의 행렬식과 같은데, 그 행렬은 𝑖 행과 𝑘 행이 똑같으므로 행렬식이 0이다.
두 사실을 합치면 𝐴adj(𝐴) 는 대각선이 전부 det𝐴 이고 나머지가 0인 행렬, 곧 (det𝐴)𝐼 가 된다. 따라서
𝐴−1=1det𝐴adj(𝐴)(det𝐴≠0)
2×2 에 넣어 보면 여인자가 𝐶11=𝑑, 𝐶12=−𝑐, 𝐶21=−𝑏, 𝐶22=𝑎 이므로 수반행렬이 [𝑑−𝑏−𝑐𝑎] 다. 3장에서 외웠던 공식이 여기서 나온다.
예제 27
𝐴=⎡⎢
⎢⎣123014560⎤⎥
⎥⎦ 의 역행렬을 수반행렬로 구하고, 3장에서 소거로 구한 답과 맞는지 보아라.
3장에서 [𝐴∣𝐼] 를 소거해 얻은 답과 정확히 같다. 완전히 다른 두 길이 같은 곳에 닿았다.
두 방법의 값어치가 다르다는 점은 짚어 둘 만하다. 𝑛×𝑛 수반행렬을 구하려면 (𝑛−1)×(𝑛−1) 행렬식을 𝑛2 개 계산해야 한다. 4×4 만 되어도 소거가 훨씬 빠르다. 이 공식은 계산 도구가 아니라 이론 도구다. 역행렬의 성분이 원래 성분들의 다항식이라는 사실을 여기서 읽을 수 있고, 그 사실이 뒤에서 쓰인다.
수반행렬 공식을 𝐱=𝐴−1𝐛 에 넣고 성분을 하나씩 뽑아 정리하면 크라메르 공식(Cramer's rule)이 나온다. 𝐴𝑗 를 𝐴 의 𝑗 번째 열을 𝐛 로 갈아 끼운 행렬이라 할 때
𝑥𝑗=det𝐴𝑗det𝐴(det𝐴≠0)
이다. 기하로 보면 그냥 넓이의 비다.
<b 를 a₁ 과 a₂ 의 조합으로 적었을 때, b 와 a₂ 가 만드는 넓이는 a₂ 방향으로 밀어도 변하지 않으므로 x₁a₁ 과 a₂ 가 만드는 넓이와 같다. 그것은 원래 넓이의 x₁ 배다>[원본 보기]
그림의 논리를 말로 옮기면 이렇다. 𝐛=𝑥1𝐚1+𝑥2𝐚2 일 때, 𝐛 와 𝐚2 가 만드는 평행사변형에서 𝑥2𝐚2 만큼 미는 것은 '다른 열의 배수를 더하는' 연산이라 넓이를 바꾸지 않는다. 남는 것은 𝑥1𝐚1 과 𝐚2 가 만드는 평행사변형이고 그 넓이는 원래의 𝑥1 배다.
예제 28
크라메르 공식으로 풀어라. 2𝑥+𝑦=5, 𝑥+3𝑦=10.
풀이 보기
계수행렬과 그 행렬식부터 구한다.
𝐴=[2113],det𝐴=6−1=5
0이 아니므로 해가 하나뿐이고 공식을 쓸 수 있다. 𝑥 를 구할 때는 첫째 열을 상수항으로 갈아 끼운다.
𝑥=15∣51103∣=15−105=1,𝑦=15∣25110∣=20−55=3
검산. 2(1)+3=5 ✓, 1+3(3)=10 ✓.
갈아 끼우는 열을 헷갈리는 것이 흔한 실수다. 구하려는 미지수의 자리에 해당하는 열을 바꾼다고 기억하면 된다. 𝑥 는 첫째 미지수이니 첫째 열이다.
예제 29
3장에서 푼 𝑥+2𝑦+3𝑧=9, 2𝑥−𝑦+𝑧=8, 3𝑥−𝑧=3 에서 𝑧 만 크라메르 공식으로 구하라.
풀이 보기
미지수 하나만 필요할 때가 크라메르 공식이 가장 값어치 있는 상황이다. 소거는 셋을 다 구해야 하지만 이 공식은 행렬식 두 개면 된다.
계수행렬의 행렬식은 앞 절 예제에서 이미 20으로 구했다. 이제 셋째 열을 상수항 (9,8,3) 으로 갈아 끼운 행렬의 행렬식을 구한다.
다만 실전에서 크라메르 공식을 큰 연립방정식에 쓰지는 않는다. 𝑛 개의 미지수를 모두 구하려면 𝑛+1 개의 행렬식이 필요하고, 행렬식 하나가 이미 소거 한 번만큼 비싸다. 이 공식의 값어치는 해를 계수들의 식으로 적어 준다는 데 있다. 계수가 조금 변할 때 해가 어떻게 변하는지를 논할 때 쓴다.
4장 정리
기호 또는 용어
뜻
det𝐴, |𝐴|
정사각행렬에 대응하는 수. 두 열이 만드는 넓이, 세 열이 만드는 부피의 부호 있는 값
2×2 공식
det[𝑎𝑐𝑏𝑑]=𝑎𝑑−𝑏𝑐
소행렬식 𝑀𝑖𝑗
i 행과 j 열을 지운 행렬의 행렬식
여인자 𝐶𝑖𝑗
(−1)𝑖+𝑗𝑀𝑖𝑗. 부호는 체스판 무늬
여인자 전개
det𝐴=∑𝑗𝑎𝑖𝑗𝐶𝑖𝑗. 어느 행이나 열로 해도 같다
행 연산의 효과
k 배는 k 배, 교환은 부호 반전, 배수를 더하면 그대로
삼각행렬
행렬식은 주대각선 성분의 곱
곱과 전치
det(𝐴𝐵)=det𝐴det𝐵, det𝐴𝑇=det𝐴, det(𝑘𝐴)=𝑘𝑛det𝐴
det𝐴=0
가역이 아니다. 열들이 낮은 차원에 눌려 있다. 동차연립방정식에 자명하지 않은 해가 있다
수반행렬 adj(𝐴)
여인자행렬의 전치. 𝐴−1=adj(𝐴)/det𝐴
크라메르 공식
𝑥𝑗=det𝐴𝑗/det𝐴. j 번째 열을 상수항으로 갈아 끼운다
이 장에서 '열들이 같은 직선 위에 눌려 있다'는 표현을 여러 번 썼다. 그것을 제대로 부르는 이름이 일차종속이고 6장에서 정의한다. 다음 장에서는 그 열 하나하나, 곧 벡터를 정면으로 다룬다. 지금까지 '수를 세로로 세운 것'으로만 쓰던 대상에 길이와 각을 붙이는 일이다.
벡터와 유클리드 공간
앞의 두 장에서 '수를 세로로 세운 것'을 계속 써 왔다. 연립방정식의 상수항 𝐛, 미지수 𝐱, 그리고 행렬의 열 하나하나가 그것이었다. 4장에서는 그 열들이 만드는 넓이와 부피까지 이야기했는데, 정작 길이와 각은 한 번도 정의하지 않았다. 이 장이 그 빈자리를 메운다.
이 장에서 답할 질문은 셋이다. 수의 나열을 어떻게 도형으로 보는가, 두 벡터가 이루는 각을 성분만으로 어떻게 재는가, 그리고 그것으로 직선·평면·거리를 어떻게 다루는가.
실수 𝑛 개를 순서대로 늘어놓은 것을 벡터(vector)라 하고, 그런 것들을 모두 모은 집합을 ℝ𝑛 이라 쓴다. 이 문서에서는 세로로 세운 열 형태를 기본으로 하되, 지면을 아끼려고 본문에서는 (3,1) 처럼 가로로 적기도 한다. 둘은 같은 것을 다르게 적은 것뿐이다.
𝐮=⎡⎢
⎢
⎢
⎢⎣𝑢1𝑢2⋮𝑢𝑛⎤⎥
⎥
⎥
⎥⎦∈ℝ𝑛
벡터를 보는 방법이 둘 있고, 둘 다 필요하다.
수의 나열로 — 계산할 때 쓴다. 성분끼리 더하고 곱한다. 차원이 몇이든 통한다
화살표로 — 생각할 때 쓴다. 원점에서 그 점까지 그은 화살표로 본다. 그림이 가능한 것은 2차원과 3차원뿐이지만, 거기서 얻은 직관이 높은 차원에서도 대부분 그대로 통한다
화살표로 볼 때 중요한 약속이 하나 있다. 벡터는 위치가 아니라 '얼마만큼 어느 방향으로'만 담는다. 그래서 평행이동해도 같은 벡터다. 원점에 꼬리를 둔 화살표를 대표로 삼으면 벡터와 점이 일대일로 대응하는데, 그렇게 본 것을 위치벡터라 한다.
연산은 둘뿐이다. 합과 스칼라배다. 성분으로는 자리끼리 더하고 모든 자리에 수를 곱하는 것이지만, 화살표로 보면 뜻이 분명해진다.
<합은 화살표를 이어 붙인 것이고, 차는 v 의 끝에서 u 의 끝으로 가는 화살표이며, 스칼라배는 방향은 그대로 두고 길이만 바꾼 것이다. 음수를 곱하면 방향이 정반대가 된다>[원본 보기]
합을 이어 붙이기로 보는 것과 평행사변형의 대각선으로 보는 것은 같은 이야기다. 𝐮+𝐯 를 𝐯+𝐮 로 적으면 이어 붙이는 순서만 바뀌고 끝점은 같기 때문이다.
차 𝐮−𝐯 는 특히 자주 쓴다. 그림에서 보듯 𝐯 의 끝에서 𝐮 의 끝으로 가는 화살표이고, 이것이 두 점 사이의 '차이'를 담는다. 뒤에서 거리를 잴 때 이 벡터의 길이를 재게 된다.
예제 30
𝐮=(3,1), 𝐯=(1,2) 에 대해 𝐮+𝐯, 𝐮−𝐯, 2𝐮−3𝐯 를 구하고, ℝ3 의 𝐚=(1,2,−1), 𝐛=(3,0,2) 에 대해서도 2𝐚−𝐛 를 구하라.
풀이 보기
성분끼리 계산한다. 규칙이 단순해서 실수할 일은 부호뿐이다.
𝐮+𝐯=(3+1,1+2)=(4,3),𝐮−𝐯=(3−1,1−2)=(2,−1)
2𝐮−3𝐯=(6,2)−(3,6)=(3,−4)
ℝ3 도 다를 것이 없다. 자리가 하나 늘었을 뿐이다.
2𝐚−𝐛=(2,4,−2)−(3,0,2)=(−1,4,−4)
기하로 읽어 두자. 𝐮−𝐯=(2,−1) 은 점 (1,2) 에서 점 (3,1) 로 가려면 오른쪽으로 2, 아래로 1 움직이면 된다는 뜻이다. 실제로 (1,2)+(2,−1)=(3,1) 이다. 차를 더하면 원래로 돌아간다는 것이 차의 정의다.
예제 31
두 점 𝑃(1,2) 와 𝑄(7,5) 에 대해 선분 𝑃𝑄 의 중점과, 𝑃𝑄 를 1:2 로 내분하는 점을 벡터로 구하라.
풀이 보기
점을 위치벡터로 보면 문제가 벡터 계산이 된다. 𝑃 에서 출발해 ⟶𝑃𝑄 방향으로 일정 비율만큼 가는 것이다.
⟶𝑃𝑄=𝑄−𝑃=(7−1,5−2)=(6,3)
중점은 절반만 가면 된다.
𝑀=𝑃+12⟶𝑃𝑄=(1,2)+(3,1.5)=(4,3.5)
이것을 정리하면 𝑀=𝑃+12(𝑄−𝑃)=12(𝑃+𝑄) 다. 중점은 두 위치벡터의 평균이라는 익숙한 공식이 이렇게 나온다.
1:2 내분점은 전체를 3으로 나눈 것 중 1만큼 간 자리다.
𝑅=𝑃+13⟶𝑃𝑄=(1,2)+(2,1)=(3,3)
검산. 𝑃𝑅 의 길이와 𝑅𝑄 의 길이가 1:2 인지 보면 된다. ⟶𝑃𝑅=(2,1) 이고 ⟶𝑅𝑄=(4,2) 로 정확히 2배다 ✓.
좌표기하에서 외우던 내분점 공식 2𝑃+𝑄3 을 풀어 쓰면 위 계산과 같다. 벡터로 적으면 공식을 외울 필요가 없어진다.
노름과 거리
화살표의 길이를 노름(norm)이라 하고 ‖𝐯‖ 로 적는다. 절댓값 기호를 두 겹으로 그린 것인데, 실제로 ℝ1 에서는 절댓값과 같아진다.
ℝ2 에서는 피타고라스 정리로 ‖𝐯‖=√𝑣21+𝑣22 다. ℝ3 에서는 밑면의 대각선에 다시 피타고라스를 한 번 더 쓰면 √𝑣21+𝑣22+𝑣23 가 나온다. 그러면 일반 차원에서는 그것을 그대로 정의로 삼는다.
‖𝐯‖=√𝑣21+𝑣22+⋯+𝑣2𝑛
길이가 1인 벡터를 단위벡터라 한다. 영벡터가 아닌 벡터를 자기 길이로 나누면 방향은 그대로이고 길이만 1이 되는데, 이것을 정규화라 한다.
ˆ𝐯=𝐯‖𝐯‖
두 점 사이의 거리는 차 벡터의 길이다.
𝑑(𝐮,𝐯)=‖𝐮−𝐯‖=√(𝑢1−𝑣1)2+⋯+(𝑢𝑛−𝑣𝑛)2
노름의 성질 셋을 적어 둔다. 앞의 둘은 정의에서 바로 나오고, 셋째는 뒤에서 증명한다.
‖𝐯‖≥0 이고, ‖𝐯‖=0 인 것은 𝐯=𝟎 일 때뿐이다
‖𝑘𝐯‖=|𝑘|‖𝐯‖ — 스칼라배는 길이를 그 절댓값만큼 늘인다. 음수를 곱해도 길이는 양수다
‖𝐮+𝐯‖≤‖𝐮‖+‖𝐯‖ — 삼각부등식
예제 32
𝐯=(3,−4) 와 𝐰=(1,2,2) 의 노름과 단위벡터를 구하고, 두 점 𝐴(1,2,3) 과 𝐵(4,6,3) 사이의 거리를 구하라.
풀이 보기
‖𝐯‖=√32+(−4)2=√25=5 이므로 단위벡터는 ˆ𝐯=(35,−45) 다.
확인해 보자. (35)2+(−45)2=925+1625=1 ✓. 길이가 1이다.
‖𝐰‖=√1+4+4=3 이므로 ˆ𝐰=(13,23,23).
거리는 차 벡터의 길이다. 𝐵−𝐴=(3,4,0) 이므로
𝑑(𝐴,𝐵)=√9+16+0=5
셋째 성분의 차가 0이라는 것은 두 점이 같은 높이에 있다는 뜻이고, 그래서 계산이 사실상 평면 문제가 되었다. 성분이 0이면 그 방향으로는 움직이지 않았다는 뜻이라는 점을 늘 읽어 두면 좋다.
예제 33
𝐯=(3,−4) 와 같은 방향이면서 길이가 10인 벡터를 구하라. 반대 방향이면서 길이가 10인 벡터도 구하라.
풀이 보기
방향을 유지하면서 길이만 바꾸는 것은 스칼라배뿐이다. 그러니 먼저 길이를 1로 만들고(정규화) 원하는 길이를 곱한다.
10ˆ𝐯=10×(35,−45)=(6,−8)
확인. √36+64=10 ✓. 그리고 (6,−8)=2(3,−4) 이니 방향도 같다.
반대 방향은 음수를 곱하면 된다. −10ˆ𝐯=(−6,8) 이고 길이는 여전히 10이다. ‖𝑘𝐯‖=|𝑘|‖𝐯‖ 에서 절댓값이 붙는 이유가 이것이다.
흔한 실수는 정규화를 건너뛰고 10𝐯=(30,−40) 이라고 답하는 것이다. 그러면 길이가 50이 된다. '길이를 얼마로 맞춰라'라는 문제는 언제나 정규화가 먼저다.
내적
이제 각을 잴 차례다. 두 벡터 사이의 각을 성분만으로 알아내려면 무언가 다리가 필요한데, 그 다리가 내적(inner product, dot product)이다.
정의가 둘 있고, 놀랍게도 같은 값이다.
𝐮⋅𝐯=𝑢1𝑣1+𝑢2𝑣2+⋯+𝑢𝑛𝑣𝑛=∑𝑛𝑖=1𝑢𝑖𝑣𝑖
𝐮⋅𝐯=‖𝐮‖‖𝐯‖cos𝜃(0≤𝜃≤𝜋)
위엣것은 계산용이고 아래엣것은 뜻이다. 둘이 같다는 것은 코사인법칙으로 보인다. 두 벡터와 그 차가 이루는 삼각형에 코사인법칙을 쓰면
‖𝐮−𝐯‖2=‖𝐮‖2+‖𝐯‖2−2‖𝐮‖‖𝐯‖cos𝜃
인데, 왼쪽을 성분으로 풀어 쓰면 ∑(𝑢𝑖−𝑣𝑖)2=∑𝑢2𝑖−2∑𝑢𝑖𝑣𝑖+∑𝑣2𝑖=‖𝐮‖2−2∑𝑢𝑖𝑣𝑖+‖𝐯‖2 이다. 양변을 견주면 ∑𝑢𝑖𝑣𝑖=‖𝐮‖‖𝐯‖cos𝜃 가 남는다. ■
여기서 각의 정의를 거꾸로 돌릴 수 있다. ℝ5 에서 '각'이 무엇인지는 눈에 보이지 않지만, 위 식을 정의로 삼아 cos𝜃=𝐮⋅𝐯‖𝐮‖‖𝐯‖ 라고 정하면 된다. 이 값이 언제나 −1 과 1 사이라는 것은 다음 절의 코시-슈바르츠 부등식이 보증한다.
<내적의 부호가 곧 각의 종류다. 굵은 선분이 v 를 u 위에 내린 그림자이고, 내적은 그 그림자의 길이에 u 의 길이를 곱한 값이다. 그림자가 u 와 반대쪽을 향하면 음수가 된다>[원본 보기]
그림이 말하는 것을 한 문장으로 적으면 이렇다. 내적은 '한 벡터가 다른 벡터 방향으로 얼마나 나아갔는가'에 그 다른 벡터의 길이를 곱한 값이다. 그래서 두 벡터가 같은 쪽을 향할수록 크고, 수직이면 0이고, 반대쪽을 향하면 음수다.
내적이 0인 두 벡터를 직교(orthogonal)한다고 한다. cos90°=0 이기 때문이다. 영벡터는 모든 벡터와 직교하는 것으로 약속한다.
성질을 모아 둔다. 모두 성분 정의에서 곧바로 확인된다.
성질
식
교환
𝐮⋅𝐯=𝐯⋅𝐮
분배
𝐮⋅(𝐯+𝐰)=𝐮⋅𝐯+𝐮⋅𝐰
스칼라
(𝑘𝐮)⋅𝐯=𝑘(𝐮⋅𝐯)
자기 자신과의 내적
𝐯⋅𝐯=‖𝐯‖2≥0
행렬로 적으면
𝐮⋅𝐯=𝐮𝑇𝐯 (열벡터일 때)
전치와 내적
(𝐴𝐮)⋅𝐯=𝐮⋅(𝐴𝑇𝐯)
마지막 줄은 9장까지 계속 쓰이는 관계다. (𝐴𝐮)𝑇𝐯=𝐮𝑇𝐴𝑇𝐯 라는 전치 규칙 한 줄이 전부다. 행렬을 내적의 반대쪽으로 넘기면 전치가 붙는다고 기억하면 된다.
내적을 행렬 곱으로 적을 수 있다는 사실에서 3장의 곱셈 규칙도 다시 읽힌다. (𝐴𝐵)𝑖𝑗 는 𝐴 의 𝑖 행과 𝐵 의 𝑗 열의 내적이다.
<벡터끼리의 곱은 하나가 아니다. 한 줄기는 결과가 수인 내적이고 다른 줄기는 결과가 벡터인 외적이다. 각 줄기를 따라가면 그 곱이 무엇을 재고 어디에 쓰이는지가 나온다. 두 줄기의 차이는 결국 cos 과 sin 의 차이다>[원본 보기]
예제 34
𝐮=(3,1) 과 𝐯=(1,2) 가 이루는 각을 구하라.
풀이 보기
각을 구하려면 cos𝜃=𝐮⋅𝐯‖𝐮‖‖𝐯‖ 를 쓴다. 분자와 분모를 따로 구한다.
𝐮⋅𝐯=3×1+1×2=5
‖𝐮‖=√9+1=√10,‖𝐯‖=√1+4=√5
cos𝜃=5√10√5=5√50=55√2=1√2
따라서 𝜃=45°, 라디안으로는 𝜋/4 다. 내적이 양수였으니 예각이 나온 것도 맞는다.
여기서 4장과 이어지는 대목이 있다. 이 두 벡터를 열로 세운 행렬의 행렬식이 3⋅2−1⋅1=5 였다. 그런데 평행사변형의 넓이는 '두 변의 길이 곱하기 사이각의 사인'이므로
‖𝐮‖‖𝐯‖sin𝜃=√10√5×1√2=5√2×1√2=5
로 행렬식과 정확히 같다. 내적은 코사인을, 행렬식은 사인을 재고 있었던 것이다. 이 짝은 곧 외적에서 다시 만난다.
예제 35
𝐮=(2,𝑘,1) 과 𝐯=(3,−1,2) 가 직교하도록 𝑘 를 정하라. 또 직교하는 두 벡터에 대해 ‖𝐮+𝐯‖2=‖𝐮‖2+‖𝐯‖2 임을 보여라.
일반 공식으로 정리하면 이렇게 된다. 평면이 𝑎𝑥+𝑏𝑦+𝑐𝑧=𝑑 이고 점이 (𝑥0,𝑦0,𝑧0) 일 때
거리=|𝑎𝑥0+𝑏𝑦0+𝑐𝑧0−𝑑|√𝑎2+𝑏2+𝑐2
넣어 보면 |2+6+18−12|/7=14/7=2 로 같다 ✓.
답이 말이 되는지 보자. 평면 위의 점 𝑃0 까지의 직선 거리는 ‖(−5,2,3)‖=√38≈6.16 인데 평면까지의 거리는 2다. 수선의 발이 가장 가깝다고 했으니 거리는 반드시 이보다 작아야 하고, 실제로 그렇다. 이 부등호 검사는 계산 실수를 잡는 데 쓸모가 많다.
5장 정리
기호 또는 용어
뜻
ℝ𝑛
실수 n 개를 순서대로 늘어놓은 것들의 집합. 원소를 벡터라 한다
합과 스칼라배
성분끼리 더하기, 모든 성분에 곱하기. 화살표를 이어 붙이기와 길이 바꾸기
노름 ‖𝐯‖
√𝑣21+⋯+𝑣2𝑛. 화살표의 길이
단위벡터 ˆ𝐯
𝐯/‖𝐯‖. 방향만 남기고 길이를 1로 맞춘 것
거리
‖𝐮−𝐯‖. 차 벡터의 길이
내적 𝐮⋅𝐯
∑𝑢𝑖𝑣𝑖=‖𝐮‖‖𝐯‖cos𝜃. 열벡터로는 𝐮𝑇𝐯
직교
내적이 0. 𝜃=90°
코시-슈바르츠
|𝐮⋅𝐯|≤‖𝐮‖‖𝐯‖. 등호는 두 벡터가 나란할 때
삼각부등식
‖𝐮+𝐯‖≤‖𝐮‖+‖𝐯‖. 등호는 같은 방향일 때
정사영
proj𝐯𝐮=𝐮⋅𝐯‖𝐯‖2𝐯. 남는 조각은 𝐯 와 직교
외적 𝐮×𝐯
ℝ3 한정. 두 벡터에 수직이고 크기는 평행사변형의 넓이
스칼라 삼중곱
(𝐮×𝐯)⋅𝐰. 평행육면체의 부피이고 3×3 행렬식과 같다
직선
𝐱=𝑃0+𝑡𝐝 (매개형)
평면
𝐧⋅(𝐱−𝑃0)=0, 곧 𝑎𝑥+𝑏𝑦+𝑐𝑧=𝑑. 계수가 법선벡터다
점과 평면 사이 거리
|𝑎𝑥0+𝑏𝑦0+𝑐𝑧0−𝑑|/√𝑎2+𝑏2+𝑐2. 법선 방향 정사영
여기까지가 이 문서의 1부다. 지금까지 다룬 것은 모두 '수의 나열'과 '수의 표'였고, 그 위에서 계산과 기하를 붙였다. 그런데 합과 스칼라배라는 두 연산만 놓고 보면, 다항식도 함수도 행렬도 벡터와 똑같은 규칙을 따른다. 다음 장은 거기서 출발한다. 벡터가 무엇으로 만들어졌는지는 잊고, 무엇을 할 수 있는지만 남기는 것이다.
일반 벡터공간
5장까지의 벡터는 '수를 늘어놓은 것'이었다. 그런데 다항식 1+3𝑥−2𝑥2 를 생각해 보자. 다항식끼리는 더할 수 있고 수를 곱할 수도 있으며, 그 두 연산은 벡터의 합·스칼라배와 똑같은 규칙을 따른다. 행렬도 그렇고, 함수도 그렇다.
이 장에서 답할 질문은 둘이다. 공통되는 규칙만 뽑아 두면 무엇이 좋은가, 그리고 그 규칙 위에서 '공간의 크기'를 어떻게 재는가. 두 번째 물음의 답이 차원과 랭크이고, 그것이 3장부터 미뤄 온 여러 물음을 한꺼번에 정리한다.
앞에서 가져오는 것은 3장의 행렬 표기와 가우스 소거법, 일차결합, 축(pivot)과 자유변수, 4장의 행렬식, 5장의 ℝ𝑛 과 내적이다. 기초수학에서는 집합 기호와 함수 개념을 쓴다.
규칙만 남기고 정체는 잊는다
5장의 ℝ𝑛 에서 우리가 실제로 쓴 성질을 세어 보면 열 개다. 아래 열 개를 모두 만족하는 집합 𝑉 를 벡터공간(vector space)이라 하고, 그 원소를 벡터라 부른다. 𝐮,𝐯,𝐰 는 𝑉 의 원소, 𝑘,𝑚 은 실수다.
덧셈에 대한 다섯
스칼라배에 대한 다섯
닫힘: 𝐮+𝐯∈𝑉
닫힘: 𝑘𝐮∈𝑉
교환: 𝐮+𝐯=𝐯+𝐮
분배: 𝑘(𝐮+𝐯)=𝑘𝐮+𝑘𝐯
결합: (𝐮+𝐯)+𝐰=𝐮+(𝐯+𝐰)
분배: (𝑘+𝑚)𝐮=𝑘𝐮+𝑚𝐮
항등원: 𝐮+𝟎=𝐮 인 𝟎∈𝑉 가 있다
결합: 𝑘(𝑚𝐮)=(𝑘𝑚)𝐮
역원: 𝐮+(−𝐮)=𝟎 인 −𝐮∈𝑉 가 있다
항등원: 1𝐮=𝐮
이 목록을 외울 필요는 없다. 요점은 여기에 '성분'이라는 말이 한 번도 나오지 않는다는 것이다. 원소가 무엇으로 만들어졌는지는 묻지 않고 무엇을 할 수 있는지만 묻는다. 그래서 생김새가 전혀 다른 것들이 같은 자격으로 들어온다.
<네 가지는 생김새가 전혀 다르지만 더하기와 수 곱하기가 같은 규칙을 따른다. 그래서 한 번 증명한 정리를 네 곳 모두에서 쓸 수 있다. 이것이 공리로 올라가는 유일한 이유다>[원본 보기]
자주 쓰는 벡터공간에는 이름이 있다. ℝ𝑛, 차수가 𝑛 이하인 다항식 전체 𝑃𝑛, 𝑚×𝑛 행렬 전체 𝑀𝑚𝑛, 어떤 구간에서 정의된 함수 전체 𝐹(𝑎,𝑏) 다. 마지막 것에서 '더하기'는 (𝑓+𝑔)(𝑥)=𝑓(𝑥)+𝑔(𝑥) 로 정의한다.
공리에서 곧바로 따라 나오는 사실이 몇 가지 있다. 정의에 없으니 증명해야 한다.
0𝐮=𝟎,𝑘𝟎=𝟎,(−1)𝐮=−𝐮
첫 번째만 보이면 나머지는 비슷하다. 0𝐮=(0+0)𝐮=0𝐮+0𝐮 이므로 양변에 −(0𝐮) 를 더하면 𝟎=0𝐮 다. ■ 왼쪽의 0은 수이고 오른쪽의 𝟎 은 벡터라는 점을 놓치면 이 줄이 동어반복으로 보인다.
예제 44
차수가 2 이하인 다항식 전체 𝑃2 가 벡터공간임을 확인하라. 특히 영벡터와 역원이 무엇인지 밝혀라.
풀이 보기
확인할 것은 열 개 공리지만, 다항식의 덧셈과 실수배는 같은 차수의 계수끼리 더하고 곱하는 것이므로 실수의 성질이 그대로 옮겨 온다. 교환·결합·분배는 각 계수 자리에서 실수의 교환·결합·분배일 뿐이다. 실제로 볼 것은 닫힘성과 항등원·역원 셋이다.
닫힘성.𝑝=𝑎0+𝑎1𝑥+𝑎2𝑥2 와 𝑞=𝑏0+𝑏1𝑥+𝑏2𝑥2 를 더하면 (𝑎0+𝑏0)+(𝑎1+𝑏1)𝑥+(𝑎2+𝑏2)𝑥2 이고 여전히 차수가 2 이하다 ✓. 실수배도 마찬가지다 ✓.
영벡터. 모든 계수가 0인 다항식, 곧 영다항식이다. 어떤 𝑝 에 더해도 𝑝 그대로다 ✓.
역원. 모든 계수의 부호를 뒤집은 −𝑝 다 ✓.
답이 말이 되는지 보자. 𝑃2 의 원소는 계수 세 개로 완전히 정해지므로 (𝑎0,𝑎1,𝑎2) 라는 ℝ3 의 점과 짝지을 수 있다. 그리고 방금 확인한 덧셈·실수배가 정확히 ℝ3 의 그것과 같다. 𝑃2 는 ℝ3 를 다른 글씨로 적은 것이라 해도 된다. 이 '같음'을 정식으로 부르는 이름이 7장의 동형사상이다.
예제 45
다음 둘은 벡터공간인가. (1) 차수가 정확히 2인 다항식 전체 (2) 성분이 모두 양수인 ℝ2 의 점 전체.
풀이 보기
벡터공간이 아님을 보이려면 공리 하나를 어기는 예를 하나 찾으면 된다. 열 개를 다 확인할 필요가 없다.
(1)𝑝=𝑥2+1 과 𝑞=−𝑥2+𝑥 는 둘 다 차수가 정확히 2다. 그런데 𝑝+𝑞=𝑥+1 은 차수가 1이라 이 집합 밖이다. 덧셈 닫힘성을 어긴다. 영다항식이 들어 있지 않다는 점에서도 이미 실격이다.
(2)𝐮=(1,2) 에 −1 을 곱하면 (−1,−2) 인데 성분이 음수라 집합 밖이다. 스칼라배 닫힘성을 어긴다. 더하기만 보면 아무 문제가 없다는 점이 함정이다.
두 반례가 알려 주는 것이 있다. 어떤 집합이 벡터공간인지 볼 때 가장 먼저 의심할 곳은 닫힘성이고, 그중에서도 음수 배와 영벡터다. 다음 절의 판정법이 이 관찰을 그대로 규칙으로 만든 것이다.
부분공간 — 큰 공간 안의 작은 공간
벡터공간 𝑉 의 부분집합 𝑊 가 같은 덧셈과 스칼라배로 그 자체로 벡터공간이면, 𝑊 를 𝑉 의 부분공간(subspace)이라 한다.
다행히 열 개를 다시 확인할 필요는 없다. 교환·결합·분배 같은 것은 큰 공간에서 이미 성립하므로 부분집합에서도 자동으로 성립한다. 확인할 것은 밖으로 나가지 않는가뿐이다.
부분공간 판정법.𝑊⊆𝑉 가 다음 셋을 만족하면, 그리고 그때만 부분공간이다.
𝟎∈𝑊 (그래서 𝑊 는 비어 있지 않다)
𝐮,𝐯∈𝑊⇒𝐮+𝐯∈𝑊
𝐮∈𝑊, 𝑘 가 실수 ⇒𝑘𝐮∈𝑊
첫 조건은 사실 셋째에서 따라 나오지만(𝑘=0), 먼저 확인하면 아닌 것을 가장 빨리 걸러낼 수 있어서 따로 적어 둔다. 원점을 지나지 않으면 그 자리에서 끝이다.
<원점을 지나는 직선은 부분공간이다. 원점을 비켜 간 직선은 두 벡터를 더하는 순간 직선을 벗어나고, 제1사분면은 더하기는 견디지만 −1 배에서 무너진다. 판정법의 세 조건이 각각 어디서 걸리는지가 보인다>[원본 보기]
그림의 왼쪽이 중요한 이유가 있다. 3장에서 동차연립방정식 𝐴𝐱=𝟎 의 해집합이 원점을 지나는 직선이나 평면이었던 것을 기억할 것이다. 그것이 우연이 아니라는 말을 이제 할 수 있다. 두 해를 더해도 해이고 상수배해도 해이므로, 동차연립방정식의 해집합은 언제나 부분공간이다. 상수항이 하나라도 0이 아니면 𝟎 이 해가 아니라 부분공간이 되지 못한다.
예제 46
ℝ3 의 다음 부분집합이 부분공간인지 판정하라. (1) 𝑊1={(𝑥,𝑦,𝑧)∣𝑥+𝑦+𝑧=0} (2) 𝑊2={(𝑥,𝑦,𝑧)∣𝑥+𝑦+𝑧=1} (3) 𝑊3={(𝑥,𝑦,𝑧)∣𝑥𝑦=0}
풀이 보기
세 조건을 순서대로 본다. 영벡터 → 덧셈 → 스칼라배.
(1)(0,0,0) 은 0+0+0=0 을 만족한다 ✓. 두 점 𝐮,𝐯 가 조건을 만족하면 성분합이 각각 0이므로 𝐮+𝐯 의 성분합도 0+0=0 ✓. 𝑘𝐮 의 성분합은 𝑘⋅0=0 ✓. 부분공간이다. 이것은 원점을 지나는 평면이다.
(2)(0,0,0) 의 성분합은 0이지 1이 아니다. 첫 조건에서 탈락. 원점을 지나지 않는 평면이라 부분공간이 될 수 없다.
(3) 영벡터는 들어 있고(0⋅0=0) 스칼라배도 견딘다. 그런데 (1,0,0) 과 (0,1,0) 은 둘 다 조건을 만족하는데 합 (1,1,0) 은 𝑥𝑦=1≠0 이라 밖이다. 덧셈에서 탈락.
(3)이 알려 주는 것은 세 조건 중 둘만 통과해도 소용없다는 것이다. 이 집합은 두 평면(𝑥=0 과 𝑦=0)을 합친 모양인데, 각각은 부분공간이어도 합집합은 부분공간이 아니다.
예제 47
2×2 행렬 전체 𝑀22 안에서 (1) 대칭행렬 전체 (2) 가역행렬 전체 가 부분공간인지 판정하라.
(2) 가역행렬. 영행렬은 가역이 아니다. 첫 조건에서 탈락. 덧셈도 어긴다. 𝐼 와 −𝐼 는 둘 다 가역인데 합은 영행렬이라 가역이 아니다.
두 답의 차이를 짚어 두자. (1)의 조건 𝐴𝑇=𝐴 는 성분들에 대한 일차 조건이라 덧셈과 상수배를 견딘다. (2)의 조건 det𝐴≠0 은 일차가 아니다. 부분공간을 만드는 것은 언제나 '= 0' 꼴의 일차 조건이고, 부등식이나 고차식이 끼면 거의 예외 없이 부분공간이 아니다.
일차결합과 생성
3장에서 𝐴𝐱 를 정의하면서 일차결합이라는 말을 이미 썼다. 여러 벡터에 수를 곱해 더한 것이다. 이제 정식으로 확장한다. 벡터 𝐯1,…,𝐯𝑟∈𝑉 와 실수 𝑘1,…,𝑘𝑟 에 대해
𝑘1𝐯1+𝑘2𝐯2+⋯+𝑘𝑟𝐯𝑟
를 그 벡터들의 일차결합이라 한다. 계수를 온갖 값으로 바꿔 가며 만들 수 있는 것을 전부 모은 집합을 생성(span)이라 하고 span{𝐯1,…,𝐯𝑟} 로 적는다.
생성은 언제나 부분공간이다. 일차결합 둘을 더하면 계수끼리 더해져 여전히 일차결합이고, 상수배해도 계수가 상수배될 뿐이며, 계수를 전부 0으로 두면 영벡터가 나오기 때문이다. 생성은 '주어진 벡터들을 품는 가장 작은 부분공간'이라고 말해도 같다.
<벡터 하나로는 직선까지밖에 못 간다. 방향이 다른 둘이 있으면 그 둘의 눈금이 평면을 덮는다. R³ 에서 둘을 잡으면 원점을 지나는 평면이 된다. 몇 개를 모았는가가 아니라 방향이 몇 가지인가가 크기를 정한다>[원본 보기]
여기서 계산 문제 하나가 생긴다. 어떤 벡터가 주어진 벡터들의 생성에 들어 있는가? 이 물음은 겉보기와 달리 새로운 문제가 아니다.
𝐛∈span{𝐯1,…,𝐯𝑟} 라는 것은 𝑘1𝐯1+⋯+𝑘𝑟𝐯𝑟=𝐛 를 만족하는 계수가 있다는 뜻이고, 벡터들을 열로 세워 행렬 𝐴 를 만들면 이것이 정확히 𝐴𝐤=𝐛 다. 생성 판정은 연립일차방정식이 풀리는가 하는 물음이며, 3장의 소거법이 그대로 답한다.
예제 48
𝐛=(1,2,3) 이 span{(1,1,0),(0,1,1)} 에 들어 있는가? 들어 있다면 계수를 구하라.
풀이 보기
물음을 방정식으로 옮긴다. 𝑘1(1,1,0)+𝑘2(0,1,1)=(1,2,3) 인 𝑘1,𝑘2 가 있는가.
기하로 읽으면 이렇다. 두 벡터가 생성하는 것은 ℝ3 안의 평면 하나이고, (1,2,3) 은 그 평면 밖에 있다. 상수 열에 축이 생겼다는 것이 '평면 밖'의 대수적 표현이다.
답을 검산하는 방법이 하나 더 있다. 두 생성벡터에 모두 수직인 방향을 외적으로 구하면 (1,1,0)×(0,1,1)=(1,−1,1) 이고, 이것이 그 평면의 법선이다. (1,2,3)⋅(1,−1,1)=1−2+3=2≠0 이므로 평면 위에 있지 않다 ✓. 소거에서 나온 2와 같은 수가 나온 것은 우연이 아니다.
예제 49
{(1,0,1),(0,1,1),(1,1,0)} 이 ℝ3 를 생성하는가?
풀이 보기
이번에는 특정한 𝐛 가 아니라 모든𝐛 에 대해 𝐴𝐤=𝐛 가 풀려야 한다. 4장의 표에 이 조건이 이미 있다. 정사각행렬이라면 det𝐴≠0 이면 된다.
세 벡터를 열로 세운다.
𝐴=⎡⎢
⎢⎣101011110⎤⎥
⎥⎦,det𝐴=1(0−1)−0+1(0−1)=−2
0이 아니므로 어떤 𝐛 를 주어도 해가 있다. 생성한다.
만약 det𝐴=0 이었다면 세 벡터가 한 평면에 눌려 있어 그 평면 밖의 𝐛 에는 닿지 못했을 것이다. 4장에서 '열들이 낮은 차원에 눌려 있다'고 말한 것이 지금은 '생성하는 것이 ℝ3 보다 작다'로 정확히 번역된다.
일차독립과 일차종속
앞 예제의 두 상황을 갈랐던 것은 결국 벡터들 사이에 군더더기가 있는가였다. 그것을 정의로 만든다.
벡터 𝐯1,…,𝐯𝑟 에 대한 벡터방정식
𝑘1𝐯1+𝑘2𝐯2+⋯+𝑘𝑟𝐯𝑟=𝟎
은 언제나 𝑘1=⋯=𝑘𝑟=0 이라는 해를 갖는다. 이것을 자명해라 한다(3장의 동차연립방정식에서 쓴 말 그대로다).
일차독립(linearly independent): 자명해뿐일 때
일차종속(linearly dependent): 자명하지 않은 해가 있을 때
종속이라는 말의 뜻은 식을 옮겨 보면 드러난다. 어떤 𝑘𝑖≠0 이면 그 항만 왼쪽에 남기고 𝑘𝑖 로 나눌 수 있다.
𝐯𝑖=−𝑘1𝑘𝑖𝐯1−⋯(𝐯𝑖항은빼고)
즉 일차종속이란 그중 적어도 하나가 나머지의 일차결합으로 적힌다는 뜻이고, 그 하나는 생성에 아무것도 보태지 않는 군더더기다.
<두 벡터가 평면을 하나 정한다. 셋째가 그 평면 안에 있으면 앞의 둘로 만들 수 있으니 새 방향이 아니고, 평면을 벗어나야 비로소 공간 전체를 생성한다. 일차독립과 종속의 차이는 이 한 장면이 전부다>[원본 보기]
몇 가지는 계산하지 않고도 판정할 수 있다. 익혀 두면 시간을 아낀다.
벡터 중에 영벡터가 있으면 반드시 종속이다. 그 자리에 1을 놓고 나머지를 0으로 두면 자명하지 않은 해가 된다.
벡터 둘이 서로 배수면 종속이다. 기하로는 같은 직선 위에 있다는 뜻이다.
ℝ𝑛 에서 벡터를 𝑛 개보다 많이 모으면 반드시 종속이다. 미지수가 방정식보다 많은 동차연립방정식이 되므로 3장의 성질에 따라 자명하지 않은 해가 있다.
예제 50
𝐯1=(1,2,1), 𝐯2=(2,1,−1), 𝐯3=(7,8,1) 이 일차독립인지 판정하고, 종속이면 관계식을 하나 적어라.
풀이 보기
판정할 것은 𝑘1𝐯1+𝑘2𝐯2+𝑘3𝐯3=𝟎 이 자명해뿐인가다. 벡터를 열로 세운 계수행렬을 소거한다. 동차연립방정식이라 상수 열은 계속 0이니 적지 않는다.
기약 행사다리꼴의 비축열이 관계식을 그대로 알려 준다는 점이 이 계산의 값어치다. 3열이 (3,2,0) 인데, 그것이 곧 '3열 = 1열의 3배 + 2열의 2배'라는 뜻이다. 행 연산은 열들 사이의 이런 관계를 바꾸지 않기 때문이다.
예제 51
𝑃2 에서 (1) {1,𝑥,𝑥2} (2) {1+𝑥,1−𝑥,𝑥} 의 일차독립 여부를 판정하라.
풀이 보기
벡터가 다항식이라 '성분'이 없어 보이지만, 판정 방법은 같다. 벡터방정식을 세우고 자명해뿐인지 본다.
(1)𝑘1⋅1+𝑘2𝑥+𝑘3𝑥2=0 이 모든 𝑥 에 대해 성립해야 한다. 여기서 오른쪽 0은 수 0이 아니라 영다항식이다. 다항식이 항등적으로 0이려면 계수가 전부 0이어야 하므로 𝑘1=𝑘2=𝑘3=0. 일차독립.
(2) 눈으로 보인다. (1+𝑥)−(1−𝑥)=2𝑥 이므로
1⋅(1+𝑥)+(−1)(1−𝑥)+(−2)⋅𝑥=0
계수 (1,−1,−2) 가 자명하지 않은 해다. 일차종속.
눈에 보이지 않을 때를 위한 방법도 적어 둔다. (1)에서 {1,𝑥,𝑥2} 이 독립임을 알았으므로 다항식을 계수의 나열로 바꿔 적어도 된다. 1+𝑥→(1,1,0), 1−𝑥→(1,−1,0), 𝑥→(0,1,0) 이고, 이 세 벡터를 열로 세운 행렬의 행렬식은 셋째 행이 전부 0이라 0이다. 종속이 다시 확인된다 ✓. 기저를 하나 정하면 어떤 벡터공간의 문제든 ℝ𝑛 의 문제로 바뀐다는 것이 다음 절의 주제다.
기저와 차원, 그리고 좌표
이제 '딱 알맞게 모은 벡터들'을 정의할 수 있다. 벡터공간 𝑉 의 벡터 모음 𝐵={𝐯1,…,𝐯𝑛} 이 다음 둘을 만족하면 𝑉 의 기저(basis)라 한다.
span(𝐵)=𝑉 — 모자라지 않는다
𝐵 가 일차독립 — 남지 않는다
두 조건이 정반대 방향으로 압박한다. 벡터를 늘리면 생성은 쉬워지고 독립은 어려워진다. 기저는 그 줄다리기가 정확히 균형을 이루는 지점이다.
여기에 한 가지 사실이 더해져야 '차원'이라는 말을 쓸 수 있다. 같은 벡터공간의 기저는 개수가 모두 같다. 이 개수를 𝑉 의 차원이라 하고 dim𝑉 로 적는다. 증명은 '𝑛 개가 생성하는 공간에서 𝑛 개보다 많은 벡터는 반드시 종속'이라는 사실에서 나오는데, 여기서는 결과만 쓴다.
dimℝ𝑛=𝑛, dim𝑃𝑛=𝑛+1 (기저 {1,𝑥,…,𝑥𝑛}), dim𝑀𝑚𝑛=𝑚𝑛 이다. 𝑃𝑛 의 차원이 𝑛 이 아니라 𝑛+1 인 것은 상수항 자리가 하나 더 있기 때문이다.
기저를 하나 정하면 좌표가 생긴다. 𝐵={𝐯1,…,𝐯𝑛} 이 기저일 때, 임의의 𝐰∈𝑉 는
𝐰=𝑐1𝐯1+⋯+𝑐𝑛𝐯𝑛
로 적히는데, 이 적는 방법이 단 하나뿐이다. 두 가지 방법이 있다면 두 식을 빼서 자명하지 않은 관계식이 나와 독립성에 어긋나기 때문이다. 그래서 계수들을 모은 것이 벡터마다 하나로 정해지고, 이것을 좌표벡터라 하며 [𝐰]𝐵=(𝑐1,…,𝑐𝑛) 로 적는다.
<화살표는 하나인데 좌표는 둘이다. 표준기저의 눈금으로 재면 (4, 2), 기울어진 기저의 눈금으로 재면 (3, −1) 이다. 벡터는 실체이고 좌표는 그것을 재는 자에 붙은 숫자라는 점이 이 그림의 전부다>[원본 보기]
이 구분이 8장까지 계속 쓰인다. 벡터는 기저와 무관하고 좌표는 기저에 달려 있다.ℝ𝑛 에서 그 구분이 흐릿한 것은 표준기저 {𝐞1,…,𝐞𝑛} 를 워낙 당연하게 써 왔기 때문이다. (4,2) 라고 적을 때 우리는 이미 기저를 하나 고른 것이다.
예제 52
𝐵={(1,1),(−1,1)} 이 ℝ2 의 기저임을 보이고, 𝐰=(4,2) 의 좌표벡터 [𝐰]𝐵 를 구하라.
풀이 보기
기저이려면 생성하고 독립이어야 하는데, 벡터 개수가 차원과 같을 때는 둘 중 하나만 확인하면 된다.ℝ2 에서 두 개를 모았으므로 독립이기만 하면 자동으로 기저다. 그리고 독립은 행렬식으로 본다.
det[1−111]=1+1=2≠0
0이 아니므로 독립이고 기저다 ✓.
좌표를 구한다. 𝑐1(1,1)+𝑐2(−1,1)=(4,2) 를 풀면 되고, 성분으로 적으면 𝑐1−𝑐2=4, 𝑐1+𝑐2=2 다. 더하면 2𝑐1=6 이므로 𝑐1=3, 빼면 𝑐2=−1.
[𝐰]𝐵=(3,−1)
검산. 3(1,1)−(−1,1)=(3,3)−(−1,1)=(4,2) ✓.
답이 말이 되는가. 𝐰 는 오른쪽 위를 향하고 있고 (1,1) 도 그렇다. 그러니 첫 계수가 크고 양수인 것이 자연스럽다. 둘째 계수가 음수인 것은 (−1,1) 이 왼쪽 위를 향해 있어 조금 되돌려야 하기 때문이다. 앞의 그림에서 확인할 수 있다.
예제 53
𝑃2 에서 𝐵={1,𝑥−1,(𝑥−1)2} 가 기저임을 보이고, 𝑝(𝑥)=𝑥2+2𝑥+3 의 좌표벡터를 구하라.
풀이 보기
dim𝑃2=3 이고 벡터가 셋이므로 독립만 보이면 된다. 표준기저 {1,𝑥,𝑥2} 의 계수로 옮겨 적으면 1→(1,0,0), 𝑥−1→(−1,1,0), (𝑥−1)2=𝑥2−2𝑥+1→(1,−2,1) 이다. 열로 세우면 상삼각행렬이라 행렬식이 대각성분의 곱 1⋅1⋅1=1≠0 이다. 독립이고 기저다 ✓.
좌표를 구하는 요령은 높은 차수부터 맞춰 나가는 것이다. 𝑥2 을 만들 수 있는 것은 셋째 항뿐이므로 𝑐3=1.
𝑝−(𝑥−1)2=(𝑥2+2𝑥+3)−(𝑥2−2𝑥+1)=4𝑥+2
남은 것에서 𝑥 를 만들 수 있는 것은 둘째 항뿐이므로 𝑐2=4.
(4𝑥+2)−4(𝑥−1)=6
마지막으로 𝑐1=6 이다. 따라서 [𝑝]𝐵=(6,4,1).
검산. 6+4(𝑥−1)+(𝑥−1)2=6+4𝑥−4+𝑥2−2𝑥+1=𝑥2+2𝑥+3 ✓.
같은 다항식의 좌표가 표준기저에서는 (3,2,1) 이고 이 기저에서는 (6,4,1) 이다. 다항식은 하나인데 숫자 세 쌍이 둘 나왔다. 이 계산은 사실 𝑥=1 에서 테일러 전개를 한 것과 같고, 미적분에서 만나는 그 계산이 여기서는 '기저를 바꾼 좌표'로 보인다.
기저 변환 — 좌표 사이를 오가기
같은 벡터의 좌표가 기저마다 다르다면, 두 좌표 사이를 오가는 방법이 필요하다. 그 방법이 전이행렬이다.
<왼쪽의 벡터는 하나뿐이고 기저를 고를 때마다 오른쪽에 좌표가 새로 생긴다. 두 좌표 사이를 오가는 것이 전이행렬이며, 방향이 반대인 두 전이행렬은 서로 역행렬이다>[원본 보기]
기저 𝐵={𝐛1,…,𝐛𝑛} 에서 𝐵′={𝐛′1,…,𝐛′𝑛} 으로 옮긴다고 하자. 구하려는 것은 모든 𝐯 에 대해
[𝐯]𝐵′=𝑃𝐵→𝐵′[𝐯]𝐵
를 만족하는 행렬이다. 이 행렬이 무엇인지는 𝐯 로 𝐛𝑗 를 넣어 보면 나온다. [𝐛𝑗]𝐵 는 𝑗 번째 자리만 1인 벡터이므로 오른쪽은 𝑃 의 𝑗 번째 열이다. 따라서
𝑃𝐵→𝐵′ 의 𝑗 번째 열은 [𝐛𝑗]𝐵′, 곧 옛 기저벡터를 새 기저로 잰 좌표다.
ℝ𝑛 에서 이것을 구하는 실용적인 절차가 있다. 기저벡터들을 열로 세운 행렬을 각각 𝐵, 𝐵′ 라 하면(같은 글자를 행렬로도 쓴다) 첨가행렬을 소거하면 된다.
[𝐵′∣𝐵]행연산←←←←←←←←←←←←→[𝐼∣𝑃𝐵→𝐵′]
왜 이렇게 되는가. 왼쪽 절반을 𝐼 로 만드는 행 연산은 3장에 따라 (𝐵′)−1 를 곱하는 것과 같으므로, 오른쪽 절반은 (𝐵′)−1𝐵 가 된다. 그리고 이것이 정확히 전이행렬이다.
예제 54
ℝ2 에서 𝐵={(1,0),(0,1)}, 𝐵′={(1,2),(3,1)} 일 때 𝑃𝐵→𝐵′ 와 𝑃𝐵′→𝐵 를 구하라.
풀이 보기
𝐵 가 표준기저라 𝐵=𝐼 이고, 𝐵′ 의 두 벡터를 열로 세우면 𝐵′=[1321] 이다.
𝑃𝐵→𝐵′ 부터 구한다. [𝐵′∣𝐵]=[𝐵′∣𝐼] 를 소거하는데, 이것은 3장에서 역행렬을 구하던 바로 그 계산이다.
[13102101]𝑅2−2𝑅1←←←←←←←←←←←←←→[13100−5−21]
−15𝑅2←←←←←←←←←←←←→[13100125−15]
𝑅1−3𝑅2←←←←←←←←←←←←←→[10−15350125−15]
𝑃𝐵→𝐵′=[−1/53/52/5−1/5]
반대 방향은 소거할 것도 없다. [𝐵∣𝐵′]=[𝐼∣𝐵′] 는 이미 왼쪽이 𝐼 다.
𝑃𝐵′→𝐵=[1321]
두 행렬이 서로 역행렬인지 확인하자. 행렬식이 1−6=−5 이므로 3장의 공식으로 [1321]−1=−15[1−3−21]=[−1/53/52/5−1/5] 로 정확히 같다 ✓.
결과를 말로 옮기면 이렇다. 새 기저벡터를 열로 세운 행렬은 '새 좌표 → 표준좌표' 방향이고, 그 역행렬이 반대 방향이다. 방향을 자꾸 헷갈리게 되는데, 𝐵′ 의 열이 곧 𝐛′𝑗 의 표준좌표라는 점을 떠올리면 매번 다시 세울 수 있다.
예제 55
앞 예제의 두 기저에서, 𝐵 좌표가 (1,0) 인 벡터의 𝐵′ 좌표를 구하고 두 좌표가 같은 벡터를 가리키는지 확인하라.
풀이 보기
구하려는 것은 [𝐯]𝐵′ 이고, 아는 것은 [𝐯]𝐵=(1,0) 과 앞에서 구한 전이행렬이다.
[𝐯]𝐵′=𝑃𝐵→𝐵′[10]=[−1/53/52/5−1/5][10]=[−1/52/5]
두 좌표가 같은 벡터인지 확인한다. 𝐵 가 표준기저이므로 [𝐯]𝐵=(1,0) 은 벡터 (1,0) 그 자체다. 한편
−15(1,2)+25(3,1)=(−15+65,−25+25)=(1,0)
같다 ✓.
여기서 늘 걸리는 곳을 짚어 둔다. 전이행렬의 열이 새 기저벡터인 것이 아니라, 그 역행렬의 열이 새 기저벡터다. 좌표를 바꾸는 방향과 기저벡터가 가는 방향이 서로 반대이기 때문이다. 자를 촘촘하게 바꾸면 같은 길이라도 눈금 수는 커지는 것과 같은 이치다.
행렬이 거느리는 세 공간과 랭크
이제 도구를 행렬에 되돌려 쓴다. 𝑚×𝑛 행렬 𝐴 에는 세 개의 부분공간이 딸려 있다.
행공간row(𝐴) — 행벡터들이 생성하는 ℝ𝑛 의 부분공간
열공간col(𝐴) — 열벡터들이 생성하는 ℝ𝑚 의 부분공간
영공간null(𝐴) — 𝐴𝐱=𝟎 의 해집합. ℝ𝑛 의 부분공간
열공간이 특히 중요한 이유가 있다. 3장에서 𝐴𝐱 가 열들의 일차결합이라고 했으므로, 𝐴𝐱=𝐛 에 해가 있다는 것은 곧 𝐛 가 열공간에 들어 있다는 뜻이다. 3장에서 '해가 있는가'라고 물었던 것이 여기서는 '도달할 수 있는 곳인가'가 된다.
이 공간들의 기저를 구하는 데 필요한 사실이 둘 있다.
기본 행연산은 행공간과 영공간을 바꾸지 않는다. 행공간은 행들의 일차결합만 취하므로 그렇고, 영공간은 해집합이므로 3장에서 이미 확인한 사실이다.
기본 행연산은 열공간을 바꾸지만, 열들 사이의 일차 관계는 바꾸지 않는다. 그래서 소거 후 축이 있는 열의 원래 자리를 찾아 원래 행렬에서 뽑으면 열공간의 기저가 된다.
두 번째의 '원래 자리'를 놓치는 것이 가장 흔한 실수다. 소거한 행렬의 열을 그대로 쓰면 안 된다.
행공간과 열공간의 차원은 언제나 같다. 소거해 보면 둘 다 축의 개수가 되기 때문이다. 3장에서 '축의 개수'라고만 부르던 이 수에 이제 이름을 준다. 랭크(rank)이고 rank(𝐴) 로 적는다. 우리말로는 계수(階數)라 하는데, 3장부터 '계수'를 일차식의 계수(coefficient)라는 뜻으로 써 왔으므로 이 문서에서는 헷갈리지 않게 랭크로 적는다. 영공간의 차원은 퇴화차수(nullity)라 하고 nullity(𝐴) 로 적는다.
그러면 3장에서 세었던 것이 정리 하나가 된다. 열은 축열이거나 아니거나 둘 중 하나이고, 축열의 개수가 랭크, 나머지(자유변수)의 개수가 퇴화차수다. 그래서
계수-퇴화차수 정리.𝑚×𝑛 행렬 𝐴 에 대해 rank(𝐴)+nullity(𝐴)=𝑛
<정의역 Rⁿ 이 두 조각으로 갈린다. 한 조각은 통째로 0 으로 눌리고(영공간), 나머지 조각만 열공간에 일대일로 살아남는다. 두 조각의 차원을 더하면 n 이 되는 것이 계수-퇴화차수 정리다>[원본 보기]
그림에서 '일대일로 대응한다'고 적은 것은 지금 단계에서는 그럴듯한 그림으로만 받아들이면 된다. 정확한 진술과 증명은 7장에서 핵과 상을 정의한 뒤에 한다.
예제 56
𝐴=⎡⎢
⎢
⎢
⎢⎣10−35−1−11−4012−121−49⎤⎥
⎥
⎥
⎥⎦ 의 랭크, 열공간의 기저, 영공간의 기저를 구하고 계수-퇴화차수 정리를 확인하라.
나머지 두 열은 이 둘로 만들어진다. 기약 행사다리꼴의 3열이 (−3,2) 이므로 𝐜3=−3𝐜1+2𝐜2, 4열이 (5,−1) 이므로 𝐜4=5𝐜1−𝐜2 다. 검산: −3(1,−1,0,2)+2(0,−1,1,1)=(−3,1,2,−4) 이고 𝐴 의 3열이 (−3,1,2,−4) ✓.
영공간의 기저. 3열과 4열에 축이 없으니 𝑥3=𝑠, 𝑥4=𝑡 가 자유변수다. 두 행은 𝑥1−3𝑠+5𝑡=0, 𝑥2+2𝑠−𝑡=0 이므로
𝐱=𝑠(3,−2,1,0)+𝑡(−5,1,0,1)
기저는 {(3,−2,1,0),(−5,1,0,1)} 이고 nullity(𝐴)=2.
정리 확인.rank+nullity=2+2=4=𝑛 ✓. 열이 넷이고 그중 둘은 축열, 둘은 자유변수 열이었으니 당연한 결과다.
답이 말이 되는가. 랭크가 2라는 것은 𝐴 의 네 열이 사실은 2차원 평면 안에 눌려 있다는 뜻이고, 실제로 3열과 4열을 앞의 두 열로 적어 냈다. 4×4 인데 랭크가 4가 아니므로 det𝐴=0 이고 역행렬이 없다.
예제 57
𝐴 가 4×6 행렬이고 rank(𝐴)=3 이다. (1) 𝐴𝐱=𝟎 의 해집합은 몇 차원인가 (2) 𝐴𝐱=𝐛 는 모든 𝐛∈ℝ4 에 대해 해를 갖는가 (3) 해를 가질 때 해는 몇 개인가?
풀이 보기
소거해 볼 행렬이 없으니 정리만으로 답해야 한다. 확인할 것은 랭크가 행의 수 4와 열의 수 6 각각에 대해 무엇을 뜻하는가다.
(1) 열이 6개이므로 nullity=𝑛−rank=6−3=3. 해집합은 ℝ6 안의 3차원 부분공간이다.
(2) 열공간은 ℝ4 의 부분공간인데 차원이 랭크와 같은 3이다. 3<4 이므로 열공간이 ℝ4 전체가 되지 못한다. 따라서 열공간 밖의 𝐛 에 대해서는 해가 없다.
(3) 해가 하나라도 있으면, 그 해에 영공간의 아무 벡터나 더해도 여전히 해다. 𝐴(𝐱0+𝐧)=𝐴𝐱0+𝟎=𝐛 이기 때문이다. 영공간이 3차원이므로 해집합은 3차원만큼 퍼진 무수히 많은 해이고, 모양은 '특정한 해 하나 + 영공간'이다.
마지막 문장이 3장에서 매개변수로 적었던 해집합의 정체다. (1,3,0)+𝑡(−1,−1,1) 같은 답에서 앞부분이 특정한 해, 뒷부분이 영공간이었다. 해집합은 영공간을 통째로 평행이동한 것이고, 그래서 상수항이 0이 아니면 원점을 지나지 않아 부분공간이 되지 못한다.
정사각행렬에 대한 동치 명제
여기까지 오면 3장부터 흩어져 있던 말들이 한 줄로 꿰인다. 4장 끝에서 det𝐴≠0 을 두고 다섯 줄짜리 표를 만들었는데, 이제 그 표에 여러 줄을 덧붙일 수 있다.
𝑛×𝑛 행렬 𝐴 에 대해 다음은 모두 같은 말이다. 하나가 참이면 전부 참이고, 하나가 거짓이면 전부 거짓이다.
어디서 나온 말인가
내용
3장 — 역행렬
𝐴 가 가역이다. 𝐴−1 이 있다
3장 — 소거
𝐴 의 기약 행사다리꼴이 𝐼 다. 축이 n 개다
3장 — 기본행렬
𝐴 가 기본행렬들의 곱으로 적힌다
3장 — 해
𝐴𝐱=𝐛 가 모든 𝐛 에 대해 해를 정확히 하나 갖는다
3장 — 동차
𝐴𝐱=𝟎 이 자명해만 갖는다
4장 — 행렬식
det𝐴≠0
6장 — 독립
𝐴 의 열들이 일차독립이다. 행들도 그렇다
6장 — 생성
𝐴 의 열들이 ℝ𝑛 을 생성한다
6장 — 기저
𝐴 의 열들이 ℝ𝑛 의 기저다
6장 — 랭크
rank(𝐴)=𝑛, 곧 nullity(𝐴)=0
6장 — 공간
col(𝐴)=row(𝐴)=ℝ𝑛, null(𝐴)={𝟎}
<왼쪽 하나가 참이면 오른쪽이 전부 참이고 하나가 거짓이면 전부 거짓이다. 서로 다른 장에서 따로 배운 말들이 같은 사실을 다른 각도에서 부른 이름이었다는 것이 이 그림의 요점이다>[원본 보기]
7장과 8장에서 이 목록에 세 줄이 더 붙는다. 𝑇(𝐱)=𝐴𝐱 가 단사이자 전사라는 것, 핵이 {𝟎}이라는 것, 그리고 0 이 𝐴 의 고유값이 아니라는 것이다.
이 표를 쓰는 방법은 이렇다. 확인하기 가장 쉬운 항목 하나만 확인하면 된다.2×2 나 3×3 이면 행렬식이 빠르고, 큰 행렬이면 소거가 빠르며, 열에 눈에 띄는 관계가 보이면 그것으로 끝난다.
예제 58
𝐴=⎡⎢
⎢⎣123456789⎤⎥
⎥⎦ 가 가역인지, 계산을 가장 적게 하는 방법으로 판정하라. 가역이 아니라면 랭크와 퇴화차수를 말하라.
풀이 보기
행렬식을 계산해도 되지만 더 빠른 길이 있다. 열들 사이의 관계를 눈으로 찾는 것이다.
열이 (1,4,7), (2,5,8), (3,6,9) 인데 각 성분이 1씩, 그리고 다시 1씩 늘어난다. 그렇다면 𝐜1+𝐜3=(4,10,16)=2𝐜2 다. 곧
𝐜1−2𝐜2+𝐜3=𝟎
자명하지 않은 관계식이 나왔으므로 열들이 일차종속이고, 표에 따라 가역이 아니다. 행렬식을 계산하지 않고 끝났다.
랭크는 얼마인가. 열 셋 중 하나가 군더더기이므로 랭크가 3은 아니다. 1열과 2열은 서로 배수가 아니므로 독립이고, 따라서 랭크는 2다. 계수-퇴화차수 정리로 nullity=3−2=1.
영공간까지 덤으로 나온다. 위 관계식의 계수가 바로 영공간의 벡터이므로 null(𝐴)=span{(1,−2,1)} 이다. 검산: 𝐴(1,−2,1)=(1−4+3,4−10+6,7−16+9)=(0,0,0) ✓.
확인 삼아 행렬식을 계산해도 0이 나온다. 그러나 그 계산은 '왜 0인가'를 알려 주지 않는다. 열 사이의 관계를 먼저 찾는 습관이 시간도 아끼고 뜻도 알려 준다.
예제 59
𝐴=⎡⎢
⎢
⎢
⎢⎣1234234534564567⎤⎥
⎥
⎥
⎥⎦ 가 가역인지 랭크로 판정하고, 같은 결론을 행렬식으로 확인하라. 가역이 아니라면 영공간의 기저까지 구하라.
풀이 보기
표의 어느 줄로 판정해도 결론은 같아야 한다. 여기서는 '6장 — 랭크' 줄과 '4장 — 행렬식' 줄을 각각 써서 두 길이 정말 같은 곳에 닿는지 본다.
랭크로. 소거한다. 1행을 축으로 아래 세 행을 비운다. 𝑅2−2𝑅1, 𝑅3−3𝑅1, 𝑅4−4𝑅1.
⎡⎢
⎢
⎢
⎢⎣12340−1−2−30−2−4−60−3−6−9⎤⎥
⎥
⎥
⎥⎦
아래 세 행이 서로 배수다. 𝑅3−2𝑅2, 𝑅4−3𝑅2 를 하면 두 행이 통째로 0이 된다.
⎡⎢
⎢
⎢
⎢⎣12340−1−2−300000000⎤⎥
⎥
⎥
⎥⎦
축이 1열과 2열, 곧 둘뿐이다. rank(𝐴)=2≠4 이므로 표의 '랭크' 줄에 따라 가역이 아니다. 계수-퇴화차수 정리로 nullity(𝐴)=4−2=2 다.
행렬식으로.4×4 를 여인자 전개로 풀면 항이 24개지만, 위 소거를 그대로 쓰면 한 줄로 끝난다. 4장에서 본 사실 둘을 쓴다. 배수를 더하는 행연산은 행렬식을 바꾸지 않고, 성분이 전부 0인 행이 있으면 행렬식이 0이다. 따라서 det𝐴=0 이고, 표의 '행렬식' 줄에 따라 역시 가역이 아니다 ✓. 두 길이 같은 곳에 닿았다.
영공간의 기저. 축이 3열과 4열에 없으므로 𝑥3 과 𝑥4 가 자유변수다. 2행은 −𝑥2−2𝑥3−3𝑥4=0 이니 𝑥2=−2𝑥3−3𝑥4 이고, 이것을 1행 𝑥1+2𝑥2+3𝑥3+4𝑥4=0 에 넣으면 𝑥1=𝑥3+2𝑥4 다.
null(𝐴)=span{(1,−2,1,0),(2,−3,0,1)}
검산. 𝐴(1,−2,1,0) 의 네 성분은 각각 1−4+3=0, 2−6+4=0, 3−8+5=0, 4−10+6=0 ✓. 𝐴(2,−3,0,1) 은 2−6+4=0, 4−9+5=0, 6−12+6=0, 8−15+7=0 ✓. 두 벡터가 서로 배수가 아니므로 독립이고, 개수 2가 퇴화차수와 맞는다 ✓.
이 예제가 표를 쓰는 방식 그대로다. 확인하기 가장 쉬운 줄 하나로 판정하고, 미심쩍으면 다른 줄로 검산한다. 여기서는 소거 한 번이 랭크와 행렬식과 영공간을 한꺼번에 주었다.
6장 정리
기호 또는 용어
뜻
벡터공간 𝑉
덧셈과 스칼라배가 열 개 공리를 만족하는 집합. ℝ𝑛, 𝑃𝑛, 𝑀𝑚𝑛, 함수 공간
부분공간 𝑊
𝟎 을 품고 덧셈과 스칼라배에 닫힌 부분집합. 이 셋만 확인하면 된다
일차결합
𝑘1𝐯1+⋯+𝑘𝑟𝐯𝑟
생성 span(𝑆)
𝑆 의 원소로 만들 수 있는 모든 일차결합. 언제나 부분공간
일차독립
𝑘1𝐯1+⋯+𝑘𝑟𝐯𝑟=𝟎 이 자명해뿐
일차종속
자명하지 않은 해가 있다. 하나가 나머지의 일차결합
기저
일차독립이면서 전체를 생성하는 모음. 모자라지도 남지도 않는다
차원 dim𝑉
기저의 원소 개수. dimℝ𝑛=𝑛, dim𝑃𝑛=𝑛+1, dim𝑀𝑚𝑛=𝑚𝑛
좌표벡터 [𝐯]𝐵
기저 𝐵 로 적었을 때의 계수. 기저마다 다르고 기저를 정하면 하나뿐
전이행렬 𝑃𝐵→𝐵′
[𝐯]𝐵′=𝑃𝐵→𝐵′[𝐯]𝐵. [𝐵′∣𝐵]→[𝐼∣𝑃] 로 구한다
행공간 row(𝐴)
행들이 생성하는 ℝ𝑛 의 부분공간. 행 연산으로 변하지 않는다
열공간 col(𝐴)
열들이 생성하는 ℝ𝑚 의 부분공간. 𝐴𝐱=𝐛 가 풀릴 𝐛 의 범위
영공간 null(𝐴)
𝐴𝐱=𝟎 의 해집합. 행 연산으로 변하지 않는다
랭크 rank(𝐴)
축의 개수. 행공간과 열공간의 공통 차원
퇴화차수 nullity(𝐴)
영공간의 차원. 자유변수의 개수
계수-퇴화차수 정리
rank(𝐴)+nullity(𝐴)=𝑛 (n 은 열의 개수)
이 장에서 '𝐴 가 벡터 𝐱 를 벡터 𝐴𝐱 로 보낸다'는 표현을 여러 번 썼다. 열공간을 '도달할 수 있는 곳'이라 부르고 영공간을 '0으로 눌리는 곳'이라 부른 것도 그 관점이다. 그런데 그 관점을 정식으로 정의한 적이 없다. 다음 장이 그 일을 한다. 행렬을 함수로 보는 것이고, 그렇게 보는 순간 6장의 부분공간들과 8장의 고유값이 하나의 이야기가 된다.
선형변환
3장부터 지금까지 행렬은 두 얼굴을 가지고 있었다. 하나는 '연립방정식의 계수를 담아 둔 표'이고, 다른 하나는 4장에서 넓이를 잴 때, 6장에서 열공간을 말할 때 슬며시 쓰던 '벡터를 벡터로 보내는 장치'다. 두 번째 얼굴을 정식으로 다루는 것이 이 장이다.
이 장에서 답할 질문은 셋이다. 행렬을 함수로 보면 무엇이 달라지는가, 왜 하필 그 두 조건을 만족하는 함수만 다루는가, 그리고 같은 변환인데 행렬이 여러 개일 수 있는가. 마지막 물음의 답이 8장의 대각화로 곧장 이어진다.
(1)이 이 예제의 요점이다. 미적분에서 따로 배운 규칙들이 여기서는 '미분이라는 선형변환'의 정의가 된다. 그래서 미분방정식을 선형대수의 언어로 다시 쓸 수 있고, 실제로 그렇게 한다.
행렬로 나타내기 — 열은 기저의 상이다
선형변환은 함수라서 무한히 많은 입력에 대한 답을 정해야 할 것 같지만, 실제로는 기저를 어디로 보내는지만 알면 끝난다.
𝑇:ℝ𝑛→ℝ𝑚 이 선형이라 하자. 임의의 𝐱=(𝑥1,…,𝑥𝑛) 은 표준기저의 일차결합 𝑥1𝐞1+⋯+𝑥𝑛𝐞𝑛 이므로
𝑇(𝐱)=𝑥1𝑇(𝐞1)+⋯+𝑥𝑛𝑇(𝐞𝑛)
이고, 오른쪽은 3장에서 정의한 '열들의 일차결합', 곧 행렬 곱이다. 따라서 𝑇(𝐞1),…,𝑇(𝐞𝑛) 을 열로 세운𝑚×𝑛 행렬 𝐴 를 만들면 𝑇(𝐱)=𝐴𝐱 다. 이 𝐴 를 𝑇 의 표준행렬이라 한다.
<왼쪽에서 x 를 기저의 일차결합으로 쪼개면, 오른쪽에서 T(x) 는 같은 계수로 기저의 상을 일차결합한 것이 된다. 계수 2 와 1 이 양쪽에서 그대로라는 점이 요점이며, 그래서 T 를 알려면 기저의 상만 알면 된다>[원본 보기]
뒤집어 말하면, 3장에서 낯설게 정의한 행렬 곱은 선형변환을 적는 유일한 방법이었다. 곱을 그렇게 정의하지 않으면 이 대응이 성립하지 않는다.
예제 62
원점을 중심으로 반시계 방향 𝜃 만큼 돌리는 회전변환의 표준행렬을 구하라.
풀이 보기
구할 것은 2×2 행렬이고, 필요한 것은 𝑇(𝐞1) 과 𝑇(𝐞2) 둘뿐이다. 회전이 선형변환이라는 것은 그림에서 받아들이자. 길이와 각을 보존하므로 평행사변형이 평행사변형으로 가고, 그래서 덧셈이 보존된다.
𝐞1=(1,0) 은 단위원 위의 각 0인 점이다. 𝜃 만큼 돌리면 각이 𝜃 인 점, 곧
𝑇(𝐞1)=(cos𝜃,sin𝜃)
𝐞2=(0,1) 은 각이 90° 인 점이므로 돌리면 각이 𝜃+90° 다. 삼각함수의 관계 cos(𝜃+90°)=−sin𝜃, sin(𝜃+90°)=cos𝜃 를 쓰면
𝑇(𝐞2)=(−sin𝜃,cos𝜃)
둘을 열로 세운다.
𝑅𝜃=[cos𝜃−sin𝜃sin𝜃cos𝜃]
검산 두 가지. 𝜃=0 이면 𝐼 가 되어야 하는데 실제로 그렇다 ✓. 𝜃=90° 이면 [0−110] 이고, 이것을 (1,0) 에 곱하면 (0,1) 이다. 오른쪽을 보던 화살표가 위를 보게 되었으니 반시계 방향이 맞다 ✓.
행렬식도 확인해 두자. cos2𝜃+sin2𝜃=1 이다. 4장에서 행렬식이 넓이 배율이라 했으니, 회전은 넓이를 바꾸지 않는다는 사실과 정확히 맞는다.
예제 63
ℝ2 에서 원점을 지나고 방향이 단위벡터 ˆ𝐚 인 직선 위로 정사영하는 변환의 표준행렬을 구하고, ˆ𝐚=1√5(2,1) 인 경우를 계산하라.
풀이 보기
5장에서 정사영을 proj𝐚𝐱=(𝐱⋅ˆ𝐚)ˆ𝐚 로 구했다. 이것이 선형인지부터 보자. 내적이 덧셈과 스칼라배에 대해 선형이므로 𝐱 에 대해 선형이다 ✓.
표준행렬을 얻는 방법은 두 가지다. 하나는 기저의 상을 구하는 것이고, 다른 하나는 식을 행렬 곱으로 다시 적는 것이다. 뒤쪽이 더 깔끔하다. 5장에서 내적을 𝐱⋅ˆ𝐚=ˆ𝐚𝑇𝐱 로 적을 수 있었으므로
𝑇(𝐱)=(ˆ𝐚𝑇𝐱)ˆ𝐚=ˆ𝐚(ˆ𝐚𝑇𝐱)=(ˆ𝐚ˆ𝐚𝑇)𝐱
가운데에서 수 하나를 벡터 앞뒤로 옮긴 것이 요령이다. 수는 어디에 곱해도 되지만 행렬 곱은 결합법칙만 쓸 수 있으므로, 이렇게 묶으면 표준행렬이 드러난다.
𝑃=ˆ𝐚ˆ𝐚𝑇
열벡터 곱하기 행벡터라 결과가 2×2 행렬이다. ˆ𝐚=1√5(2,1) 을 넣으면
𝑃=15[21][21]=15[4221]
검산 세 가지. 𝑃ˆ𝐚 는 ˆ𝐚 그대로여야 한다. 15[4221]1√5[21]=15√5[105]=1√5[21] ✓. 직선에 수직인 (1,−2) 는 0으로 가야 한다. 15(4−4,2−2)=(0,0) ✓. 그리고 det𝑃=125(4−4)=0 인데, 평면이 직선으로 눌리니 넓이가 0인 것이 맞다 ✓.
한 가지 더. 𝑃2=𝑃 다. 이미 직선 위에 있는 것을 다시 사영해도 제자리이기 때문이다. 이런 행렬을 사영행렬이라 하고 9장에서 부분공간으로 확장한다.
ℝ2 의 기본 변환들
손으로 확인할 수 있는 변환 다섯 가지를 모아 둔다. 뒤에서 예를 들 때 계속 쓴다.
<같은 격자가 다섯 가지로 달라진다. 회전과 반사는 넓이를 그대로 두고, 확대는 배율의 제곱만큼 늘리고, 전단은 기울이되 넓이를 지키며, 사영만 격자를 직선으로 눌러 되돌릴 수 없게 만든다>[원본 보기]
변환
표준행렬
det
뜻
회전 𝜃
[cos𝜃−sin𝜃sin𝜃cos𝜃]
1
길이와 각을 지킨다
x 축 반사
[100−1]
−1
길이는 지키고 방향(자리 순서)을 뒤집는다
k 배 확대
[𝑘00𝑘]
𝑘2
모든 방향으로 똑같이 늘린다
가로 전단
[1𝑘01]
1
높이에 비례해 옆으로 민다. 넓이는 그대로
x 축 사영
[1000]
0
평면을 직선으로 누른다. 되돌릴 수 없다
행렬식 열을 눈여겨보라. 4장에서 '행렬식은 넓이 배율'이라 했고 'det=0 이면 가역이 아니다'라고 했는데, 그 두 문장이 이 표에서 그대로 읽힌다. 사영만 det=0 이고 사영만 되돌릴 수 없다. 반사의 det=−1 에서 음수 부호는 넓이가 아니라 방향이 뒤집혔다는 표시다.
예제 64
원점을 지나고 방향이 단위벡터 ˆ𝐚 인 직선에 대해 대칭시키는 변환의 표준행렬이 𝑅=2ˆ𝐚ˆ𝐚𝑇−𝐼 임을 보이고, ˆ𝐚=1√5(2,1) 인 경우를 구하라.
풀이 보기
구하려는 것은 반사행렬이고, 이미 아는 것은 앞 예제의 사영행렬 𝑃=ˆ𝐚ˆ𝐚𝑇 다. 둘의 관계를 그림으로 찾는다.
5장의 분해를 쓴다. 어떤 벡터든 직선과 나란한 조각 𝑃𝐱 와 직선에 수직인 조각 𝐱−𝑃𝐱 로 갈라진다. 대칭이란 나란한 조각은 그대로 두고 수직인 조각의 부호만 뒤집는 것이다.
𝑅𝐱=𝑃𝐱−(𝐱−𝑃𝐱)=2𝑃𝐱−𝐱=(2𝑃−𝐼)𝐱
따라서 𝑅=2ˆ𝐚ˆ𝐚𝑇−𝐼 다. ■
값을 넣는다. 앞에서 𝑃=15[4221] 였으므로
𝑅=25[4221]−[1001]=15[8−5442−5]=15[344−3]
검산. det𝑅=125(−9−16)=−1 이다. 반사이므로 −1 이 나와야 하고 실제로 그렇다 ✓. 또 두 번 반사하면 제자리여야 한다. 𝑅2=125[9+1612−1212−1216+9]=𝐼 ✓.
직선 위의 벡터는 그대로 있고 수직인 벡터는 뒤집힌다는 것도 확인된다. 𝑅(2,1)=15(6+4,8−3)=(2,1) ✓, 𝑅(1,−2)=15(3−8,4+6)=(−1,2) ✓. 이 두 방향이 8장에서 말할 고유벡터다.
예제 65
어떤 도형의 넓이가 6이다. 여기에 𝐴=[3112] 를 적용하면 넓이가 얼마가 되는가? 또 𝐵=[2412] 를 적용하면?
풀이 보기
4장에서 det𝐴 가 단위정사각형이 가는 평행사변형의 넓이라고 했다. 격자의 모든 칸이 똑같이 늘어나므로 어떤 도형이든 넓이가 |det𝐴| 배가 된다.
det𝐴=6−1=5 이므로 넓이는 6×5=30.
det𝐵=4−4=0 이므로 넓이는 0이다. 도형이 직선 하나로 눌려 버렸다는 뜻이다.
𝐵 를 좀 더 보자. 두 열 (2,1) 과 (4,2) 는 배수 관계라 같은 직선 위에 있다. 그래서 𝐵𝐱 는 𝐱 가 무엇이든 그 직선 위의 점이 된다. 평면 전체가 직선으로 접힌 것이고, 접힌 것은 펼 수 없으니 𝐵 는 가역이 아니다. 6장의 표대로 랭크가 1, 퇴화차수가 1이다.
부호도 뜻이 있다. det 가 음수인 변환을 먹이면 넓이는 절댓값만큼 변하고 도형의 앞뒤가 뒤집힌다. 시계 방향으로 적던 꼭짓점 순서가 반시계 방향이 된다.
합성이 행렬 곱인 이유
변환을 이어서 하는 것은 함수의 합성이다. 𝑆:ℝ𝑛→ℝ𝑝 의 표준행렬을 𝐵, 𝑇:ℝ𝑝→ℝ𝑚 의 표준행렬을 𝐴 라 하면
(𝑇∘𝑆)(𝐱)=𝑇(𝑆(𝐱))=𝑇(𝐵𝐱)=𝐴(𝐵𝐱)=(𝐴𝐵)𝐱
이다. 세 번째 등호에서 3장의 결합법칙을 썼다. 그래서 합성의 표준행렬은 두 행렬의 곱이고, 순서는 함수 합성과 같이 오른쪽 것을 먼저 적용한다.
<전단을 하고 회전을 한 결과가 오른쪽이다. 가운데를 건너뛰고 한 번에 가는 행렬이 두 행렬의 곱이며, 먼저 하는 변환이 곱에서 오른쪽에 온다. 3장에서 낯설게 정의한 행렬 곱이 사실은 이 그림을 적은 것이다>[원본 보기]
3장에서 행렬 곱이 결합법칙은 만족하지만 교환법칙은 만족하지 않는다고 했다. 이제 그 이유를 말할 수 있다. 함수의 합성은 언제나 결합법칙을 만족하지만(어느 쪽으로 묶든 '차례로 적용한다'는 사실은 같다), 순서를 바꾸면 다른 일이 벌어진다. 옷을 입고 나가는 것과 나가서 옷을 입는 것이 다른 것과 같다.
예제 66
90° 회전 𝑇 와 가로 전단 𝑆(𝑥,𝑦)=(𝑥+𝑦,𝑦) 에 대해 𝑇𝑆 와 𝑆𝑇 를 구하고, (1,0) 이 각각 어디로 가는지 비교하라.
풀이 보기
두 표준행렬은 𝐴=[0−110], 𝐵=[1101] 다.
𝑇𝑆=𝐴𝐵=[0−110][1101]=[0−111]
𝑆𝑇=𝐵𝐴=[1101][0−110]=[1−110]
다르다. (1,0) 을 넣어 본다. 𝑇𝑆(1,0)=(0,1) 이고 𝑆𝑇(1,0)=(1,1) 이다.
왜 갈리는지는 순서를 따라가면 보인다. 𝑇𝑆: 전단이 먼저인데 (1,0) 은 높이가 0이라 밀리지 않고 그대로 (1,0), 그 다음 회전해서 (0,1). 𝑆𝑇: 회전이 먼저라 (1,0)→(0,1) 이 되고, 이제 높이가 1이 되었으므로 전단이 옆으로 1만큼 밀어 (1,1).
전단이 '높이에 비례해' 미는 변환이라, 회전을 먼저 해서 높이를 만들어 주었느냐가 결과를 가른다. 교환법칙이 성립하지 않는다는 것이 계산 규칙의 결함이 아니라 세상의 사실이라는 점을 이 예가 보여 준다.
예제 67
𝜃 만큼 돌린 뒤 𝜑 만큼 더 돌리면 𝜃+𝜑 만큼 돌린 것과 같다. 이 사실을 행렬 곱으로 적고, 삼각함수의 덧셈정리를 유도하라.
풀이 보기
물음을 식으로 옮기면 𝑅𝜑𝑅𝜃=𝑅𝜃+𝜑 다. 왼쪽을 계산해서 오른쪽과 성분끼리 비교하면 된다.
여기서는 두 회전을 이어 하면 각이 더해진다는 기하적 사실에서 대수 공식을 끌어냈다. 외우기 어려운 공식이 '돌리고 또 돌리면 각이 더해진다'는 한 문장으로 줄어든 셈이다. 덤으로 회전끼리는 𝑅𝜑𝑅𝜃=𝑅𝜃𝑅𝜑 로 교환법칙이 성립한다는 것도 보인다. 각의 덧셈이 교환법칙을 만족하기 때문이다.
핵과 상
함수를 다룰 때 늘 묻는 두 가지가 있다. 어디로 가는가와 무엇이 겹치는가다. 선형변환 𝑇:𝑉→𝑊 에 대해
핵(kernel)ker(𝑇)={𝐯∈𝑉∣𝑇(𝐯)=𝟎} — 0으로 눌리는 것들
상(image)im(𝑇)={𝑇(𝐯)∣𝐯∈𝑉} — 실제로 도달하는 곳들
둘 다 부분공간이다. 핵의 경우, 𝑇(𝐮)=𝑇(𝐯)=𝟎 이면 𝑇(𝐮+𝐯)=𝟎+𝟎=𝟎 이고 𝑇(𝑘𝐮)=𝑘𝟎=𝟎 이며 𝑇(𝟎)=𝟎 이다. 상도 같은 방식으로 확인된다.
그런데 𝑇(𝐱)=𝐴𝐱 인 경우 이 둘은 새로운 것이 아니다.
ker(𝑇)=null(𝐴) 이고 im(𝑇)=col(𝐴) 다.
앞의 것은 정의가 글자 그대로 같다. 뒤의 것은 𝐴𝐱 가 열들의 일차결합이므로 상이 곧 열들이 생성하는 공간이기 때문이다. 6장에서 '도달할 수 있는 곳'이라 불렀던 것이 정확히 상이다.
<평면 전체가 직선 하나로 눌린다. 왼쪽 점선 위의 점은 전부 같은 곳으로 가고, 그 점선을 원점까지 밀어 놓은 직선이 핵이다. 오른쪽에서 도달하는 직선이 상이며 그 밖의 점에는 닿지 못한다>[원본 보기]
그러면 6장의 계수-퇴화차수 정리가 새 옷을 입는다. dimker(𝑇)=nullity(𝐴) 이고 dimim(𝑇)=rank(𝐴) 이므로
dimker(𝑇)+dimim(𝑇)=dim𝑉
이다. 말로 옮기면 정의역의 차원 가운데 핵에서 잃은 만큼이 상에서 줄어든다. 잃은 것과 남은 것의 합은 언제나 처음 것이다. 6장의 그림에서 '일대일로 대응한다'고 적었던 것이 이 등식의 내용이다.
예제 68
𝑇(𝑥,𝑦,𝑧)=(𝑥+𝑦+𝑧,2𝑥+2𝑦+2𝑧) 의 핵과 상을 구하고 각각의 차원을 말하라.
풀이 보기
먼저 표준행렬을 적는다. 기저의 상은 𝑇(1,0,0)=(1,2), 𝑇(0,1,0)=(1,2), 𝑇(0,0,1)=(1,2) 이므로
𝐴=[111222]
상. 세 열이 모두 (1,2) 로 같다. 그러니 상은 span{(1,2)}, 곧 ℝ2 안의 직선이고 차원은 1이다. 랭크가 1이라는 말과 같다.
핵.𝐴𝐱=𝟎 은 사실상 𝑥+𝑦+𝑧=0 한 줄이다(둘째 행은 첫 행의 2배라 새 정보가 없다). 𝑦=𝑠, 𝑧=𝑡 로 두면 𝑥=−𝑠−𝑡 이므로
그림으로 읽으면 이렇다. ℝ3 이라는 3차원이 들어가서 1차원 직선으로 나왔다. 2차원어치가 사라졌고, 사라진 그 2차원이 핵이다. 𝑥+𝑦+𝑧=0 이라는 평면 전체가 원점 하나로 뭉개진 것이다.
예제 69
미분변환 𝐷:𝑃3→𝑃3, 𝐷(𝑝)=𝑝′ 의 핵과 상을 구하고 차원 정리를 확인하라.
풀이 보기
정의역은 차수 3 이하의 다항식 전체이고 dim𝑃3=4 다(기저 {1,𝑥,𝑥2,𝑥3}).
핵. 미분해서 0이 되는 다항식은 상수함수뿐이다. ker(𝐷)=span{1} 이고 차원은 1이다.
상.𝐷(1)=0, 𝐷(𝑥)=1, 𝐷(𝑥2)=2𝑥, 𝐷(𝑥3)=3𝑥2 이므로 상은 span{1,𝑥,𝑥2}=𝑃2 이고 차원은 3이다. 미분하면 차수가 하나 내려가므로 𝑥3 은 만들 수 없다.
정리 확인.1+3=4=dim𝑃3 ✓.
이 결과를 미적분의 말로 옮기면 익숙한 두 문장이 된다. 핵이 상수뿐이라는 것은 부정적분의 적분상수가 하나뿐이라는 말이고, 상이 𝑃2 라는 것은 차수 2 이하 다항식은 전부 적분할 수 있다는 말이다. 미적분에서 따로 배운 두 사실이 차원 정리 한 줄에 들어 있다.
단사·전사·동형사상
기초수학에서 함수의 어휘를 배웠다. 그것을 그대로 쓴다. 다만 선형변환에서는 판정이 훨씬 쉬워진다.
𝑇 가 단사 ⟺ker(𝑇)={𝟎}
왜인가. 𝑇(𝐮)=𝑇(𝐯) 이면 선형성에서 𝑇(𝐮−𝐯)=𝟎 이므로 𝐮−𝐯∈ker(𝑇) 다. 핵이 {𝟎} 뿐이면 𝐮=𝐯 이고, 핵에 다른 것이 있으면 서로 다른 둘이 같은 곳으로 간다. ■
일반 함수라면 '겹치는 점이 있는가'를 정의역 전체에서 확인해야 하는데, 선형변환은 원점 한 곳만 보면 된다. 이것이 선형성이 주는 큰 이득이다.
전사는 정의 그대로 im(𝑇)=𝑊 다. 그리고 두 물음이 차원 정리로 묶인다. 𝑇:ℝ𝑛→ℝ𝑛 처럼 정의역과 공역의 차원이 같으면
𝑇가단사⟺nullity=0⟺rank=𝑛⟺𝑇가전사
다. 정사각행렬에서는 단사와 전사가 같은 말이라는 뜻이고, 6장의 동치 명제 목록에 이 두 줄이 추가된다.
단사이면서 전사인 선형변환을 동형사상(isomorphism)이라 하고, 그런 것이 있으면 두 벡터공간이 동형이라 한다. 동형인 두 공간은 이름표만 다르고 구조가 같다. 6장에서 𝑃2 와 ℝ3 를 두고 '같은 것을 다른 글씨로 적었다'고 한 것이 이것이다.
여기서 중요한 정리 하나가 나온다. 차원이 𝑛 인 실수 벡터공간은 모두 ℝ𝑛 과 동형이다. 기저를 하나 잡고 좌표벡터를 대응시키면 그것이 동형사상이기 때문이다. 그래서 6장에서 다항식 문제를 계수의 나열로 바꿔 풀 수 있었다.
예제 70
𝑇(𝑥,𝑦)=(𝑥−𝑦,2𝑥−2𝑦) 가 단사인지 전사인지 판정하라. 또 𝑆(𝑥,𝑦)=(𝑥−𝑦,𝑥+𝑦) 는 어떤가?
풀이 보기
표준행렬을 적고 핵을 본다.
𝑇.𝐴=[1−12−2] 이고 det𝐴=−2+2=0 이다. 가역이 아니므로 6장의 표에 따라 자명하지 않은 해가 있다. 실제로 𝑥=𝑦 이면 전부 0으로 가므로
ker(𝑇)=span{(1,1)}≠{𝟎}
단사가 아니다. 정사각행렬이므로 전사도 아니다. 상은 span{(1,2)} 인 직선뿐이다.
𝑆.𝐵=[1−111] 이고 det𝐵=1+1=2≠0 이다. 단사이자 전사, 곧 동형사상이다.
𝑆 의 정체를 짚어 두면 재미있다. 𝐵=√2[1/√2−1/√21/√21/√2] 인데 오른쪽 행렬은 45° 회전이다. 즉 𝑆 는 45° 돌리고 √2 배 늘리는 변환이다. 넓이 배율이 (√2)2=2 이고 이것이 det𝐵 와 맞는다 ✓.
판정에서 실제로 한 일은 행렬식 계산 하나뿐이다. 6장의 동치 명제 목록 덕분에 '단사인가'라는 함수의 물음이 'det≠0 인가'라는 산수로 바뀌었다.
예제 71
𝑇:𝑃2→ℝ3 를 𝑇(𝑎0+𝑎1𝑥+𝑎2𝑥2)=(𝑎0,𝑎1,𝑎2) 로 정의하면 동형사상임을 보여라. 그리고 이것을 써서 {1+𝑥,𝑥+𝑥2,1+𝑥2} 가 𝑃2 의 기저인지 판정하라.
풀이 보기
선형성. 다항식을 더하면 계수끼리 더해지고, 상수배하면 계수가 상수배되므로 두 조건이 성립한다 ✓.
단사.𝑇(𝑝)=(0,0,0) 이면 모든 계수가 0이므로 𝑝 는 영다항식이다. 핵이 {𝟎} 뿐이다 ✓.
전사. 아무 (𝑎0,𝑎1,𝑎2) 를 주어도 𝑎0+𝑎1𝑥+𝑎2𝑥2 가 그리로 간다 ✓. 따라서 동형사상이다.
이제 판정 문제를 옮긴다. 동형사상은 일차독립을 보존하므로(𝑇 가 단사라 관계식이 그대로 옮겨 간다) 세 다항식이 기저인지 묻는 것은 그 상이 ℝ3 의 기저인지 묻는 것과 같다.
1+𝑥→(1,1,0),𝑥+𝑥2→(0,1,1),1+𝑥2→(1,0,1)
열로 세워 행렬식을 구한다.
det⎡⎢
⎢⎣101110011⎤⎥
⎥⎦=1(1−0)−0+1(1−0)=2≠0
0이 아니므로 세 벡터가 기저이고, 따라서 세 다항식도 𝑃2 의 기저다.
이 예제의 요점은 답이 아니라 방법이다. 기저를 하나 정하는 순간 어떤 벡터공간의 문제든 ℝ𝑛 의 행렬 계산으로 옮겨 갈 수 있다. 함수 공간이든 행렬 공간이든 마찬가지다.
기저를 바꾸면 행렬이 어떻게 바뀌는가
이 절이 이 장의 마지막이자 8장의 출발점이다.
6장에서 벡터는 하나인데 좌표는 기저마다 다르다고 했다. 선형변환도 마찬가지다. 변환은 하나인데 그것을 적은 행렬은 기저마다 다르다.
<왼쪽과 오른쪽은 같은 변환이다. 표준기저의 자로 재면 두 기저벡터가 모두 방향까지 바뀌어 행렬이 뒤섞이지만, 기울어진 기저의 자로 재면 두 방향이 각각 3배와 1배로 늘어날 뿐이라 대각행렬이 된다>[원본 보기]
𝑇:ℝ𝑛→ℝ𝑛 의 표준행렬을 𝐴 라 하고, 새 기저 𝐵={𝐛1,…,𝐛𝑛} 을 잡자. 6장에서 기저벡터를 열로 세운 행렬 𝑃=[𝐛1⋯𝐛𝑛] 이 '𝐵 좌표 → 표준좌표' 방향이라고 했다. 곧 𝐱=𝑃[𝐱]𝐵 다.
이제 𝐵 좌표에서 출발해 𝐵 좌표로 답하는 경로를 따라간다. 좌표를 표준으로 바꾸고, 𝐴 를 적용하고, 다시 𝐵 좌표로 되돌린다.
[𝑇(𝐱)]𝐵=𝑃−1𝐴𝑃[𝐱]𝐵
따라서 기저 𝐵 에서 본 𝑇 의 행렬은 [𝑇]𝐵=𝑃−1𝐴𝑃 다.
<왼쪽으로 곧장 내려가는 길이 표준기저에서의 A 이고, 오른쪽으로 돌아 내려가는 길이 새 기저에서의 D 다. 두 길의 결과가 같으므로 A = PDP⁻¹ 이며, 이 관계가 8장의 닮음이다>[원본 보기]
이런 관계에 있는 두 행렬, 곧 어떤 가역행렬 𝑃 에 대해 𝐶=𝑃−1𝐴𝑃 인 𝐴 와 𝐶 를 닮았다(similar)고 한다. 방금 본 것을 한 문장으로 하면 이렇다.
닮은 두 행렬은 같은 선형변환을 서로 다른 기저에서 적은 것이다.
그러면 자연스러운 물음이 생긴다. 기저를 잘 고르면 그 행렬을 가장 단순하게, 이를테면 대각행렬로 만들 수 있는가? 위 그림의 오른쪽 패널이 그런 경우였다. 그 물음이 8장의 주제다.
예제 72
𝐴=[2112] 로 주어진 변환을 기저 𝐵={(1,1),(1,−1)} 에서 적은 행렬 [𝑇]𝐵 를 구하라.
풀이 보기
필요한 것은 𝑃 와 𝑃−1 이다. 새 기저벡터를 열로 세운다.
𝑃=[111−1],det𝑃=−1−1=−2
3장의 공식으로 역행렬을 구한다.
𝑃−1=1−2[−1−1−11]=12[111−1]
이제 곱한다. 오른쪽부터 계산하는 것이 편하다.
𝐴𝑃=[2112][111−1]=[313−1]
[𝑇]𝐵=𝑃−1(𝐴𝑃)=12[111−1][313−1]=12[6002]=[3001]
대각행렬이 나왔다.
왜 이렇게 되었는지는 계산 없이도 보인다. 𝐴(1,1)=(3,3)=3(1,1) 이고 𝐴(1,−1)=(1,−1) 이다. 두 기저벡터가 각각 방향은 그대로이고 길이만 3배와 1배가 된 것이다. 그러니 그 기저에서 보면 변환은 '첫 축으로 3배, 둘째 축으로 1배'일 뿐이고, 그것을 적은 행렬이 diag(3,1) 이다.
검산으로 닮음 불변량을 보자. det𝐴=4−1=3 이고 det[𝑇]𝐵=3⋅1=3 ✓. 대각합도 2+2=4 와 3+1=4 로 같다. 같은 변환을 적은 것이니 이런 값들이 같아야 마땅하고, 8장에서 이 사실을 정리로 세운다.
예제 73
앞 절에서 구한 반사행렬 𝑅=15[344−3] 을 기저 𝐵={(2,1),(1,−2)} 에서 적으면 어떤 행렬이 되는가. 계산하기 전에 답을 예상하라.
풀이 보기
예상.𝑅 은 방향 (2,1) 인 직선에 대한 반사였다. 그 직선 위의 벡터는 제자리이고 수직인 벡터는 부호가 뒤집힌다. 그런데 (2,1) 은 직선 방향이고 (1,−2) 는 그에 수직이다(내적이 2−2=0). 그러니 답은 diag(1,−1) 일 것이다.
확인.𝑃=[211−2], det𝑃=−4−1=−5 이므로
𝑃−1=1−5[−2−1−12]=15[211−2]
𝑅𝑃=15[344−3][211−2]=15[10−5510]=[2−112]
[𝑅]𝐵=𝑃−1(𝑅𝑃)=15[211−2][2−112]=15[500−5]=[100−1]
예상대로다 ✓.
여기서 얻을 교훈은 계산이 아니라 순서다. 변환이 무엇을 하는지 알면 좋은 기저가 먼저 보이고, 그 기저에서 행렬은 저절로 단순해진다. 8장은 이 순서를 거꾸로 간다. 행렬만 주어졌을 때 좋은 기저를 찾아내는 방법을 만드는 것이고, 그 방법이 고유값과 고유벡터다.
7장 정리
기호 또는 용어
뜻
선형변환 𝑇:𝑉→𝑊
𝑇(𝐮+𝐯)=𝑇(𝐮)+𝑇(𝐯), 𝑇(𝑘𝐮)=𝑘𝑇(𝐮). 언제나 𝑇(𝟎)=𝟎
표준행렬
𝐴=[𝑇(𝐞1)⋯𝑇(𝐞𝑛)]. 열이 기저의 상이다
회전 𝑅𝜃
[cos𝜃−sin𝜃sin𝜃cos𝜃], det=1
직선 위로의 사영
𝑃=ˆ𝐚ˆ𝐚𝑇. 𝑃2=𝑃, det𝑃=0
직선에 대한 반사
𝑅=2ˆ𝐚ˆ𝐚𝑇−𝐼. 𝑅2=𝐼, det𝑅=−1
전단
[1𝑘01]. 넓이를 바꾸지 않는다
합성
𝑇∘𝑆 의 행렬은 𝐴𝐵. 먼저 하는 것이 오른쪽
넓이 배율
|det𝐴| 배. 부호가 음수면 방향이 뒤집힌다
핵 ker(𝑇)
𝑇(𝐯)=𝟎 인 것들. null(𝐴) 와 같다
상 im(𝑇)
도달하는 곳 전체. col(𝐴) 와 같다
차원 정리
dimker(𝑇)+dimim(𝑇)=dim𝑉
단사 판정
ker(𝑇)={𝟎}. 원점 한 곳만 보면 된다
동형사상
단사이자 전사인 선형변환. 차원 n 인 공간은 모두 ℝ𝑛 과 동형
기저 변환
[𝑇]𝐵=𝑃−1𝐴𝑃. 𝑃 의 열은 새 기저벡터
닮음
𝐶=𝑃−1𝐴𝑃 인 관계. 같은 변환을 다른 기저에서 적은 것
6장의 동치 명제 목록에 이 장의 항목을 더한다. 𝑛×𝑛 행렬 𝐴 가 가역인 것은 𝑇(𝐱)=𝐴𝐱 가 단사인 것과 같고, 전사인 것과 같고, 동형사상인 것과 같으며, ker(𝑇)={𝟎} 인 것과 같다.
마지막 절이 남긴 물음을 다음 장에서 푼다. 주어진 행렬을 대각행렬로 만드는 기저를 어떻게 찾는가. 그런 기저의 벡터들은 '변환해도 방향이 그대로인 벡터'여야 하고, 그것을 찾는 것이 고유값 문제다.
고유값과 고유벡터
7장은 물음 하나를 남겼다. 주어진 행렬을 가장 단순하게 만드는 기저를 어떻게 찾는가. 7장의 마지막 예제에서 답이 이미 한 번 나왔다. 좋은 기저의 벡터들은 변환해도 방향이 바뀌지 않는 벡터였다. 그런 벡터를 찾는 방법을 만드는 것이 이 장이다.
이 장에서 답할 질문은 셋이다. 방향이 유지되는 벡터를 어떻게 찾는가, 그런 벡터로 기저를 만들 수 있는가, 그리고 못 만들면 무엇이 문제인가. 마지막 물음에 대한 답 하나가 '고유값이 실수가 아니어서'이고, 그 자리에서 복소수가 들어온다.
앞에서 가져오는 것은 3장의 역행렬, 4장의 행렬식과 특히 det𝐴=0 의 뜻, 5장의 내적과 직교, 그리고 (𝐴𝐮)⋅𝐯=𝐮⋅(𝐴𝑇𝐯), 6장의 영공간·기저·차원, 7장의 선형변환과 닮음이다. 기초수학에서는 복소수와 극형식, 근과 계수의 관계를 쓴다.
방향이 그대로인 벡터
𝑛×𝑛 행렬 𝐴 와 영벡터가 아닌 벡터 𝐱 에 대해
𝐴𝐱=𝜆𝐱
를 만족하는 스칼라 𝜆 가 있으면, 𝐱 를 𝐴 의 고유벡터(eigenvector), 𝜆 를 그에 대응하는 고유값(eigenvalue)이라 한다.
뜻은 그림으로 보는 편이 빠르다. 보통의 벡터는 행렬을 곱하면 방향이 틀어지는데, 고유벡터는 원점을 지나는 같은 직선 위에 머물고 길이만 𝜆 배가 된다.
<왼쪽에서 두 벡터는 변환 뒤 방향이 틀어졌다. 오른쪽 두 방향은 같은 직선 위에 남아 길이만 3배와 1배로 바뀐다. 이 두 방향이 고유벡터이고 3 과 1 이 고유값이다>[원본 보기]
정의에서 조심할 곳이 둘 있다.
𝐱≠𝟎 이어야 한다.𝐴𝟎=𝜆𝟎 은 어떤 𝜆 에 대해서도 성립하므로, 영벡터를 허용하면 모든 수가 고유값이 되어 버려 말이 안 된다.
𝜆=0 은 허용된다.𝐴𝐱=𝟎 인 𝐱≠𝟎 이 있다는 뜻이고, 그것은 영공간이 자명하지 않다는 뜻, 곧 𝐴 가 가역이 아니라는 뜻이다. 6장의 동치 명제 목록에 0 이 고유값이 아니다라는 줄이 붙는 이유가 이것이다.
예제 74
𝐴=[2112] 에 대해 (1,1), (1,−1), (1,0) 이 고유벡터인지 판정하고, 맞으면 고유값을 구하라.
풀이 보기
판정 방법은 정의 그대로다. 곱해 보고 원래 벡터의 배수인지 본다.
𝐴[11]=[33]=3[11] — 고유벡터이고 𝜆=3.
𝐴[1−1]=[1−1]=1⋅[1−1] — 고유벡터이고 𝜆=1.
𝐴[10]=[21] — (2,1) 은 (1,0) 의 배수가 아니다. 고유벡터가 아니다.
고유벡터는 하나가 아니라 직선 하나만큼 있다는 점을 짚어 두자. 𝐱 가 고유벡터면 𝐴(𝑘𝐱)=𝑘𝐴𝐱=𝑘𝜆𝐱=𝜆(𝑘𝐱) 이므로 𝑘𝐱 도 같은 고유값의 고유벡터다. 그래서 (2,2) 나 (−5,−5) 도 모두 𝜆=3 의 고유벡터다. 하나를 대표로 골라 쓰는 것뿐이다.
예제 75
다음 변환의 고유값과 고유벡터를 계산 없이 그림으로 찾아라. (1) 직선 ℓ 위로의 정사영 (2) 직선 ℓ 에 대한 반사 (3) 𝑘 배 확대 (4) 90° 회전
풀이 보기
물어야 할 것은 '어느 방향이 제자리 직선에 남는가'이고, 그 방향에서 '길이가 몇 배가 되는가'다.
(1) 사영. 직선 ℓ 위의 벡터는 그대로이므로 𝜆=1. ℓ 에 수직인 벡터는 0으로 가므로 𝜆=0. 고유값이 1,0 이다. 𝜆=0 이 있으니 사영은 가역이 아니고, 7장에서 det𝑃=0 이었던 것과 맞는다.
(2) 반사.ℓ 위는 그대로라 𝜆=1, 수직 방향은 부호가 뒤집혀 𝜆=−1. 7장 마지막 예제에서 얻은 diag(1,−1) 이 바로 이 두 고유값을 늘어놓은 것이었다.
(3) 확대. 모든 벡터가 𝑘 배가 되므로 모든 방향이 고유벡터이고 고유값은 𝑘 하나다.
(4) 회전. 어떤 방향도 제자리 직선에 남지 않는다. 90° 돌리면 원래 직선과 수직이 되기 때문이다. 실수 고유값이 없다.
(4)가 이 장의 마지막 절로 이어진다. 실수 범위에서 고유값이 없다는 것은 '문제가 없다'는 뜻이 아니라 '수의 범위를 넓혀야 한다'는 뜻이다. 기초수학에서 𝑥2=−1 을 풀려고 복소수를 만들었던 것과 같은 자리다.
특성방정식 — 고유값을 찾는 방법
그림으로 찾는 것은 몇몇 특별한 변환에서만 가능하다. 일반적인 방법이 필요하다.
𝐴𝐱=𝜆𝐱 를 한쪽으로 모은다. 오른쪽의 𝜆𝐱 를 𝜆𝐼𝐱 로 적는 것이 요령이다. 그래야 𝐱 를 묶을 수 있다.
(𝐴−𝜆𝐼)𝐱=𝟎
이것은 동차연립방정식이다. 우리가 원하는 것은 𝐱≠𝟎 인 해, 곧 자명하지 않은 해다. 그런데 3장과 4장에서 그 조건을 이미 배웠다. 자명하지 않은 해가 있다는 것은 계수행렬이 가역이 아니라는 것이고, 그것은
det(𝐴−𝜆𝐼)=0
과 같은 말이다. 이 방정식을 특성방정식(characteristic equation)이라 하고, 왼쪽 식을 𝜆 에 대한 다항식으로 보아 특성다항식이라 한다. 𝑛×𝑛 행렬이면 𝑛 차 다항식이 된다.
<왼쪽은 특성다항식의 그래프이고 근이 둘이다. 오른쪽은 그 근 하나에서 A − λI 가 평면을 선분으로 눌러 버리는 모습이다. 넓이가 0 이 되니 행렬식이 0 이고, 눌려서 0 으로 가는 방향이 고유벡터가 된다>[원본 보기]
특성다항식을 얻고 나면 다음은 인수분해다. 기초수학의 인수정리와 근과 계수의 관계가 그대로 쓰인다.
계산을 아끼는 사실 하나. 삼각행렬의 고유값은 주대각선 성분 그 자체다.𝐴−𝜆𝐼 도 삼각행렬이고, 4장에서 삼각행렬의 행렬식이 대각성분의 곱이므로 특성다항식이 곧바로 인수분해된 꼴로 나오기 때문이다.
예제 76
𝐴=[323−2] 의 고유값을 구하라.
풀이 보기
특성다항식을 세운다. 대각선에서 𝜆 를 빼는 것이 전부다.
det(𝐴−𝜆𝐼)=∣3−𝜆23−2−𝜆∣=(3−𝜆)(−2−𝜆)−6
전개한다.
=−6−3𝜆+2𝜆+𝜆2−6=𝜆2−𝜆−12=(𝜆−4)(𝜆+3)
고유값은 𝜆=4 와 𝜆=−3 이다.
검산하는 좋은 방법이 있다. 2×2 특성다항식은 언제나
𝜆2−(대각성분의합)𝜆+det𝐴
꼴이다. 여기서 대각성분의 합은 3+(−2)=1, det𝐴=−6−6=−12 이므로 𝜆2−𝜆−12 ✓. 근과 계수의 관계로 뒤집어 보면 고유값의 합이 대각성분의 합, 곱이 행렬식이다. 실제로 4+(−3)=1 ✓, 4×(−3)=−12 ✓. 이 검산은 𝑛×𝑛 에서도 성립한다.
예제 77
𝐴=⎡⎢
⎢⎣10−111−2002⎤⎥
⎥⎦ 의 고유값을 구하라.
풀이 보기
3×3 이라 3차 다항식이 나온다. 0이 많은 줄로 전개하는 것이 요령이고, 여기서는 3행에 0이 둘이다.
det(𝐴−𝜆𝐼)=∣1−𝜆0−111−𝜆−2002−𝜆∣
3행으로 여인자 전개하면 앞의 두 항이 0이므로
=(2−𝜆)∣1−𝜆011−𝜆∣=(2−𝜆)(1−𝜆)2
고유값은 𝜆=2 와 𝜆=1 이고, 𝜆=1 은 중근이다.
검산. 대각성분의 합은 1+1+2=4 이고 고유값의 합은 2+1+1=4 ✓(중근은 두 번 센다). 곱은 2⋅1⋅1=2 이고, 실제로 3행으로 전개한 det𝐴=2(1⋅1−0)=2 ✓.
3차 이상에서 인수분해가 막히면 기초수학의 인수정리를 쓴다. 상수항의 약수를 하나씩 대입해 보아 0이 되는 값 𝛼 를 찾고, (𝜆−𝛼) 로 나눠 차수를 하나 낮추면 된다. 다만 이 문서의 예제는 손으로 인수분해되도록 골라 두었다.
고유공간과 두 가지 중복도
고유값을 찾았으면 고유벡터를 찾을 차례다. 𝜆 를 정해 놓고 보면
(𝐴−𝜆𝐼)𝐱=𝟎
의 해집합이 곧 그 고유값의 고유벡터 전체(에 영벡터를 더한 것)다. 6장의 말로 하면 𝐴−𝜆𝐼 의 영공간이고, 부분공간이다. 이것을 𝜆 에 대한 고유공간(eigenspace)이라 한다.
고유공간을 구하는 것은 새로운 계산이 아니다. 3장의 소거법으로 동차연립방정식을 풀면 된다.
여기서 두 가지 '개수'가 나온다. 둘을 구분하는 것이 이 장에서 가장 걸리는 곳이다.
대수적 중복도: 특성방정식에서 그 고유값이 몇 중근인가
기하적 중복도: 그 고유공간의 차원, 곧 일차독립인 고유벡터의 개수
둘은 같을 수도 있고 다를 수도 있다. 다만 언제나 기하적 중복도 ≤ 대수적 중복도이고, 특히 기하적 중복도는 1 이상이다(고유값이라면 고유벡터가 적어도 하나는 있다). 이 부등식이 다음 절의 대각화 조건을 지배한다.
<두 행렬 모두 고유값이 3 하나뿐이고 대수적 중복도가 2다. 갈리는 것은 살아남는 방향의 개수다. 왼쪽에서는 어느 방향으로 쏘아도 화살표가 제 점선 위에 남고, 오른쪽에서는 가로축 하나만 남고 나머지는 전부 기운다. 그 남는 방향의 개수가 기하적 중복도다>[원본 보기]
예제 78
앞 예제의 𝐴=⎡⎢
⎢⎣10−111−2002⎤⎥
⎥⎦ 의 각 고유값에 대한 고유공간의 기저를 구하고 두 중복도를 비교하라.
풀이 보기
고유값은 𝜆=2 (단근)와 𝜆=1 (중근)이었다. 각각에 대해 (𝐴−𝜆𝐼)𝐱=𝟎 을 푼다.
축이 1열과 3열에 있으므로 𝑥2=𝑠 만 자유변수다. 𝑥1=0, 𝑥3=0 이므로 기저는 {(0,1,0)} 이고 차원은 1이다.
비교.𝜆=2 는 대수적 1, 기하적 1로 같다. 𝜆=1 은 대수적 2, 기하적 1로 다르다.
그래서 일차독립인 고유벡터를 다 모아도 (−1,−3,1) 과 (0,1,0) 둘뿐이다. ℝ3 의 기저를 만들려면 셋이 필요한데 하나가 모자란다. 이 행렬로는 고유벡터로 된 기저를 만들 수 없다. 다음 절에서 이것이 '대각화 불가능'이라 불린다.
예제 79
𝐵=[3003] 와 𝐶=[3103] 의 고유값과 두 중복도를 각각 구하고 차이를 설명하라.
풀이 보기
둘 다 상삼각행렬이므로 고유값은 대각성분, 곧 𝜆=3 뿐이고 대수적 중복도는 둘 다 2다. 갈리는 것은 기하적 중복도다.
𝐵.𝐵−3𝐼=𝑂(영행렬)이므로 (𝐵−3𝐼)𝐱=𝟎 은 모든 𝐱 가 해다. 고유공간이 ℝ2 전체이고 기하적 중복도가 2다. 실제로 𝐵=3𝐼 는 3배 확대라 모든 방향이 고유벡터다.
𝐶.𝐶−3𝐼=[0100] 이고 [0100][𝑥𝑦]=[𝑦0]=𝟎 이려면 𝑦=0 이다. 고유공간이 span{(1,0)} 인 직선이고 기하적 중복도가 1이다.
왜 갈렸는가. 𝐶 는 3배 확대에 전단이 섞인 변환이다. 7장에서 전단은 가로축 방향만 제자리에 두고 다른 방향은 모두 기울인다고 했다. 그래서 살아남는 방향이 하나뿐이다.
두 행렬의 고유값이 똑같은데 성질이 전혀 다르다는 점이 요점이다. 고유값만으로는 행렬을 알 수 없고 고유공간까지 봐야 한다.
닮음, 그리고 대각화
닮음 불변량
7장에서 𝐶=𝑃−1𝐴𝑃 인 관계를 닮음이라 부르고, 그것이 '같은 변환을 다른 기저에서 적은 것'이라고 했다. 같은 변환이라면 기저와 상관없는 성질은 그대로여야 한다. 그런 성질을 닮음 불변량이라 한다.
먼저 새 기호 하나가 필요하다. 정사각행렬의 주대각선 성분을 모두 더한 값을 대각합(trace)이라 하고 tr(𝐴) 로 적는다. 앞 절의 검산에서 '대각성분의 합'이라 부른 그것이다.
대각합에는 놀라운 성질이 있다. tr(𝐴𝐵)=tr(𝐵𝐴) 다. 곱 자체는 교환법칙이 성립하지 않는데도 대각합은 같다. 양쪽 다 ∑𝑖∑𝑗𝑎𝑖𝑗𝑏𝑗𝑖 로 같은 합이 되기 때문이다.
이제 불변량을 모은다. 𝐶=𝑃−1𝐴𝑃 라 하자.
불변량
왜 같은가
특성다항식
det(𝐶−𝜆𝐼)=det(𝑃−1(𝐴−𝜆𝐼)𝑃)=det(𝐴−𝜆𝐼)
고유값과 그 대수적 중복도
특성다항식이 같으므로 근도 같다
행렬식
det𝐶=det(𝑃−1)det𝐴det𝑃=det𝐴
대각합
tr(𝑃−1𝐴𝑃)=tr(𝐴𝑃𝑃−1)=tr(𝐴)
랭크와 퇴화차수
가역행렬을 곱해도 축의 개수가 변하지 않는다
고유공간의 차원(기하적 중복도)
𝐱 가 𝐴 의 고유벡터면 𝑃−1𝐱 가 𝐶 의 고유벡터다
첫 줄의 계산에서 𝑃−1(𝐴−𝜆𝐼)𝑃=𝑃−1𝐴𝑃−𝜆𝑃−1𝑃=𝐶−𝜆𝐼 를 썼다. 4장의 곱의 행렬식과 det(𝑃−1)=1/det𝑃 가 나머지를 해 준다.
이 표의 쓸모는 두 방향이다. 하나는 계산의 검산이고, 다른 하나는 닮지 않았음을 보이는 것이다. 불변량 하나만 달라도 닮지 않았다고 단정할 수 있다. 반대로 전부 같다고 해서 닮았다고 단정할 수는 없다.
예제 80
𝐴=[1203] 와 𝐵=[2002] 는 닮았는가? 𝐴 와 𝐶=[3501] 는 어떤가?
풀이 보기
닮음을 직접 보려면 𝑃 를 찾아야 하지만, 닮지 않았음은 불변량 하나로 끝난다. 값싼 것부터 본다.
𝐴 와 𝐵. 대각합은 1+3=4 와 2+2=4 로 같고 행렬식도 3 과 4 … 다르다. det𝐴=3, det𝐵=4 이므로 닮지 않았다.
고유값으로 봐도 같은 결론이다. 𝐴 는 삼각행렬이라 고유값이 1,3 이고 𝐵 는 2,2 다. 애초에 다르다.
𝐴 와 𝐶. 둘 다 삼각행렬이라 고유값이 각각 {1,3} 과 {3,1} 로 같다. 대각합 4, 행렬식 3도 같다. 불변량으로는 걸러지지 않는다.
이 경우는 실제로 닮았다. 고유값이 서로 다른 둘이라 두 행렬 모두 diag(1,3) 와 닮고, 닮음은 추이적이기 때문이다. 𝐴∼𝐷 이고 𝐶∼𝐷 이면 𝐴∼𝐶 다.
정리하면 이렇다. 불변량이 다르면 닮지 않았다고 단정할 수 있고, 같으면 더 봐야 한다. 앞 절의 𝐵=3𝐼 와 𝐶=[3103] 가 그 '더 봐야 하는' 예다. 고유값도 대각합도 행렬식도 같지만 기하적 중복도가 달라 닮지 않았다. 실은 3𝐼 는 어떤 𝑃 로 바꿔도 𝑃−1(3𝐼)𝑃=3𝐼 라 자기 자신하고만 닮는다.
대각합이 불변량이라는 사실에서 실용적인 요령이 하나 나온다. 𝑛×𝑛 에서 고유값의 합은 대각합, 곱은 행렬식이다. 특히 2×2 에서는 특성다항식이 𝜆2−tr(𝐴)𝜆+det𝐴 이므로 행렬식을 전개할 것도 없이 곧장 세울 수 있다. 예를 들어 [4−211] 이면 tr=5, det=6 이므로 𝜆2−5𝜆+6=0 에서 고유값이 2,3 이다. 앞으로 이 요령을 계속 쓰고, 계산이 끝나면 합과 곱으로 검산한다.
대각화의 조건과 절차
이제 7장이 남긴 물음에 답한다.
정사각행렬 𝐴 가 대각화 가능(diagonalizable)하다는 것은 𝑃−1𝐴𝑃 가 대각행렬이 되는 가역행렬 𝑃 가 있다는 뜻이다.
언제 가능한가. 𝑃−1𝐴𝑃=𝐷 를 𝐴𝑃=𝑃𝐷 로 옮겨 적고 열별로 보면 답이 바로 나온다. 𝑃 의 열을 𝐩1,…,𝐩𝑛, 𝐷 의 대각성분을 𝜆1,…,𝜆𝑛 이라 하면
𝐴𝑃=[𝐴𝐩1⋯𝐴𝐩𝑛],𝑃𝐷=[𝜆1𝐩1⋯𝜆𝑛𝐩𝑛]
<왼쪽에서 두 고유벡터가 A 를 지나도 제 직선 위에 남고 길이만 λ 배가 된다. 오른쪽은 그 사실을 열 단위로 적은 것이다. AP 의 j 열은 A p~j, PD 의 j 열은 λ~j p~j 이므로, 두 행렬이 같다는 말은 열마다 A p~j = λ~j p~j 라는 말과 똑같다. 이것이 P 의 열이 반드시 고유벡터여야 하는 이유다>[원본 보기]
두 행렬이 같다는 것은 열마다 𝐴𝐩𝑗=𝜆𝑗𝐩𝑗 라는 뜻, 곧 𝑃 의 열이 전부 고유벡터라는 뜻이다. 그리고 𝑃 가 가역이어야 하므로 그 열들이 일차독립이어야 한다.
조건을 적기 전에 어느 수 범위에서 대각화하는가를 정해야 한다. 이 문서의 표기 규약은 스칼라를 실수로 본다고 했으므로, 아래는 실수 범위의 진술이다. 𝑃 와 𝐷 의 성분도 실수여야 한다는 뜻이다. 정리하면
𝐴 가 실수 범위에서 대각화 가능 ⟺𝐴 가 일차독립인 실수 고유벡터를 𝑛 개 갖는다 ⟺ 특성다항식의 근이 모두 실수이고, 각 고유값에서 기하적 중복도 = 대수적 중복도
마지막 동치에서 근이 모두 실수라는 단서를 빼면 안 된다. 대수적 중복도의 총합이 𝑛 이 되는 것은 복소수까지 세었을 때이고, 실수 근만 세면 총합이 𝑛 에 못 미칠 수 있기 때문이다. 그런 행렬은 실수 고유값마다 기하적 = 대수적이 되더라도 실수 고유벡터를 𝑛 개 모을 수 없어 대각화되지 않는다. 이 장 뒤의 회전행렬이 정확히 그런 경우이고, 실수 고유값이 아예 없어 조건의 뒷부분을 공허하게 만족한다. 단서가 없으면 그 행렬이 대각화된다는 잘못된 결론이 나온다.
복소수까지 허용하면 사정이 달라진다. 대수학의 기본정리 덕에 근은 중복을 세어 언제나 𝑛 개이므로, 조건이 '각 고유값에서 기하적 = 대수적 중복도' 하나로 줄어든다. 회전행렬도 복소수 범위에서는 대각화된다. 그 이야기는 이 장의 복소 고유값 절에서 한다.
남은 근거는 서로 다른 고유값에 대응하는 고유벡터는 일차독립이라는 사실이고, 이렇게 보인다. 종속이라면 종속이 되는 가장 짧은 관계식을 하나 잡고, 그 식에 𝐴 를 적용한 것과 어느 한 고유값을 곱한 것을 빼면 더 짧은 관계식이 나와 모순이다.
여기서 곧바로 따라 나오는 편리한 판정법이 있다. 𝑛×𝑛 행렬이 서로 다른 실수 고유값을 𝑛 개 가지면 반드시 대각화 가능하다. 근이 전부 실수이고 중복근이 없으니 중복도를 걱정할 일이 없기 때문이다. 중복근이 있거나 실수가 아닌 근이 섞여 있을 때만 더 따져 보면 된다.
절차는 셋이다. 특성방정식을 풀어 고유값을 구하고, 각 고유공간의 기저를 구하고, 그것들을 열로 세워 𝑃 를 만든다.𝐷 는 대응하는 고유값을 같은 순서로 늘어놓은 대각행렬이다. 순서를 맞추는 것이 유일한 함정이다.
𝑃 의 열 순서를 바꾸면 𝐷 의 대각성분 순서도 따라 바뀐다. 대각화는 하나로 정해지지 않는다. 고유벡터의 배수를 바꿔도, 순서를 바꿔도 여전히 옳은 대각화다.
예제 82
𝐴=[5105] 가 대각화 가능한지 판정하라. 가능하지 않다면 그 이유를 기하적으로 설명하라.
풀이 보기
삼각행렬이므로 고유값은 𝜆=5 뿐이고 대수적 중복도는 2다. 중복근이 있으니 고유공간의 차원을 따져야 한다.
𝐴−5𝐼=[0100]
랭크가 1이므로 6장의 계수-퇴화차수 정리에 따라 퇴화차수는 2−1=1 이다. 기하적 중복도가 1이고 대수적 중복도 2보다 작으므로 대각화할 수 없다.
일차독립인 고유벡터가 하나뿐이니 𝑃 의 두 열을 채울 수 없다는 것이 대수적인 이유다.
기하적인 이유는 이렇다. 𝐴=5[11/501] 이므로 이 변환은 5배 확대와 전단의 합성이다. 대각화가 가능하다는 것은 '적당한 기울어진 좌표계에서 보면 각 축 방향으로 늘리기만 하는 변환'이라는 뜻인데, 전단은 어떤 좌표계에서 봐도 기울이는 동작이 남는다. 격자를 아무리 비스듬히 그려도 전단은 그 격자를 밀어 버린다.
대각화할 수 없는 행렬을 어디까지 단순하게 만들 수 있는지는 조르당 표준형이라는 이름으로 다루는데, 이 문서의 범위를 넘는다. 다행히 실무에서 가장 자주 만나는 대칭행렬은 언제나 대각화되고, 그것이 이 장 뒷부분의 주제다.
대각화가 값을 하는 곳 — 거듭제곱과 점화식
대각화의 값어치는 𝐴 를 여러 번 곱해야 할 때 드러난다. 𝐴=𝑃𝐷𝑃−1 이면
𝐴2=𝑃𝐷𝑃−1𝑃𝐷𝑃−1=𝑃𝐷2𝑃−1,𝐴𝑘=𝑃𝐷𝑘𝑃−1
이다. 가운데에서 𝑃−1𝑃=𝐼 가 계속 지워지는 것이 전부다. 그리고 대각행렬의 거듭제곱은 대각성분만 거듭제곱하면 끝이다.
<위쪽은 행렬 곱을 99번 하는 길이고 아래쪽은 고유값을 100제곱하는 길이다. 분해와 복원에 곱셈 몇 번이 들지만 그 사이의 거듭제곱이 통째로 사라진다. 점화식과 마르코프 연쇄와 미분방정식이 전부 이 우회로를 쓴다>[원본 보기]
예제 83
𝐴=[2112] 에 대해 𝐴𝑘 의 일반식을 구하고 𝐴10 을 계산하라.
풀이 보기
앞에서 이 행렬의 고유값이 3,1 이고 고유벡터가 (1,1), (1,−1) 임을 확인했다. 7장 마지막 절에서 쓴 𝑃 를 그대로 쓴다.
𝑃=[111−1],𝐷=[3001],𝑃−1=12[111−1]
이제 조립한다. 𝐷𝑘=diag(3𝑘,1) 이므로
𝐴𝑘=𝑃𝐷𝑘𝑃−1=[111−1][3𝑘001]⋅12[111−1]
앞의 두 개를 먼저 곱하면 [3𝑘13𝑘−1] 이고, 여기에 나머지를 곱하면
𝐴𝑘=12[3𝑘+13𝑘−13𝑘−13𝑘+1]
검산부터 한다. 𝑘=1 이면 12[4224]=[2112] 로 𝐴 자신이다 ✓. 𝑘=0 이면 12[2002]=𝐼 ✓.
답이 말이 되는가. |𝜓|≈0.618<1 이라 𝜓𝑛 은 빠르게 0에 가까워진다. 그러니 큰 𝑛 에서 𝐹𝑛≈𝜑𝑛/√5 이고, 이웃한 두 항의 비가 𝜑 에 수렴한다. 황금비가 여기서 나온다. 정수만 나오는 수열의 일반항에 무리수가 들어 있는 것이 이상해 보이지만, 두 항이 정확히 상쇄되어 언제나 정수가 된다.
이 절의 그림 설명이 '점화식과 마르코프 연쇄와 미분방정식이 전부 이 우회로를 쓴다'고 적었는데, 실제로 풀어 보인 것은 거듭제곱과 점화식 둘뿐이다. 마르코프 연쇄와 연립미분방정식은 이 문서에서 다루지 않는다. 둘 다 여기서 배운 𝐴𝑘=𝑃𝐷𝑘𝑃−1 을 그대로 쓰지만, 상태 벡터가 무엇을 뜻하는지와 무엇으로 수렴하는지를 따로 세워야 해서 한 절로는 정직하게 담기지 않는다. 갈 곳은 마지막 장 「더 공부할 것」에 적어 두었다.
직교행렬과 대칭행렬 — 스펙트럼 정리
대각화가 언제나 되지는 않는다고 했다. 그런데 실대칭행렬은 언제나 되고, 그것도 가장 좋은 방식으로 된다. 이 절이 그 이야기다.
먼저 도구가 하나 필요하다. 열들이 서로 직교하고 길이가 1인 정사각행렬을 직교행렬(orthogonal matrix)이라 한다. 이 조건을 행렬로 적으면 𝑄𝑇𝑄 의 (𝑖,𝑗) 성분이 𝑖 열과 𝑗 열의 내적이므로
𝑄𝑇𝑄=𝐼,곧𝑄−1=𝑄𝑇
다. 역행렬이 전치라는 것이 직교행렬을 쓰는 이유다. 소거할 필요 없이 뒤집어 적기만 하면 된다.
직교행렬은 길이와 각을 보존한다. 5장의 관계를 쓰면 한 줄이다.
‖𝑄𝐱‖2=(𝑄𝐱)⋅(𝑄𝐱)=𝐱⋅(𝑄𝑇𝑄𝐱)=𝐱⋅𝐱=‖𝐱‖2
즉 직교행렬이 나타내는 변환은 회전이거나 반사다(det𝑄=±1 이고 부호가 그것을 가른다). 7장의 표에서 회전과 반사만 넓이와 길이를 지켰던 것과 맞는다.
이제 대칭행렬이다. 𝐴𝑇=𝐴 인 실행렬에 대해 두 가지가 성립한다.
고유값이 모두 실수다. 증명은 복소수를 써야 하므로 다음 절로 미룬다.
서로 다른 고유값의 고유벡터는 직교한다.
두 번째를 보이자. 5장에서 증명해 둔 (𝐴𝐮)⋅𝐯=𝐮⋅(𝐴𝑇𝐯) 를 쓴다. 𝐴 가 대칭이므로 오른쪽은 𝐮⋅(𝐴𝐯) 다. 𝐴𝐮=𝜆𝐮, 𝐴𝐯=𝜇𝐯 라 하면
𝜆(𝐮⋅𝐯)=(𝐴𝐮)⋅𝐯=𝐮⋅(𝐴𝐯)=𝜇(𝐮⋅𝐯)
이므로 (𝜆−𝜇)(𝐮⋅𝐯)=0 이다. 𝜆≠𝜇 였으므로 𝐮⋅𝐯=0. ■
<단위원이 타원으로 간다. 대칭행렬이면 타원의 두 주축이 서로 수직이고 그 방향이 고유방향이다. 대칭이 아니면 고유방향이 비스듬히 어긋난다. 스펙트럼 정리가 말하는 것이 이 직각이다>[원본 보기]
여기에 '중복도가 있어도 고유공간의 차원이 대수적 중복도만큼 나온다'는 사실을 더하면 다음이 나온다.
스펙트럼 정리. 실대칭행렬 𝐴 는 직교행렬로 대각화된다. 곧 직교행렬 𝑄 와 대각행렬 𝐷 가 있어
𝐴=𝑄𝐷𝑄𝑇,𝑄𝑇𝐴𝑄=𝐷
이다. 역도 성립한다. 𝑄𝐷𝑄𝑇 꼴로 적히는 행렬은 전치해 보면 자기 자신이므로 반드시 대칭이다.
이 정리가 9장과 10장의 바탕이 된다. 9장의 최소제곱에서 𝐴𝑇𝐴 가, 10장의 특이값 분해에서 다시 𝐴𝑇𝐴 가 나오는데 그것이 언제나 대칭이기 때문이다.
한 가지는 정직하게 밝혀 둔다. 학부 교재는 보통 이 정리 다음에 이차형식𝐱𝑇𝐴𝐱 와 양정치성으로 넘어간다. 직교대각화가 그 식의 교차항을 없애 주기 때문에 두 주제가 한 몸이다. 이 문서는 이차형식과 양정치성을 다루지 않는다. 그래서 10장에서 주성분분석의 '퍼짐'을 말할 때도 그것이 이차형식이라는 말을 하지 못하고 지나간다. 무엇을 어디서 이어 읽으면 되는지는 마지막 장 「더 공부할 것」에 적어 두었다.
예제 85
𝐴=[5222] 를 직교대각화하라.
풀이 보기
대칭행렬이므로 반드시 된다. 절차는 대각화와 같고 마지막에 고유벡터의 길이를 1로 맞추는 단계만 추가된다.
고유값.tr(𝐴)=7, det𝐴=10−4=6 이므로
𝜆2−7𝜆+6=(𝜆−1)(𝜆−6)=0⟹𝜆=6,1
고유벡터.𝜆=6 일 때 𝐴−6𝐼=[−122−4] 이므로 −𝑥+2𝑦=0, 곧 (2,1).
𝜆=1 일 때 𝐴−𝐼=[4221] 이므로 2𝑥+𝑦=0, 곧 (1,−2).
두 벡터의 내적은 2−2=0 이다. 직교한다 ✓. 계산하지 않아도 그래야 했지만, 확인해 보면 앞 계산의 실수를 잡을 수 있다.
정규화. 두 벡터 모두 길이가 √5 이므로 나눠 준다.
𝑄=1√5[211−2],𝐷=[6001]
검산. 𝑄𝑇𝑄=15[211−2][211−2]=15[5005]=𝐼 ✓ (이 𝑄 는 대칭이라 전치가 자기 자신이다). 그리고 𝐴𝑄 의 첫 열이 1√5(10+2,4+2)=1√5(12,6)=6⋅1√5(2,1) 로 𝑄𝐷 의 첫 열과 같다 ✓.
기하로 읽으면 이렇다. 𝐴 는 방향 (2,1) 로 6배, 그에 수직인 방향 (1,−2) 로 1배 늘리는 변환이다. 앞 그림의 가운데 패널이 이 상황이고, 단위원이 장축 6 단축 1인 타원으로 간다.
예제 86
𝑄=⎡⎢
⎢⎣1/32/32/32/31/3−2/3−2/32/3−1/3⎤⎥
⎥⎦ 가 직교행렬임을 확인하고 𝑄−1 을 적어라. 또 ‖𝑄(1,2,2)‖ 를 계산 없이 말하라.
풀이 보기
확인할 것은 각 열의 길이가 1이고 서로 직교하는가다.
길이부터. 첫 열은 19(1+4+4)=1 ✓. 둘째 열은 19(4+1+4)=1 ✓. 셋째 열은 19(4+4+1)=1 ✓.
마지막 물음. 직교행렬은 길이를 보존하므로 ‖𝑄(1,2,2)‖=‖(1,2,2)‖=√1+4+4=3 이다. 곱셈을 하지 않고 답했다.
이 성질이 실용적으로 중요한 이유가 있다. 수치계산에서 큰 행렬을 여러 번 곱하면 오차가 눈덩이처럼 커지는데, 직교행렬은 길이를 늘리지 않으므로 오차도 늘리지 않는다. 9장의 QR 분해와 10장의 특이값 분해가 직교행렬을 고집하는 데는 이 이유도 있다.
복소 고유값 — 회전이 남긴 문제
앞 절의 대각화 조건에 특성다항식의 근이 모두 실수라는 단서를 붙인 이유가 이 절이다. 그 단서를 걷어 내는 것이 여기서 하는 일이다.
앞에서 미룬 것이 둘 있다. 회전변환에 실수 고유값이 없다는 것과, 대칭행렬의 고유값이 실수라는 것의 증명이다. 둘 다 복소수를 들여야 풀린다.
특성방정식은 𝑛 차 다항식이다. 실수 범위에서는 근이 없을 수 있지만, 복소수까지 넓히면 중복을 세어 언제나 정확히 𝑛 개의 근이 있다. 기초수학에서 복소수를 소개하며 '모든 다항방정식이 근을 갖는다'고 한 것이 이 사실이고, 이름은 대수학의 기본정리다. 그러니 고유값을 복소수까지 허용하면 '고유값이 없다'는 경우가 사라진다. 이때 고유벡터의 성분도 복소수가 되고, 스칼라로 복소수를 허용한 벡터공간을 복소벡터공간이라 한다. ℂ𝑛 이 그 표준적인 예다.
<왼쪽에서 어떤 방향도 제자리 직선에 남지 않는다. 오른쪽 복소평면에서 고유값 두 개가 단위원 위에 켤레쌍으로 놓이고, 그 편각이 정확히 회전각이다. 실수 직선에는 없던 답이 평면으로 넓히자 나타났다>[원본 보기]
예제 87
회전행렬 𝑅𝜃=[cos𝜃−sin𝜃sin𝜃cos𝜃] 의 고유값을 구하라.
풀이 보기
tr=2cos𝜃 이고 det=cos2𝜃+sin2𝜃=1 이므로 특성방정식은
𝜆2−2cos𝜃𝜆+1=0
근의 공식을 쓴다.
𝜆=2cos𝜃±√4cos2𝜃−42=cos𝜃±√cos2𝜃−1=cos𝜃±𝑖sin𝜃
마지막에서 cos2𝜃−1=−sin2𝜃 를 썼다. 판별식이 음수이므로(𝜃 가 0 이나 180° 가 아닌 한) 근이 켤레복소수 쌍이다.
답을 읽는다. 기초수학의 극형식으로 보면 cos𝜃+𝑖sin𝜃 는 크기가 1이고 편각이 𝜃인 복소수다. 곧 고유값의 편각이 회전각이고 크기가 확대율(여기서는 1)이다. 앞 그림의 오른쪽이 이 사실을 그린 것이다.
𝜃=90° 이면 𝜆=±𝑖 다. 𝜃=0 이면 𝜆=1 (중근)이고 실제로 항등변환이라 모든 방향이 고유벡터다. 𝜃=180° 이면 𝜆=−1 (중근)이고 이것은 −𝐼, 곧 원점 대칭이라 역시 모든 방향이 고유벡터다. 회전이 실수 고유값을 갖는 것은 이 두 예외뿐이라는 것이 판별식에서 읽힌다.
일반적인 2×2 실행렬의 고유값이 켤레쌍 𝜆=𝑎±𝑏𝑖 라면, 극형식으로 𝜆=𝑟(cos𝜃±𝑖sin𝜃) 이고 𝑟=|𝜆|=√𝑎2+𝑏2 다. 그러면 그 행렬이 나타내는 변환은 𝜃 만큼 돌리고 𝑟 배 늘리는 것이다(적당한 기저에서 보면 정확히 그렇고, 그렇지 않은 기저에서는 그것을 기울여 본 모양이다).
<한 점에 행렬을 거듭 곱하면 궤적이 나선을 그린다. 고유값의 크기가 1 보다 크면 밖으로 감기고 작으면 원점으로 빨려 든다. 회전각은 편각이 정하고 감기는 속도는 크기가 정한다>[원본 보기]
그래서 𝐱,𝐴𝐱,𝐴2𝐱,… 의 궤적이 나선이 된다. 𝑟>1 이면 밖으로, 𝑟<1 이면 원점으로, 𝑟=1 이면 원 위를 돈다. 진동하는 물리계나 순환하는 경제 모형에서 '진동이 커지는가 잦아드는가'를 판정하는 것이 정확히 이 𝑟 을 보는 일이다.
예제 88
𝐴=[1−111] 의 고유값을 구하고, 이 변환이 기하적으로 무엇을 하는지 말하라. 또 𝐴𝑛𝐱 의 궤적은 어떤 모양인가?
풀이 보기
tr(𝐴)=2, det𝐴=1+1=2 이므로
𝜆2−2𝜆+2=0⟹𝜆=2±√4−82=1±𝑖
극형식으로 옮긴다. 𝑟=|1+𝑖|=√2 이고 편각은 𝜃=45° 다.
𝜆=√2(cos45°+𝑖sin45°)
따라서 이 변환은 45° 회전과 √2 배 확대의 합성이다.
검산. 7장에서 이 행렬을 만난 적이 있는데, 그때 𝐴=√2𝑅45° 임을 직접 확인했다. 고유값에서 읽은 답과 정확히 같다 ✓. 넓이 배율도 맞는다. det𝐴=2=(√2)2 이고, 이것은 고유값의 곱 (1+𝑖)(1−𝑖)=1+1=2이기도 하다 ✓.
궤적.𝑟=√2>1 이므로 한 번 곱할 때마다 45° 돌면서 √2 배씩 커진다. 밖으로 감기는 나선이다. 여덟 번 곱하면 한 바퀴를 돌고 크기는 (√2)8=16 배가 된다.
실수 고유값이 없다는 것을 '고유벡터가 없다'로 오해하지 않도록 하자. 복소 고유벡터는 있고, 그것을 실수 두 벡터로 갈라 적으면 회전이 일어나는 평면이 나온다. ℝ2 에서는 그 평면이 전체라 눈에 띄지 않지만, 큰 행렬에서는 '여기서만 돌고 있다'는 부분공간을 집어 준다.
마지막으로 미뤄 둔 증명을 한다. 실대칭행렬의 고유값은 실수다. 복소수에서 내적을 정의할 때는 한쪽에 켤레를 씌워 𝐮⋅𝐯=∑𝑢𝑖――𝑣𝑖 로 한다. 그래야 𝐯⋅𝐯=∑|𝑣𝑖|2 가 0 이상인 실수가 되어 길이 노릇을 할 수 있기 때문이다. 이제 𝐴𝐱=𝜆𝐱, 𝐱≠𝟎 이라 하고 양변과 𝐱 의 내적을 취하면
𝜆(𝐱⋅𝐱)=(𝐴𝐱)⋅𝐱=𝐱⋅(𝐴𝐱)=――𝜆(𝐱⋅𝐱)
이다(가운데에서 𝐴 가 실대칭이라는 것을 썼고, 마지막에서 켤레가 오른쪽에 붙는다는 규칙을 썼다). 𝐱⋅𝐱>0 이므로 𝜆=――𝜆 이고, 그것은 𝜆 가 실수라는 뜻이다. ■
이 계산은 대칭이라는 조건을 복소수 세계로 옮기면 무엇이 되는지도 알려 준다. 켤레전치 𝐴∗=――𝐴𝑇 를 정의하고 𝐴∗=𝐴 인 복소행렬을 에르미트 행렬, 𝐴∗=𝐴−1 인 것을 유니타리 행렬이라 한다. 각각 실대칭행렬과 직교행렬의 복소판이고, 스펙트럼 정리도 그대로 성립한다. 양자역학의 상태 공간이 이 언어로 적힌다. 이 문서에서는 이름만 소개하고 더 다루지 않는다.
8장 정리
기호 또는 용어
뜻
고유벡터, 고유값
𝐴𝐱=𝜆𝐱, 𝐱≠𝟎. 변환해도 방향이 유지되는 벡터와 그 배율
특성방정식
det(𝐴−𝜆𝐼)=0. n 차 다항식이라 복소수까지 세면 근이 n 개
고유공간
𝐴−𝜆𝐼 의 영공간. 부분공간이다
대수적 중복도
특성방정식에서 그 고유값이 몇 중근인가
기하적 중복도
고유공간의 차원. 언제나 대수적 중복도 이하이고 1 이상
대각합 tr(𝐴)
주대각선 성분의 합. 고유값의 합과 같다. tr(𝐴𝐵)=tr(𝐵𝐴)
고유값의 곱
det𝐴 와 같다. 2×2 특성방정식은 𝜆2−tr(𝐴)𝜆+det𝐴
닮음 𝐴∼𝐶
𝐶=𝑃−1𝐴𝑃. 불변량은 특성다항식·고유값·행렬식·대각합·랭크·고유공간 차원
대각화
𝑃−1𝐴𝑃=𝐷. 𝑃 의 열이 고유벡터, 𝐷 의 대각성분이 대응하는 고유값
대각화 가능 조건(실수 범위)
일차독립인 실수 고유벡터가 n 개. 곧 특성다항식의 근이 모두 실수이고 각 고유값에서 기하적 = 대수적 중복도
충분조건
서로 다른 실수 고유값이 n 개면 반드시 대각화 가능. 복소수까지 허용하면 근이 n 개라 실수 조건이 사라진다
거듭제곱
𝐴𝑘=𝑃𝐷𝑘𝑃−1. 대각행렬은 성분만 거듭제곱하면 된다
직교행렬 𝑄
열이 정규직교. 𝑄−1=𝑄𝑇, 길이 보존, det𝑄=±1
스펙트럼 정리
실대칭행렬은 직교대각화된다. 𝐴=𝑄𝐷𝑄𝑇
복소 고유값
실행렬이면 켤레쌍으로 나온다. 𝑟(cos𝜃±𝑖sin𝜃) 는 θ 회전과 r 배 확대
켤레전치 𝐴∗
――𝐴𝑇. 에르미트는 𝐴∗=𝐴, 유니타리는 𝐴∗=𝐴−1
이 장에서 '좋은 기저를 고르면 행렬이 단순해진다'는 이야기를 했고, 대칭행렬에서는 그 좋은 기저가 직교하는 기저였다. 그런데 직교가 왜 그렇게 좋은지, 직교하지 않는 기저를 직교하게 고칠 수 있는지는 아직 말하지 않았다. 다음 장이 그 일을 한다. 내적을 공리로 일반화하고, 정규직교기저를 만들고, 그것으로 해가 없는 연립방정식의 가장 그럴듯한 답을 구하는 데까지 간다.
내적공간과 직교성
5장에서 내적을 배웠다. 화살표 두 개의 성분을 곱해 더하면 두 화살표가 이루는 각이 나왔고, 그것으로 길이와 거리와 정사영을 모두 잴 수 있었다. 6장에서는 화살표를 버렸다. 다항식도 함수도 행렬도 합과 스칼라배만 지키면 벡터라고 부르기로 했다. 그러면 자연스러운 물음이 하나 생긴다. 화살표가 아닌 벡터에도 길이와 각이 있는가.
있다. 그리고 그것을 만드는 방법은 5장의 내적이 지키던 성질 몇 개를 그대로 규칙으로 삼는 것이다. 이 장은 그 규칙에서 출발해, 두 함수가 '수직'이라는 말의 뜻을 정하고, 기울어진 기저를 직교기저로 펴는 절차를 만들고, 마지막으로 해가 없는 연립방정식에서 가장 그럴듯한 답을 골라내는 방법까지 간다. 이 장에서 답할 질문은 셋이다. 내적은 무엇으로 정해지는가, 직교기저는 왜 그렇게 편한가, 그리고 𝐴𝐱=𝐛 에 해가 없을 때 무엇을 구해야 하는가.
5장의 점곱 𝐮⋅𝐯=∑𝑢𝑖𝑣𝑖 가 지키던 성질을 다시 꺼내 보자. 대칭이고, 덧셈에 분배되고, 스칼라를 밖으로 뺄 수 있고, 자기 자신과의 내적이 0 이상이었다. 이 넷만 있으면 5장에서 한 이야기가 전부 다시 나온다. 그러니 그 넷을 정의로 삼는다.
실벡터공간 𝑉 위의 내적(inner product)이란 두 벡터에 실수 하나를 대응시키는 함수 ⟨𝐮,𝐯⟩ 로서 다음 넷을 만족하는 것이다.
대칭성 — ⟨𝐮,𝐯⟩=⟨𝐯,𝐮⟩
가법성 — ⟨𝐮+𝐯,𝐰⟩=⟨𝐮,𝐰⟩+⟨𝐯,𝐰⟩
동차성 — ⟨𝑘𝐮,𝐯⟩=𝑘⟨𝐮,𝐯⟩
양의 정부호 — ⟨𝐯,𝐯⟩≥0 이고, ⟨𝐯,𝐯⟩=0 인 것은 𝐯=𝟎 일 때뿐이다
내적을 갖춘 벡터공간을 내적공간(inner product space)이라 한다. 앞의 세 조건은 '계산이 잘 풀린다'는 조건이고, 넷째가 진짜 핵심이다. 넷째 덕분에 ⟨𝐯,𝐯⟩ 의 제곱근을 길이로 삼을 수 있다.
‖𝐯‖=√⟨𝐯,𝐯⟩,𝑑(𝐮,𝐯)=‖𝐮−𝐯‖,cos𝜃=⟨𝐮,𝐯⟩‖𝐮‖‖𝐯‖
각을 이렇게 정의하려면 오른쪽 값이 −1 과 1 사이여야 하는데, 5장에서 한 코시-슈바르츠 증명이 공리 넷만 써서 그대로 통한다. 임의의 실수 𝑡 에 대해
0≤⟨𝐮+𝑡𝐯,𝐮+𝑡𝐯⟩=‖𝐯‖2𝑡2+2⟨𝐮,𝐯⟩𝑡+‖𝐮‖2
이고, 이차식이 모든 𝑡 에서 0 이상이려면 판별식이 0 이하여야 하므로 |⟨𝐮,𝐯⟩|≤‖𝐮‖‖𝐯‖ 다. ■ 성분을 한 번도 쓰지 않았다는 점이 중요하다. 공리를 만족하는 어떤 내적에서도 코시-슈바르츠와 삼각부등식이 성립한다. 그리고 무엇보다 ⟨𝐮,𝐯⟩=0 인 두 벡터를 직교한다고 부른다. 이 말이 이 장의 주인공이다.
내적은 하나가 아니다
같은 벡터공간에 서로 다른 내적을 얹을 수 있다. 대표적인 것 넷을 적어 둔다.
공간
내적
한마디
ℝ𝑛
⟨𝐮,𝐯⟩=𝐮⋅𝐯=𝐮𝑇𝐯
유클리드 내적. 기본값이다
ℝ𝑛
⟨𝐮,𝐯⟩=𝑤1𝑢1𝑣1+⋯+𝑤𝑛𝑢𝑛𝑣𝑛
가중 내적. 모든 𝑤𝑖>0 이어야 한다
ℝ𝑛
⟨𝐮,𝐯⟩=(𝐴𝐮)⋅(𝐴𝐯)
𝐴 가 가역이면 내적이 된다. 위 둘을 모두 포함한다
구간에서 연속인 함수들
⟨𝑓,𝑔⟩=∫𝑏𝑎𝑓(𝑥)𝑔(𝑥)𝑑𝑥
함수 공간의 내적. 이 장에서 계속 쓴다
셋째 줄은 확인해 둘 만하다. (𝐴𝐮)⋅(𝐴𝐯)=𝐮𝑇𝐴𝑇𝐴𝐯 인데, 𝐴 가 가역이면 𝐯≠𝟎 일 때 𝐴𝐯≠𝟎 이므로 ⟨𝐯,𝐯⟩=‖𝐴𝐯‖2>0 이다. 가역성이 넷째 공리를 보증한다. 넷째 줄이 이 절에서 가장 중요하다. 함수도 벡터이고, 두 함수의 곱을 적분한 값이 내적이 된다. 왜 이것이 내적인지는 공리를 하나씩 확인하면 된다. 대칭성은 𝑓𝑔=𝑔𝑓 이라 자명하고, 가법성과 동차성은 적분의 선형성이며, ⟨𝑓,𝑓⟩=∫𝑓2≥0 이고 연속함수의 제곱을 적분해서 0이 되려면 𝑓 가 항등적으로 0이어야 한다.
<왼쪽 칸에서 두 함수를 곱해 만든 넓이가 내적이다. 가운데 칸처럼 위쪽 넓이와 아래쪽 넓이가 정확히 지워지면 두 함수는 직교한다. 오른쪽 칸이 말하듯 유클리드 내적의 시그마 자리에 적분이 들어앉은 것뿐이다>[원본 보기]
그림의 오른쪽 칸을 한 번 더 읽어 두자. 유클리드 내적은 자리마다 곱해서 더한다. 함수의 내적은 모든 𝑥 자리마다 곱해서 더한다. 자리가 유한개에서 연속으로 늘어나면 합이 적분이 되고, 그것이 전부다.
예제 89
ℝ2 에 가중 내적 ⟨𝐮,𝐯⟩=2𝑢1𝑣1+3𝑢2𝑣2 를 얹는다. 𝐮=(1,1), 𝐯=(3,−2) 에 대해 내적과 두 노름을 구하고, 두 벡터가 직교하는지 판정하라. 유클리드 내적으로는 어떠한가?
풀이 보기
정의대로 넣는다. 가중치가 붙는 자리를 헷갈리지 않는 것이 전부다.
⟨𝐮,𝐯⟩=2(1)(3)+3(1)(−2)=6−6=0
0이므로 이 내적에서는 직교한다. 노름은 자기 자신과의 내적의 제곱근이다.
‖𝐮‖=√2(1)2+3(1)2=√5,‖𝐯‖=√2(9)+3(4)=√30
유클리드 내적으로는 𝐮⋅𝐯=3−2=1≠0 이라 직교하지 않는다. 여기서 배울 것은 이것이다. 직교는 두 벡터만의 성질이 아니라 내적까지 포함한 성질이다. 어떤 자를 들고 재느냐에 따라 수직인지 아닌지가 달라진다. 그래서 앞으로 '직교'라고 할 때는 어떤 내적인지가 정해져 있어야 하고, 특별한 말이 없으면 유클리드 내적을 뜻한다.
가중 내적이 쓸모 있는 자리는 축마다 중요도가 다를 때다. 2 와 3 은 첫째 성분보다 둘째 성분을 더 무겁게 세겠다는 뜻이다. 이 내적은 위 표의 셋째 형태로도 적힌다. 𝐴=diag(√2,√3) 로 두면 (𝐴𝐮)⋅(𝐴𝐯) 가 정확히 이 값이다.
예제 90
구간 [0,1] 에서 연속인 함수들의 공간에 ⟨𝑓,𝑔⟩=∫10𝑓(𝑥)𝑔(𝑥)𝑑𝑥 를 얹는다. 𝑓(𝑥)=1 과 𝑔(𝑥)=𝑥 에 대해 내적·노름·사이각을 구하고, ℎ(𝑥)=𝑥−12 가 𝑓 와 직교함을 보여라.
풀이 보기
구하려는 것은 모두 적분 하나씩이다. 차례로 계산한다.
⟨𝑓,𝑔⟩=∫101⋅𝑥𝑑𝑥=[𝑥22]10=12
‖𝑓‖2=∫101𝑑𝑥=1,‖𝑔‖2=∫10𝑥2𝑑𝑥=13
이므로 ‖𝑓‖=1, ‖𝑔‖=1/√3 이다. 각은 정의를 그대로 쓴다.
cos𝜃=1/21×1/√3=√32⟹𝜃=30°=𝜋6
상수함수와 일차함수가 30도를 이룬다는 말이 처음에는 이상하게 들린다. 그러나 이 '각'은 그림 속의 각이 아니라 두 함수가 얼마나 같은 방향을 향하는가를 재는 수다. 둘 다 구간에서 양수라 예각이 나온 것이다. 남은 직교 확인은 적분 한 번이다.
⟨𝑓,ℎ⟩=∫10(𝑥−12)𝑑𝑥=[𝑥22−𝑥2]10=12−12=0
직교한다 ✓. 뜻을 읽어 두면 좋다. 상수함수 1 과 직교한다는 것은 그 함수의 평균이 0이라는 뜻이다. ℎ 는 앞 절반에서 음수, 뒷 절반에서 양수라 넓이가 정확히 지워진다. 통계에서 '평균을 빼는 것'이 곧 상수 방향 성분을 없애는 정사영이라는 사실이 여기서 시작된다.
직교집합과 정규직교기저
영벡터가 아닌 벡터들이 서로 짝마다 직교하면 그 모임을 직교집합(orthogonal set)이라 하고, 거기에 더해 모두 길이가 1이면 정규직교집합(orthonormal set)이라 한다. 기호로 적으면 정규직교집합 {𝐪1,…,𝐪𝑘} 는
⟨𝐪𝑖,𝐪𝑗⟩={1𝑖=𝑗0𝑖≠𝑗
를 만족한다. 직교집합에는 공짜로 따라오는 성질이 하나 있다. 직교집합은 언제나 일차독립이다. 증명은 세 줄이다. 𝑐1𝐯1+⋯+𝑐𝑘𝐯𝑘=𝟎 이라 하고 양변에 𝐯𝑖 를 내적하면, 𝑗≠𝑖 인 항은 전부 0이 되어 사라지고 𝑐𝑖⟨𝐯𝑖,𝐯𝑖⟩=0 만 남는다. 𝐯𝑖≠𝟎 이므로 ⟨𝐯𝑖,𝐯𝑖⟩≠0 이고, 따라서 𝑐𝑖=0 이다. 모든 𝑖 에 대해 그렇다. ■
6장에서 일차독립을 판정하려면 연립방정식을 풀어야 했다. 직교이기만 하면 그 수고가 없어진다. 그리고 진짜 이득은 그다음이다.
좌표가 내적 하나로 나온다
{𝐪1,…,𝐪𝑛} 이 정규직교기저라고 하자. 임의의 𝐮 를 𝐮=𝑐1𝐪1+⋯+𝑐𝑛𝐪𝑛 으로 적을 수 있는데, 양변에 𝐪𝑖 를 내적하면 위와 같은 이유로 한 항만 살아남아 ⟨𝐮,𝐪𝑖⟩=𝑐𝑖 가 된다. 곧
𝐮=⟨𝐮,𝐪1⟩𝐪1+⟨𝐮,𝐪2⟩𝐪2+⋯+⟨𝐮,𝐪𝑛⟩𝐪𝑛
이다. 길이가 1이 아닌 직교기저 {𝐯𝑖} 라면 나누어 주면 된다.
𝐮=⟨𝐮,𝐯1⟩‖𝐯1‖2𝐯1+⋯+⟨𝐮,𝐯𝑛⟩‖𝐯𝑛‖2𝐯𝑛
각 항이 5장의 정사영 proj𝐯𝐮 와 똑같이 생겼다는 것을 눈여겨보자. 직교기저에서 좌표를 구하는 일은 각 축으로 그림자를 내리는 일이다.
<왼쪽처럼 축이 직교하면 각 축에 수선을 내린 길이가 그대로 좌표다. 오른쪽처럼 축이 기울어져 있으면 수선의 발과 좌표가 어긋나서 연립방정식을 풀어야 한다>[원본 보기]
6장에서 좌표벡터를 구하려면 [𝐯1⋯𝐯𝑛∣𝐮] 를 소거해야 했다. 기저가 정규직교면 그 일이 내적 𝑛 번으로 줄어들고, 축이 서로 간섭하지 않으므로 한 축의 좌표를 구할 때 다른 축을 볼 필요도 없다. 덤으로 노름도 쉬워진다. 𝐮=∑𝑐𝑖𝐪𝑖 를 자기 자신과 내적하면 교차항이 전부 0이라
‖𝐮‖2=𝑐21+𝑐22+⋯+𝑐2𝑛=∑𝑖⟨𝐮,𝐪𝑖⟩2
가 된다. 임의 차원의 피타고라스 정리이고, 이름은 파세발 항등식이다. 8장의 직교행렬도 여기서 다시 읽힌다. 𝑄𝑇𝑄=𝐼 라는 조건은 𝑄 의 열들이 정규직교집합이라는 말을 행렬로 적은 것이다. (𝑄𝑇𝑄)𝑖𝑗 가 𝑖 열과 𝑗 열의 내적이기 때문이다.
예제 91
𝐪1=(35,45), 𝐪2=(−45,35) 가 ℝ2 의 정규직교기저임을 확인하고, 𝐮=(5,10) 의 좌표를 구하라. 파세발 항등식도 확인하라.
파세발도 맞는다. ‖𝐮‖2=125 이고 112+22=125 ✓. 만약 기저가 직교하지 않았다면 𝑐1,𝑐2 를 구하려고 이원일차연립방정식을 풀어야 했다. 지금은 곱셈 네 번으로 끝났고, 차원이 커질수록 이 차이가 커진다.
예제 92
𝐯1=(1,1,1), 𝐯2=(1,−1,0), 𝐯3=(1,1,−2) 가 ℝ3 의 직교기저임을 확인하고, 𝐮=(3,0,3) 을 이 기저로 나타내라.
풀이 보기
직교인지 먼저 본다. 세 쌍을 모두 확인해야 한다.
𝐯1⋅𝐯2=1−1+0=0,𝐯1⋅𝐯3=1+1−2=0,𝐯2⋅𝐯3=1−1+0=0
셋 다 0이므로 직교집합이고, 앞에서 본 정리에 따라 일차독립이다. ℝ3 안의 일차독립인 벡터 세 개이니 기저다.
길이가 1이 아니므로 분모에 노름의 제곱을 놓는 쪽 공식을 쓴다.
‖𝐯1‖2=3,‖𝐯2‖2=2,‖𝐯3‖2=6
𝐮⋅𝐯1=3+0+3=6,𝐮⋅𝐯2=3−0+0=3,𝐮⋅𝐯3=3+0−6=−3
따라서 계수는 6/3=2, 3/2, −3/6=−12 이고 𝐮=2𝐯1+32𝐯2−12𝐯3 이다.
검산. 2(1,1,1)+32(1,−1,0)−12(1,1,−2)=(3,0,3) ✓ 정규직교로 만들고 싶으면 각각을 길이로 나누면 된다. 𝐯1/√3, 𝐯2/√2, 𝐯3/√6 이 정규직교기저다. 직교성은 스칼라배에 영향을 받지 않는다는 점을 기억해 두면 계산이 편해진다. 분수를 끝까지 미루고 마지막에 정규화하면 된다.
직교여공간과 정사영
부분공간 𝑊 에 대해, 𝑊 의 모든 벡터와 직교하는 벡터들을 모은 것을 직교여공간(orthogonal complement)이라 하고 𝑊⟂ 로 적는다.
𝑊⟂={𝐯∈𝑉:⟨𝐯,𝐰⟩=0forall𝐰∈𝑊}
𝑊⟂ 도 부분공간이다 — 직교하는 것 둘을 더해도 여전히 직교하기 때문이다
𝑊∩𝑊⟂={𝟎} — 자기 자신과 직교하는 벡터는 영벡터뿐이다(공리 넷)
dim𝑊+dim𝑊⟂=𝑛 — 두 공간이 ℝ𝑛 을 정확히 나눠 갖는다
(𝑊⟂)⟂=𝑊 — 두 번 뒤집으면 제자리다
그리고 여기서 6장의 네 부분공간이 짝을 이룬다. 𝐴𝐱=𝟎 이라는 식을 소리 내어 읽어 보자. 𝐴 의 각 행과 𝐱 의 내적이 모두 0이라는 뜻이다. 그러니 영공간은 행공간과 직교한다.
Row(𝐴)⟂=𝑁(𝐴),Col(𝐴)⟂=𝑁(𝐴𝑇)
두 번째 줄은 첫 줄을 𝐴𝑇 에 적용한 것이다(𝐴𝑇 의 행공간이 곧 𝐴 의 열공간이다). 𝑁(𝐴𝑇) 를 왼쪽 영공간이라 부른다.
<정의역 쪽에서 행공간과 영공간이 직각으로 갈리고, 공역 쪽에서 열공간과 왼쪽 영공간이 직각으로 갈린다. A 는 행공간을 열공간으로 일대일로 옮기고 영공간은 통째로 0 으로 보낸다. 최소제곱에서 쓸 것은 오른쪽 그림이다>[원본 보기]
그림의 왼쪽에서 두 차원을 더하면 𝑟+(𝑛−𝑟)=𝑛 이다. 6장의 계수-퇴화차수 정리가 '정의역이 직교하는 두 조각으로 갈린다'는 그림으로 다시 읽힌 것이다. 그리고 오른쪽 그림이 이 장 끝의 최소제곱에서 그대로 쓰인다. 잔차가 열공간과 직교한다는 말은 잔차가 왼쪽 영공간에 들어 있다는 말과 같다.
예제 93
𝐴=[111123] 의 영공간을 구하고, 그것이 행공간과 직교함을 확인하라. 차원도 세어 보라.
풀이 보기
영공간은 𝐴𝐱=𝟎 의 해집합이다. 소거한다. 둘째 행에서 첫째 행을 빼면
[111012]
이고, 첫째 행에서 둘째 행을 빼면 기약 행사다리꼴 [10−1012] 이 된다. 셋째 열에 축이 없으니 𝑥3 이 자유변수이고, 𝑥3=𝑡 로 두면 𝑥1=𝑡, 𝑥2=−2𝑡 이라 𝑁(𝐴)=span{(1,−2,1)} 이다.
직교 확인은 행마다 하면 된다. 행공간의 모든 벡터는 행들의 일차결합이므로, 행 둘과 직교하면 행공간 전체와 직교한다.
공역 쪽도 보자. 계수가 2이므로 열공간이 ℝ2 전체이고 왼쪽 영공간은 {𝟎} 이다. 열공간이 공역 전체라는 것은 𝐴𝐱=𝐛 가 어떤 𝐛 에도 해를 갖는다는 뜻이라 이 행렬에는 최소제곱이 필요 없다.
부분공간으로 내리는 정사영
5장에서는 벡터 하나 방향으로 그림자를 내렸다. 이제 부분공간 전체로 내린다. 𝑊 의 직교기저 {𝐰1,…,𝐰𝑟} 를 알고 있다면 답은 각 축으로 내린 그림자를 모두 더한 것이다.
proj𝑊𝐮=⟨𝐮,𝐰1⟩‖𝐰1‖2𝐰1+⋯+⟨𝐮,𝐰𝑟⟩‖𝐰𝑟‖2𝐰𝑟
정규직교기저라면 분모가 모두 1이라 ∑⟨𝐮,𝐪𝑖⟩𝐪𝑖 로 더 간단해진다. 기저가 직교해야 한다는 조건을 잊으면 안 된다. 기울어진 기저에 이 공식을 쓰면 틀린 값이 나온다. 왜 이것이 그림자인지는 확인할 수 있다. 𝐮−proj𝑊𝐮 를 𝐰𝑖 와 내적하면 ⟨𝐮,𝐰𝑖⟩−⟨𝐮,𝐰𝑖⟩=0 이다. 곧 남는 조각이 𝑊 의 모든 기저와 직교하므로 𝑊⟂ 에 들어 있다. 따라서 어떤 벡터든 두 조각으로 딱 한 가지 방법으로 갈린다.
𝐮=proj𝑊𝐮⏟∈𝑊+(𝐮−proj𝑊𝐮)⏟___⏟___⏟∈𝑊⟂
<왼쪽에서 u 가 평면 안의 조각과 평면에 수직인 조각으로 갈린다. 오른쪽은 그 수선의 발이 평면 안의 어느 점보다 u 에 가깝다는 것을 피타고라스 정리로 보인다. 이 그림이 이 장의 나머지 전부를 떠받친다>[원본 보기]
오른쪽 그림의 주장을 정리로 적어 둔다. 최선 근사 정리.𝐩=proj𝑊𝐮 라 하면 𝑊 의 임의의 벡터 𝐪 에 대해 ‖𝐮−𝐩‖≤‖𝐮−𝐪‖ 이고, 등호는 𝐪=𝐩 일 때뿐이다. 증명은 한 줄이다. 𝐮−𝐪=(𝐮−𝐩)+(𝐩−𝐪) 로 쪼개면 앞 조각은 𝑊⟂ 에, 뒤 조각은 𝑊 에 있어 서로 직교한다. 피타고라스 정리에 의해
‖𝐮−𝐪‖2=‖𝐮−𝐩‖2+‖𝐩−𝐪‖2≥‖𝐮−𝐩‖2
이고 등호는 𝐩=𝐪 일 때뿐이다. ■ 가장 가까운 점을 찾는 문제가 수직으로 내리는 문제와 같다는 이 사실이 최소제곱의 전부다.
사영을 행렬로 적는다
사영도 선형변환이므로 행렬로 적을 수 있다. 𝑊=Col(𝐴) 이고 𝐴 의 열이 일차독립이라 하자. 사영 𝐩 는 열공간 안에 있으니 𝐩=𝐴𝐱 꼴이고, 남는 조각이 모든 열과 직교해야 하므로 𝐴𝑇(𝐮−𝐴𝐱)=𝟎 이다. 정리하면 𝐴𝑇𝐴𝐱=𝐴𝑇𝐮 이고, 𝐴𝑇𝐴 가 가역이면
𝐩=𝐴(𝐴𝑇𝐴)−1𝐴𝑇𝐮⟹𝑃=𝐴(𝐴𝑇𝐴)−1𝐴𝑇
이 사영행렬이다. 𝐴 의 열이 이미 정규직교라면 𝐴𝑇𝐴=𝐼 라서 𝑃=𝑄𝑄𝑇 로 줄어든다. 성질 넷을 적어 둔다.
성질
뜻
𝑃𝑇=𝑃
대칭이다. 정사영행렬의 표시다
𝑃2=𝑃
한 번 내린 것을 또 내려도 그대로다
𝐼−𝑃
𝑊⟂ 로의 사영행렬
tr𝑃=dim𝑊
대각합이 사영하는 공간의 차원이다
둘째 줄은 대수로도 보인다. 𝑃2=𝐴(𝐴𝑇𝐴)−1(𝐴𝑇𝐴)(𝐴𝑇𝐴)−1𝐴𝑇=𝐴(𝐴𝑇𝐴)−1𝐴𝑇=𝑃 다. 가운데 괄호와 그 오른쪽 역행렬이 서로 지워진다.
예제 94
𝑊=span{(1,1,0),(1,−1,1)} 로의 사영을 구하려 한다. 𝐮=(2,0,4) 의 사영과 남는 조각을 구하고, 피타고라스가 맞는지 확인하라.
기하로 읽어 두자. 𝑊 는 원점을 지나는 평면이고, 그 법선은 5장의 외적으로 구할 수 있다. (1,1,0)×(1,−1,1)=(1,−1,−2) 인데, 남는 조각 (−1,1,2) 가 정확히 그 반대 방향이다. 남는 조각은 언제나 법선 방향이고, 그것이 𝑊⟂ 가 직선 하나인 이유다(2+1=3).
예제 95
앞 예제의 𝑊 에 대한 사영행렬 𝑃 를 구하고, 𝑃𝐮 가 같은 답을 주는지 확인하라. tr𝑃 도 구하라.
풀이 보기
두 기저벡터를 열로 세운다.
𝐴=⎡⎢
⎢⎣111−101⎤⎥
⎥⎦⟹𝐴𝑇𝐴=[2003]
열이 직교하기 때문에 𝐴𝑇𝐴 가 대각행렬로 나왔다. 이것이 직교기저를 쓰는 또 하나의 이득이고, 역행렬이 그냥 대각성분의 역수 diag(1/2,1/3) 이다. 𝐴(𝐴𝑇𝐴)−1 는 𝐴 의 첫 열을 2로, 둘째 열을 3으로 나눈 것이므로 여기에 𝐴𝑇 를 곱하면 된다.
확인한다. 𝑃𝐮=16(10+0+8,2+0−8,4−0+8)=16(18,−6,12)=(3,−1,2) ✓ 앞 예제와 같다.
𝑃 가 대칭이라는 것도 눈으로 보인다 ✓. 대각합은 16(5+5+2)=2 인데, dim𝑊=2 와 같다 ✓.
𝐼−𝑃=16⎡⎢
⎢⎣1−1−2−112−224⎤⎥
⎥⎦ 도 계산해 보면, 이것은 법선 𝐧=(1,−1,−2) 에 대해 𝐧𝐧𝑇/‖𝐧‖2 와 정확히 같다. 직선으로의 사영행렬이다.
여기서 한 가지만 짚어 두자. 𝑃 는 계수가 2인 3×3 행렬이라 가역이 아니다. 당연하다. 사영은 정보를 버리는 변환이고, 버린 것은 되돌릴 수 없다.
그람-슈미트 과정과 QR 분해
지금까지 얻은 것은 모두 '직교기저가 있다면'으로 시작했다. 없으면 만들면 된다. 그 절차가 그람-슈미트 과정(Gram-Schmidt process)이고, 아이디어는 5장의 직교분해 한 줄을 되풀이하는 것뿐이다. 새 벡터를 가져올 때마다 지금까지 만든 것들과 겹치는 성분을 빼 버린다.
𝐯1=𝐮1
𝐯2=𝐮2−⟨𝐮2,𝐯1⟩‖𝐯1‖2𝐯1
𝐯3=𝐮3−⟨𝐮3,𝐯1⟩‖𝐯1‖2𝐯1−⟨𝐮3,𝐯2⟩‖𝐯2‖2𝐯2
𝑘 번째 줄은 𝐯𝑘=𝐮𝑘−proj𝑊𝑘−1𝐮𝑘 이고 𝑊𝑘−1 은 앞에서 만든 𝑘−1 개가 생성하는 공간이다. 마지막에 각각을 길이로 나누면 정규직교기저다.
<두 번째 칸이 이 절차의 전부다. u2 에서 v1 방향 성분을 빼면 남는 것이 v1 과 직교한다. 세 걸음을 지나는 동안 두 벡터가 생성하는 공간은 한 번도 바뀌지 않는다>[원본 보기]
두 가지를 기억해 두면 실수를 줄일 수 있다.
새로 만든 𝐯 를 쓴다.𝐮 가 아니라 𝐯 로 사영해야 뒤에서 어긋나지 않는다
중간에 상수배를 해도 된다. 분수가 지저분하면 정수배로 바꿔 놓고 계속해도 결과의 방향은 같다
그리고 이 절차가 보증하는 것을 정확히 적어 두자. 모든 𝑘 에 대해
span{𝐯1,…,𝐯𝑘}=span{𝐮1,…,𝐮𝑘}
이다. 𝐯𝑘 가 𝐮𝑘 에 앞선 것들의 일차결합을 더한 것이라 서로 오갈 수 있기 때문이다. 앞에서부터 잘라도 같은 공간이라는 이 성질이 다음 절의 QR 분해를 상삼각으로 만든다.
예제 96
𝐮1=(1,1,1), 𝐮2=(0,1,1), 𝐮3=(0,0,1) 에 그람-슈미트를 적용해 ℝ3 의 정규직교기저를 구하라.
풀이 보기
첫째는 그대로 둔다. 𝐯1=(1,1,1) 이고 ‖𝐯1‖2=3 이다.
둘째.𝐮2⋅𝐯1=0+1+1=2 이므로
𝐯2=(0,1,1)−23(1,1,1)=(−23,13,13)
분수가 거슬리니 3을 곱해 𝐯′2=(−2,1,1) 로 바꾼다. 방향이 같으므로 지장이 없다. (−2,1,1)⋅(1,1,1)=0 ✓ 이고 ‖𝐯′2‖2=6 이다.
이렇게 얻은 1,𝑥,𝑥2−13,… 을 르장드르 다항식이라 부른다(상수배 약속에 따라 계수가 조금 달라진다). 다항식을 직교기저로 바꿔 놓으면 '주어진 함수에 가장 가까운 2차 다항식'을 앞 절의 정사영 공식 한 번으로 구할 수 있다. 최소제곱의 함수판이 이것이다.
QR 분해
그람-슈미트를 행렬로 적으면 분해가 하나 떨어진다. 열이 일차독립인 𝑚×𝑛 행렬 𝐴=[𝐚1⋯𝐚𝑛] 에 그람-슈미트를 돌려 정규직교 열 𝐪1,…,𝐪𝑛 을 얻었다고 하자. 그러면 각 𝐚𝑗 는 𝐪1,…,𝐪𝑗 만으로 만들어지고, 정규직교기저에서 좌표는 내적이므로
𝐚𝑗=⟨𝐚𝑗,𝐪1⟩𝐪1+⋯+⟨𝐚𝑗,𝐪𝑗⟩𝐪𝑗
다. 이 계수들을 열로 세워 쌓으면 𝐴=𝑄𝑅 이고, 𝑅 의 (𝑖,𝑗) 성분이 ⟨𝐚𝑗,𝐪𝑖⟩ 다. 𝑖>𝑗 이면 이 값이 0이므로 𝑅 은 상삼각행렬이다.
<Q 의 열은 정규직교라서 Q 의 전치와 곱하면 단위행렬이 되고, R 은 상삼각이며 그 성분은 원래 열과 정규직교 벡터의 내적일 뿐이다. R 이 상삼각인 이유가 오른쪽에 적혀 있다>[원본 보기]
계산 절차로 정리하면 이렇다. 𝑄 를 먼저 만들고 𝑅=𝑄𝑇𝐴 로 한꺼번에 얻는 것이 실수가 적다. 𝑄𝑇𝑄=𝐼𝑛 이므로 𝑄𝑇𝐴=𝑄𝑇𝑄𝑅=𝑅 이기 때문이다.
3장의 LU 분해와 견주면 성격이 분명해진다. LU 는 소거 과정을 저장하고, QR 은 직교화 과정을 저장한다.𝑅 의 대각성분 𝑟𝑖𝑖=‖𝐯𝑖‖ 는 그람-슈미트가 만든 벡터의 길이라 모두 양수다. 덧붙여, 𝐴 가 정사각이면 𝑄𝑇𝑄=𝐼 에서 det𝑄=±1 이므로 |det𝐴|=𝑟11𝑟22⋯𝑟𝑛𝑛 이다. 4장에서 '행렬식은 부피'라고 한 것과 이어 읽으면, 회전만 하는 𝑄 는 부피를 바꾸지 못하고 부피를 만드는 것은 𝑅 의 대각성분뿐이라는 뜻이다.
여기서 𝑄𝑄𝑇 는 𝐼3 이 아니다.𝑄 가 정사각행렬이 아니기 때문이다. 실제로 𝑄𝑄𝑇 는 앞 절에서 본 열공간으로의 사영행렬이다. 이 구분을 놓치면 뒤에서 틀린다.
최소제곱 — 해가 없는 방정식을 푸는 법
이제 이 장의 목적지다. 현실에서 만나는 𝐴𝐱=𝐛 는 대개 해가 없다. 측정을 20번 했는데 미지수는 셋이라면 방정식이 20개, 미지수가 3개다. 측정에 오차가 조금이라도 있으면 20개를 동시에 만족하는 𝐱 는 존재하지 않는다.
그렇다고 손을 놓을 수는 없다. 물어야 할 것을 바꾼다. 정확히 맞힐 수 없다면, 가장 덜 틀리는 𝐱 는 무엇인가. '덜 틀린다'를 잔차 벡터 𝐫=𝐛−𝐴𝐱 의 길이로 재기로 하면, 문제는 이렇게 적힌다.
‖𝐛−𝐴ˆ𝐱‖=min𝐱‖𝐛−𝐴𝐱‖
이 ˆ𝐱 를 최소제곱해(least squares solution)라 한다. 길이의 제곱을 최소로 한다는 뜻에서 붙은 이름이다. 답은 이미 나와 있다. 𝐴𝐱 가 갈 수 있는 곳은 𝐴 의 열공간뿐이다. 그러니 이 문제는 '열공간 안에서 𝐛 에 가장 가까운 점을 찾아라'와 똑같고, 앞 절의 최선 근사 정리에 의해 그 점은 수선의 발이다.
<왼쪽 그림 하나가 최소제곱의 전부다. Ax 는 색칠한 평면 위만 돌아다니므로 그 위에 없는 b 에는 닿지 못하고, 할 수 있는 최선은 수직으로 내리는 것이다. 오른쪽은 그 조건을 식으로 옮기면 정규방정식이 나온다는 것을 보인다>[원본 보기]
유도를 다시 한번 천천히 따라가자. 최적의 ˆ𝐱 에서 잔차 𝐫=𝐛−𝐴ˆ𝐱 는 열공간과 직교해야 한다. 열공간은 𝐴 의 열들이 생성하므로, 직교한다는 말은 𝐴 의 모든 열과 내적이 0이라는 말이다. 열들과의 내적을 한꺼번에 적는 방법이 𝐴𝑇𝐫 이다. 곧
𝐴𝑇(𝐛−𝐴ˆ𝐱)=𝟎⟺𝐴𝑇𝐴ˆ𝐱=𝐴𝑇𝐛
이것을 정규방정식(normal equation)이라 한다. 원래의 𝑚 개짜리 방정식이 𝑛 개짜리로 줄었고, 무엇보다 반드시 해를 갖는다. 5장에서 증명한 (𝐴𝐮)⋅𝐯=𝐮⋅(𝐴𝑇𝐯) 로 같은 결론을 얻을 수도 있다. 잔차가 열공간의 모든 벡터와 직교한다는 것은 모든 𝐱 에 대해 (𝐴𝐱)⋅𝐫=0 이라는 뜻인데, 이것은 𝐱⋅(𝐴𝑇𝐫)=0 과 같고, 모든 𝐱 에 대해 성립하려면 𝐴𝑇𝐫=𝟎 이어야 한다. 행렬을 내적의 반대편으로 넘기면 전치가 붙는다는 규칙이 정확히 여기서 값을 한다.
언제 하나로 정해지는가
정규방정식의 해가 하나이려면 𝐴𝑇𝐴 가 가역이어야 한다. 그 조건은 놀랍도록 간단하다. 𝐴𝑇𝐴 가 가역 ⟺ 𝐴 의 열이 일차독립. 증명은 영공간을 견주면 된다. 𝐴𝑇𝐴𝐱=𝟎 이면 양변에 𝐱𝑇 를 곱해 𝐱𝑇𝐴𝑇𝐴𝐱=‖𝐴𝐱‖2=0 이므로 𝐴𝐱=𝟎 이다. 거꾸로도 자명하다. 곧 𝑁(𝐴𝑇𝐴)=𝑁(𝐴) 이고, 열이 일차독립이면 두 영공간이 모두 자명하다. ■ 그때 답은 이렇게 적힌다.
ˆ𝐱=(𝐴𝑇𝐴)−1𝐴𝑇𝐛,𝐴ˆ𝐱=𝐴(𝐴𝑇𝐴)−1𝐴𝑇𝐛=𝑃𝐛
다. 오른쪽이 앞 절의 사영행렬과 글자 하나 다르지 않다. 최소제곱해를 대입한 결과가 곧 𝐛 의 사영이라는 사실이 식으로 확인된 셈이다.
실제 계산에서는 𝐴𝑇𝐴 를 직접 만들지 않는다. 조건수가 제곱되어 오차에 약해지기 때문이다(10장에서 다시 이야기한다). 대신 QR 분해를 쓴다. 𝐴=𝑄𝑅 를 정규방정식에 넣으면
𝑅𝑇𝑄𝑇𝑄𝑅ˆ𝐱=𝑅𝑇𝑄𝑇𝐛⟹𝑅𝑇𝑅ˆ𝐱=𝑅𝑇𝑄𝑇𝐛⟹𝑅ˆ𝐱=𝑄𝑇𝐛
가 된다(𝑅 이 가역이라 𝑅𝑇 를 지울 수 있다). 상삼각행렬 하나만 뒤에서 앞으로 대입해 풀면 끝난다.
<갈림길은 하나뿐이다. b 가 열공간 안에 있으면 3장의 소거법으로 끝이고, 없으면 수직으로 내려 정규방정식을 얻는다. 그다음은 열이 독립인지에 따라 답이 하나인지 여럿인지가 갈린다>[원본 보기]
예제 99
𝐴=⎡⎢
⎢⎣100111⎤⎥
⎥⎦, 𝐛=(1,1,0) 에 대해 𝐴𝐱=𝐛 에 해가 없음을 보이고, 최소제곱해와 잔차를 구하라.
풀이 보기
해가 없음을 먼저 확인한다. 세 줄을 그대로 읽으면 𝑥1=1, 𝑥2=1, 𝑥1+𝑥2=0 이다. 앞의 둘을 셋째에 넣으면 2=0 이라 모순이다. 해가 없다 ✓.
정규방정식을 세운다. 𝐴𝑇𝐴 의 성분 하나하나가 열끼리의 내적이라는 것을 기억하면 빠르다.
𝐴 의 첫 열은 1로만 이루어져 있고 둘째 열은 𝑥 값들이다. 정규방정식 𝐴𝑇𝐴ˆ𝐱=𝐴𝑇𝐲 를 성분으로 풀어 쓰면
[𝑚∑𝑥𝑖∑𝑥𝑖∑𝑥2𝑖][𝑎𝑏]=[∑𝑦𝑖∑𝑥𝑖𝑦𝑖]
이다. 풀면 익숙한 공식이 나온다.
𝑏=𝑚∑𝑥𝑖𝑦𝑖−(∑𝑥𝑖)(∑𝑦𝑖)𝑚∑𝑥2𝑖−(∑𝑥𝑖)2,𝑎=¯𝑦−𝑏¯𝑥
<왼쪽에서 굵은 세로선이 잔차이고 그 제곱 합이 최소가 된 상태다. 잔차의 합이 0이고 x 와의 내적도 0인데, 그 두 줄이 정규방정식 두 줄 그 자체다. 오른쪽은 최소제곱이 세로 거리를 재지 수직 거리를 재지 않는다는 것을 보인다>[원본 보기]
그림의 왼쪽 아래 두 줄을 다시 보자. 정규방정식의 두 줄은 각각 이런 뜻이다.
첫 줄 ∑𝑟𝑖=0 — 잔차가 1로만 이루어진 열과 직교한다
둘째 줄 ∑𝑥𝑖𝑟𝑖=0 — 잔차가 𝑥 열과 직교한다
상수항 𝑎 를 둔 회귀에서 잔차의 합이 언제나 0인 이유가 이것이다. 통계 교과서가 '잔차의 평균은 0'이라고 적는 사실은 별도의 성질이 아니라 정규방정식의 첫 줄이다. 한 가지 오해도 미리 걷어 둔다. 최소제곱이 줄이는 것은 세로 거리이지 점에서 직선까지의 수직 거리가 아니다. 𝑦 를 예측하는 것이 목적이므로 𝑦 방향 오차만 세는 것이다. 수직 거리를 줄이는 방법은 따로 있고, 그것이 10장의 주성분분석이다.
확장도 쉽다. 𝑦=𝑎+𝑏𝑥+𝑐𝑥2 으로 맞추고 싶으면 𝐴 에 𝑥2𝑖 열을 하나 더 붙이면 그만이다. 미지수에 대해 일차이기만 하면 곡선을 맞추는 문제도 최소제곱이다.
예제 101
네 점 (1,2),(2,3),(3,5),(4,6) 에 직선 𝑦=𝑎+𝑏𝑥 를 최소제곱으로 맞추고, 잔차와 그 성질을 확인하라.
잔차 제곱 합은 0.01+0.09+0.09+0.01=0.20 이고 어떤 직선을 가져와도 이보다 작아지지 않는다. 눈대중으로 𝑦=0.6+1.3𝑥 를 잡으면 예측값이 1.9,3.2,4.5,5.8 이고 제곱 합이 0.34 로 더 크다. 마지막으로 기하를 붙여 두자. 자료가 네 개이므로 𝐲 는 ℝ4 의 벡터이고, 𝐴 의 두 열이 만드는 것은 그 안의 평면이다. 직선 맞추기란 4차원 공간의 점 하나를 평면으로 수직으로 내리는 일이었다. 그림으로 볼 수는 없지만 계산은 앞의 예제들과 한 글자도 다르지 않다.
9장 정리
기호 또는 용어
뜻
내적 ⟨𝐮,𝐯⟩
대칭 · 가법 · 동차 · 양의 정부호를 만족하는 함수. 유클리드 내적은 그중 하나다
노름과 거리
‖𝐯‖=√⟨𝐯,𝐯⟩, 𝑑(𝐮,𝐯)=‖𝐮−𝐯‖
함수 공간의 내적
⟨𝑓,𝑔⟩=∫𝑏𝑎𝑓(𝑥)𝑔(𝑥)𝑑𝑥. 직교란 곱의 넓이가 지워진다는 뜻
직교집합
짝마다 내적이 0인 영벡터 아닌 벡터들. 언제나 일차독립이다
정규직교기저
직교이고 길이가 1. 좌표가 𝑐𝑖=⟨𝐮,𝐪𝑖⟩ 로 나오고 ‖𝐮‖2=∑𝑐2𝑖 (파세발)
직교여공간 𝑊⟂
𝑊 의 모든 벡터와 직교하는 것들. dim𝑊+dim𝑊⟂=𝑛
네 부분공간
Row(𝐴)⟂=𝑁(𝐴), Col(𝐴)⟂=𝑁(𝐴𝑇)
부분공간으로의 정사영
proj𝑊𝐮=∑⟨𝐮,𝐰𝑖⟩‖𝐰𝑖‖2𝐰𝑖. 기저가 직교해야 하고, 그 발이 𝑊 안에서 가장 가깝다
사영행렬
𝑃=𝐴(𝐴𝑇𝐴)−1𝐴𝑇, 정규직교 열이면 𝑃=𝑄𝑄𝑇. 𝑃2=𝑃=𝑃𝑇
그람-슈미트 과정
앞에서 만든 것들과 겹치는 성분을 빼며 직교기저를 만든다. span 이 보존된다
QR 분해
𝐴=𝑄𝑅. 𝑄 는 정규직교 열, 𝑅 은 상삼각이고 𝑅=𝑄𝑇𝐴
최소제곱해
‖𝐛−𝐴𝐱‖ 를 최소로 하는 ˆ𝐱. 𝐴ˆ𝐱 는 𝐛 의 열공간 사영이다
정규방정식
𝐴𝑇𝐴ˆ𝐱=𝐴𝑇𝐛. 잔차가 열공간과 직교한다는 조건 그 자체
최소제곱의 유일성
𝐴𝑇𝐴 가 가역 ⟺ 𝐴 의 열이 일차독립. 그때 ˆ𝐱=(𝐴𝑇𝐴)−1𝐴𝑇𝐛
QR 로 푸는 최소제곱
𝑅ˆ𝐱=𝑄𝑇𝐛. 수치적으로 더 안전하다
직선 맞추기
𝐴 의 열이 1 과 𝑥. 잔차의 합과 ∑𝑥𝑖𝑟𝑖 가 0인 것이 정규방정식이다
이 장에서 한 일을 한 문장으로 줄이면 '수직으로 내린다'이다. 좌표를 구하는 일도, 기저를 펴는 일도, 해가 없는 방정식에서 최선을 고르는 일도 전부 정사영이었다.
다음 장은 이 도구를 행렬 자체에 겨눈다. 지금까지는 '주어진 부분공간'으로 내렸는데, 10장에서는 행렬이 스스로 가장 좋은 직교기저를 두 벌 내놓게 한다. 정의역 쪽에 한 벌, 공역 쪽에 한 벌이다. 그것이 특이값 분해다.
특이값 분해와 응용
8장에서 대각화를 배웠다. 𝐴=𝑃𝐷𝑃−1 로 쪼개면 행렬의 정체가 드러났고, 거듭제곱도 점화식도 쉬워졌다. 그런데 그 도구에는 조건이 여럿 붙어 있었다. 정사각행렬이어야 하고, 고유벡터가 충분히 많아야 하고, 실수 범위에서 고유값이 없을 수도 있었다. 현실에서 만나는 행렬 대부분은 이 조건을 하나도 만족하지 않는다. 자료를 담은 행렬은 보통 세로로 길쭉하다.
이 장의 특이값 분해(singular value decomposition, SVD)는 그 조건을 전부 없앤다. 어떤 모양의 어떤 행렬이든 𝐴=𝑈Σ𝑉𝑇 로 쪼갤 수 있고, 세 조각이 각각 회전 · 늘이기 · 회전이다. 대각화가 '운이 좋으면 되는' 분해였다면 SVD 는 언제나 되는 분해다.
이 장에서 답할 질문은 셋이다. 행렬이 도형에 하는 일을 어떻게 한 장의 그림으로 보는가, 그 그림에 나오는 수들을 어떻게 계산하는가, 그리고 그것으로 무엇을 하는가.
앞에서 가져오는 것은 8장의 고유값·직교대각화·스펙트럼 정리, 9장의 정규직교기저·정사영·최소제곱, 그리고 4장의 행렬식과 6장의 계수·영공간이다.
단위원이 타원으로 간다
행렬 하나가 하는 일을 한눈에 보려면 단위원에 무슨 짓을 하는지 보면 된다. ℝ2 에서 길이가 1인 벡터를 전부 모으면 원이 되는데, 여기에 행렬을 곱하면 언제나 타원이 나온다.
𝐴=[3045] 로 확인해 보자. 이 행렬이 이 장의 예제 행렬이다.
<네 칸을 왼쪽에서 오른쪽으로 읽으면 A 가 세 걸음으로 갈린다. 첫 회전과 마지막 회전은 크기를 바꾸지 않고, 크기를 바꾸는 것은 가운데 늘이기 하나뿐이다. 앞의 두 칸과 뒤의 두 칸은 눈금이 다르니 주의해서 보라>[원본 보기]
그림이 말하는 것을 문장으로 옮기면 이렇다. 단위원 위에 서로 수직인 방향 두 개가 있어서, 그 둘이 상에서도 서로 수직으로 남고, 각각 정해진 배율만큼만 늘어난다. 그 방향이 𝐯1,𝐯2 이고 배율이 𝜎1,𝜎2 이며, 늘어난 뒤의 방향이 𝐮1,𝐮2 다. 기호로 적으면
𝐴𝐯1=𝜎1𝐮1,𝐴𝐯2=𝜎2𝐮2
이고, 이것을 한 줄로 묶으면 𝐴𝑉=𝑈Σ, 곧 𝐴=𝑈Σ𝑉𝑇 이다. 𝑉 가 직교행렬이라 𝑉−1=𝑉𝑇 이기 때문이다.
고유벡터와 견주어 보면 차이가 분명해진다. 고유벡터는 '들어간 방향과 나온 방향이 같은' 벡터였다. 특이벡터는 그것을 요구하지 않는다. 들어갈 때 직교하던 것이 나올 때도 직교하기만 하면 된다. 조건을 느슨하게 한 대가로, 이런 방향 쌍은 어떤 행렬에서도 반드시 존재한다.
𝜎𝑖 를 특이값(singular value), 𝐯𝑖 를 오른쪽 특이벡터, 𝐮𝑖 를 왼쪽 특이벡터라 한다. 관례로 𝜎1≥𝜎2≥⋯≥0 으로 큰 것부터 늘어놓는다.
예제 102
𝐴=[3045] 에 대해 단위벡터 (1,0), (0,1), 1√2(1,1), 1√2(−1,1) 을 보내 보고 늘어난 정도를 견주어라.
풀이 보기
하나씩 곱하고 길이를 잰다. 들어가는 것이 모두 길이 1이므로 나온 길이가 곧 배율이다.
𝐴(1,0)=(3,4),‖⋅‖=5𝐴(0,1)=(0,5),‖⋅‖=5
𝐴1√2(1,1)=1√2(3,9),‖⋅‖=√90√2=√45≈6.71
𝐴1√2(−1,1)=1√2(−3,1),‖⋅‖=√10√2=√5≈2.24
좌표축 방향이 특별하지 않다. 두 축은 모두 5배로 늘어나는데, 대각선 방향 (1,1)/√2 은 6.71배, 그와 수직인 방향은 2.24배다. 가장 크게 늘어나는 방향과 가장 적게 늘어나는 방향을 찾아보면 저 둘이고, 그 둘이 마침 서로 수직이다.
나온 결과가 서로 수직인지도 확인하자. (3,9)⋅(−3,1)=−9+9=0 ✓ 수직이다. 이 네 줄이 다음 절에서 계산으로 확인할 사실을 미리 보여 준다. 𝜎1=√45, 𝜎2=√5 이고 𝐯1=(1,1)/√2, 𝐯2=(−1,1)/√2 다.
예제 103
대각행렬 𝐷=diag(3,1) 과 회전행렬 𝑅=[cos𝜃−sin𝜃sin𝜃cos𝜃] 가 단위원을 각각 어떤 도형으로 보내는지 말하고, 특이값을 구하라.
풀이 보기
대각행렬.(𝑥,𝑦) 를 (3𝑥,𝑦) 로 보내므로 원 𝑥2+𝑦2=1 이 (𝑋3)2+𝑌2=1 로 간다. 가로 반지름 3, 세로 반지름 1인 타원이다. 늘이기만 있고 회전이 없으니 𝜎1=3, 𝜎2=1 이고 𝑈=𝑉=𝐼 로 두면 된다.
회전행렬. 회전은 길이를 바꾸지 않으므로 원이 그대로 원으로 간다. 모든 방향의 배율이 1이니 𝜎1=𝜎2=1 이다.
일반화하면 이렇다. 직교행렬의 특이값은 전부 1이다.𝑄𝑇𝑄=𝐼 이므로 ‖𝑄𝐱‖=‖𝐱‖ 이고, 늘어나는 방향이 하나도 없기 때문이다.
그래서 그림의 네 칸 가운데 가운데 칸만 크기를 바꾼다는 말이 정확하다. 𝑉𝑇 와 𝑈 는 특이값이 모두 1이라 도형의 크기와 모양을 건드리지 못하고 방향만 돌린다.
특이값은 𝐴𝑇𝐴 의 고유값의 제곱근이다
그림은 그럴듯한데, 𝐯𝑖 와 𝜎𝑖 를 어떻게 찾는가. 열쇠는 길이의 제곱을 재는 것이다. 𝐯 가 단위벡터일 때
‖𝐴𝐯‖2=(𝐴𝐯)⋅(𝐴𝐯)=𝐯𝑇𝐴𝑇𝐴𝐯
이다. 오른쪽에 𝐴𝑇𝐴 가 나타났다. 3장에서 보았듯 이 행렬은 언제나 대칭이고, 위 식이 언제나 0 이상이므로 고유값도 전부 0 이상이다. 그러면 8장의 스펙트럼 정리가 그대로 쓰인다. 𝐴𝑇𝐴 는 정규직교 고유벡터로 직교대각화된다.
그 고유벡터를 𝐯1,…,𝐯𝑛, 고유값을 𝜆1≥⋯≥𝜆𝑛≥0 이라 하면
‖𝐴𝐯𝑖‖2=𝐯𝑇𝑖(𝐴𝑇𝐴𝐯𝑖)=𝜆𝑖𝐯𝑇𝑖𝐯𝑖=𝜆𝑖
이므로 ‖𝐴𝐯𝑖‖=√𝜆𝑖 다. 이것이 특이값이다.
𝜎𝑖=√𝜆𝑖,𝜆𝑖=𝐴𝑇𝐴의고유값
서로 다른 고유값의 고유벡터는 직교하고(스펙트럼 정리), 그 상들도 직교한다. 𝑖≠𝑗 일 때
(𝐴𝐯𝑖)⋅(𝐴𝐯𝑗)=𝐯𝑇𝑖𝐴𝑇𝐴𝐯𝑗=𝜆𝑗𝐯𝑖⋅𝐯𝑗=0
이기 때문이다. 앞 그림의 '들어갈 때 직교하고 나올 때도 직교한다'가 여기서 증명된 셈이다.
<절차는 새로울 것이 없다. A 의 전치와 A 를 곱해 대칭행렬을 만들고 8장의 직교대각화를 한 번 하면 특이값과 V 가 동시에 나온다. U 는 A 를 통과시켜 만든다. 마지막 상자의 검산 세 가지를 늘 함께 하라>[원본 보기]
예제 104
𝐴=[3045] 의 특이값과 오른쪽 특이벡터를 구하라.
풀이 보기
절차대로 𝐴𝑇𝐴 부터 만든다.
𝐴𝑇𝐴=[3405][3045]=[9+16202025]=[25202025]
대칭행렬이 나왔다 ✓. 특성방정식을 푼다. [𝑎𝑏𝑏𝑎] 꼴은 고유값이 𝑎±𝑏 라는 것을 알아 두면 빠르다.
(25−𝜆)2−400=0⟹25−𝜆=±20⟹𝜆=45,5
따라서 𝜎1=√45=3√5≈6.71, 𝜎2=√5≈2.24 다. 앞 예제에서 손으로 재 본 값과 같다 ✓.
고유벡터를 구한다. 𝜆=45 이면 (25−45)𝑥+20𝑦=0 에서 𝑦=𝑥 이고, 𝜆=5 이면 20𝑥+20𝑦=0 에서 𝑦=−𝑥 이다. 길이를 1로 맞추면
𝐯1=1√2(1,1),𝐯2=1√2(−1,1)
부호는 자유롭다. 𝐯2 를 (1,−1)/√2 로 잡아도 되는데, 그러면 𝐮2 의 부호도 함께 뒤집힌다. 여기서는 𝑉 가 회전이 되도록(det𝑉=1) 위와 같이 골랐다.
검산 두 가지. 특이값의 곱이 행렬식의 절댓값이어야 한다. 3√5×√5=15 이고 det𝐴=15 ✓. 특이값의 제곱 합이 성분의 제곱 합이어야 한다. 45+5=50 이고 9+0+16+25=50 ✓.
𝐴=𝑈Σ𝑉𝑇 를 완성한다
𝑉 와 Σ 를 얻었으니 𝑈 만 남았다. 그런데 𝑈 는 따로 구할 필요가 없다. 𝐴𝐯𝑖=𝜎𝑖𝐮𝑖 여야 하므로 그냥 나누면 된다.
𝐮𝑖=1𝜎𝑖𝐴𝐯𝑖(𝜎𝑖≠0)
이렇게 만든 𝐮𝑖 는 길이가 1이고(‖𝐴𝐯𝑖‖=𝜎𝑖 이므로) 서로 직교한다(위에서 확인했다). 곧 공짜로 정규직교집합이 된다.
𝜎𝑖=0 인 자리는 𝐴𝐯𝑖=𝟎 이라 나눌 수 없다. 그 자리는 남겨 두고, 𝑈 를 정사각으로 채워야 한다면 𝑁(𝐴𝑇) 에서 정규직교기저를 골라 뒤에 붙인다.
<완전형에서는 U 와 V 가 정사각 직교행렬이고 시그마가 A 와 같은 모양이며 대각선 아래위가 0이다. 축소형은 그 0 부분을 잘라낸 것이고 곱하면 같은 A 가 나온다. 오른쪽 아래 문장이 SVD 를 대각화와 갈라놓는 지점이다>[원본 보기]
두 형태를 구분해 두면 헷갈리지 않는다.
형태
크기
쓰는 자리
완전형
𝑈 는 𝑚×𝑚, Σ 는 𝑚×𝑛, 𝑉 는 𝑛×𝑛
이론. 네 부분공간의 기저가 전부 나온다
축소형
𝑈𝑟 는 𝑚×𝑟, Σ𝑟 는 𝑟×𝑟, 𝑉𝑟 는 𝑛×𝑟
계산과 저장. 𝑟 은 계수
8장의 직교대각화 𝐴=𝑄𝐷𝑄𝑇 와 견주면 관계가 보인다. 𝐴 가 대칭이고 고유값이 모두 0 이상이면 두 분해가 같아진다. 고유값이 음수인 자리에서는 𝜎=|𝜆| 이고 그 방향의 𝐮 가 𝐯 와 반대가 된다. 특이값은 언제나 0 이상이고, 부호는 𝑈 가 떠맡는다.
예제 105
앞에서 구한 𝐴=[3045] 의 왼쪽 특이벡터를 구하고 𝐴=𝑈Σ𝑉𝑇 를 완성하라.
풀이 보기
공식대로 나눈다. 𝐯1=(1,1)/√2 이므로
𝐴𝐯1=1√2(3,9),𝐮1=13√5⋅1√2(3,9)=(1,3)√10
𝐴𝐯2=1√2(−3,1),𝐮2=1√5⋅1√2(−3,1)=(−3,1)√10
확인. 두 벡터 모두 길이가 1이고((1+9)/10=1 ✓) 서로 직교한다((−3+3)/10=0 ✓).
세 조각을 모으면
𝑈=1√10[1−331],Σ=[3√500√5],𝑉=1√2[1−111]
검산.𝐴=𝑈Σ𝑉𝑇 를 직접 곱해도 되지만, 𝐴𝑉=𝑈Σ 를 열마다 보는 편이 빠르다. 𝐴𝐯1=𝜎1𝐮1 인지 보면 3√5×(1,3)√10=3√5√10(1,3)=3√2(1,3)=1√2(3,9) ✓ 맞는다.
두 행렬 모두 행렬식이 1이라 회전이다. det𝑈=110(1+9)=1, det𝑉=12(1+1)=1. 그림의 두 번째와 네 번째 칸이 회전인 이유가 이것이다.
예제 106
9장의 최소제곱 예제에 나온 𝐴=⎡⎢
⎢⎣100111⎤⎥
⎥⎦ 의 완전형 특이값 분해를 구하라.
풀이 보기
세로로 긴 행렬이라 고유값 분해는 아예 말이 되지 않는다. 그래도 SVD 는 된다. 작은 쪽인 𝐴𝑇𝐴 부터 만든다.
이고 그 프로베니우스 노름의 제곱은 2.25+2.25+0.25+0.25=5 다. 공식이 예고한 값이 𝜎22=5 였으니 정확히 맞는다 ✓.
설명하는 몫은 45/50=0.9, 곧 90%다. 조각 하나로 행렬의 90%를 담은 셈이다.
𝐴1 의 두 행이 (1.5,1.5) 와 (4.5,4.5) 로 정확히 3배 관계라는 것도 확인해 두자. 계수 1이라는 말의 뜻이 그것이다. 그리고 det𝐴1=0 이므로 근사는 가역이 아니다. 계수를 낮춘다는 것은 가역성을 버린다는 뜻이기도 하다.
예제 110
512×512 짜리 흑백 그림을 계수 50 으로 근사해 저장하려 한다. 저장할 수의 개수를 견주고, 몇까지 남겨야 이득인지 구하라.
풀이 보기
원본은 화소마다 밝기 하나씩이므로
512×512=262144
개의 수가 필요하다. 계수 𝑘 근사는 𝑘(𝑚+𝑛+1)=𝑘(512+512+1)=1025𝑘 개다. 𝑘=50 이면
1025×50=51250
으로, 원본의 약 51250/262144≈0.196, 곧 20% 남짓이다. 다섯 배 넘게 줄었다.
이득의 경계는 1025𝑘<262144 에서
𝑘<2621441025≈255.7
이므로 𝑘≤255 까지가 이득이다. 원래 계수가 512까지 갈 수 있으니 절반 아래로만 줄이면 무조건 이득이라는 뜻이다.
다만 얼마나 줄여도 되는가는 저장량이 아니라 특이값이 정한다. 특이값이 천천히 작아지는 그림(잡음이 많거나 무늬가 불규칙한 그림)은 𝑘 를 크게 잡아야 하고, 그러면 압축률이 나빠진다. 앞 그림의 막대가 빠르게 낮아지는 모양이었던 이유를 여기서 다시 읽으면 된다.
의사역행렬과 조건수
역행렬은 정사각이고 가역인 행렬에만 있다. SVD 는 그 제약도 풀어 준다. 𝐴=𝑈Σ𝑉𝑇 일 때
𝐴+=𝑉Σ+𝑈𝑇
를 의사역행렬(pseudoinverse, 무어-펜로즈 역행렬)이라 한다. 여기서 Σ+ 는 Σ 를 전치하고 0이 아닌 대각성분만 역수로 바꾼 것이다. 0인 자리는 그대로 0으로 둔다.
이것이 왜 '역행렬 비슷한 것'인가. 𝐴 가 가역이면 Σ+=Σ−1 이라 𝐴+=𝐴−1 이다. 가역이 아니면 되돌릴 수 있는 만큼만 되돌린다. 늘인 것은 그만큼 줄여 놓고, 0으로 눌러 버린 방향은 손대지 않는다.
그리고 여기서 9장의 최소제곱이 다시 나타난다. 𝐴 의 열이 일차독립이면
𝐴+=(𝐴𝑇𝐴)−1𝐴𝑇⟹ˆ𝐱=𝐴+𝐛
이다. 열이 일차독립이 아니어서 최소제곱해가 무수히 많을 때에도 𝐴+𝐛 는 의미가 있다. 그 가운데 길이가 가장 짧은 해를 준다. 영공간 방향 성분을 아예 0으로 두기 때문이다.
조건수 — 답이 얼마나 흔들리는가
특이값의 비도 중요하다. 가장 큰 것과 가장 작은 것의 비를 조건수(condition number)라 한다.
𝜅(𝐴)=𝜎1𝜎𝑛
뜻은 그림으로 읽는 편이 빠르다. 𝜅 가 1에 가까우면 타원이 원에 가깝고, 크면 납작하다.
<왼쪽처럼 타원이 둥글면 어느 방향으로 밀어도 상이 비슷하게 움직인다. 오른쪽처럼 납작하면 얇은 방향으로는 x 를 크게 움직여도 Ax 가 거의 안 움직이고, 거꾸로 b 의 작은 오차가 x 의 큰 오차로 되돌아온다>[원본 보기]
왜 그런지는 𝐴−1 을 보면 된다. 𝐴−1=𝑉Σ−1𝑈𝑇 이므로 𝐴−1 의 가장 큰 특이값은 1/𝜎𝑛 이다. 𝐛 에 오차 𝛿𝐛 가 있으면 해의 오차는 𝛿𝐱=𝐴−1𝛿𝐛 이고, 최악의 경우 1/𝜎𝑛 배로 늘어난다. 상대오차로 정리하면
‖𝛿𝐱‖‖𝐱‖≤𝜅(𝐴)‖𝛿𝐛‖‖𝐛‖
가 된다. 조건수는 입력 오차가 답으로 넘어올 때의 최악의 증폭률이다. 𝜎𝑛=0 이면 무한대이고, 그것이 특이행렬이다.
9장에서 '정규방정식을 직접 만들지 말라'고 한 이유도 여기 있다. 𝐴𝑇𝐴 의 특이값은 𝜎2𝑖 이므로 𝜅(𝐴𝑇𝐴)=𝜅(𝐴)2 이다. 조건수가 제곱된다.𝜅(𝐴)=104 짜리 문제가 108 이 되면 배정밀도 계산에서도 자릿수가 위태로워진다. QR 분해를 쓰면 𝑅ˆ𝐱=𝑄𝑇𝐛 라 조건수가 𝜅(𝐴) 그대로 남는다.
예제 111
9장에서 정규방정식으로 풀었던 𝐴=⎡⎢
⎢⎣100111⎤⎥
⎥⎦, 𝐛=(1,1,0) 을 의사역행렬로 다시 풀고, 잔차가 𝐮3 방향임을 확인하라.
풀이 보기
앞에서 구한 SVD 를 그대로 쓴다. 𝜎1=√3, 𝜎2=1 이고 Σ+=[1/√300010] 다.
먼저 𝑈𝑇𝐛 를 구한다. 세 왼쪽 특이벡터와 𝐛 의 내적이다.
𝑈𝑇𝐛=(1+1+0√6,−1+1+0√2,1+1−0√3)=(2√6,0,2√3)
Σ+ 를 곱하면 셋째 성분이 버려진다. 셋째 열이 통째로 0이기 때문이다.
Σ+𝑈𝑇𝐛=(1√3⋅2√6,1⋅0)=(2√18,0)=(√23,0)
마지막으로 𝑉 를 곱한다.
ˆ𝐱=𝑉(√23,0)𝑇=√23⋅(1,1)√2=(13,13)
9장에서 정규방정식으로 얻은 답과 같다 ✓.
잔차의 정체. 버려진 성분이 곧 잔차다. 실제로
(𝐮3⋅𝐛)𝐮3=2√3⋅(1,1,−1)√3=(23,23,−23)
인데 9장에서 구한 잔차가 정확히 이 벡터였다 ✓. 왼쪽 영공간 방향 성분은 𝐴𝐱 로 절대 만들 수 없으므로 잔차로 남는다. 9장에서 그림으로 본 사실이 SVD 에서는 계산의 한 단계로 보인다.
예제 112
𝐴=[2112] 의 조건수를 구하라. 또 𝐵=diag(1,0.01) 에 대해 𝐵𝐱=𝐛 를 풀 때 𝐛 의 작은 변화가 답을 얼마나 흔드는지 확인하라.
풀이 보기
𝐴 는 대칭이고 고유값이 2±1, 곧 3과 1이다. 둘 다 양수이므로 특이값이 그대로 3과 1이고
𝜅(𝐴)=3/1=3
이다. 건강한 축에 든다.
𝐵 는 대각행렬이라 특이값이 대각성분의 절댓값 그대로다. 𝜅(𝐵)=1/0.01=100 이다.
흔들림을 직접 재 보자. 𝐛=(1,0.01) 이면 𝐱=(1,1) 이다. 여기서 둘째 성분만 0.01 만큼 키워 𝐛′=(1,0.02) 로 두면 𝐱′=(1,2) 다.
‖𝛿𝐛‖‖𝐛‖=0.01√1+0.0001≈0.01,‖𝛿𝐱‖‖𝐱‖=1√2≈0.71
입력이 1% 변했는데 답은 71% 변했다. 증폭률이 약 71배이고, 조건수 100 이 예고한 상한 안에 있다 ✓.
여기서 조심할 것이 있다. det𝐵=0.01 이라 '행렬식이 작으니 위험하다'고 말하고 싶어지는데, 행렬식은 조건수를 재지 못한다.0.01𝐵 를 생각해 보면 행렬식은 10−6 으로 더 작아지지만 조건수는 여전히 100이다. 위험을 재는 것은 크기가 아니라 비다.
응용 — 주성분분석과 이미지 압축
마지막으로 SVD 가 실제로 쓰이는 자리를 둘 본다. 여기서는 무엇을 계산하는가와 어떤 순서로 하는가까지만 다룬다. 그 결과를 어떻게 해석할 것인가, 표본이 몇이면 믿을 만한가 같은 물음은 통계학 문서의 몫이다.
주성분분석의 뼈대
자료가 표로 주어졌다고 하자. 행이 표본 𝑛 개, 열이 변수 𝑝 개인 행렬 𝑋 다. 주성분분석(principal component analysis, PCA)은 이 자료가 가장 많이 퍼져 있는 방향을 찾아 그것을 새 축으로 삼는 일이다. 절차는 넷이다.
중심화. 각 열에서 그 열의 평균을 뺀다. 이 단계를 빠뜨리면 답이 엉뚱해진다
중심화한 행렬 𝑋𝑐 의 특이값 분해 𝑋𝑐=𝑈Σ𝑉𝑇 를 구한다
𝑉 의 열 𝐯1,𝐯2,… 가 차례로 제1주성분, 제2주성분 방향이다
𝐯𝑖 방향의 퍼짐은 𝜎2𝑖𝑛−1 이고, 𝜎2𝑖∑𝜎2𝑗 가 그 축이 설명하는 몫이다
왜 이것이 '가장 많이 퍼진 방향'인가. 단위벡터 𝐰 방향으로 자료를 사영한 값들의 제곱 합이 ‖𝑋𝑐𝐰‖2 인데, 앞에서 보았듯 이 값을 최대로 하는 단위벡터가 바로 𝐯1 이고 그 값이 𝜎21 이다. 첫 절에서 '가장 크게 늘어나는 방향'을 찾던 일이 여기서는 '가장 많이 퍼진 방향'을 찾는 일이 된다.
<왼쪽은 손으로 따라갈 수 있는 네 점이고 오른쪽은 점이 많아진 경우다. 첫 주성분 축으로 수직으로 내리면 잃어버리는 정보(점선의 길이)가 가장 작다. 9장의 회귀가 세로 거리를 줄인 것과 달리 여기서는 수직 거리를 줄인다>[원본 보기]
앞 절의 낮은 계수 근사와 이어 읽으면 이렇게 된다. 자료를 𝑘 차원으로 줄인다는 것은 𝑋𝑐 를 계수 𝑘 로 근사하는 일이고, 에카르트-영 정리가 그 근사가 최선임을 보증한다. 차원 축소가 SVD 인 이유가 그것이다.
이미지 압축의 원리
흑백 이미지는 화소마다 밝기를 하나씩 담은 수의 표, 곧 행렬이다. 그러니 앞 절의 낮은 계수 근사를 그대로 쓸 수 있다.
이미지를 𝑚×𝑛 행렬 𝐴 로 본다(색이 있으면 채널마다 따로 한다)
𝐴=𝑈Σ𝑉𝑇 를 구하고 특이값을 큰 것부터 본다
원하는 화질에 맞춰 𝑘 를 정한다. 보통 에너지 비율 99% 같은 기준을 쓴다
𝐮1..𝑘, 𝜎1..𝑘, 𝐯1..𝑘 만 저장한다. 필요할 때 곱해서 되살린다
실제 사진 파일 형식이 이 방법을 쓰지는 않는다. 사진에서는 이산 코사인 변환 계열이 더 효율적이다. 그러나 '중요한 성분만 남기고 나머지를 버린다'는 손실 압축의 발상 자체는 같고, SVD 는 그 발상을 가장 깨끗하게 보여 주는 예다.
예제 113
네 점 (1,2),(2,1),(−1,−2),(−2,−1) 에 주성분분석을 적용하라. 두 주성분 방향과 각 방향의 분산, 그리고 제1주성분이 설명하는 몫을 구하라.
풀이 보기
1단계 중심화. 두 열의 평균이 모두 0이므로 뺄 것이 없다. 𝑋𝑐=𝑋 다.
2단계.𝑋𝑇𝑋 를 만든다. 성분은 각각 ∑𝑥2, ∑𝑥𝑦, ∑𝑦2 다.
∑𝑥2𝑖=1+4+1+4=10,∑𝑥𝑖𝑦𝑖=2+2+2+2=8,∑𝑦2𝑖=4+1+4+1=10
𝑋𝑇𝑋=[108810]⟹𝜆=10±8=18,2
3단계. 고유벡터는 [𝑎𝑏𝑏𝑎] 꼴이라 언제나 (1,1) 과 (−1,1) 방향이다.
𝐯1=(1,1)√2(PC1),𝐯2=(−1,1)√2(PC2)
4단계.𝑛=4 이므로 분산은 𝜆𝑖/(𝑛−1)=𝜆𝑖/3 이다.
PC1방향분산=183=6,PC2방향분산=23≈0.67
제1주성분이 설명하는 몫은 18/(18+2)=0.9, 곧 90%다.
검산해 보자. 각 점을 𝐯1 에 사영한 값(점수)은 (1,2)⋅𝐯1=3/√2 를 비롯해 차례로 3/√2,3/√2,−3/√2,−3/√2 다. 제곱 합이 4×4.5=18=𝜆1 ✓. 이 점들을 한 축에 담으면 두 점씩 겹치지만, 원래 자료에서도 그 두 점은 PC1 방향으로 같은 자리에 있었으니 잃은 것은 PC2 방향의 ±1/√2 뿐이다.
예제 114
앞 예제의 네 점을 모두 오른쪽으로 10만큼 옮겨 (11,2),(12,1),(9,−2),(8,−1) 로 만들었다. 중심화를 빼먹고 그대로 𝑋𝑇𝑋 를 만들면 제1주성분이 어떻게 되는지 보아라.
풀이 보기
자료의 모양은 하나도 바뀌지 않았다. 통째로 옮겼을 뿐이니 퍼진 방향은 여전히 (1,1) 이어야 한다.
이 된다. 대각선의 410 이 나머지를 압도하므로 첫 고유벡터는 (1,0) 에 거의 붙는다. 실제로 𝜆1≈410.2 이고 고유벡터는 대략 (1,0.02) 다.
곧 제1주성분이 '퍼진 방향'이 아니라 '원점에서 자료 뭉치까지의 방향'을 가리키게 된다. 자료가 원점에서 멀수록 이 오류가 커진다.
중심화를 하면 (1,2),(2,1),(−1,−2),(−2,−1) 로 돌아가 앞 예제와 같은 답이 나온다 ✓.
이것이 절차 1단계를 강조한 이유다. PCA 는 '평균에서 얼마나 벗어나 있는가'를 보는 방법이므로 평균을 먼저 원점으로 옮겨야 한다. 9장에서 상수함수 1 과 직교한다는 것이 '평균이 0'이라는 뜻이었던 대목과 같은 이야기다.
10장 정리
기호 또는 용어
뜻
특이값 𝜎𝑖
𝐴𝑇𝐴 의 고유값의 제곱근. 언제나 실수이고 0 이상이며 큰 것부터 적는다
오른쪽 특이벡터 𝐯𝑖
𝐴𝑇𝐴 의 정규직교 고유벡터. 𝑉 의 열
왼쪽 특이벡터 𝐮𝑖
𝐮𝑖=𝐴𝐯𝑖/𝜎𝑖. 저절로 정규직교가 된다
특이값 분해
𝐴=𝑈Σ𝑉𝑇. 회전 · 늘이기 · 회전. 어떤 행렬에도 존재한다
기하적 뜻
단위원(구)이 타원으로 간다. 반축의 길이가 𝜎𝑖, 방향이 𝐮𝑖
계수
0이 아닌 특이값의 개수. 소거보다 안정적으로 판정한다
네 부분공간
𝐮1..𝑟 이 열공간, 𝐮𝑟+1..𝑚 이 왼쪽 영공간, 𝐯1..𝑟 이 행공간, 𝐯𝑟+1..𝑛 이 영공간
행렬식과 노름
|det𝐴|=∏𝜎𝑖, ‖𝐴‖2𝐹=∑𝜎2𝑖
계수 1 조각 전개
𝐴=∑𝑖𝜎𝑖𝐮𝑖𝐯𝑇𝑖
낮은 계수 근사 𝐴𝑘
앞에서부터 𝑘 개만 남긴 것. 오차는 ∑𝑖>𝑘𝜎2𝑖 의 제곱근
에카르트-영 정리
계수 𝑘 이하인 행렬 가운데 𝐴𝑘 가 𝐴 에 가장 가깝다
의사역행렬 𝐴+
𝑉Σ+𝑈𝑇. 0 아닌 특이값만 역수로 바꾼다. ˆ𝐱=𝐴+𝐛 가 최소제곱해
조건수 𝜅(𝐴)
𝜎1/𝜎𝑛. 입력 오차의 최악의 증폭률. 𝜅(𝐴𝑇𝐴)=𝜅(𝐴)2
주성분분석
중심화 → SVD → 𝑉 의 열이 주성분, 𝜎2𝑖/(𝑛−1) 이 그 방향의 분산
이미지 압축
𝑘 개 조각만 저장. 수 𝑚𝑛 개가 𝑘(𝑚+𝑛+1) 개로 줄어든다
두 장을 하나로 묶으면 이렇게 된다. 9장은 주어진 부분공간으로 수직으로 내리는 법을 배웠고, 10장은 행렬이 스스로 가장 좋은 방향들을 내놓게 하는 법을 배웠다. 최소제곱도 차원 축소도 압축도, 결국은 '덜 중요한 방향을 버리고 수직으로 내린다'는 한 가지 동작이다.
여기까지가 이 문서의 본문이다. 다음 장에서는 더 공부할 거리를 정리한다.
더 공부할 것
이 문서는 학사 과정 선형대수의 골격까지다. 여기서 갈라지는 길을 정리해 둔다. 각 분야가 이 문서의 어느 부분을 확장한 것인지 함께 적었다.
이 사이트 안에서 이어지는 문서
통계학 — 9장의 최소제곱이 회귀분석이라는 이름으로 다시 나온다. 10장에서 절차만 보인 주성분분석의 통계적 해석도 그쪽에 있다.
기초 수학 — 이 문서가 기대고 있는 문서다. 함수의 정의, 복소수, 적분에서 막히면 돌아가면 된다.
일반물리학 — 7장의 회전과 8장의 고유벡터가 실제로 무엇에 쓰이는지 보는 가장 빠른 길이다. 관성 텐서의 주축이 고유벡터이고, 진동의 정규모드가 고유값 문제다.
알고리즘 — 3장의 소거법과 10장의 조건수는 ‘유한한 자리수로 계산하면 무엇이 어긋나는가’라는 문제로 이어진다.
학부 전공 과정
수치선형대수(numerical linear algebra) — 10장의 조건수에서 이어진다. 컴퓨터는 실수를 유한한 자리로만 다루므로, 손으로 옳은 알고리즘이 기계에서 무너질 수 있다. 부분 피벗팅, 하우스홀더 반사와 기븐스 회전으로 QR 을 안정하게 구하는 법, 반복법(야코비·가우스-자이델·공액기울기), 고유값을 실제로 구하는 QR 알고리즘을 다룬다. 이 문서가 "특성방정식을 풀어라"고 한 것은 손 계산용이고, 실무에서는 그렇게 하지 않는다.
추상대수학(abstract algebra) — 6장의 공리에서 이어진다. 벡터공간은 "체 위의 모듈"이라는 더 넓은 구조의 특수한 경우다. 군·환·체를 다루고, 표준형(조르당 표준형)으로 대각화되지 않는 행렬까지 분류한다.
다변수 미적분과 미분기하 — 7장의 선형변환이 "곡면을 한 점에서 일차로 근사한 것"이라는 관점을 준다. 야코비 행렬이 그 근사이고, 그 행렬식이 4장의 부피 해석 그대로 좌표변환의 부피 배율이다.
함수해석학(functional analysis) — 9장의 내적공간을 무한차원으로 넓힌다. 힐베르트 공간, 완비성, 푸리에 급수가 정규직교기저의 무한차원 판이라는 것. 9장에서 함수의 내적을 정의한 것이 이 길의 첫걸음이다.
이차형식과 양정치행렬 — 8장의 스펙트럼 정리를 바로 잇는 주제인데 이 문서에서는 다루지 않았다. 𝐱𝑇𝐴𝐱 의 부호가 고유값의 부호로 정해지고, 그것이 최적화의 이계조건과 통계의 공분산행렬로 연결된다. 다음에 볼 것 하나만 고르라면 이것을 권한다.
텐서와 다중선형대수 — 벡터와 행렬을 첨자 개수로 일반화한다. 물리의 응력·관성 텐서, 기계학습의 다차원 배열이 이 언어를 쓴다.
그래프와 행렬 — 그래프를 인접행렬로 적으면 𝐴𝑘 의 성분이 길이 𝑘 인 보행의 개수가 되고, 고유값이 그래프의 구조를 말해 준다. 이 문서는 인접행렬을 다루지 않는다. 그래프 쪽 이야기는 Mathematics for Computer Science 와 알고리즘 에 있다. 더 가면 스펙트럼 그래프 이론, 라플라시안, 스펙트럼 군집화다.
마르코프 연쇄 — 8장의 우세 고유값과 대각화가 "오래 지나면 어떤 상태에 있는가"를 답한다. 정상분포가 고유값 1 의 고유벡터다. 이 문서는 확률행렬과 정상분포를 다루지 않는다 — 8장이 실제로 푼 것은 거듭제곱과 점화식까지다.
행렬 분해의 응용 — 10장의 확장. 비음수 행렬 분해, 저랭크 근사를 이용한 추천 시스템, 랜덤 투영.
유한체 위의 선형대수 — 스칼라를 실수나 복소수가 아닌 유한체로 바꾸면 부호화 이론과 암호가 나온다. 해밍 부호가 영공간으로 정의된다.
공부 방식에 대한 조언
손으로 2×2 와 3×3 을 계산해 보는 것을 계속하라. 컴퓨터로 넘기는 것은 계산 방법을 알고 난 뒤여야 한다. 소거법을 손으로 해 본 사람만 왜 피벗팅이 필요한지 이해한다.
매번 그림을 그려 보라. 이 문서가 그림을 아끼지 않은 이유다. 식이 무엇을 하는지 모르겠으면 ℝ2 로 내려와 격자에 무슨 일이 일어나는지 그려 보면 대개 풀린다.
"이 명제와 같은 말이 몇 개나 되는가"를 세는 습관을 들여라. 6장의 동치 명제 표가 그런 연습이다. 가역이라는 한 성질이 행렬식·랭크·일차독립·해의 유일성으로 각각 번역된다는 것을 알면, 문제를 가장 다루기 쉬운 형태로 옮길 수 있다.
코드로 검산하라. NumPy 로 같은 계산을 해 보면 손 계산의 실수를 바로 잡는다. 다만 답이 다를 때 코드를 믿기 전에 두 결과가 "다른 답"인지 "같은 답의 다른 표기"인지 확인해야 한다. 고유벡터는 상수배가 자유롭고, QR 과 SVD 는 부호 규약이 구현마다 다르다.