seegongsik
공업수학

행렬은 변환이다

행렬은 표가 아니라 공간을 통째로 움직이는 동작

행렬을 처음 보면 숫자를 네모나게 늘어놓은 표처럼 보인다. 그래서 다들 외우려고만 드는데, 그게 오래도록 헷갈리는 이유예요. 행렬은 표가 아니라 동작이다. 정확히 말하면 평면 위의 모든 점을 한꺼번에 옮기는 함수이고, 공간을 늘리고 돌리고 비스듬히 미는 일이다. 이 그림이 머릿속에 자리 잡으면 행렬곱이 왜 그렇게 정의됐는지, 뒤에 나올 고유값이 무엇을 보는지가 한결 쉬워져요.

먼저 감부터 잡는다. 화면에 격자가 깔려 있고, 아래의 네 슬라이더로 행렬의 네 숫자를 바꾸면 격자 전체가 함께 휘고 늘어난다. 점 하나가 아니라 평면 전체가 통째로 움직이는 것이에요. 이것이 변환의 정체이고, 행렬 하나는 공간을 이렇게 바꾸라는 명령이다. 초록 화살표 î와 주황 화살표 ĵ도 격자를 따라 함께 움직인다. 중요한 점은 격자가 제멋대로 구겨지지 않는다는 것이다. 직선은 변환 뒤에도 직선이고, 평행한 선은 평행한 채로 남으며, 간격도 고르게 유지된다. 반듯함을 지키면서 공간을 바꾸는 것, 그게 행렬 변환이에요. 슬라이더를 이리저리 움직인 뒤에는 「처음으로」 버튼으로 아무것도 바꾸지 않는 상태로 돌아갈 수 있다.

그렇다면 이렇게 복잡해 보이는 변환을 숫자 몇 개로 어떻게 다 적을까. 비밀은 의외로 단순해서, 두 화살표만 따라가면 된다. 오른쪽으로 한 칸 가는 î와 위로 한 칸 가는 ĵ가 변환 뒤에 어디로 가는지만 알면 끝이에요. 게다가 그 도착 자리가 곧 행렬의 두 열이어서, 첫째 열은 î가 간 곳이고 둘째 열은 ĵ가 간 곳이다. 「도착 보기」를 누르면 두 화살표가 점선으로 남은 원래 자리를 떠나 새 자리로 옮겨 가고, 끝마다 도착 좌표가 적힌다. 그 좌표를 아래 행렬과 견주면 초록 좌표는 첫째 열과, 주황 좌표는 둘째 열과 똑같다. 아무 뜻 없어 보이던 네 숫자가 사실은 î와 ĵ를 여기로 보내라는 좌표였던 셈이에요. î, ĵ 버튼으로는 한쪽 화살표만 밝게 볼 수 있다.

î와 ĵ만 알아서 무엇을 하나 싶겠지만 여기가 핵심이다. 다른 점은 따로 알 필요가 없어요. 평면 위의 어떤 벡터든 결국 î 몇 개와 ĵ 몇 개를 합친 것이기 때문이다. 예를 들어 (3, 2)라는 점은 î를 3개, ĵ를 2개 더한 것이다. 변환은 이 섞는 비율을 그대로 지키므로, 변환 뒤의 (3, 2)는 î가 간 자리를 3개, ĵ가 간 자리를 2개 더한 곳이 된다. 그림의 파란 점을 끌면 바뀐 격자 위에서 초록 점선이 새 î를 늘어놓고 주황 점선이 새 ĵ를 이어 붙여 그 점에 닿으며, 아래 식에 그 개수가 적혀요. 앞 강에서 본 선형성이 바로 이것이다. î와 ĵ의 운명만 정하면 나머지 무한히 많은 점은 알아서 따라오고, 그 덕분에 행렬의 네 숫자로 공간 전체를 조종할 수 있다.

변환을 한 번 한 뒤 또 다른 변환을 하고 싶다면, 예를 들어 먼저 돌리고 그다음 비스듬히 밀고 싶다면 두 행렬을 곱하면 된다. 그러니까 행렬곱은 변환을 잇따라 한다는 뜻이에요. 학교에서 행과 열을 묘하게 곱하라고 배운 그 규칙은 변환을 차례로 적용한 결과를 계산하는 방법이다. 그래서 순서가 중요하다. 그림은 회전한 다음 전단하는 경우와 전단한 다음 회전하는 경우를 다루는데, 「순서 바꾸기」를 누르면 격자의 모양이 달라지고 아래 두 칸에 적힌 곱행렬도 서로 다르다. 순서를 바꾸면 결과가 달라지는 것이에요. AB와 BA가 다르다는 것은 외울 규칙이 아니라 당연한 일이었다.

이제 대표 변환 몇 가지를 둘러본다. 회전, 확대, 전단(비스듬히 밀기), 반사다. 버튼을 하나씩 누르면 격자가 그 동작대로 바뀌고, 각 동작이 행렬 하나에 대응한다는 것이 드러나요. 공간을 바꾸는 익숙한 동작이 결국 모두 행렬이라는 얘기다. 마지막으로 「납작」 버튼을 누르면 공간이 직선 하나로 찌부러진다. 이것은 특별한 경우로, 아래에 적힌 행렬식이라는 값이 이때 0이 된다. 변환이 공간을 짓눌러 버렸다는 신호예요. 납작해진다는 것이 무슨 뜻인지는 바로 다음 강인 행렬식에서 파헤친다.

빠른 적용실전에서 행렬을 만나면 숫자표로 읽지 말고 두 열부터 본다. 첫째 열은 î가 가는 곳, 둘째 열은 ĵ가 가는 곳이다. 그것만으로도 이 변환이 공간을 어떻게 비트는지 머릿속에 그려져요. 그래픽에서 캐릭터를 회전시키는 일도, 데이터의 좌표축을 갈아 끼우는 일도 모두 이 한 동작이다. 여러 변환을 엮을 때는 오른쪽에 있는 행렬부터 차례로 적용된다는 것만 기억하면, 행렬곱이 헷갈릴 일은 없어요.
← 공업수학
이 페이지가 도움 됐다면 후원하기