[경고] 아래 글을 읽지 않고 "회전 행렬"을 보면 바보로 느껴질 수 있습니다.
[그림 1] 2차원 좌표의 여러 가지 변환(출처: wikipedia.org)
(a) 벡터 $\bf x$의 회전: ${\bf x}'$ = $\bf R x$
(b) 좌표축 $\bf x$의 회전: ${\bf x}$ = ${\bf R x}'$
[그림 2] 2차원 상에서 $\phi$방향으로 $\theta$만큼 회전(출처: wikipedia.org)
삼각 함수의 합차 공식(angle sum and difference identity)을 이용하면, [그림 2]처럼 $xy$평면에 대한 좌표점의 회전을 쉽게 공식화할 수 있다.
(1)
여기서 $x$ = $\rho \cos \phi$, $y$ = $\rho \sin \phi$, 원래 좌표점 $(x, y)$가 $\phi$방향으로 $\theta$만큼 회전한 좌표점이 $(x', y')$이다. 식 (1)을 행렬(matrix) 형태로 쓰면, 2차원에 대한 회전 행렬(rotation matrix)을 다음처럼 얻을 수 있다.
(2: ${\bf x}'$ = $\bf R x$)
2차원 회전 행렬인 식 (2)는 공식 그 자체보다 기하학적 상상과 결과 분석이 더 중요하다. [그림 2]처럼 회전에는 벡터와 좌표축의 회전이 있다. 식 (2)는 이 2가지 회전을 모두 담당한다. 벡터 회전에서는 좌표축이 고정되고, 그 위에 있는 벡터 $\bf x$를 회전시켜 같은 좌표축의 벡터 ${\bf x}'$을 만든다. 좌표축의 회전은 공식이 비슷하지만 적용은 정반대로 한다. [그림 2(b)]와 같이 좌표축 ${\bf x}'$에서 작성한 좌표 성분 $(x', y')$은 좌표축 ${\bf x}$에서 $\bf x$ = ${\bf Q x}'$에 따라 $(x, y)$로 계산된다. 당연히 점 자체는 회전하지 않고 위치를 성분별로 해석하는 좌표축만 바뀐다.
2차원 상의 회전을 쉽게 증명한다고 해서 3차원 상의 회전도 비슷하다고 오판하면 안된다. 3차원 회전은 선형 대수학(linear algebra)을 만든 핵심 개념이다. 연립 방정식(simultaneous equations)을 풀기 위해 행렬이 제안되었다고 오해할 수 있지만, 행렬 개념이 없어도 가우스 소거법(Gaussian elimination)을 이용하면 연립 방정식을 쉽게 해결할 수 있다. 오히려 행렬 개념의 진가는 고유치와 고유 벡터(eigenvalue and eigenvector)에서 드러난다. 행렬이 표현하는 선형 변환(linear transformation)에 관계없이 원래 벡터와 평행한 방향을 유지하면 고유 벡터라 부른다. 당연히 회전축(rotation axis) 방향으로 놓인 벡터는 돌리더라도 같은 방향이므로, 회전 행렬의 회전축이 고유 벡터가 된다. 벡터의 크기도 같아야 하므로, 고유치의 크기는 $1$이다. 이러한 측면에서 회전 행렬은 고유치와 고유 벡터의 개념을 이해하기 매우 좋은 예시이다. 수학사 측면에서 봐도 회전 행렬은 정말 중요하다. 사원수(quaternion), 벡터, 행렬 개념이 나오기 직전인 1840년에 로드리그Olinde Rodrigues(1795–1851)가 3차원 좌표점의 회전을 공식화했다[2], [3]. 이 공식은 로드리그의 회전 공식(Rodrigues' rotation formula)이라 부른다. 사실 로드리그가 회전 공식을 제안하기 한참 전인 1776년에 오일러Leonhard Euler(1707–1783)는 비슷한 공식을 먼저 제안했다[1], [3]. 하지만 벡터 개념에 가깝게 3차원 공간의 회전을 표현한 로드리그에게 공식의 이름이 돌아갔다. 그래서 오일러가 연구한 3차원의 회전 개념이 로드리그를 거쳐 사원수와 행렬에 영향을 주어서 고유치와 고유 벡터에 대한 개념이 정립되었다.
[그림 3] 로드리그의 회전 공식을 위한 좌표계(출처: wikipedia.org)
로드리그가 회전 공식을 증명할 때는 벡터가 없었지만, 우리는 벡터 개념을 알기 때문에 편하게 벡터를 써서 증명해보자.
[로드리그의 회전 공식]
벡터 $\bar v$를 회전축 $\hat k$를 기준으로 오른손 규칙에 따라 $\theta$만큼 회전한 벡터는 다음과 같다.
(3a)
(3b)
여기서 $\bar v$ = $\bar v_\parallel + \bar v_\bot$, $\bar v_\parallel$과 $\bar v_\bot$은 각각 $\hat k$에 평행 및 수직인 벡터이다.
[증명]
벡터의 회전은 회전축이 아닌 성분에 대해 적용하므로, [그림 3]처럼 회전축에 평행 혹은 수직인 성분으로 $\bar v$를 분해해서 표현한다.
(4)
그러면 세 단위 벡터 $\hat k$, $\hat v_\bot$, $\hat w$ = $\hat k \times \hat v_\bot$는 3차원 공간에 대한 정규 직교 기저(orthonormal basis)가 된다. 그러면 벡터 $\bar v$를 $\theta$만큼 회전하는 연산은 $\hat v_\bot$와 $\hat w$가 만드는 평면에서 $\bar v_\bot$가 $\theta$만큼 돌아감을 의미한다. 따라서 [그림 2]를 참고하면 $\bar v_\bot$를 회전한 벡터 $\bar \rho$는 다음과 같다.
(5)
최종 결과에는 회전하지 않는 $\bar v_\parallel$도 포함되어야 하므로, 식 (5)를 이용해 회전 벡터를 쉽게 표현할 수 있다.
(6)
따라서 식 (3)이 증명된다.
______________________________
벡터의 외적(outer product)을 행렬 연산으로 바꾸면, 로드리그의 회전 공식을 회전 행렬로 바꿀 수 있다. 벡터의 내적을 피하기 위해 식 (5)와 (6)을 합쳐서 다음처럼 쓸 수 있다.
(7)
벡터의 외적을 외적 행렬(cross-product matrix)로 바꾸어서 식 (7)을 행렬로 표현한다.
(8)
여기서 $\bf K$는 $\hat k$에 대한 외적 행렬, $\bf R$은 회전 행렬이다. 외적 행렬 $\bf K$를 직접 제곱하면 다음을 얻는다.
(9)
(10)
여기서 단위 벡터 $\hat k$에 대응하는 열 벡터는 $\bf k$ = $[x~y~z]^T$, $x^2 + y^2 + z^2$ = $1$, $\bf P$는 대칭 행렬(symmetric matrix) 특성을 가진 사영 행렬(projection matrix)이다. 사영 행렬은 ${\bf P}^2$ = $\bf P$를 만족하기 때문에 정사영에 대한 연산이다. 식 (10)을 식 (8)에 대입해서 더 정리하면 다음과 같다.
(11)
식 (11)을 행렬 원소로 풀어서 쓸 수도 있다.
(12)
여기서 $c$ = $\cos \theta$, $s$ = $\sin \theta$이다.
1. 벡터의 회전(rotation of vector)
[단위 벡터의 회전]
(1.1)
여기서 각속도(angular velocity) $\omega$ = $d \theta / dt$, 각속도 벡터(angular velocity vector) $\bar \Omega$ = $\omega \hat k$, $\hat k$는 회전축의 단위 벡터, $\hat v$는 $\hat k$ 주위를 오른손 규칙에 따라 회전하는 $\bar v$의 단위 벡터이다.
[증명]
식 (5)와 정규 직교 기저 $\hat k$ = $\hat v_\bot \times \hat w$를 사용해 증명한다.
(1.2)
여기서 $\hat \rho$ = $\bar \rho / |\hat v_\bot|$이다.
______________________________
식 (1.1)은 회전축 $\hat k$의 주위를 회전하는 좌표계를 분석할 때 유용한 공식이다. 예를 들어, $\bar v$ = $f \hat v$의 미분 공식은 성분과 단위 벡터를 각각 시간 미분해서 쉽게 구한다.
(1.3)
여기서 첫째 항은 좌표계를 바꾸지 않고[단위 벡터를 그대로 두고] $f$의 변화만 추적한다. 식 (1.3)은 운송 정리(transport theorem) 혹은 기본 운동학 방정식(basic kinematic equation)으로 부른다. 좌표계의 회전으로 보면, 식 (1.3)의 좌변은 관찰자 관점의 운동계[회전 운동 밖에 관찰자가 있어서 회전이 감지됨]이며, 우변의 첫째 항은 관찰자 관점의 정지계[관찰자가 회전 운동에 속해 있어서 회전을 느낄 수 없음]이다. 이 관점을 더 강조해서 관찰자 상태를 나타내는 아래첨자를 추가해서 식 (1.3)을 더 읽기 좋게 만들기도 한다.
(1.4)
여기서 $[\cdot]_f$는 관찰자가 고정되어(fixed) 회전 운동을 관찰한다는 의미이고, $[\cdot]_r$은 관찰자가 회전(rotated) 운동을 해서 회전을 느끼지 못한다는 표현이다. 식 (1.4)가 제시하는 개념을 회전 역학(rotational mechanics)에 넣으면, 강체 위에서 움직이는 운동체의 속도와 가속도를 즉각적으로 도출할 수 있다.
(1.5a)
(1.5b)
여기서 $\bar r$ = $r \hat r$, $\bar v$는 속도, $\bar a$는 가속도, 회전축은 고정되므로 $d \bar \Omega / dt$ = $0$이다. 식 (1.5b)에 출현한 $2 \bar \Omega \times \bar v_r$은 코리올리 힘(Coriolis force)에 쓰여서 코리올리 가속도(Coriolis acceleration)라 부른다.
2. 회전 행렬(rotation matrix)
[회전 행렬과 직교 행렬]
회전 행렬은 직교 행렬(orthogonal matrix)이다.
[증명]
각도 $\theta$에 $-\theta$를 넣으면, 회전 행렬의 역행렬을 구할 수 있다. 이 행렬은 회전 행렬의 전치 행렬과 같다.
(2.1)
______________________________
[정상 회전 행렬의 고유치]
정상 회전 행렬의 고유치는 $1, e^{i \theta}, e^{-i \theta}$이다.
[증명]
정상 회전 행렬(proper rotation matrix)은 정상 직교 행렬(proper orthogonal matrix)인 회전 행렬이다. 즉, 행렬식 $|{\bf R}|$ = $1$이면 정상 회전 행렬이 된다. 정상 회전 행렬 $\bf R$에 대한 고유치와 고유 벡터는 다음처럼 정의한다.
(2.2)
여기서 $(\cdot)^H$는 켤레 전치 행렬(conjugate transpose), 고유치와 고유 벡터는 복소수(complex number)일 수 있다. 식 (2.2)의 두 식을 서로 곱하면 고유 벡터 $\bf x$에 대한 벡터 노름(vector norm) $\|{\bf x}\|$를 정의할 수 있다.
(2.3)
식 (2.3)에 의해 고유치의 크기 $|\lambda|$는 항상 $1$이다. 따라서 고유치는 $\lambda$ = $e^{i \alpha}$ 형태를 가진다. 고유치를 위한 행렬식 $\left|{\bf R} - \lambda{\bf I} \right|$와 비슷하게 다음 관계식을 고려하자.
(2.4)
그러면 하나의 고유치는 $\lambda$ = $1$이다. 나머지 두 고유치를 $e^{i \alpha}$, $e^{i \beta}$로 두자. 모든 고유치의 곱은 행렬식이므로, $\alpha$와 $\beta$의 관계는 다음과 같다.
(2.5)
또한 모든 고유치의 합은 행렬의 대각합(trace)이므로, $\alpha$를 결정할 수 있다.
(2.6)
______________________________
행렬식이 $-1$인 이상 회전 행렬(improper rotation matrix)의 고유치는 $-1, e^{i \theta}, e^{-i \theta}$이다. 왜냐하면 식 (2.4)와 비슷한 행렬식이 다음 특성을 가지기 때문이다.
(2.7)
[그림 2.1] 일정 반지름 $\rho$를 가진 원상의 회전
[원상의 회전]
회전축 $\hat k$를 법선 벡터(normal vector)로 하는 원상의 회전을 위한 시작 벡터는 $xy$평면에 있는 $\bar u_0$이다. 그 다음에 시작 벡터 $\bar u_0$를 기준으로 회전 공식을 적용한다.
(2.8)
여기서 $\hat k$ = $(x, y, z)$, $\rho$는 원의 반지름, $\psi$는 $\hat k$의 정사영(projection) $\bar k_p$가 $x$축과 이루는 각도이다.
[증명]
벡터 $\bar u_0$는 $xy$평면에 있고 $\bar k_p$에 수직이므로, $u_{x0}x + u_{y0}y$ = $0$이 성립한다. 그러면 [그림 2.1]에 있는 초록색 직선의 방정식은 $u_{y0}$ = $- (x/y) u_{x0}$가 된다. 이 직선과 [그림 2.1]의 원과의 교점 중의 하나가 우리가 구하는 $\bar u_0$이다.
(2.9)
식 (2.9)의 마지막 결과에서 $u_{x0}$의 부호를 양으로 택하면 식 (2.8)이 쉽게 증명된다.
______________________________
식 (2.8)은 로드리그의 회전 공식을 적용하기 위한 벡터 $\bar v$ = $\bar u_0$임을 뜻한다. 즉, $\bar v$ = $\bar u_0$라 놓고 식 (3)에 따라 $\bar v$를 $\theta$만큼 회전하면, [그림 2.1]에 있는 초록색 벡터를 구할 수 있다. 이 과정을 계속 반복하면서 원상에 있는 회전 벡터를 원하는 대로 얻는다. 여기서 회전된 벡터의 크기는 항상 $\rho$가 된다.[$|\bar v|$ = $\rho$]
[참고문헌]
[1] L. Euler, "Nova methodus motum corporum rigidorum degerminandi (A new method for generating the motion of a rigid body)," Novi Commentarii academiae scientiarum Petropolitanae (New Commentary of the St. Petersburg Scientist Academy), vol. 20, pp. 208–238, 1776.
[2] O. Rodrigues, "Des lois géométriques qui régissent les déplacements d'un système solide dans l'espace, et de la variation des coordonnées provenant de ces déplacements considérés indépendants des causes qui peuvent les produire (Geometric laws that govern the displacements of a solid system in space, and the variation of the coordinates resulting from these displacements considered independent of the causes which can produce them)", Journal de Mathématiques Pures et Appliquées (Journal of Pure and Applied Mathematics), vol. 5, pp. 380–440, 1840.
[3] H. Cheng, K. C. Gupta, "An historical note on finite rotations," J. Appl. Mech., vol. 56, no. 1, pp. 139–145, 1989.
[다음 읽을거리]