수학 개념 지도
복소수(Complex number)

사원수(Quaternion)

복소수⁠(complex number)⁠를 넓혀 허수 단위⁠(imaginary unit)⁠ 셋 i, j, k를 둔 네 성분의 수. 곱하는 순서를 바꾸면 값이 달라지며, 크기 1인 사원수 하나로 3차원 회전⁠(rotation)⁠을 나타낼 수 있다.

i2=j2=k2=ijk=−1,v⃗↦q v⃗ q−1i^2 = j^2 = k^2 = ijk = -1, \qquad \vec v \mapsto q\,\vec v\,q^{-1}
먼저 보면 좋은 개념복소수 곱셈회전 행렬벡터

평면에서 복소수의 곱셈은 회전과 확대입니다. ii를 곱하면 90° 돌고, 크기 1인 복소수 eiθe^{i\theta}를 곱하면 θ만큼 돕니다(오일러 공식⁠, Euler's formula⁠). 아일랜드 더블린의 윌리엄 로언 해밀턴은 1830년대에 복소수를 실수⁠(real number)⁠ 두 개의 순서쌍⁠(ordered pair)⁠으로 정리한 뒤, 같은 일을 3차원에서 해 줄 '세 쌍의 수'를 10년 넘게 찾았습니다. 그는 훗날 아들에게 보낸 편지에서, 1843년 10월 초 아침마다 아이들이 "아빠, 세 쌍을 곱할 수 있게 됐어요?" 하고 물으면 "아니, 더하고 빼는 것만 할 수 있단다"라고 답하곤 했다고 회상했습니다.

1843년 10월 16일 해밀턴은 아내와 함께 로열 운하를 따라 왕립 아일랜드 아카데미의 회의에 가던 길에 답을 깨달았습니다. 셋이 아니라 넷이어야 했습니다. 그는 지나던 브로엄 다리(오늘날의 브룸 다리)의 돌에 칼로 다음 식을 새겼습니다.

i2=j2=k2=ijk=−1i^2 = j^2 = k^2 = ijk = -1

사원수는 실수 넷으로 된 q=a+b i+c j+d kq = a + b\,i + c\,j + d\,k입니다. a를 실수부⁠(real part)⁠, 나머지 세 성분을 허수부라 합니다. 더하기는 성분끼리 하고, 곱하기는 분배법칙⁠(distributive law)⁠에 위의 규칙을 씁니다. 규칙에서 ij=kij = k가 나옵니다(ijk=−1ijk = -1의 양변 오른쪽에 k를 곱하면 ij k2=−kij\,k^2 = -k, 곧 −ij=−k-ij = -k). 같은 방법으로 jk=ijk = i, ki=jki = j인데, 순서를 바꾸면 ji=−kji = -k, kj=−ikj = -i, ik=−jik = -j입니다. 행렬의 곱⁠(matrix multiplication)⁠처럼 곱하는 순서에 따라 값이 달라지는, 곧 곱셈의 교환법칙⁠(commutative law)⁠이 성립하지 않는 수입니다. 해밀턴의 결단은 바로 이것, 교환법칙을 포기하는 것이었습니다. 새긴 글씨는 오래전에 사라졌지만 다리에는 기념판이 붙어 있고, 해마다 10월 16일에 그 길을 걷는 행사가 열립니다.

왜 셋으로는 안 될까요? 해밀턴이 원한 것은 곱의 크기가 크기의 곱인 곱셈 ∣pq∣=∣p∣ ∣q∣|pq| = |p|\,|q|이었습니다(크기는 성분 제곱합의 제곱근). 성분이 정수⁠(integer)⁠이고 곱셈 규칙의 계수도 정수라면, 이것은 "세 제곱수⁠(perfect square)⁠의 합끼리 곱해도 세 제곱수의 합"이라는 뜻입니다. 그런데 3=12+12+123 = 1^2 + 1^2 + 1^2, 5=02+12+225 = 0^2 + 1^2 + 2^2인데 그 곱 15는 어떻게 해도 세 제곱수의 합이 되지 않습니다. 네 제곱수라면 이런 일이 없습니다. 오일러가 1748년 편지에 적은 네 제곱수 항등식이 바로 사원수의 크기 공식이고, 라그랑주는 1770년 이를 써서 모든 자연수⁠(natural number)⁠가 네 제곱수의 합임을 증명했습니다(정수론⁠(number theory)⁠). 셋이 안 된다는 것은 계수가 실수여도 마찬가지입니다. 1898년 아돌프 후르비츠는 1을 곱하면 그대로이고 크기를 곱으로 지키는 곱셈이 1, 2, 4, 8차원에만 있음을 증명했습니다. 또 1877년 독일의 페르디난트 프로베니우스는, 실수 계수로 된 유한 차원의 수 체계⁠(number system)⁠ 가운데 0이 아닌 수로는 언제나 나눌 수 있고 곱셈의 결합법칙⁠(associativity)⁠이 성립하는 것은 실수, 복소수, 사원수 셋뿐임을 증명했습니다.

회전을 적는 수

오늘날 사원수가 가장 많이 쓰이는 곳은 3차원 회전입니다. 크기 1인 벡터⁠(vector)⁠ u⃗=(ux,uy,uz)\vec u = (u_x, u_y, u_z)를 축으로 θ만큼 돌리는 회전은 크기 1인 사원수

q=cos⁡θ2+sin⁡θ2 (uxi+uyj+uzk)q = \cos\tfrac{\theta}{2} + \sin\tfrac{\theta}{2}\,(u_x i + u_y j + u_z k)

하나로 적힙니다. 벡터 v⃗\vec v를 실수부가 0인 사원수 vxi+vyj+vzkv_x i + v_y j + v_z k로 보고 q v q−1q\,v\,q^{-1}를 계산하면 돌아간 벡터가 나옵니다. 각이 절반인 까닭은 q가 양쪽에서 한 번씩, 두 번 곱해지기 때문입니다. 그래서 q와 −q는 같은 회전을 나타내고, 사원수 쪽에서 보면 한 바퀴(360°) 돌린 회전은 q=−1q = -1이며 두 바퀴를 돌아야 1로 돌아옵니다. 회전을 로 고르고 돌리기를 누르거나 진행 정도 를 끌어 보세요.

빨강·초록·파랑 화살표는 물체에 붙은 x·y·z축입니다. 흐린 선은 원래의 축, 가는 곡선은 화살표 끝이 지나온 길, 노란 선은 지금 단계의 회전축입니다. 끌어서 돌려 볼 수 있습니다.

'x축 90° 다음 y축 90°'와 'y축 90° 다음 x축 90°'는 끝 모습이 다릅니다. 책을 들고 직접 해 봐도 그렇습니다. 사원수로는 나중 회전을 왼쪽에 곱해 qyqx=12(1+i+j−k)q_y q_x = \tfrac12(1 + i + j - k)와 qxqy=12(1+i+j+k)q_x q_y = \tfrac12(1 + i + j + k)이고, 둘 다 실수부가 12=cos⁡60∘\tfrac12 = \cos 60^\circ이니 120° 회전이지만 축이 (1, 1, −1)과 (1, 1, 1)로 다릅니다. (1, 1, 1)축 둘레로 120° 돌리면 x축은 y축 자리로, y축은 z축 자리로, z축은 x축 자리로 갑니다. 세 축을 한 칸씩 돌리는 회전입니다.

짐벌 잠금

회전을 적는 가장 흔한 방법은 세 각도입니다. 비행기라면 기수⁠(cardinal number)⁠를 좌우로 트는 요(위쪽 축 둘레), 기수를 들고 내리는 피치(날개 방향 축 둘레), 날개를 기울이는 롤(기수 방향 축 둘레)을 차례로 적용합니다(오일러 각⁠, Euler angles⁠). 직관적이지만 함정이 있습니다. 요 °, 피치 °, 롤 °. 피치를 90°로 수평으로

노랑: 요의 축(위쪽)과 그 둘레의 원. 초록: 피치의 축(날개 방향). 빨강: 롤의 축(기수 방향)과 그 둘레의 원. 끌어서 돌려 볼 수 있습니다.

피치가 ±90°가 되어 기수가 똑바로 위나 아래를 향하면, 롤의 축(기수 방향)이 요의 축(위쪽)과 한 직선에 겹칩니다. 이때는 요를 돌리든 롤을 돌리든 같은 축 둘레로 돌 뿐이라, 각도는 셋인데 조금씩 움직일 수 있는 방향은 둘로 줄어듭니다. 세 개의 고리(짐벌⁠, gimbal⁠)가 차례로 안쪽 물체를 감싸 어느 방향으로든 돌 수 있게 만든 장치에서는 이 상황이 고리 둘이 한 평면에 겹치는 모습으로 나타나고, 그래서 짐벌 잠금⁠(gimbal lock)⁠이라 부릅니다. 아폴로 우주선의 관성⁠(inertia)⁠ 항법 장치도 세 고리 짐벌을 써서 잠김에 가까운 자세를 피해야 했고, 아폴로 11호의 마이클 콜린스는 크리스마스 선물로 넷째 짐벌을 보내 달라는 농담을 남겼습니다. 사원수에는 이런 특이점⁠(singularity)⁠이 없습니다. 크기 1인 사원수는 4차원 공간의 단위 구면 위의 점이고, 모든 회전이 그 위에서 매끄럽게 두 점(q와 −q)씩 대응합니다.

그래서 오늘날 게임 엔진, 로봇 팔, 인공위성과 우주선의 자세 제어는 회전을 사원수로 저장하는 경우가 많습니다. 3×3 회전 행렬⁠(rotation matrix)⁠은 수 9개가 필요하고 계산 오차가 쌓이면 회전이 아닌 행렬⁠(matrix)⁠로 조금씩 틀어지지만, 사원수는 수 4개로 충분하고 크기를 1로 다시 맞추기만 하면 됩니다. 두 자세 사이를 부드럽게 잇기도 쉽습니다. 켄 쇼메이크가 1985년 컴퓨터 그래픽스 학회 SIGGRAPH에서 소개한 구면 선형 보간(slerp)은 두 단위 사원수를 잇는 구면 위의 대원⁠(great circle)⁠ 호를 일정한 빠르기로 따라가며, 위 그림의 '돌리기'도 이 방법으로 움직입니다.

사원수에서 벡터로

해밀턴은 남은 생을 사원수에 바쳤고 1853년 『사원수 강의』를 펴냈습니다. 사원수를 실수부와 허수부⁠(imaginary part)⁠ 벡터의 쌍 (a, (b, c, d))로 적으면, 실수부가 0인 두 사원수의 곱은 (0,u⃗)(0,v⃗)=(−u⃗⋅v⃗, u⃗×v⃗)(0, \vec u)(0, \vec v) = (-\vec u\cdot\vec v,\ \vec u\times\vec v)입니다. 곧 내적⁠(dot product)⁠에 음의 부호를 붙인 것과 벡터곱⁠(cross product)⁠이 한꺼번에 나옵니다. 맥스웰은 1873년 『전기와 자기에 관한 논고』에서 사원수의 이런 표현을 곳곳에 썼고, 1880년대 조사이아 윌러드 깁스와 영국의 올리버 헤비사이드는 이 곱을 둘로 떼어 오늘날의 벡터 해석⁠(vector analysis)⁠을 만들었습니다. 사원수를 지키려던 스코틀랜드의 피터 거스리 테이트와 벡터 쪽의 논쟁은 1890년대까지 이어졌고, 켈빈 경은 사원수가 "아름답게 기발하지만 손댄 모든 이에게 순전한 해악"이었다고 편지에 쓰기도 했습니다. 1843년 12월 해밀턴의 친구 존 그레이브스는 여덟 성분의 수(팔원수⁠, octonion⁠)를 찾았고 아서 케일리도 1845년 독립적으로 발표했지만, 팔원수에서는 곱셈의 결합법칙마저 깨집니다.

이어지는 곳. 사원수는 복소수와 허수 단위를 넓힌 것이고, 크기 1인 복소수가 평면의 회전이듯(극형식⁠(polar form)⁠, 1의 거듭제곱근⁠(roots of unity)⁠) 크기 1인 사원수는 공간의 회전입니다. 같은 회전을 회전 행렬로 쓰면 회전축은 고유값⁠(eigenvalue)⁠ 1의 고유벡터⁠(eigenvector)⁠이고, 회전을 잇따라 하는 것은 행렬의 곱입니다(선형변환⁠, linear transformation⁠). ±1, ±i, ±j, ±k 여덟 원소⁠(element)⁠는 곱셈에 대해 교환법칙이 성립하지 않는 작은 군(사원수군⁠, quaternion group⁠)을 이룹니다. 사원수의 크기 공식은 정수론의 네 제곱수 정리⁠(Lagrange's four-square theorem)⁠로 이어지고, 회전과 합성의 대수는 상대성 이론의 로런츠 변환으로, 그리고 q와 −q를 구별하는 성질 덕분에 한 바퀴 돌면 부호가 바뀌는 양자역학의 스핀으로 뻗어 갑니다. 벡터 해석의 두 곱, 내적과 벡터곱은 사원수의 곱셈에서 갈라져 나왔습니다.

이 개념이 나오는 긴 글

미분에서 회전까지 · 4편 · 오일러 공식 원을 그리는 지수함수 지수함수에 허수를 넣으면 원이 된다. 가장 유명한 등식은 어디서 왔을까? 미분에서 회전까지 · 5편 · 복소수와 행렬 곱셈은 회전이다 복소수를 곱하는 일과 행렬로 평면을 돌리는 일은 같은 일이다. 그래프 이론 일곱 다리의 도시 쾨니히스베르크의 일곱 다리를 한 번씩만 건너 산책할 수 있을까? 오일러는 지도를 지우고 점과 선만 남겼다.

이 개념을 언급하는 페이지

이 페이지가 가리키는 개념