회전 행열(Rotation Matrices)
개 요 (Introduction)
회전 행열 R은 3-D 공간에서 물체의 회전을 표현한다. 이것은 변형구배(deformation gradients)와 극좌표분해(polar decomposition)에서 소개된 바 있다.
회전 행열은 좌표변환 행열 Q와는 다르지만 밀접하게 관련이 있다.
변환 행열은 물체를 고정한 채 좌표계의 변환만을 나타낸다. 반면에 회전 행열은 고정된 좌표계에서 물체의 회전을 표현한다. 종종 혼란스럽기도 하지만, 놀라운 사실은 각 행열은 다른 행열에 대해서 전치(tranpose) 행열이라는 것이다.
요 약 (Summary)
회전 행열 R은 좌표계는 고정하고 벡터와 텐서를 회전시키는데 쓰인다. 물체가 회전될 때 통상 이 물체와 관련된 벡터와 텐서도 같이 회전하게 된다.
회전 행열을 적용하는 일반적인 규칙은 좌표변환 행열(coordinate transformation matrix)과 동일하다.
2등급 텐서(2nd Rank Tensors)
그리고 텐서 표기법(tensor notation)으로는
2등급 텐서
2차원에서 R은
여기서 θ는 회전각도이다. R은 단지 Q의 전치, 즉,
회전 행열의 성질 (Rotation Matrix Properties) 회전 행열은 아래 2-D 벡터의 예에서 볼 수 있듯이 몇가지 특이한 성질을 가지고 있으며, 3-D에도 동일하게 적용된다. 이것들은 문제가 생겼을 경우 회전 행열의 정확성을 확인하는데 유용하다. 어느 회전 행열이 아래의 모든 항목을 통과하더라도 틀린 것일 수 있지만, 하나라도 불만족한다면 이것은 명백히 잘못된 것이다! ● R의 행열식(determinant)은 1이다. ● R의 역행열(inverse)은 그것의 전치(transpose)행열이다. ● 임의의 행 또는 열과 그 자신과의 내적(dot product)은 1이다. 예 : ● 임의의 행과 다른 행과의 내적은 0이다. 예 : ● 임의의 열과 다른 열과의 내적은 0이다. 예 : |
회전 행열의 곱셈 (Multiplication of Rotation Matrices) 위로부터 임의의 두개의 다른 행 또는 열 간의 내적은 0이고, 반면에 그 자신과의 내적은 1이다. 이것은 행열 및 텐서 표기법으로 아래와 같이 쓸 수 있다. 이것은 또한 회전 행열의 전치 행열은 그것의 역행열임을 보여준다. |
벡터의 회전 (Rotating of the Vector) 앞의 그림의 물체 상의 벡터가 이고 반시계 방향 50˚로 좌표계를 회전시키면 따라서 좌표변환된 벡터는 이다. 반대로, 물체 자신을 반시계 반향 50˚로 좌표계를 회전시키면 따라서 회전된 벡터는 이다. v'의 아포스트로피(')는 초기 v 벡터와 다름(이 경우는 회전된)을 의미하나, i와 j는 좌표계가 동일하므로 그대로이다. |
회전과 좌표변환 비교 (Comparing Rotations to Transformation) 앞의 예제에서는 벡터를 반시계 방향으로 50˚ 회전시켰다. 이번에는 대신에 좌표계를 시계방향으로 회전시키면, θ는 -50˚가 된다. 따라서, 벡터는 회전된 좌표계에서 다음과 같이 쓸 수 있다. 여기서 중요한 점은 앞의 예제에서 회전된 벡터와 이번 예제에서 반대로 회전된 좌표계에서의 벡터 성분값들은 동일하다는 것이다. |
3-D를 2-D로 축소 (3-D Reduction to 2-D) z-축을 기준으로 회전한다는 것은 z'과 z의 각도가 0˚를 유지하므로, cos(z', z)=1 이다. 반면에 cos(x', z)=cos(y', z)=cos(z', x)=cos(z', y)=0 이며, 이유는 이 축들이 이루는 각도는 모두 90˚이기 때문이다. y'과 x 사이 각도는 90˚+θ 이므로, cos(y', x)=cos(90˚+θ)=-sinθ. 같은 방법으로 x'과 y 사이의 각도는 90˚-θ 이므로, cos(x', y)=cos(90˚-θ)=sinθ. 위의 모두를 종합하면 이것은 3-D 행열 내에서 2-D 회전 행열을 나타낸다. |
회전 행열을 해석하고 생성하는 또 다른 방법은 다음과 같다.
여기서 "i'의 x성분"은 단위벡터 i'의 x성분이라는 의미이다. 다시 말하면, 단위벡터 i'의 기준 x, y, z 좌표계에 대한 첫번째 성분이다.
연속 회전 - 로우 (Successive Rotations - Roe Convention)
아래 그림에서 보여진 것과 같이, (1) z축을 중심으로 각도 Ψ 만큼 회전, 다음 (2) 새로운 y축(첫번째 z축 중심으로 회전된)을 중심으로 각도 Θ 만큼 회전, 마지막으로 (3) 기울어진 z축을 중심으로 다시 한번 Φ 만큼 회전한다.
로우 규약은 많이 쓰이긴 하나 한가지 불명확한 점이 있다. 그것은 Θ=0 이먄, Ψ와 Φ의 구분이 되지 않으며, 그 둘의 합만을 포함할 수 있다.
Ψ, Θ, Φ 순서대로 회전하면 회전 행열들은 아래와 같다.
로우 각도 예제 (Roe Angle Examples) 위의 그림에서, Ψ=60˚, Θ=30˚, Φ=45˚ 이라고 한다. 이들 로우 각도들은 다음과 같은 회전 행열은 준다. |
반대로 하기 - 회전 행열로부터 회전각도 결정 (Going In Reverse - Determining Roe Angles from a Rotation Matrix)
아래와 같은 값들은 갖는 회전 행열이 있을 때 이 행열에 해당하는 로우 각도들을 계산해 보자.
첫째로 가장 쉬운 단계는
두번째 단계는 다음과 같이 Ψ를 결정한다.
따라서
같은 방법으로
단, 위의 식들은 Θ가 매우 작지 않아야 한다. Θ가 미소한 경우, sinΘ도 매우 작게되어,
다행히, 이러한 경우(Θ→0) Ψ와 Φ가 서로 구별될 수 없음을 기억하면 된다. 이 때는 Φ를 0으로 정하고,
예제 : 행열로부터 로우 각도 구하기 (Example : Roe Angles from Matrix) 앞의 예제의 행열로 시작해서 반대로 풀어본다. 먼저 Θ가 0에 가깝지 않으므로, Ψ와 Φ를 다음과 같이 계산한다. 예상과 같이 원래 값들이 구하여 졌다: Ψ=60˚, Θ=30˚, 및 Φ=45˚ |
축 중심 회전 (Rotation About An Axis)
회전 행열은 정의하는 또 다른 방법은 회전 축 벡터 p와 이 p축을 중심으로 회전각 α를 정하는 것이다.
여기서
행열을 전개하면
늘 그렇듯이, 텐서 표기법으로 꽤 간결하게 쓸 수 있다.
Q의 텐서방정식과 유사성이 있음에 주목한다. 차이점은 단지 sinα 앞에 + 혹은 -일 뿐이다.
p가 단위벡터임을 아는 것이 매우 중요하다. 다른 길이의 벡터를 쓰면 잘못된 결과를 얻게 된다. 또한, 일반적으로 회전 각도로 α 대신 θ나 Φ를 사용한다. 하지만 여기서는 로우 규약 각도인 Ψ, Θ 및 Φ 와의 혼란을 피하기 위하여 α를 사용하였다. |
이 방법을 쓰면 물체의 회전을 가시화하기 용이하다. 예를 들면, 2-D의 경우 회전은 z-축을 중심으로 일어나므로, p=(0, 0, 1) 이다. 이것으로 다음 회전 행열이 유도된다. |
로우 각도와 마찬가지로, 회전 행열 R로부터 p와 α를 구하는게 가능하다. 첫번째 단계는 α를 결정한다. 이것은 행열의 대각합을 취하여 계산된다.
α가 결정되면, p의 성분들은 다음식으로 계산한다.
이들 3개 방정식은 텐서 표기법으로 아래와 같이 간단히 요약된다.
α=0 일 때는 p가 정의되지 않음에 유의한다. 이것은 "먼저 회전하지 않으면 회전축은 의미를 갖지 못한다"를 뜻한다.
P와 α 원래값 구하기 (Backing out P and α) 앞의 로우 각도: Ψ=60˚, Θ=30˚, 및 Φ=45˚에 해당하는 단일회전 p와 α를 결정하라. <풀이> 주어진 로우 각도에 해당하는 회전 행열은 α에 대해서 풀면 p에 대해서 풀면 따라서 해당 로우 각도는 주어진 축 p= (-0.0417, 0.3173, 0.9475)을 중심으로 108˚ 단일회전과 동일하다. |
역행열과 전치행열 (Inverses and Transposes)
모즌 회전 행열은 다소 주목할 만한 성질을 갖는다 - 그것의 전치행열은 역행열이 된다.
내적 예제 (Dot Product Example) 앞의 행열 R을 자신의 전치행열과 곱하면 단위행열을 얻는다. 따라서 자신의 전치행열은 역행열이 되어야만 한다. |
출처 http://www.continuummechanics.org
댓글
댓글 쓰기