1. 회전변환
1.1 \( \mathbb{R}^2 \)일 때 회전변환
■ 평면(2차원) 위에서 원점을 중심으로 각 \( \theta \)만큼 반시계 방향으로 회전변환을 나타내는 회전행렬(rotation matrix)은 다음과 같다.
이러한 회전행렬을 '회전변환의 행렬표현'이라 부르기도 한다. 이는 \( \mathbb{R}^2 \)에서 원점을 중심으로 회전시키는 선형변환(선형사상)과 그 행렬표현으로 볼 수 있기 때문이다.
회전시키기 전의 점 \( p \)를 정의역 \( \mathbb{R}^2 \)의 벡터로 생각하고 회전이동된 점 \( p' \)을 공역 \( \mathbb{R}^2 \)의 벡터로 생각하면, 회전이동시키는 변환이 선형변환이라는 것을 알 수 있다. 그래서 이 선형변환(선형사상)을 회전변환이라고 부를 수 있는 것이다.
■ 위의 그림의 회전을 점을 회전시키는 것이며, '어떤 점을 반시계 방향으로 \( \theta \)만큼 회전시키는 행렬'을 '점 회전 행렬'이라고 한다.
- 점 회전 행렬은 반시계 방향으로 회전하는 것이 기본이다.
- \( - \theta \)만큼 회전하면, 시계 방향으로 회전한다.
■ 여기서 회전변환을 나타내는 행렬(점 회전 행렬)은 \( \begin{pmatrix} \cos \theta & - \sin \theta \\ \sin \theta & \cos \theta \end{pmatrix} \)이다.
■ 즉, 위의 그림에서 점 \( p \)에서 점 \( p' \)으로의 반시계 방향 회전은 \( \begin{pmatrix} \cos \theta & - \sin \theta \\ \sin \theta & \cos \theta \end{pmatrix} \)에 의해 다음과 같이 적용된 것이다.
\( \mathbb{R}^2 \) 위의 점 \( p \)를 \( \begin{pmatrix} x \\ y \end{pmatrix} \), 점 \( p' \)를 \( \begin{pmatrix} x' \\ y' \end{pmatrix} \)라고 하면, \( \begin{pmatrix} \cos \theta & - \sin \theta \\ \sin \theta & \cos \theta \end{pmatrix} \begin{pmatrix} x \\ y \end{pmatrix} = \begin{pmatrix} x' \\ y' \end{pmatrix} \)
■ 예를 들어, 점 (1, 0)에서 (0 ,1)로 회전한 것은 점 회전이며, 다음과 같이 반시계 방향으로 90도 점 회전한 것이다.
■ 이 예에서, 평면 위에서 원점을 중심으로 90도만큼 반시계 방향으로 회전변환을 나타내는 행렬은 \( \begin{pmatrix} \cos 90^\circ & - \sin 90^\circ \\ \sin 90^\circ & \cos 90^\circ \end{pmatrix} \)이며, 점 (1, 0)과 점 (0, 1)은 \( \begin{pmatrix} 1 \\ 0 \end{pmatrix} \)과 \( \begin{pmatrix} 0 \\ 1 \end{pmatrix} \)로 나타낼 수 있다. 점 (1, 0)에 점 회전 행렬을 적용하면 (0, 1)로 변환되는 것을 확인할 수 있다.
■ 회전 행렬(rotation matrix) 중 점을 회전하는 행렬이 있다면, 축을 회전하는 행렬이 있다. 이 행렬을 축 회전 행렬이라고 한다. 축 회전 행렬을 적용하면 다음 그림처럼 \( x, y \)축을 \( X, Y \)축으로 회전시킨다.
■ \( xy \)평면 위에 점 \( a \)가 있다고 하자. 위의 그림과 같이 \( x \)축을 \( \theta \)만큼 회전하는 순간 새로운 \( X \)축과 점 \( a \)의 사이 거리가 짧아진다. 이는 점 \( a \)가 \( xy \)평면에서 시계 방향으로 \( \theta \)만큼 회전한 것과 동일하다. 점 \( a \)를 \( xy \)평면에서 시계 방향으로 회전했을 때, 점 \( a \)와 \( x \)축의 거리가 동일하게 짧아지기 때문이다.
즉, 축이 반시계 방향으로 회전한 것은 점이 시계 방향으로 회전한 것과 동일하다.
■ 축이 반시계 방향(= \( \theta \))으로 회전한 것과 점이 시계 방향(= \( - \theta \))으로 회전한 것은 똑같으므로, 축 회전 행렬은 기존 점 회전 행렬 \( \begin{pmatrix} \cos \theta & - \sin \theta \\ \sin \theta & \cos \theta \end{pmatrix} \)이 시계 방향으로 회전한 것이므로 \( \theta \)의 부호는 반대가 되어야 한다.
따라서 축 회전 행렬은 \( \begin{pmatrix} \cos (-\theta) & - \sin (-\theta) \\ \sin (-\theta) & \cos (-\theta) \end{pmatrix} = \begin{pmatrix} \cos \theta & \sin \theta \\ - \sin \theta & \cos \theta \end{pmatrix} \)가 된다.
- \( \cos \)은 우함수, \( \sin \)은 기함수, \( \cos(-\theta) = \cos \theta, \; \sin(-\theta) = - \sin \theta \)
■ 축 회전 행렬 \( \begin{pmatrix} \cos \theta & \sin \theta \\ - \sin \theta & \cos \theta \end{pmatrix} \)을 \( A \)라고 하자. 그러면 \( A \)를 기존 축에 적용하면, 다음과 같이 회전축이 바뀐다.
■ \( A \begin{pmatrix} x \\ y \end{pmatrix} = \begin{pmatrix} X \\ Y \end{pmatrix} \Rightarrow \begin{pmatrix} \cos \theta & \sin \theta \\ - \sin \theta & \cos \theta \end{pmatrix} \begin{pmatrix} x \\ y \end{pmatrix} = \begin{pmatrix} X \\ Y \end{pmatrix} \)이다.
■ 여기서 축 회전 행렬은 직교행렬임을 알 수 있다. 직교행렬은 \( A^{-1} = A^T \)의 성질이 있으므로, 양변의 좌측에 \( A^{-1} \)을 곱하면 \( \Rightarrow \begin{pmatrix} x \\ y \end{pmatrix} = \begin{pmatrix} \cos \theta & \sin \theta \\ - \sin \theta & \cos \theta \end{pmatrix}^{-1} \begin{pmatrix} X \\ Y \end{pmatrix} \Leftrightarrow \begin{pmatrix} x \\ y \end{pmatrix} = \begin{pmatrix} \cos \theta & \sin \theta \\ - \sin \theta & \cos \theta \end{pmatrix}^T \begin{pmatrix} X \\ Y \end{pmatrix} \Rightarrow \begin{pmatrix} x \\ y \end{pmatrix} = \begin{pmatrix} \cos \theta & - \sin \theta \\ \sin \theta & \cos \theta \end{pmatrix} \begin{pmatrix} X \\ Y \end{pmatrix} \)가 된다. 이 과정에서 축 회전 행렬이 점 회전 행렬 \( \begin{pmatrix} \cos \theta & - \sin \theta \\ \sin \theta & \cos \theta \end{pmatrix} \)형태가 되는 것을 볼 수 있다.
■ 정리하면, 점 회전은 \( \begin{pmatrix} \cos \theta & - \sin \theta \\ \sin \theta & \cos \theta \end{pmatrix} \begin{pmatrix} x \\ y \end{pmatrix} = \begin{pmatrix} x' \\ y' \end{pmatrix} \), 여기서 \( (x, y) \)는 점 \( p \)의 좌표, \( (x', y') \)는 점 \( p' \)의 좌표
축 회전은 \( \begin{pmatrix} x \\ y \end{pmatrix} = \begin{pmatrix} \cos \theta & - \sin \theta \\ \sin \theta & \cos \theta \end{pmatrix} \begin{pmatrix} X \\ Y \end{pmatrix} \), 여기서 기존 축 \( \begin{pmatrix} x \\ y \end{pmatrix} \)을 \( \mathbf{v} \), 점 회전 행렬을 \( P \), 새로운 축 \( \begin{pmatrix} X \\ Y \end{pmatrix} \)을 \( \mathbf{w} \)라고 하면 축 회전을 \( \mathbf{v} = P \mathbf{w} \)로 나타낼 수 있다.
■ 그리고 점 회전 행렬을 \( \begin{pmatrix} \cos \theta & - \sin \theta \\ \sin \theta & \cos \theta \end{pmatrix} = A \)라고 하자. 그러면 행렬 \( A \)를 \( n \)번 곱한, \( A^n \)은 \( A^n = \begin{pmatrix} \cos (n \theta) & - \sin (n \theta) \\ \sin (n \theta) & \cos (n \theta) \end{pmatrix} \)가 된다.
이것이 성립하는 이유는, 예를 들어 \( A^2 \)은 \( A^2 = A A \)로 점 회전 행렬을 두 번 곱한 것. 즉, 다음 그림처럼 \( \theta \)만큼 두 번 회전하는 것이다.
즉, \( A^3 \)이면 \( \theta \)를 3번, \( A^4 \)이면, \( \theta \)를 4번, .... 따라서 \( A^n \)이면 \( n \theta \)만큼 이동한 것이다.
1.2 \( \mathbb{R}^3 \)일 때 회전변환
■ \( \mathbb{R}^3 \)은 3개의 축을 가지므로, \( \mathbb{R}^3 \)에서 \( \theta \)만큼 반시계 방향으로 회전변환하는 행렬의 경우를 3가지로 나눌 수 있다.
- 이 3가지 경우는
- ① 양의 \( x \)축을 중심으로 각 \( \theta \)만큼 반시계 방향으로 회전변환을 나타내는 행렬.
- ② 양의 \( y \)축을 중심으로 각 \( \theta \)만큼 반시계 방향으로 회전변환을 나타내는 행렬.
- ③ 양의 \( z \)축을 중심으로 각 \( \theta \)만큼 반시계 방향으로 회전변환을 나타내는 행렬.
1.2.1 양의 \( x \)축을 중심으로 각 \( \theta \)만큼 반시계 방향으로 회전변환을 나타내는 행렬
■ 양의 \( x \)축을 중심으로 \( \theta \)만큼 반시계 방향으로 회전시킨 모습은 다음과 같다.
■ 이때의 회전은 \( x \)축을 중심으로 하기 때문에 \( x \)는 변하지 않는다.
■ 그러므로 이 회전은 다음 그림처럼 '\( y-z \)평면에서 점이 반시계 방향으로 회전한 점 회전과 동일'하다고 볼 수 있다.
■ 이렇게 양의 \( x \)축을 중심으로 각 \( \theta \)만큼 반시계 방향으로 회전변환은, \( x \)는 변하지 않고 \( y-z \)평면에서 반시계 방향으로 점 회전 \( \begin{pmatrix} \cos \theta & - \sin \theta \\ \sin \theta & \cos \theta \end{pmatrix} \)한 것이므로, 이때의 회전변환을 나타내는 행렬은 \( \begin{pmatrix} 1 & 0 & 0 \\ 0 & \cos \theta & - \sin \theta \\ 0 & \sin \theta & \cos \theta \end{pmatrix} \)로 표현할 수 있다.
■ 그러므로, \( \mathbb{R}^3 \)에서 점 \( p = \begin{pmatrix} x \\ y \\ z \end{pmatrix} \)를 양의 \( x \)축을 중심으로 각 \( \theta \)만큼 반시계 방향으로 회전변환을 적용한 결과가 점 \( p' \)라면, 회전시키기 전의 점 \( p \)와 회전이동된 후의 점 \( p' = \begin{pmatrix} x \\ y' \\ z' \end{pmatrix} \)의 관계를 다음과 같이 나타낼 수 있다.
\( \begin{pmatrix} 1 & 0 & 0 \\ 0 & \cos \theta & - \sin \theta \\ 0 & \sin \theta & \cos \theta \end{pmatrix} \begin{pmatrix} x \\ y \\ z \end{pmatrix} = \begin{pmatrix} x \\ y' \\ z' \end{pmatrix} \)
1.2.2 양의 \( y \)축을 중심으로 각 \( \theta \)만큼 반시계 방향으로 회전변환을 나타내는 행렬
■ 양의 \( y \)축을 중심으로 \( \theta \)만큼 반시계 방향으로 회전시킨 모습은 다음과 같다.
■ 이때의 회전은 \( y \)축을 중심으로 하기 때문에 \( y \)는 변하지 않는다.
■ 그러므로 이 회전은 다음 그림처럼 '\( x-z \)평면에서 점이 시계 방향으로 회전한 점 회전과 동일'하다고 볼 수 있다.
■ 이렇게 '\( \mathbb{R}^3 \)에서 양의 \( y \)축을 중심으로 각 \( \theta \)만큼 반시계 방향으로 회전변환은, \( y \)는 변하지 않고 \( \mathbb{R}^2 \)의 \( x-z \)평면에서 시계 방향으로 점 회전 \( \begin{pmatrix} \cos \theta & - \sin \theta \\ \sin \theta & \cos \theta \end{pmatrix} \)한 것'이므로, \( \theta \)의 부호는 반대가 되어야 한다. 그러므로, 이때의 회전변환을 나타내는 행렬은 \( \begin{pmatrix} \cos ( - \theta) & 0 & - \sin ( - \theta) \\ 0 & 1 & 0 \\ \sin ( - \theta) & \ 0 & \cos ( - \theta) \end{pmatrix} = \begin{pmatrix} \cos \theta & 0 & \sin \theta \\ 0 & 1 & 0 \\ - \sin \theta & \ 0 & \cos \theta \end{pmatrix} \)로 표현할 수 있다.
■ 다시 말해, \( \begin{pmatrix} \cos \theta & 0 & \sin \theta \\ 0 & 1 & 0 \\ - \sin \theta & \ 0 & \cos \theta \end{pmatrix} \) 행렬이 양의 \( y \)축을 중심으로 각 \( \theta \)만큼 반시계 방향으로 회전변환을 나타내는 행렬이다.
■ 그러므로, \( \mathbb{R}^3 \)에서 점 \( p = \begin{pmatrix} x \\ y \\ z \end{pmatrix} \)를 양의 \( y \)축을 중심으로 각 \( \theta \)만큼 반시계 방향으로 회전변환을 적용한 결과가 점 \( p' \)라면, 회전시키기 전의 점 \( p \)와 회전이동된 후의 점 \( p' = \begin{pmatrix} x' \\ y \\ z' \end{pmatrix} \)의 관계를 다음과 같이 나타낼 수 있다.
\( \begin{pmatrix} \cos \theta & 0 & \sin \theta \\ 0 & 1 & 0 \\ - \sin \theta & \ 0 & \cos \theta \end{pmatrix} \begin{pmatrix} x \\ y \\ z \end{pmatrix} = \begin{pmatrix} x' \\ y \\ z' \end{pmatrix} \)
1.2.3 양의 \( z \)축을 중심으로 각 \( \theta \)만큼 반시계 방향으로 회전변환을 나타내는 행렬
■ 양의 \( z \)축을 중심으로 \( \theta \)만큼 반시계 방향으로 회전시킨 모습은 다음과 같다.
■ 이때의 회전은 \( z \)축을 중심으로 하기 때문에 \( z \)는 변하지 않는다.
■ 그러므로 이 회전은 다음 그림처럼 '\( x-y \)평면에서 점이 반시계 방향으로 회전한 점 회전과 동일'하다고 볼 수 있다.
■ 이렇게 양의 \( z \)축을 중심으로 각 \( \theta \)만큼 반시계 방향으로 회전변환은, \( z \)는 변하지 않고 \( x-y \)평면에서 반시계 방향으로 점 회전 \( \begin{pmatrix} \cos \theta & - \sin \theta \\ \sin \theta & \cos \theta \end{pmatrix} \)한 것이므로, 이때의 회전변환을 나타내는 행렬은 \( \begin{pmatrix} \cos \theta & - \sin \theta & 0 \\ \sin \theta & \cos \theta & 0 \\ 0 & 0 & 1 \end{pmatrix} \)로 표현할 수 있다.
■ 다시 말해, \( \begin{pmatrix} \cos \theta & - \sin \theta & 0 \\ \sin \theta & \cos \theta & 0 \\ 0 & 0 & 1 \end{pmatrix} \) 행렬이 양의 \( z \)축을 중심으로 각 \( \theta \)만큼 반시계 방향으로 회전변환을 나타내는 행렬이다.
■ 그러므로, \( \mathbb{R}^3 \)에서 점 \( p = \begin{pmatrix} x \\ y \\ z \end{pmatrix} \)를 양의 \( z \)축을 중심으로 각 \( \theta \)만큼 반시계 방향으로 회전변환을 적용한 결과가 점 \( p' \)라면, 회전시키기 전의 점 \( p \)와 회전이동된 후의 점 \( p' = \begin{pmatrix} x' \\ y' \\ z \end{pmatrix} \)의 관계를 다음과 같이 나타낼 수 있다.
\( \begin{pmatrix} \cos \theta & - \sin \theta & 0 \\ \sin \theta & \cos \theta & 0 \\ 0 & 0 & 1 \end{pmatrix} \begin{pmatrix} \ x \\ y \\ z \end{pmatrix} = \begin{pmatrix} x' \\ y' \\ z \end{pmatrix} \)
참고) 회전변환 행렬 유도: https://gaussian37.github.io/math-la-rotation_matrix/
1.3 \( \mathbb{R}^3 \)에서 회전행렬이 주어졌을 때, 회전각과 회전축
■ 이 내용은 회전행렬이 주어졌을 때 다음과 같이 \( \mathbb{R}^3 \)에서 원점을 지나가는 직선을 기준으로 회전했을 때, 그 회전각과 회전축에 대한 얘기이다.
■ 먼저, 회전행렬은 직교행렬이므로 회전행렬을 \( A \)라고 했을 때, 행렬 \( A \)의 행렬식 값은 1이다. 그러므로, \( \mathbb{R}^3 \)에서 주어진 회전행렬 \( A_{3 \times 3} \)도 직교행렬로서 행렬식 값은 1이 된다. \( \det{(A_{3 \times 3})} = 1 \)
■ 점 \( p \)에 원점을 지나가는 직선을 기준으로 회전행렬 \( A \)를 적용했을 때, 이 \( A \)의 곱은 어떤 회전축(원점을 지나가는 직선)에 관하여 반시계 방향으로 \( \cos \theta = \dfrac{\text{tr} A - 1}{2} \)를 만족하는 각도 \( \theta \)만큼의 회전이다.
- 즉, 회전각 \( \theta \)는 \( \theta = \cos^{-1} \left( \dfrac{\text{tr} A - 1}{2} \right) \)를 통해 얻어야 한다.
■ 그리고 위의 그림에서 원점에서 점 \( p \)까지의 위치벡터(position vector)에 회전행렬 \( A \)를 곱했을 때, 원점에서 점 \( p' \)까지의 위치벡터(position vector)로 변환된 것. 즉, 위치벡터를 \( \theta \)만큼 회전시켰다고 볼 수 있다.
- 위치벡터는 원점 \( O \)를 시점으로 공간 내의 임의의 한 점 \( P \)를 끝점으로 하는 벡터이다.
■ 회전축도 벡터의 관점에서 보면, 여기서의 회전축은 원점을 지나가는 직선이 뻗어나가는 방향. 즉, 원점을 지나가는 직선의 방향벡터 \( \mathbf{v} \)라고 볼 수 있다.
■ 만약, 이 원점을 지나가는 직선에 회전을 시켰다고 생각해 보자. 회전 결과는 결국, 자기 자신인 원점을 지나가는 직선이 된다. 즉. 어떤 회전축에 회전을 걸어도 그 결과는 그대로 그 회전축이다.
■ 이를 \( A \mathbf{v} = \mathbf{v} \)로 나타낼 수 있다. \( A \mathbf{v} = \mathbf{v} \)는 회전축을 기준으로 회전축 벡터 \( \mathbf{v} \)에 아무리 회전행렬 \( A \)로 회전을 시켜봤자 회전 결과는 결국, 자기 자신인 회전축 벡터 \( \mathbf{v} \)가 된다.
■ 즉, 여기서 \( A \mathbf{v} = \mathbf{v} \) 식의 의미는 회전행렬에 회전축 벡터를 곱하면 다시 회전축 벡터가 결과로 나온다는 것이며, 고유방정식 \( A \mathbf{v} = \lambda \mathbf{v} \)를 생각한다면, \( A \mathbf{v} = \mathbf{v} \)는 고윳값이 1인, \( A \mathbf{v} = 1 \cdot \mathbf{v} \). 즉, 회전축 벡터 \( \mathbf{v} \)는 \( \lambda = 1 \)이 되는 고유벡터라고 생각할 수 있다.
■ 그러므로 여기서의 회전행렬 \( A_{3 \times 3} \)의 고윳값 \( \lambda = 1 \)에 대응하는 고유공간은 원점을 지나가는 직선이고 회전축이라고 할 수 있다.
참고) 회전행렬이 주어졌을 때, 회전각 \( \theta \)를 \( \cos \theta = \dfrac{\text{tr} A - 1}{2} \)로 공식화
- 먼저, \( \mathbb{R}^3 \)에서 원점을 지나가는 직선을 기준으로 회전했을 때, 원점을 지나가는 직선의 방향벡터를 단위벡터로 설정한다면 회전변환 행렬의 공식은 다음과 같이 나타낼 수 있다.
- \( \mathbb{R}^3 \)에서 회전축의 방향벡터가 단위벡터 \( \mathbf{u} = (a, b, c) \)일 때, 회전각이 \( \theta \)인 회전의 회전변환 (표준)행렬은
\(
\begin{bmatrix}
aa (1 - \cos\theta) + \cos\theta & ab(1 - \cos\theta) - c\sin\theta & ac(1 - \cos\theta) + b\sin\theta \\
ab(1 - \cos\theta) + c\sin\theta & bb (1 - \cos\theta) + \cos\theta & bc(1 - \cos\theta) - a\sin\theta \\
ac(1 - \cos\theta) - b\sin\theta & bc(1 - \cos\theta) + a\sin\theta & cc (1 - \cos\theta) + \cos\theta
\end{bmatrix}
\)이다.
- 예를 들어, 선형사상 \( T: \mathbb{R}^3 \rightarrow \mathbb{R}^3 \)은 직선 \( x = -y = z \)를 중심으로 \( 120^\circ \)회전하는 사상이라고 할 때, \( T(1, 2, 3) \)은
- 직선이 \( x = -y = z \)이므로 직선의 단위방향벡터는 \( \mathbf{u} = \left( \dfrac{1}{\sqrt{3}}, - \dfrac{1}{\sqrt{3}}, \dfrac{1}{\sqrt{3}} \right) \)이고, \( \theta = \dfrac{3}{2} \pi \)이다.
- 직선의 단위방향벡터와 주어진 \( \theta \)값을 사용하면 회전변환 행렬은 \( \begin{pmatrix} 0 & -1 & 0 \\ 0 & 0 & -1 \\ 1 & 0 & 0 \end{pmatrix} \)이다.
- 이 선형변환(선형사상)의 행렬표현. 즉, 회전변환 행렬은 \( \begin{pmatrix} 0 & -1 & 0 \\ 0 & 0 & -1 \\ 1 & 0 & 0 \end{pmatrix} \)이며, 이 회전변환 행렬을 이용해 \( \begin{pmatrix} 1 \\ 2 \\ 3 \end{pmatrix} \)를 변환시켜는 것이므로
- \( \begin{pmatrix} 0 & -1 & 0 \\ 0 & 0 & -1 \\ 1 & 0 & 0 \end{pmatrix} \begin{pmatrix} 1 \\ 2 \\ 3 \end{pmatrix} \ = \begin{pmatrix} -2 \\ -3 \\ 1 \end{pmatrix} \)이 된다.
- 그러므로 \( T(1, 2, 3) = (-2, -3, 1) \)이다.
- 다시 돌아와서,
- 주어진 회전변환 행렬에 대한 회전각 \( \theta \)에 대한 공식인 \( \cos \theta = \dfrac{\text{tr} A - 1}{2} \)이 나온 이유는
- 회전각도 \( \theta \)는 같은 회전행렬이라도, 회전축의 방향이 반시계 방향인지 시계 방향인지에 따라 회전각도의 부호가 \( \theta \), \( - \theta \)로 달라진다는 것을 확인하였다.
- 그러므로, 회전축의 방향을 모르면 회전각도 \( \theta \)를 구할 수 없다.
- 대신, \( \cos \theta \)에 대한 공식화를 할 수 있다. \( \cos \)은 우함수로 \( \theta \)가 양( = \( \theta \))인지, 음( = \( -\theta \))인지에 상관없이 때문이다. 즉, 회전축의 방향이 시계 방향인지, 반시계 방향인지에 상관없이 \( \cos \)은 \( \cos \)임을 이용하는 것이다.
- 모든 회전행렬은 위의 회전 (표준)행렬 형태를 가지고 있다. \(
\begin{bmatrix}
a^2 (1 - \cos\theta) + \cos\theta & ab(1 - \cos\theta) - c\sin\theta & ac(1 - \cos\theta) + b\sin\theta \\
ab(1 - \cos\theta) + c\sin\theta & b^2 (1 - \cos\theta) + \cos\theta & bc(1 - \cos\theta) - a\sin\theta \\
ac(1 - \cos\theta) - b\sin\theta & bc(1 - \cos\theta) + a\sin\theta & c^2 (1 - \cos\theta) + \cos\theta
\end{bmatrix}
\)
- 이 회전 행렬을 \( A \)라고 했을 때, \( A \)의 대각합을 계산하면, \( \text{tr} A = \left( a^2 + b^2 + c^2 \right) \left( 1 - \cos \theta \right) + 3 \cos \theta \)이며, 여기서 \( a, b, c \)는 회전축의 단위방향벡터의 성분이므로 \( a^2 + b^2 + c^2 = 1 \)이 된다.
- 그러므로 대각합 \( \text{tr} A = 2 \cos \theta + 1 \)이며, 이 식을 \( \cos \theta \)에 대한 식으로 나타내면 \( \cos \theta = \dfrac{ \text{tr} A -1}{2} \)가 성립한다.
- 회전축의 방향을 몰라서 \( A \)의 회전각 \( \theta \)를 구할 수 없는 상황이어도, \( \cos \theta = \dfrac{ \text{tr} A -1}{2} \)을 통해 회전행렬 \( A \)의 회전각 \( \theta \)를 계산할 있다.
2. 직교 대각화를 이용한 회전변환
■ 직교 대각화를 이용한 회전변환은 직교 대각화와 축 회전을 동시에 적용하는 것을 말한다.
■ 2차형식 \( ax^2 + 2bxy + cy^2 = \begin{pmatrix} x & y \end{pmatrix} \begin{pmatrix} a & b \\ c & d \end{pmatrix} \begin{pmatrix} x \\ y \end{pmatrix} = \mathbf{v}^T A \mathbf{v} \)로 나타낼 수 있다.
■ 이때, 행렬 \( A \)는 대칭행렬이므로 직교대각화 가능하다. 직교 대각화를 이용한 회전변환은 \( \mathbf{v}^T A \mathbf{v} \)에 직교 대각화와 축 회전을 동시에 적용하는 것이다.
■ \( \mathbf{v} = \begin{pmatrix} x \\ y \end{pmatrix} \)이며 새로운 축을 \( \mathbf{w} = \begin{pmatrix} X \\ Y \end{pmatrix} \)라고 했을 때, 축 회전 행렬을 \( R \)이라고 하자. 그러면 기존 축에 적용하여 \( R \mathbf{v} = \mathbf{w} \)로 변환할 수 있었다.
■ 그리고 \( R \mathbf{v} = \mathbf{w} \)식의 양변 좌측에 축 회전 행렬의 역행렬을 곱했을 때, 즉, 기존 좌표계와 새로운 좌표계에서의 관계는 \( \mathbf{v} = P \mathbf{w} \)로 나타낼 수 있으며, 이 때의 \( P \)는 \( \begin{pmatrix} \cos \theta & - \sin \theta \\ \sin \theta & \cos \theta \end{pmatrix} \)로 각도 \( \theta \)만큼 좌표계를 회전시키는 역할을 하는 행렬이었다.
■ 직교 대각화를 이용한 회전변환의 핵심은 축 회전 행렬 \( P \)와 대칭행렬 \( A \)를 직교 대각화시키는 행렬 \( P \)를 매칭시킬 수 있다는 것이다.
- 축 회전 행렬도 직교행렬이고 대칭행렬 \( A \)를 직교대각화시키는 행렬도 직교행렬이다.
- 회전 행렬 \( P \)와 대칭행렬 \( A \)를 직교 대각화시키는 행렬 \( P \)를 매칭 시키는 방법은
- 대칭행렬 \( A \)를 직교 대각화시키는 직교행렬 \( P \)의 열벡터는 대칭행렬 \( A \)의 고유벡터이자 직교행렬의 성질에 의해 각 행(열)벡터의 크기가 1이어야 하므로
- 직교 대각화시키는 직교행렬 \( P \)의 열벡터는 대칭행렬 \( A \)의 '단위'고유벡터로 구성된다는 점을 이용하면 된다.
- 여기서는 \( 2 \times 2 \)크기의 대칭행렬 \( A \)를 예시로 사용하고 있다. 그러므로 이 예시에서 대칭행렬 \( A \)를 직교 대각화시키는 직교행렬 \( P \)는 \( 2 \times 2 \)이며,
- 마찬가지로 \( \mathbf{v} = P \mathbf{w} \)의 축 회전 행렬 \( P \)의 크기도 \( 2 \times 2 \)인 상태이다.
- 여기서 축 회전 행렬 \( P \)의 열벡터로 대칭행렬 \( A \)의 '단위'고유벡터를 넣으면, 축 회전 행렬 \( P \)는 직교행렬을 유지하게 된다.
- 이렇게 축 회전 행렬 \( P \)와 직교 대각화시키는 행렬 \( P \)를 매칭시킬 수 있다.
■ 즉, \( P \)의 열벡터가 '단위'고유벡터가 되면 열벡터의 크기가 1이고 서로 수직이므로, \( P \)는 직교행렬이 되면서 축 회전까지 적용할 수 있는 것이다.
■ 이 회전은 \( ax^2 + 2bxy + cy^2 = \mathbf{v}^T A \mathbf{v} \)에서 \( \mathbf{v} = P \mathbf{w} \) 치환에 의하여 이루어진다.
\( \mathbf{v}^T A \mathbf{v} \)에서 \( \mathbf{v} = P \mathbf{w} \)로 치환하면 \( \left( P \mathbf{w} \right)^T A \left( P \mathbf{w} \right) = \mathbf{w}^T P^T A P \mathbf{w} \)가 된다. 여기서 \( P \)가 직교행렬이면, \( P^T A P \Leftrightarrow P^{-1} A P = D \)가 성립하며, \( \mathbf{w} \)는 새로운 축 \( X, Y \)이므로
\( \left( P \mathbf{w} \right)^T A \left( P \mathbf{w} \right) = \mathbf{w}^T P^T A P \mathbf{w} = \mathbf{w}^T D \mathbf{w} = \begin{pmatrix} X & Y \end{pmatrix} \begin{pmatrix} \lambda_1 & 0 \\ 0 & \lambda_2 \end{pmatrix} \begin{pmatrix} X \\ Y \end{pmatrix} = \lambda_1 X^2 + \lambda_2 X^2 \)가 된다.
■ 다시 말해, 직교 대각화를 이용한 회전변환은 직교 대각화와 축 회전을 동시에 적용하는 것이며, 이것을 가능하게 하는 핵심은 축 회전 행렬 \( P \)와 대칭행렬 \( A \)를 직교 대각화시키는 행렬 \( P \)를 매칭시킬 수 있다는 것이다. 매칭시키는 방법은 축 회전 행렬의 열벡터를 대칭행렬 \( A \)의 단위고유벡터로 설정하는 것이다. 이렇게 만든 \( P \)를 통해 축 회전하면서 직교 대각화까지 수행할 수 있다.
■ 그리고 2차형식 \( ax^2 + 2bxy + cy^2 = \mathbf{v}^T A \mathbf{v} \)에 직교대각화를 이용한 회전변환을 수행한 결과, \( \mathbf{w}^T D \mathbf{w} = \lambda_1 X^2 + \lambda_2 Y^2 \)으로 기존 축에서 새로운 축으로 넘어가자 2차형식의 혼합항인 \( xy \)가 없는 꼴로 변수변환된 것을 볼 수 있다. 이것을 주축정리(principal axis theorem)이라고 한다.
■ 이 예시에서는 두 개의 변수에 대한 2차형식이므로 직교대각화를 이용한 회전변환을 수행했을 때 \( ax^2 + 2bxy + cy^2 = \lambda_1 X^2 + \lambda_2 Y^2 \)가 된 것이다.
그리고 이때의 주축정리는 \( ax^2 + 2bxy + cy^2 = \lambda_1 X^2 + \lambda_2 Y^2 \)
■ \( n \)개의 변수에 대한 2차형식에 \( \mathbf{x}^T A \mathbf{x} \)에서 직교 대각화를 이용한 회전변환을 통해 \( \mathbf{x}^T A \mathbf{x} = \mathbf{y}^T D \mathbf{y} \)로 만들었다면, 이때의 \( D \)는 대각행렬이므로 \( \mathbf{y}^T D \mathbf{y} \)라는 2차형식은 혼합항이 없는 형태가 되는 것이다.
즉, \( \mathbf{y}^T D \mathbf{y} = \lambda_1 y^2_1 + \lambda_2 y^2_2 + \cdots + \lambda_n y^2_n \)으로 혼합항이 없는 형태로 변수변환하여 쓸 수 있다. 이것은 \( n \)개의 변수에 대한 2차형식의 주축정리를 공식화한 것이다.
- 여기서 \( \lambda_1, \lambda_2, \cdots, \lambda_n \)은 \( A \)의 고윳값이다.
■ 이러한 주축정리를 이용하면, 이차 곡선 및 이차 곡면을 다룰 때 혼합항을 무시할 수 있다.
■ 예를 들어 \( 3x^2 - 4xy + 3y^2 = 1 \)이라고 했을 때,
- \( 3x^2 - 4xy + 3y^2 = 1 \Leftrightarrow \begin{pmatrix} x & y \end{pmatrix} \begin{pmatrix} 3 & -2 \\ -2 & 3 \end{pmatrix} \begin{pmatrix} x \\ y \end{pmatrix} = 1 \Leftrightarrow \mathbf{v}^T A \mathbf{v} = 1 \)로 나타낼 수 있다.
- 대칭행렬 \( A \)의 고윳값과 그 고윳값에 대응하는 고유벡터를 계산하면
- 고유방정식은 \( \lambda^2 - 6 \lambda + 5 = 0 \)이므로 \( \lambda = 1, 5 \)이다.
- \( lambda_1 = 1 \)에 대응하는 고유벡터 중 가장 간단한 고유벡터는 \( \mathbf{v}_1 = \begin{pmatrix} 1 \\ 1 \end{pmatrix} \)
- \( \lambda_2 = 5 \)에 대응하는 고유벡터 중 가장 간단한 고유벡터는 \( \mathbf{v}_2 = \begin{pmatrix} -1 \\ 1 \end{pmatrix} \)이다.
- 직교행렬인 축 회전 행렬 \( P \)와 대칭행렬 \( A \)를 직교 대각화시키는 직교행렬 \( P \)를 매칭시키기 위해서는 행렬 \( P \)를 대칭행렬 \( A \)의 '단위'고유벡터를 열벡터로 구성하는 행렬로 만들어야 한다.
- 그러면, 축 회전 행렬이자 직교 대각화시키는 행렬인 \( P \)는 \( P = \begin{pmatrix} 1 / \sqrt{2} & - 1 / \sqrt{2} \\ 1 / \sqrt{2} & 1 / \sqrt{2} \end{pmatrix} \)가 된다.
- 이 행렬 \( P \)는 축 회전 행렬도 되므로 \( \mathbf{v} = P \mathbf{w} = \begin{pmatrix} 1 / \sqrt{2} & - 1 / \sqrt{2} \\ 1 / \sqrt{2} & 1 / \sqrt{2} \end{pmatrix} \mathbf{w} \)로 나타낼 수 있다.
- 이때, \( P \)는 축 회전 행렬이므로 \( \theta \)는 \( 45^\circ \)임을 알 수 있다.
\( \begin{pmatrix} \cos 45^\circ & - \sin 45^\circ \\ \sin 45^\circ & \cos 45^\circ \end{pmatrix} = \begin{pmatrix} 1 / \sqrt{2} & - 1 / \sqrt{2} \\ 1 / \sqrt{2} & 1 / \sqrt{2} \end{pmatrix} \)이므로 \( \theta = 45^\circ \)
- 이제 \( \mathbf{v}^T A \mathbf{v} \)에서 \( \mathbf{v} = P \mathbf{w} \) 치환을 이용하면, 지금 \( \mathbf{v} = P \mathbf{w} \)의 식에서 행렬 \( P \)가 축 회전 행렬이자 직교 대각화시키는 행렬이기 때문에 직교 대각화를 이용한 회전변환이 적용된다.
- \( \mathbf{v}^T A \mathbf{v} = 1 \)에 \( \mathbf{v} = P \mathbf{w} \)를 적용하면, \( \mathbf{v}^T A \mathbf{v} = 1 \Leftrightarrow \mathbf{w}^T D \mathbf{w} = 1 \)이 된다.
- \( \mathbf{w}^T D \mathbf{w} = 1 \Leftrightarrow \begin{pmatrix} X & Y \end{pmatrix} \begin{pmatrix} 1 & 0 \\ 0 & 5 \end{pmatrix} \begin{pmatrix} X \\ Y \end{pmatrix} = 1 \Leftrightarrow 1 \cdot X^2 + 5 \cdot Y^2 =1 \)이 된다.
-- \( \lambda_1 = 1, \lambda_2 = 5 \)였으므로
- \( 1 \cdot X^2 + 5 \cdot Y^2 = 1 \)의 형태는 타원이다.
- 그러므로 이 예시는 기존 \( x, y \)축 에서 타원 \( 3x^2 - 4xy + 3y^2 = 1 \)을 \( \theta = 45^\circ \)만큼 \( x, y \)축을 회전시켜 새로운 \( X, Y \)축에서 타원 \( 1 \cdot X^2 + 5 \cdot Y^2 = 1 \)을 나타낸 것이다.
- 즉, 새로운 축 \( X, Y \)입장에서는 \( 3x^2 - 4xy + 3y^2 = 1 \)은 \( 1 \cdot X^2 + 5 \cdot Y^2 = 1 \)이라는 타원이다.
- 그리고 \( \lambda_1 = 1, \lambda_2 = 5 \)에 대응하는 고유벡터 \( \mathbf{v}_1, \mathbf{v}_2 \)는 각각 새로운 축 \( X, Y \)의 방향(벡터)라는 것을 알 수 있다.
-- 다음 그림과 같이 \( \mathbf{v}_1, \mathbf{v}_2 \)이 각각 새로운 축인 \( X, Y \)축의 방향이 된다.
■ \( \mathbf{v}^T A \mathbf{v} \)에서 대칭행렬이 \( A \)일 때, 대칭행렬의 고유벡터를 구하기 전, 축이 얼마만큼 회전되었는지를( = \( \theta \))를 공식으로 구할 수 있다. 이 공식은 두 좌표계의 주축끼리의 사잇각으로 \( \tan 2 \theta = \dfrac{2b}{a-c} \)이다.
- \( \tan 2 \theta = \dfrac{2b}{a-c} \)에서 \( a, b, c \)는 이차형식 \( ax^2 + 2bxy + cy^2 \)의 각 항의 계수이다.
- 위의 예시에서 \( a = 3, b = -4, c = 3 \)이므로 \( \tan 2 \theta = \dfrac{-4}{0} = \infty \Rightarrow 2 \theta = \dfrac{\pi}{2} \Rightarrow \theta = \dfrac{\pi}{4} = 45^\circ \)
참고) 주축정리와 고윳값들의 곱은 행렬식 값과 동일하다는 것을 이용하면, 형태가 타원인지, 쌍곡선인지, 포물선인지 확인할 수 있다.
- 이차형식 \( ax^2 + 2bxy + cy^2 = 1 \)은 주축정리에 의해 \( ax^2 + 2bxy + cy^2 = 1 \Leftrightarrow \begin{pmatrix} x & y \end{pmatrix} \begin{pmatrix} a & b \\ c & d \end{pmatrix} \begin{pmatrix} x \\ y \end{pmatrix} = 1 \Leftrightarrow \lambda_1 X^2 + \lambda_2 Y^2 = 1 \)로 나타낼 수 있다.
- 행렬 \( A \)를 \( \begin{pmatrix} a & b \\ c & d \end{pmatrix} \)라고 했을 때,
-- ① 행렬 \( A \)의 고윳값의 곱 \( \lambda_1 \times \lambda_2 > 0 \)이면, \( \det{(A)} > 0 \)
-- 이 경우는 모든 고윳값이 양수인 경우이다.
-- ② 행렬 \( A \)의 고윳값의 곱 \( \lambda_1 \times \lambda_2 < 0 \)이면, \( \det{(A)} < 0 \)
-- 이 경우는 고윳값 중 하나가 양수이면, 다른 하나는 음수인 경우이다.
-- ③ 행렬 \( A \)의 고윳값의 곱 \( \lambda_1 = 0 \) 이거나 \( \lambda_2 = 0 \)이면, \( \det{(A)} = 0 \)
- 그리고 방정식 \( \lambda_1 X^2 + \lambda_2 Y^2 = 1 \)이 있을 때,
- \( \lambda_1 > 0, \lambda_2 > 0 \)이면, 이는 타원의 방정식이다. 이때, 모든 고윳값이 양수가 되어야 하는 것을 알 수 있다. 이것을 ① 행렬 \( A \)의 고윳값의 곱 \( \lambda_1 \times \lambda_2 > 0 \)이면, \( \det{(A)} > 0 \)와 연결시키면,
- 방정식 \( \lambda_1 X^2 + \lambda_2 Y^2 = 1 \)이 있을 때, \( \det{(A)} > 0 \)이면, 방정식 \( \lambda_1 X^2 + \lambda_2 Y^2 = 1 \)은 타원을 나타내는 방정식이라고 할 수 있다.
- 동일한 방법으로 \( \lambda_1 X^2 + \lambda_2 Y^2 = 1 \)이 있을 때, \( \det{(A)} < 0 \)이면 쌍곡선
-- 쌍곡선의 방정식은 계수 2개 중 하나가 음수인 형태
- \( \lambda_1 X^2 + \lambda_2 Y^2 = 1 \)이 있을 때, \( \det{(A)} = 0 \)이면 포물선
-- 포물선 방정식은 한 축 방향으로만 열린 형태. 즉, 한 방향으로는 이차 항이 없고, 다른 방향으로는 이차 항이 남아 있는 형태
'선형대수' 카테고리의 다른 글
Symmetric matrices and positive definiteness (0) | 2025.03.02 |
---|---|
Markov matrices (0) | 2025.02.27 |
Differential equations (0) | 2025.02.26 |
[개념] 대칭행렬의 직교 대각화, 스펙트럼 분해, 2차형식 (0) | 2025.02.24 |
Diagonalization and powers of A (0) | 2025.02.24 |