본문 바로가기
Mathematics/선형대수

(선형대수학) 2.5-(2) Example: Rotation

by 피그티 2018. 7. 21.

물리에서 가장 쉽게 볼 수 있는 linear transformation은 rotation(회전)이다. Rotation은 한 선을 중심으로 모든 점들을 기준선과의 거리는 유지한 채 일정한 각도만큼 이동시키는 것을 말한다. 기준이 되는 한 선은 아무렇게나 잡아도 되지만 계산의 편의상 원점을 지나는 선 또는 좌표축으로 설정하는 것이 일반적이다. Rotation이 linear transformation임을 보이는 것은 해석적으로도 가능하지만, 기하학적으로 간단히 확인할 수 있다.(vector addition은 삼각형으로 그려지고, scalar multiplication은 길이를 늘려주는 것으로 생각한다면, 회전을 vector addition과 scalar multiplication보다 먼저 한 것과 나중에 한 것은 똑같다) 가장 간단한 경우는 2차원 평면 \(\mathbb{R}^2\)에서의 회전이다.

 

\(\mathbb{R}^2\)에서의 Rotation

 

 

By IkamusumeFan (Own work) [CC BY-SA 4.0 (http://creativecommons.org/licenses/by-sa/4.0)], via Wikimedia Commons

 

그림과 같이 원점을 중심으로 각도 \(\theta\)만큼 반시계 방향으로 회전을 \(R_\theta\)라고 하자. 일정한 각도만큼 회전하는 경우 시계 방향과 반시계 방향이 서로 다르기 때문에 방향을 명시해야 하지만, 방향이 명시되지 않은 경우 일반적으로 반시계 방향을 의미한다. 이는 3차원 이상에서 정의되는 각속도, 각운동량의 방향과 같은 이유이다. 이제 \(R_\theta\)가 matrix로 어떻게 표현되는지 살펴보자.

 

Linear transformation의 matrix representation을 찾기 위해서는 우선 ordered basis가 있어야 한다. 이 페이지에서 basis는 standard basis를 사용할 것이다.

$$ \mathbf{e}_1=(1,0) $$

$$ \mathbf{e}_2=(0,1) $$

\(R_\theta\)의 matrix representation을 찾기 위해 basis가 \(R_\theta\)에 의해 어떻게 변환되는지 확인하면,

 

By MathsPoetry (Own work) [CC BY-SA 3.0 (http://creativecommons.org/licenses/by-sa/3.0) or GFDL (http://www.gnu.org/copyleft/fdl.html)], via Wikimedia Commons

 

그림에서 보는 바와 같이,

$$ R_\theta \mathbf{e}_1=(\cos\theta,\sin\theta)=\cos\theta ~(1,0)+\sin\theta ~(0,1) $$

$$ R_\theta \mathbf{e}_2=(-\sin\theta,\cos\theta)=-\sin\theta ~(1,0)+\cos\theta ~(0,1) $$

로 변환된다. 따라서

$$ [R_\theta]=\begin{bmatrix} \cos\theta & -\sin\theta \\ \sin\theta & \cos\theta \end{bmatrix} $$

이 행렬을 (선형대수학) 1.4-(1) Example: Rotations in Plane의 결과와 비교해보면, 1.4-(3)에서의 행렬은

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

임을 알 수 있다. 이는 좌표축을 \(\theta\)만큼 반시계 방향으로 회전시키는 것은 모든 점을 \(\theta\)만큼 시계 방향으로 회전시키는 것과 같을 것이라는 예상과 일치하는 결과이다.

 

 

\(\mathbb{R}^3\)에서 z축을 중심으로 Rotation


3차원에서의 회전은 2차원에서의 회전보다 복잡하다. 2차원의 경우 회전의 방향은 시계 방향과 반시계 방향 2가지 밖에 없으나, 3차원의 경우 가능한 회전축이 (원점을 지난다고 가정하더라도) 무수히 많기 때문에 이를 일반적으로 표현하기는 쉽지 않다. 일단 가장 간단한 경우로 z축을 기준으로한 회전을 살펴보자. 보통 z축을 기준으로 \(\theta\)만큼 회전시킨다는 것은 임의의 점을 z축과 직각이 되는 평면(즉, xy평면과 평행한 평면) 상에서 오른손 법칙에 따라(엄지손가락이 회전축의 방향, 다른 손가락들이 접히는 방향이 회전의 방향) 반시계 방향으로 회전시키는 것을 의미한다. 사실상, 2차원에서의 회전과 같다. 이 변환을 \(Z_\theta\)라고 한다면,

$$ Z_\theta \mathbf{e}_1=(\cos\theta ,\sin\theta ,0) $$

$$ Z_\theta \mathbf{e}_2=(-\sin\theta ,\cos\theta ,0) $$

$$ Z_\theta \mathbf{e}_3=(0,0,1) $$

따라서 \(Z_\theta\)의 matrix representation은

$$ [Z_\theta]=\begin{bmatrix} \cos\theta & -\sin\theta & 0 \\ \sin\theta & \cos\theta & 0 \\ 0 & 0 & 1 \end{bmatrix} $$

가 된다. 같은 방식으로 x축을 중심으로 하는 회전

$$ [X_\theta]=\begin{bmatrix} 1 & 0 & 0 \\ 0 & \cos\theta & -\sin\theta \\ 0 & \sin\theta & \cos\theta \end{bmatrix} $$

가 된다. 같은 방식으로 y축을 중심으로 하는 회전은

$$ [Y_\theta]=\begin{bmatrix} \cos\theta & 0 & \sin\theta \\ 0 & 1 & 0 \\ -\sin\theta & 0 & \cos\theta \end{bmatrix} $$

가 된다.

 

 

Euler Angles

 

일반적인 축을 중심으로 하는 회전을 matrix로 표현하는 것은 복잡한 과정 또는 더 높은 수준의 추상적 개념으로 이뤄지기 때문에 여기에서 도출하기는 어렵다. 다만, 모든 회전은 Euler angle이라고 하는 3개의 회전으로 분할될 수 있다. 이 페이지에서는 Euler angle을 소개하고 Euler angle이 주어졌을 때 rotation matrix를 구해보자.

 

Euler angle을 이용한 회전은 3단계로 이뤄진다.

 

 

By Lionel Brits (Hand drawn in Inkscape by me) [GFDL (http://www.gnu.org/copyleft/fdl.html) or CC BY 3.0 (http://creativecommons.org/licenses/by/3.0)], via Wikimedia Commons

 

 

1. xyz좌표공간에서 z축을 중심으로 \(\alpha\)만큼 회전 (그림에서 x축이 N축으로 이동하는 회전, 파란색 원에서의 회전)

 

2. 회전된 x축(그림에서 N축)을 중심으로 \(\beta\)만큼 회전 (그림에서 z축이 Z축으로 이동하는 회전, 그림이 그려진 평면에서의 회전)

 

3. 회전된 z축(그림에서 Z축)을 중심으로 \(\gamma\)만큼 회전 (그림에서 N축이 X축으로 이동하는 회전, 빨간색 원에서의 회전)

 

이를 z-x-z 회전이라고 부른다. 축의 선택은 반드시 이렇게 해야 하는 것은 아니고 여러가지 방법이 있다.


Euler angle을 이용한 회전을 \(R(\alpha, \beta, \gamma)\)라고 하면, 위에서 x,y,z축에서의 회전을 이용해

$$ R(\alpha, \beta, \gamma)=Z_\gamma X_\beta Z_\alpha $$

를 얻을 수 있다.(순서에 주의하자. 함수의 합성 \(f\circ g\)와 마찬가지로 오른쪽에 있는 rotation부터 vector에 적용된다.) 따라서 \(R(\alpha, \beta, \gamma)\)의 matrix representation은

$$ [R(\alpha, \beta, \gamma)]=[Z_\gamma ][X_\beta ][Z_\alpha ]$$

로 주어진다.

 

 

The Set of Rotation Matrices

 

다시 2차원에서의 회전 matrix

$$ R=\begin{bmatrix} \cos\theta & -\sin\theta \\ \sin\theta & \cos\theta \end{bmatrix} $$

에서 시작하자. matrix \(R\)의 transpose \(R^T\)는

$$ R^T=\begin{bmatrix} \cos\theta & \sin\theta \\ -\sin\theta & \cos\theta \end{bmatrix} $$

가 된다. 이제 \(R\)과 \(R^T\)을 곱해보면

$$ R^TR=RR^T=\begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix} $$

identity matrix를 얻는다. 따라서 \(R^T\)는 \(R\)의 inverse matrix이다. 이러한 특징을 가진 matrix를 orthogonal 하다고 부른다.

 

DEFINITION            Orthogonal Matrix

 

\(n\times n\) matrix \(Q\)가

$$ Q^TQ=QQ^T=I $$

(\(I\)는 identity matrix) 이면, \(Q\)를 orthognal하다고 부른다.

 

위에서 구한 3차원에서의 회전 matrix도 모두 orthogonal하다. 즉, 모든 회전 matrix는 orthogonal 하다. 반대로 모든 orthogonal한 \(2\times 2\) matrix, \(3\times 3\) matrix는 2차원, 3차원에서 회전을 나타내는 matrix라고 할 수 있을까?

 

다음과 같은 matrix를 생각해보자.

$$ A=\begin{bmatrix} -1 & 0 \\ 0 & 1 \end{bmatrix} $$

이 matrix 역시 orthogonal 하다. 그러나 2차원에서의 회전 matrix는 될 수 없다.(\(\cos\theta \)가 1이면서 동시에 -1일 수는 없다.) 사실 orthogonal matrix는 \(\det{Q^T}=\det{Q}\)라는 점을 이용하면,

 

\(\det{(Q^TQ)}=(\det{Q})^2=\det{I}=1\) 또는 \(\det{Q}=\pm 1\)

 

이어야 한다. 예제에서 살펴본 모든 회전 matrix는 determinant가 1이지만, orthogonal하지만 회전이 아닌 matrix \(A\)는 determinant가 -1이다. 모든 orthogonal matrix가 회전 matrix가 될 수 없다면, determinant가 1인 모든 orthogonal matrix는 회전 matrix라고 할 수 있을까? 답은, 그렇다. 임의의 matrix

$$ \begin{bmatrix} a & b \\ c & d \end{bmatrix} $$

가 orthogonal이고 determinant가 1이기 위해서는

 

\(a=d\), \(b=-c\), \(a^2+c^2=1\)

 

을 만족해야 한다. 세번째 식으로부터 \(a^2 \le 1\)이므로

$$ a=\cos\theta $$

인 \(\theta\)가 존재한다. 그러므로 위의 matrix는 \(\cos^{-1}{a}\)의 각도만큼 반시계 방향으로 회전하는 matrix가 된다.

 

하지만 determinant가 -1이더라도 orthogonal이라면 항상

 

\( \begin{bmatrix} -1 & 0 \\ 0 & 1 \end{bmatrix}\begin{bmatrix} \cos\theta & -\sin\theta \\ \sin\theta & \cos\theta \end{bmatrix} \), \( \begin{bmatrix} 1 & 0 \\ 0 & -1 \end{bmatrix}\begin{bmatrix} \cos\theta & -\sin\theta \\ \sin\theta & \cos\theta \end{bmatrix} \), 또는 \( \begin{bmatrix} 0 & 1 \\ 1 & 0 \end{bmatrix}\begin{bmatrix} \cos\theta & -\sin\theta \\ \sin\theta & \cos\theta \end{bmatrix} \)

 

의 형태로 표현 될 수 있다. 좌표평면에서

$$ \begin{bmatrix} -1 & 0 \\ 0 & 1 \end{bmatrix} $$

의 역할을 생각해보면, x좌표의 부호를 바꾸는 transformation이다. 이를 y축을 따라 reflection한다고 한다.(2번째는 x축을 따라 reflection, 3번째는 원점에서 inversion이라고 부른다.) 따라서 orthogonal matrix는 reflection, inversion과 rotation을 표현하는 matrix라고 할 수 있다. Determinant가 1인 경우에는 reflection, inversion 없이 순수한 rotation만을 표현하는 matrix가 된다.

 

수학에서는 각각의 matrix보다 그들을 모아놓은 집합과 그 집합의 원소들이 공통적으로 가지는 특징, 집합 자체의 특징 등이 매우 중요하다. 모든 orthogonal matrix를 원소로 가지는 집합을 orthogonal group이라고 부르고 \(\mathrm{O}(2)\) 또는 \(\mathrm{O}(2,\mathbb{R})\)로 쓴다. 그중에서 determinant가 1인 orthogonal matrix를 모아놓은 집합을 special orthogonal group이라고 부르고 \(\mathrm{SO}(2)\) 또는 \(\mathrm{SO}(2,\mathbb{R})\)로 쓴다. 3차원의 경우 \(\mathrm{O}(3)\), \(\mathrm{SO}(3)\)과 같이 쓰고 일반적으로 n차원의 경우 \(\mathrm{O}(n)\), \(\mathrm{SO}(n,\mathbb{R})\)과 같이 쓴다.

 

DEFINITION            The Orthogonal Group \(\mathrm{O}(n)\)

 

모든 \(n\times n\) orthogonal matrix들의 집합

$$ \mathrm{O}(n)=\{Q\in M_{nn}~|~Q^TQ=QQ^T=1\} $$

을 orthogonal group (in dimension \(n\))이라고 부른다.

 

DEFINITION            The Special Orthogoanal Group \(\mathrm{SO}(n)\) 

 

Determinant가 1인 모든 \(n\times n\) orthogonal matrix들의 집합

$$ \mathrm{SO}(n)=\{Q\in M_{nn}~|~Q^TQ=QQ^T=1,\det{Q}=1\} $$

을 special orthogonal group (in dimension \(n\))이라고 부른다.

 

3차원보다 더 높은 차원에서 회전을 시각화하기 어렵지만, \(n\)차원에서의 회전을 나타낸다고 생각할 수 있다. 비록 이 집합들은 vector space는 아니나 (zero vector가 되어야 할 zero matrix가 없다) 아주 중요하기 때문에 소개했다.