6강 / 20강

일차변환 — 행렬은 공간을 옮기는 손

격자가 휘어도 평행선은 평행

일차변환 — 행렬은 공간을 옮기는 손
행렬을 곱한다는 것은 공간 전체를 한 번에 옮기는 일입니다.

지금까지 Ax 를 "A 와 x 를 곱한 결과"로 봤습니다. 이제 눈을 하나 바꿔 봅시다. A 는 x 를 받아 다른 벡터를 내놓는 기계입니다. 입력이 있고 출력이 있으니, 이것은 함수예요.

x  →  Ax

그런데 아무 함수나 되는 게 아닙니다. 행렬로 표현되는 함수는 두 가지 규칙을 반드시 지킵니다.

① A(u + v) = Au + Av — 더한 뒤 옮기나, 옮긴 뒤 더하나 같다

② A(kv) = k(Av) — 늘인 뒤 옮기나, 옮긴 뒤 늘이나 같다

이 둘을 지키는 변환을 일차변환(linear transformation)이라고 합니다. 그리고 놀랍게도 그 역도 성립해요 — 이 둘을 지키는 변환은 반드시 행렬로 적힙니다.

이 두 규칙이 '선형'이라는 말의 정확한 뜻입니다.
Python 브라우저에서 실행

🎮 공간이 어떻게 휘는지 보세요

격자 전체가 어떻게 일그러지는지, 그리고 집 모양이 어떻게 변하는지 봅니다. 회전·확대·반사·밀기를 눌러 보고, A 의 숫자도 직접 고쳐 보세요. 격자가 아무리 휘어도 평행선은 여전히 평행하고, 원점은 늘 제자리라는 것을 확인해 보세요.

행렬 하나가 평면 전체에 하는 일
불러오는 중…

직접 만들어 보는 변환 행렬

"90도 회전"의 행렬을 외울 필요가 없습니다. 그림을 그려 보면 나와요.

i = (1, 0) 을 90도 돌리면 위로 서서 (0, 1) 이 됩니다. j = (0, 1) 을 90도 돌리면 왼쪽으로 누워 (−1, 0) 이 되고요. 이 둘을 열로 세우면 그게 회전행렬입니다.

R = [ [0, −1], [1, 0] ]

x축 반사는? i 는 그대로 (1, 0), j 는 뒤집혀 (0, −1). 그러니 [[1, 0], [0, −1]] 입니다. 외울 게 없어요.

회전행렬을 외우지 말고 i 와 j 의 행선지로 만들어 보세요.
Python 브라우저에서 실행

왜 이 눈이 중요한가

"행렬은 표"라고만 생각하면 Ax 는 그냥 계산 절차입니다. "행렬은 변환"이라고 보면 갑자기 여러 질문이 그림으로 바뀝니다.

계산으로 보면변환으로 보면
det A = 0공간이 납작하게 눌렸다 (8강)
A⁻¹ 가 없다눌린 것을 되돌릴 수 없다 (9강)
Ax = 0 의 해원점으로 뭉개진 방향들 (15강)
Av = λv이 방향은 돌지 않고 늘어나기만 (18강)

앞으로 나올 개념은 거의 다 이 표의 오른쪽 칸에서 태어났습니다. 왼쪽만 외우면 시험은 볼 수 있지만, 오른쪽을 보면 왜 그런지가 보여요.

숫자로 보면 밋밋하지만, 위 실험실에서 같은 변환을 그림으로 보세요.
Python 브라우저에서 실행
🤔 확인 문제
일차변환이 반드시 지켜야 하는 것은?
🤔 확인 문제
어떤 일차변환이 i=(1,0) 을 (3,1) 로, j=(0,1) 을 (0,2) 로 보냅니다. 이 변환의 행렬은?
🤔 확인 문제
일차변환에서 격자가 휘어도 항상 유지되는 것은?