에세이 · 선형대수
좌표는 블록을 세어 본 개수다
기저벡터란 무엇이고, 행렬은 왜 도착지 목록인가
벡터는 움직임이고, 기저는 그 움직임을 적을 때 쓰도록
허락된 블록들이다. 벡터의 좌표는 개수다 — (3, 2) 는 첫
번째 블록 세 개에 두 번째 블록 두 개라는 뜻. 모든 점이 이렇게 지어지므로, 기저벡터가 어디로
가는지만 알면 나머지 전부가 어디로 가는지 알게 된다. 행렬이 적어 두는 것이 바로 그것이다.
우리는 대개 좌표를 먼저, 벡터를 나중에 배운다. 점은 숫자 두 개고 벡터는 두 점 사이에 긋는 화살표라고. 시험을 통과할 만큼은 작동하고, 행렬이 끝까지 낯설 만큼은 어긋난다. 순서를 뒤집으면 풀린다.
벡터는 화살표가 아니라 움직임이다
기술되는 대상부터 보자. "동쪽으로 세 걸음, 북쪽으로 두 걸음"은 움직임이다. 어디서 출발했는지 상관하지 않고, 위치도 아니다 — 지시문이다. 그려지는 화살표는 그 지시문의 그림이고, 숫자 쌍은 그것을 받아 적은 기록이다. 둘 다 기술일 뿐, 물건은 움직임이다.
벡터가 움직임이 되는 순간 기본 연산 두 개가 외울 것이 아니게 된다. 두 벡터를 더하는 것은 한 움직임을 하고 이어서 다른 움직임을 하는 것이다. 3을 곱하는 것은 같은 움직임을 세 번 하는 것이다. 화살표에 관해 기억해야 할 규칙이 사라진다.
그래서 기저벡터란 무엇인가
어떤 움직임이든 숫자로 적으려면, 먼저 무엇으로 지을지 합의해야 한다. 평면에서 흔한 합의는
두 개다 — 동쪽으로 한 걸음, 북쪽으로 한 걸음. (1, 0) 과
(0, 1) 로 적고 보통 i, j 라 부른다. 그게 기저벡터다.
어떤 블록 모임이 기저라는 이름을 얻으려면 시험 두 개를 통과해야 한다.
- 공간을 생성한다 — 블록들을 적당히 조합하면 존재하는 모든 점에 닿을 수 있다.
- 일차독립이다 — 군더더기가 없다. 어느 하나도 나머지로 지어 낼 수 없다.
평면에서 평행하지 않은 화살표 두 개는 둘 다 통과한다. 평행한 두 개는 첫 번째에서 떨어진다. 그것들로 지을 수 있는 것은 전부 한 직선 위에 놓이므로 평면 대부분에 닿지 못한다. 평면에 화살표 세 개는 두 번째에서 떨어진다. 그중 하나는 애초에 나머지 둘로 표현할 수 있었다.
그러면 좌표는 민망할 만큼 단순해진다
일차결합은 "이 블록 몇 개에 저 블록 몇 개"라는 말이다: 3i + 2j.
그리고 좌표 (3, 2) 는 영수증이다 — 각 블록이 몇 개 들어갔는지. 좌표는
처음부터 그것 말고 다른 무엇이었던 적이 없다.
여기서 나중에 사람을 헷갈리게 하는 것도 같이 풀린다. 좌표는 벡터가 아니라 기저에 관한 진술이다. 블록을 다르게 고르면 물리적으로 똑같은 움직임이 다른 숫자 쌍을 갖는다. 움직인 것은 없다. 기술하는 단위가 바뀐 것이다. 한쪽을 1이라 부르고 다른 쪽을 그에 견주어 재는 것과 같은 수법이다.
"선형"이란 무슨 뜻인가
변환은 공간의 모든 점을 한꺼번에 옮긴다. 그 변환이 선형이라는 것은 격자가 그 이동을 견뎌 냈다는 뜻이다 — 격자선이 곧게, 평행하게, 같은 간격으로 남고, 원점은 제자리에 있다.
이 제약이 나머지 전부를 사 준다. 옮기기 전에 어떤 점이 3i + 2j 로 지어졌다면,
옮긴 뒤에도 새로운 i 와 j 로 똑같이 지어진다. 짓는 방식이
보존된다. 그러니 모든 점을 따라다닐 필요가 없다. 블록만 따라가면 나머지는 딸려 온다.
행렬의 열이 도착지인 이유
이제 표기가 임의적이지 않게 된다. 행렬은 기저벡터가 도착한 자리를 나란히 열로 적어 둔
목록이다. 2×2 행렬에 (1, 0) 을 곱하면 계산 결과로 첫 번째 열이 그대로
나오고, (0, 1) 을 곱하면 두 번째 열이 나온다. 행렬은 그 목록 말고 다른 무엇이
아니었다.
| 변환 | i 의 도착지 | j 의 도착지 | 행으로 적은 행렬 |
|---|---|---|---|
| 아무것도 안 함 (항등) | (1, 0) | (0, 1) | [[1, 0], [0, 1]] |
| 전체를 2배로 늘림 | (2, 0) | (0, 2) | [[2, 0], [0, 2]] |
| 반시계 90° 회전 | (0, 1) | (−1, 0) | [[0, −1], [1, 0]] |
| 오른쪽으로 밀기 (전단) | (1, 0) | (1, 1) | [[1, 1], [0, 1]] |
| x축 대칭 | (1, 0) | (0, −1) | [[1, 0], [0, −1]] |
| x축 위로 납작하게 | (1, 0) | (0, 0) | [[1, 0], [0, 0]] |
마지막 줄은 한 번 더 볼 가치가 있다. j 가 원점에 내려앉는 순간 블록 하나가
파괴되고, 평면 전체가 한 직선으로 무너진다. 되돌릴 방법은 없다. 서로 다른 무수한 점이 이제
같은 자리를 공유하기 때문이다. 행렬식이 0이라는 말, 역행렬이 없다는 말, 차원이 하나 줄었다는
말은 전부 이 한 문장을 각자의 용어로 부른 것이다.
미적분 시리즈가 여기서 한 번 멈추는 이유
다음 걸음이 이걸 필요로 하기 때문이다. 입력이 하나일 때는 그것을 미세하게 미는 일에 모호함이 없다. 앞으로밖에 없으니까. 입력이 둘인 곡면 위에서는 점을 미는 순간 어느 방향으로 밀었는지 말해야 하고, 크기를 가진 방향이 곧 벡터다. 방향도함수는 그 어휘를 갖춘 뒤의 같은 비교다.
직접 서 보기
좌표는 발밑에서 움직일 때 더 잘 믿긴다.
Open World Discover 는
함수의 그래프 위를 걷는 동안 화면에 (x, y, z) 를 실시간으로 띄우고, 원점 축을
켜면 동쪽 빨강·북쪽 초록·위쪽 파랑으로 블록 자체를 볼 수 있다.