회전 행렬의 정의

회전 행렬은 공간에서 벡터를 회전시키는 변환을 수학적으로 표현하는 행렬이다. 3차원 공간에서 회전은 주로 \(\mathbb{R}^3\) 공간을 대상으로 하며, 회전 행렬은 3x3 행렬로 나타낸다. 회전 행렬은 직교 행렬이며, 그 행렬식은 1이다. 즉, 회전 행렬 \(\mathbf{R}\)는 다음 조건을 만족한다:

\[ \mathbf{R}^\top \mathbf{R} = \mathbf{I}, \quad \det(\mathbf{R}) = 1 \]

여기서, \(\mathbf{R}^\top\)\(\mathbf{R}\)의 전치 행렬이며, \(\mathbf{I}\)는 단위 행렬이다.

2차원 공간에서의 회전 행렬

먼저 2차원에서의 회전 행렬을 살펴보자. \(\mathbb{R}^2\) 공간에서 점 \((x, y)\)를 원점을 기준으로 반시계 방향으로 \(\theta\) 만큼 회전시키는 변환은 다음과 같은 행렬로 나타낸다:

\[ \mathbf{R}(\theta) = \begin{bmatrix} \cos \theta & -\sin \theta \\ \sin \theta & \cos \theta \end{bmatrix} \]

이 회전 행렬은 2차원 벡터 \(\mathbf{v} = \begin{bmatrix} x \\ y \end{bmatrix}\)에 대해 다음과 같이 작용한다:

\[ \mathbf{v}' = \mathbf{R}(\theta) \mathbf{v} = \begin{bmatrix} \cos \theta & -\sin \theta \\ \sin \theta & \cos \theta \end{bmatrix} \begin{bmatrix} x \\ y \end{bmatrix} \]

따라서, 회전된 벡터 \(\mathbf{v}' = \begin{bmatrix} x' \\ y' \end{bmatrix}\)는 다음과 같이 계산된다:

\[ x' = x \cos \theta - y \sin \theta \]
\[ y' = x \sin \theta + y \cos \theta \]

3차원 공간에서의 회전 행렬

3차원 공간에서 회전 행렬은 더 복잡하지만, 각 축을 기준으로 하는 회전 행렬을 세 가지로 나누어 설명할 수 있다. 각 축에 대한 회전 행렬은 다음과 같다:

1. \(x\)-축 회전

\(x\)-축을 기준으로 반시계 방향으로 \(\theta\)만큼 회전하는 3차원 회전 행렬은 다음과 같이 정의된다:

\[ \mathbf{R}_x(\theta) = \begin{bmatrix} 1 & 0 & 0 \\ 0 & \cos \theta & -\sin \theta \\ 0 & \sin \theta & \cos \theta \end{bmatrix} \]

2. \(y\)-축 회전

\(y\)-축을 기준으로 \(\theta\)만큼 회전하는 회전 행렬은 다음과 같다:

\[ \mathbf{R}_y(\theta) = \begin{bmatrix} \cos \theta & 0 & \sin \theta \\ 0 & 1 & 0 \\ -\sin \theta & 0 & \cos \theta \end{bmatrix} \]

3. \(z\)-축 회전

\(z\)-축을 기준으로 \(\theta\)만큼 회전하는 회전 행렬은 다음과 같다:

\[ \mathbf{R}_z(\theta) = \begin{bmatrix} \cos \theta & -\sin \theta & 0 \\ \sin \theta & \cos \theta & 0 \\ 0 & 0 & 1 \end{bmatrix} \]

이 각각의 회전 행렬은 3차원 벡터 \(\mathbf{v} = \begin{bmatrix} x \\ y \\ z \end{bmatrix}\)에 대해 다음과 같이 적용된다:

\[ \mathbf{v}' = \mathbf{R}_x(\theta) \mathbf{v}, \quad \mathbf{v}' = \mathbf{R}_y(\theta) \mathbf{v}, \quad \mathbf{v}' = \mathbf{R}_z(\theta) \mathbf{v} \]

이를 통해, 임의의 축에 대한 회전은 각 축에 대한 회전 행렬을 곱하는 방식으로 표현할 수 있다.

임의의 축에 대한 회전

임의의 축을 기준으로 회전하려면 회전축 벡터 \(\mathbf{u} = \begin{bmatrix} u_x \\ u_y \\ u_z \end{bmatrix}\)와 회전 각도 \(\theta\)를 정의할 수 있다. 이때, 임의의 축에 대한 회전 행렬은 Rodrigues' 회전 공식을 사용하여 구할 수 있다. Rodrigues' 공식에 따르면, 임의 축을 기준으로 한 회전 행렬 \(\mathbf{R}(\theta, \mathbf{u})\)는 다음과 같이 표현된다:

\[ \mathbf{R}(\theta, \mathbf{u}) = \mathbf{I} + (\sin \theta) \mathbf{K} + (1 - \cos \theta) \mathbf{K}^2 \]

여기서 \(\mathbf{I}\)는 3x3 단위 행렬이고, \(\mathbf{K}\)는 축 벡터 \(\mathbf{u}\)의 외적 행렬(또는 스큐 대칭 행렬)로 정의된다:

\[ \mathbf{K} = \begin{bmatrix} 0 & -u_z & u_y \\ u_z & 0 & -u_x \\ -u_y & u_x & 0 \end{bmatrix} \]

Rodrigues' 공식의 유도

Rodrigues' 회전 공식은 회전 벡터의 기하학적 성질을 이용해 유도된다. 벡터 \(\mathbf{v}\)를 임의의 축 \(\mathbf{u}\) 주위로 \(\theta\)만큼 회전시키면, 다음과 같은 세 가지 성분으로 나눌 수 있다:

  1. \(\mathbf{v}_\parallel\): 회전축 방향의 벡터 성분 (회전과 무관한 성분)
  2. \(\mathbf{v}_\perp\): 회전축에 수직인 벡터 성분 (회전이 영향을 미치는 성분)
  3. 회전 후의 \(\mathbf{v}_\perp\): 회전 후의 수직 성분

회전 후의 벡터 \(\mathbf{v}'\)는 다음과 같이 표현된다:

\[ \mathbf{v}' = \mathbf{v}_\parallel + \cos \theta \mathbf{v}_\perp + \sin \theta (\mathbf{u} \times \mathbf{v}) \]

이 공식을 행렬 형태로 바꾸면 Rodrigues' 회전 공식을 얻게 된다.

회전 행렬의 성질

회전 행렬은 몇 가지 중요한 성질을 가진다:

  1. 역행렬: 회전 행렬 \(\mathbf{R}\)의 역행렬은 그 전치 행렬과 같다. 즉,
\[ \mathbf{R}^{-1} = \mathbf{R}^\top \]

이는 회전이 거꾸로 적용될 때 원래 상태로 복원되는 대칭성을 나타낸다.

  1. 직교성: 회전 행렬은 직교 행렬이다. 즉, \(\mathbf{R}^\top \mathbf{R} = \mathbf{I}\)를 만족한다. 이는 회전이 벡터의 크기를 보존하고, 두 벡터 간의 내적 관계를 유지한다는 의미이다.

  2. 행렬식: 회전 행렬의 행렬식은 항상 1이다:

\[ \det(\mathbf{R}) = 1 \]

이는 회전 변환이 벡터의 방향을 유지하며, 부피 보존 변환임을 나타낸다.

회전 행렬의 응용

회전 행렬은 다양한 분야에서 응용된다. 특히, 로봇 공학, 컴퓨터 그래픽스, 항공우주공학, 물리학 등에서 물체의 회전 및 방향을 계산하는 데 중요한 역할을 한다. 예를 들어, 로봇 팔의 운동학을 계산하거나 3D 객체의 회전 애니메이션을 구현하는 데 사용된다.