회전에 대해 알아보자. 2차원에선 간단하지. 점 $(x,y)$를 $\theta$만큼 회전시킨 좌표 $(x',y')$은 이렇게 표현이 돼.
$$
\begin{pmatrix}
x' \\
y'
\end{pmatrix} =
\begin{pmatrix}
\cos \theta & \sin \theta \\
{- \sin \theta} & \cos \theta
\end{pmatrix}
\begin{pmatrix}
x \\
y
\end{pmatrix}
$$
3차원 회전은 어떻게 표현할 수 있을까? 오일러 각 같은걸 떠올릴 수도 있겠지만 난 그런 머리아픈건 별로 안좋아해서
좀 더 추상적으로 회전의 본질에 대해 얘기해볼게.
강체변환(rigid transformation)은 강체의 운동을 설명하기 위해서 도입하는 개념이야.
강체는 형상이 변형되지 않는 딱딱한 한 덩어리의 물체이기 때문에 운동 할 때 강체를 구성하는 입자들 간의 상대적인 거리는 변하지 않아.
공간상의 회전을 나타내기에 적절해보이지?
강체변환은 유클리드 공간 $\mathbb{R}^n$에서 두 점 사이의 거리가 달라지지 않는 변환, 즉 이런 함수야
$$ T : \mathbb{R}^n \to \mathbb{R}^n $$
$$ \lVert u-v \rVert = \lVert T(u) - T(v) \rVert \text{\quad for all } u,v $$
강체변환의 정의는 굉장히 직관적이라고 생각해. 앞서 말한 강체에 대한 설명을 수학적으로 표현했을 뿐이니까.
강체변환에 대해 알 수 있는 사실이 뭐가 있을까?
$T(0) = 0$인 강체변환 $T$는 길이와 내적을 보존한다.
Proof.
강체변환의 성질에서 $v=0$ 인 경우를 생각하면
$$
\begin{array}{ll}
& \lVert u - 0 \rVert = \lVert T(u) - T(0) \rVert \\
\Rightarrow & \lVert u \rVert = \lVert T(u) \rVert
\end{array}
$$
이므로 길이를 보존.
$$
\begin{array}{ll}
& \langle u-v, u-v \rangle = \langle T(u)-T(v), T(u)-T(v) \rangle \\
\Rightarrow & \langle u, u \rangle + \langle v, v \rangle - 2 \langle u, v \rangle
= \langle T(u), T(u) \rangle + \langle T(v), T(v) \rangle - 2 \langle T(u), T(v) \rangle \\
\Rightarrow & \langle u,v \rangle = \langle T(u), T(v) \rangle
\end{array}
$$
이므로 내적도 보존.
$T(0) = 0$인 강체변환 $T$는 선형변환이다.
Proof.
$$
\begin{array}{l}
\lVert T(au+v) - (aT(u) + T(v)) \rVert^2 \\
= \lVert T(au+v) \rVert^2 + \lVert aT(u) \rVert^2 + \lVert T(v) \rVert^2
-2 \langle T(au+v), aT(u)+T(v) \rangle
+2 \langle aT(u), T(v) \rangle \\
= \lVert au+v \rVert^2 + a^2 \lVert u \rVert^2 + \lVert v \rVert^2
-2a \langle au+v, u \rangle
-2 \langle au+v, v \rangle
+2a \langle u, v \rangle \\
= \lVert au+v \rVert ^2
- (\lVert au \rVert^2 + \lVert v \rVert^2 +2 \langle au, v \rangle) \\
= 0
\end{array}
$$
이므로 $T(au+v) = aT(u) + T(v)$. 즉, $T$는 선형.
위의 두가지 사실로부터 멋진 결론을 얻을 수 있는데, 어떤 강체변환 $T$가 있을 때,
$T'(u) = T(u) - T(0)$는 강체변환이면서 $T'(0) = 0$을 만족하지. 그러면 $T$는
$$ T(u) = T'(u) + T(0) $$
로 표현이 되고, 이때 $T'$은 내적을 보존하는 선형변환이 돼. 딱 봐도 뒤의 $T(0)$는 병진운동(translation)에 관련된 항이겠지?
우리 관심사인 회전은 내적을 보존하는 선형변환 $T'$과 관련 되어있어.
우린 유클리드 공간의 선형변환을 다루고 있으니까 당연히 이걸 행렬로도 표현할 수 있어.
내적을 보존하는 행렬은 직교행렬(orthogonal matrix) 이라고 하는데, 다시말해 다음과 같은 행렬 $Q \in \mathbb{R}^{n \times n}$ 이야.
$$ (Qu)^\intercal (Qv) = u^\intercal Q^\intercal Q v = u^\intercal v \text{\quad for all } u, v $$
그런데 이게 임의의 벡터 $u,v$에 대해 성립한다는 말은 곧 $Q^\intercal Q = I$ 임을 함의해.
(잘 모르겠으면 u, v 에 표준기저 벡터들을 대입해보면 알 수 있음)
직교군(orthogonal group) $\mathrm{O}(n)$은 이런 행렬들의 집합이야.
$$ \mathrm{O}(n) = \{ Q \in \mathbb{R}^{n \times n} \mid Q^\intercal Q = I \} $$
과연 이 $\mathrm{O}(n)$이 우리가 생각하는 "회전"들의 집합일까? 이런 행렬을 생각해봐.
$$
Q =
\begin{pmatrix}
-1 & 0 & 0 \\
0 & 1 & 0 \\
0 & 0 & 1
\end{pmatrix}
$$
이 행렬은 3차원 공간에서 yz평면에 대한 대칭이동을 표현하는데, $Q^\intercal Q = I$를 만족하기 때문에 직교행렬이야.
즉 직교행렬은 회전 이외에 대칭이동 또한 포함해.
사실 우리는 강체변환에서 출발했으니까, 대칭도 포함되는게 당연하지. 점들을 대칭한다고 거리가 변하지는 않으니까.
그럼 직교행렬을 대칭과 회전으로 분류할 수 있을까?
직교행렬의 행렬식을 생각해보자. $Q^\intercal Q = I$ 니까
$$ \det(Q^\intercal Q) = \det(Q)^2 = \det(I) = 1 $$
그럼 $Q$의 행렬식이 될 수 있는 값은 $\pm 1$ 두 개가 있겠지.
행렬식이 $-1$인 직교행렬은 대칭이동을 표현하고, 행렬식이 $+1$인 직교행렬은 회전을 표현해.
그리고 이런 회전행렬들을 모아놓은 집합을 회전군, 혹은 특수직교군(special orthogonal group) $\mathrm{SO}(n)$ 이라고 불러.
$$ \mathrm{SO}(n) = \{R \in \mathrm{O}(n) \mid \det(R) = 1 \} $$
3차원 회전은 $\mathrm{SO}(3)$의 원소들로 표현되겠지.
이제 좀 물리적인 얘기를 해볼게. 물리에서는 물체의 운동을 다루지. 즉 시간이 개입돼.
회전의 시간 변화를 설명하는 가장 기초적인 물리량은 각속도고, 고전역학에서는 일반적으로 이 각속도 부터 이야기를 시작할거야.
2차원에서 각속도는 간단해. 그냥 각도를 시간에 대해 미분한 실수값이 각속도지.
$$ \omega = \frac{d\theta}{dt} $$
3차원에서 각속도는 벡터로 표현되는데, 회전축 단위벡터에 그 회전축에 대한 회전각의 시간미분을 곱한 값으로 정의돼.
그런데 과연 이 각속도 벡터가 회전의 시간미분에 대한 모든것을 설명할 수 있을까?
애초에 3차원 회전에서 회전축이라는게 잘 정의되는지 어떻게 확신하지?
(적어도 내가 들은) 학부 고전역학에서는 이 부분을 제대로 해소하지 않고 넘어가는데 굉장히 불만족스러운 부분이야.
그러니까 $\mathrm{SO}(3)$의 원소인 회전행렬에서 시작해서 각속도의 개념을 유도해보자.
어떤 벡터 $r_0(t) \in \mathbb{R}^3$에 회전행렬 $R(t) \in \mathrm{SO}(3)$를 적용하는 상황을 생각해보자.
$$ r(t) = R(t) r_0(t) $$
양변을 미분하면
$$ \dot r = \dot R r_0 + R \dot r_0 $$
그런데 $R^\intercal R = I$ 의 양변을 미분하면
$$
\begin{array}{ll}
& \dot R^\intercal R + R^\intercal \dot R = 0 \\
\Rightarrow & (R^\intercal \dot R)^\intercal + R^\intercal \dot R = 0 \\
\Rightarrow & R^\intercal \dot R \text{\quad is skew-symmetric}
\end{array}
$$
여기서 반대칭(skew-symmetric)이란 $S^\intercal = -S$ 를 만족한다는 뜻이야. $S = R^\intercal \dot R$ 이라고 하자.
모든 3차원 반대칭 행렬은 어떤 벡터 (여기선 $\omega$)의 외적으로 표현할 수 있어.
$$
S =
\begin{pmatrix}
0 & -\omega_z & \omega_y \\
\omega_z & 0 & -\omega_x \\
-\omega_y & \omega_x & 0
\end{pmatrix} =
(\omega \times)
$$
그러면 $\dot r$을 아래와 같이 표현할 수 있지.
$$
\begin{array}{rl}
\dot r
& = \dot R r_0 + R \dot r_0 \\
& = R(\dot r_0 + R^\intercal \dot R r_0) \\
& = R(\dot r_0 + S r_0) \\
& = R(\dot r_0 + \omega \times r_0) \\
\end{array}
$$
물리 공부해본 사람이면 눈치챌 수 있는데, 이건 비관성좌표계에서 시간미분 구할 때 등장하는 식이야.
당연히 여기서 $\omega$가 바로 우리가 알던 각속도 벡터고.
근데 우리는 $\omega$를 완전히 대수적으로 유도했단 말이지. 여기에 대한 기하적인 직관을 얻을 수 있을까?
어떤 벡터를 고정된 회전축으로 회전시킬 때, 그 벡터가 회전축과 평행하다면 회전해도 변하지 않을거야.
$r_0(t) = v_0$ 인 상황을 생각해보자. 그러면
$$\dot v = R(\omega \times v_0)$$
여기서 $\dot v = 0$ 이라면
$$
\begin{array}{ll}
& R(\omega \times v_0) = 0 \\
\Leftrightarrow & \omega \times v_0 = 0 \\
\Leftrightarrow & \omega = 0 \text{\quad or\quad} v_0 = c \omega \text{ for some } c \in \mathbb{R}
\end{array}
$$
즉 $\dot v = 0$ 이 되려면 $\omega = 0, \dot R = 0$이라서 회전행렬이 시간에 대해 변하지 않거나
$v_0$가 회전축 $\hat \omega$와 평행해야 해.
수학적으로 표현하면 $0$은 항상 $\dot R$의 고유값이고, 대응되는 고유공간의 차원은 1이거나 3인거지.
이제 우리는 3차원 회전에서 각속도와 회전축이 잘 정의된다고 할 수 있어. (회전축은 $\dot R \neq 0$인 경우에만)
사원수(quaternion)는 $i, j, k$ 3개의 허수부를 가진 수체계야. 실수부 까지 포함해서 총 4차원으로 이루어져있어.
$$ \mathbb{H} = \{ a + bi + cj + dk \mid a,b,c,d \in \mathbb{R} \} $$
덧셈, 뺄셈은 각 성분별 연산으로, 곱셈은 아래의 두 규칙과 결합법칙, 분배법칙으로부터 자연스럽게 정의돼. 곱셈의 교환법칙이 성립하지 않는다는 점에 주의하자.
$$ i^2 = j^2 = k^2 = -1 $$
$$ ij = k, \ ji = -k, \ jk = i, \ kj = -i, \ ki = j, \ ik = -j $$
예시.
$$
\begin{array}{rl}
(1+2i+3j)(-i+j+k)
& = -i + j + k - 2ii + 2ij + 2ik - 3ji + 3jj + 3jk \\
& = -i + j + k + 2 + 2k - 2j + 3k - 3 + 3i \\
& = -1 + 2i -j + 4k
\end{array}
$$
켤레, 절댓값, 나눗셈도 정의할 수 있어. 복소수랑 똑같아.
$$ \overline{a+bi+cj+dk} = a-bi-cj-dk $$
$$ \mid q \mid = \sqrt{q \overline q} $$
$$ q^{-1} = \frac{\overline q}{ \mid q \mid^2 } $$
회전 얘기하다가 뜬금없이 사원수가 왜 나오냐? 절댓값이 1인 복소수로 2차원 회전을 표현할 수 있는것처럼, 절댓값이 1인 사원수를 써서 3차원 회전을 표현할 수 있기 때문이야.
즉 $\mathrm{SO}(3)$의 원소들을 절댓값이 1인 사원수로 표현할 수 있다는 말! 이건 정말 좋은거야.
한번 쯤 들어본 말일 수 있는데, $\mathrm{SO}(3)$를 행렬로 표현하려면 실수가 9개 필요하지만, 사원수로 표현하면 4개면 충분해지니까.
복소수에서랑 사정이 좀 다른것도 있는데, $\mathrm{SO}(3)$와 절댓값이 1인 사원수들의 집합은 일대일 대응 관계는 아니야.
정확히는 회전 $R \in \mathrm{SO}(3)$ 한개에 대응 되는 크기가 1인 사원수는 $\pm q$로 두개씩 있어.
반대로 말하면 크기가 1인 사원수 $q$와 $-q$는 동일한 회전을 표현하는 사원수야.
그럼 구체적으로 사원수랑 회전행렬을 어떻게 대응시킬 수 있을까?
일단 3차원 벡터를 허수부만 있는 사원수로 표현해. 즉 $(x,y,z)$를 사원수 $v = xi+yj+zk$ 로.
이걸 크기가 1인 사원수 $q$로 회전시킨 결과는 $qvq^{-1}$야.
$qvq^{-1}$이 다시 벡터로 표현이 되는지 의심스러울 수 있는데, 실제로 계산해보면 실수부는 0이 되고 허수부만 나와.
$$ R_q(v) = qvq^{-1} \text{\quad where } \mid q \mid = 1 $$
이식을 풀어쓰면 회전행렬도 구할 수 있겠지.
이번에는 사원수에서 각속도의 개념을 유도해보자.
어떤 벡터 $r_0(t)$를 $q(t)$로 회전시키는 상황을 생각해보자. 물론 여기서 $q(t) = 1 $고 그러니까 $q^{-1} = \overline{q}$ 야.
$$ r(t) = q(t) r_0(t) \overline{q}(t)$$
$r(t)$를 미분하면 어떻게 될까. 곱의 미분을 이용하면
$$
\begin{array}{rl}
\dot r
& = \dot q r_0 \overline{q} + q \dot r_0 \overline{q} + q r_0 \dot{\overline{q}} \\
& = q \dot r_0 \overline{q} + q \overline{q} \dot q r_0 \overline{q} + q r_0 \dot{\overline{q}} q \overline{q} \\
& = q (\dot r_0 + \overline{q} \dot q r_0 + r_0 \dot{\overline{q}} q) \overline{q}
\end{array}
$$
잘 관찰해보면 $\overline{q} \dot q$랑 $\dot{\overline{q}} q$가 켤레관계야.
$\omega = 2 \overline{q} \dot{q}$ 라고 정의하자. 그럼 재밌게도 $\omega$의 실수부가 0이 돼. 왜냐면
$$
\overline{q}q = 1
$$
의 양변을 미분하면
$$
\dot{\overline{q}}{q} + \overline{q}\dot{q} =
\overline{\overline{q}\dot{q}} + \overline{q}\dot{q} = \frac{1}{2} (\overline{\omega} + \omega) = 0
$$
이라서 $\omega$ 는 허수부만 있는 벡터야. 이제 $\dot r$를 아래처럼 쓸 수 있어.
$$
\begin{array}{rl}
\dot r
& = q (\dot r_0 + \frac{1}{2} \omega r_0 + r_0 (-\frac{1}{2}\omega)) \overline{q} \\
& = q (\dot r_0 + \omega \times r_0) \overline{q}
\end{array}
$$
$\omega$와 $r_0$는 둘다 벡터니까 외적이 잘 정의돼. 마지막 등호 계산은 appendix에 나와있는 방법으로 사원수 곱을 벡터 내적, 외적으로 계산하면 알 수 있어. 아무튼 우리가 얻은 식을 보면 아까 회전행렬로 얻은 결과와 정확히 같지.
$$
\frac{d}{dt} r = q (\frac{d}{dt} r_0 + \omega \times r_0) \overline{q}
$$
그리고 각속도에 대한 재밌는 사실을 알 수 있는데, 우리는
$$\omega = 2 \overline{q} \dot{q}$$
라고 정의했단 말이지? 이건 보면 $\dot{q}$와 관련있긴 하지만, 그 자체로 어떤 물리량을 미분한건 아니야.
사실 2차원 각속도는 각도를 미분한건데, 3차원 각속도는 2차원 각속도의 각도에 대응하는 물리량이 존재하지 않아.
나이브하게 각속도의 각 성분을 시간으로 적분하면 아무 의미가 없는 물리량이 나오고.
내친김에 가속도도 계산해보자. 아까의 공식
$$
\dot r = q (\dot r_0 + \omega \times r_0) \overline{q}
$$
를 그대로 한번 더 적용하면
$$
\begin{array}{rl}
\ddot r
& = q (\frac{d}{dt} (\dot r_0 + \omega \times r_0) + \omega \times (\dot r_0 + \omega \times r_0)) \overline{q} \\
& = q ( \ddot r_0 + \dot \omega \times r_0 + \omega \times \dot r_0
+ \omega \times \dot r_0 + \omega \times (\omega \times r_0))
) \overline{q} \\
& = q ( \ddot r_0
+ \dot \omega \times r_0
+ 2 \omega \times \dot r_0
+ \omega \times (\omega \times r_0))
) \overline{q}
\end{array}
$$
여기서 $\dot \omega \times r_0$는 횡가속도, $2 \omega \times \dot r_0$는 코리올리 가속도, $\omega \times (\omega \times r_0))$는 구심가속도라고 다 이름있는 항들이야.
사원수 곱을 내적과 외적으로 표현할 수도 있어. a와 b는 실수, u와 v는 실수부가 0인 사원수일 때
$$ (a+u)(b+v) = ab + av + bv + uv = (ab - u \cdot v) + (av + bv + u \times v) $$
곱에 켤레를 취하면 순서가 바뀌어.
$$ \overline{q_1 q_2} = \overline{q_2} \ \overline{q_1}$$
곱의 미분 공식은 사원수에서도 똑같아. 또 켤레와 미분은 순서를 바꿀 수 있어.
$$\frac{d}{dt} (q_1(t) q_2(t)) = \dot q_1(t) q_2(t) + q_1(t) \dot q_2(t) $$
$$ \dot{\overline{q}} = \overline{\dot{q}} $$