10.9 쿼터니언의 노름과 정규화
1. 노름의 정의
쿼터니언 \mathbf{q} = q_w + q_x i + q_y j + q_z k의 노름(norm)은 다음과 같이 정의된다.
\lVert \mathbf{q} \rVert = \sqrt{q_w^2 + q_x^2 + q_y^2 + q_z^2}
이는 4차원 유클리드 노름과 같으며, 쿼터니언을 4차원 벡터로 보았을 때의 길이이다. 노름은 항상 음이 아닌 실수이다.
2. 노름의 다른 정의
2.1 켤레를 이용한 정의
쿼터니언의 노름은 켤레와의 곱으로도 정의된다.
\lVert \mathbf{q} \rVert^2 = \mathbf{q}\mathbf{q}^* = \mathbf{q}^*\mathbf{q}
이 두 곱은 같다(쿼터니언이 자신의 켤레와 가환하기 때문). 결과는 실수 스칼라이다.
이는 복소수 z의 노름이 |z|^2 = z\bar{z}로 정의되는 것의 일반화이다.
2.2 노름의 제곱
노름의 제곱(squared norm 또는 modulus squared)은 제곱근을 피하므로 더 효율적으로 계산된다.
\lVert \mathbf{q} \rVert^2 = q_w^2 + q_x^2 + q_y^2 + q_z^2
많은 응용에서 노름 자체가 아니라 노름의 제곱이 사용된다(예: 비교, 정규화 검사 등).
3. 노름의 기본 성질
3.1 양정치성
\lVert \mathbf{q} \rVert \geq 0
\lVert \mathbf{q} \rVert = 0 \quad \Leftrightarrow \quad \mathbf{q} = \mathbf{0}
노름은 양의 실수이며, 0이 되는 것은 영 쿼터니언일 때뿐이다.
3.2 절대 동차성
\lVert \alpha\mathbf{q} \rVert = \lvert\alpha\rvert\lVert\mathbf{q}\rVert
여기서 \alpha는 실수 스칼라이다. 이는 노름의 일반적 성질이다.
3.3 곱셈성
\lVert \mathbf{q}_1\mathbf{q}_2 \rVert = \lVert\mathbf{q}_1\rVert\cdot\lVert\mathbf{q}_2\rVert
이는 쿼터니언 노름의 매우 특별한 성질이다. 일반적인 노름은 이 성질을 만족하지 않으며, 곱셈성을 만족하는 노름을 가진 대수가 노름 대수(normed algebra)이다. 쿼터니언이 그러한 노름 대수의 한 예이다.
이 성질의 직접적 결과는 단위 쿼터니언의 곱이 다시 단위 쿼터니언이라는 사실이다.
3.4 삼각 부등식
\lVert \mathbf{q}_1 + \mathbf{q}_2 \rVert \leq \lVert\mathbf{q}_1\rVert + \lVert\mathbf{q}_2\rVert
이는 4차원 유클리드 노름의 일반적 성질이다.
4. 노름의 곱셈성 증명
쿼터니언 노름의 곱셈성이 매우 특별한 성질이므로 증명을 제시한다.
증명: \lVert\mathbf{q}_1\mathbf{q}_2\rVert^2를 켤레 정의로 전개한다.
\lVert\mathbf{q}_1\mathbf{q}_2\rVert^2 = (\mathbf{q}_1\mathbf{q}_2)(\mathbf{q}_1\mathbf{q}_2)^*
곱의 켤레 규칙 (\mathbf{q}_1\mathbf{q}_2)^* = \mathbf{q}_2^*\mathbf{q}_1^*을 사용하면
= (\mathbf{q}_1\mathbf{q}_2)(\mathbf{q}_2^*\mathbf{q}_1^*)
결합 법칙으로
= \mathbf{q}_1(\mathbf{q}_2\mathbf{q}_2^*)\mathbf{q}_1^*
\mathbf{q}_2\mathbf{q}_2^* = \lVert\mathbf{q}_2\rVert^2는 실수 스칼라이고, 실수는 모든 쿼터니언과 가환하므로
= \lVert\mathbf{q}_2\rVert^2\mathbf{q}_1\mathbf{q}_1^* = \lVert\mathbf{q}_2\rVert^2\lVert\mathbf{q}_1\rVert^2 = \lVert\mathbf{q}_1\rVert^2\lVert\mathbf{q}_2\rVert^2
양변에 제곱근을 취하면 \lVert\mathbf{q}_1\mathbf{q}_2\rVert = \lVert\mathbf{q}_1\rVert\lVert\mathbf{q}_2\rVert이다.
이 증명은 켤레와 결합 법칙의 적절한 활용이 핵심이다.
5. 단위 쿼터니언
노름이 1인 쿼터니언을 단위 쿼터니언(unit quaternion)이라 한다.
\lVert \mathbf{q} \rVert = 1 \quad \text{또는} \quad q_w^2 + q_x^2 + q_y^2 + q_z^2 = 1
단위 쿼터니언의 집합은 4차원 공간의 단위 구면 S^3이며, 3차원 회전을 표현한다.
5.1 단위 쿼터니언의 자유도
쿼터니언이 4 매개변수를 가지지만 단위 노름 제약이 1차원을 제거하므로, 단위 쿼터니언의 자유도는 3이다. 이는 3차원 회전군 SO(3)의 자유도와 일치한다.
5.2 단위 쿼터니언의 닫힘성
노름의 곱셈성으로부터 두 단위 쿼터니언의 곱이 다시 단위 쿼터니언이다.
\lVert\mathbf{q}_1\rVert = 1, \lVert\mathbf{q}_2\rVert = 1 \quad \Rightarrow \quad \lVert\mathbf{q}_1\mathbf{q}_2\rVert = 1
따라서 단위 쿼터니언의 집합은 곱에 대해 닫혀 있으며, 군을 형성한다. 이 군은 회전군 SO(3)의 이중 피복(double cover)이다.
6. 정규화
영이 아닌 쿼터니언을 단위 쿼터니언으로 변환하는 과정이 정규화(normalization)이다.
\hat{\mathbf{q}} = \frac{\mathbf{q}}{\lVert\mathbf{q}\rVert}
또는 성분별로
\hat{q}_w = \frac{q_w}{\lVert\mathbf{q}\rVert}, \quad \hat{q}_x = \frac{q_x}{\lVert\mathbf{q}\rVert}, \quad \hat{q}_y = \frac{q_y}{\lVert\mathbf{q}\rVert}, \quad \hat{q}_z = \frac{q_z}{\lVert\mathbf{q}\rVert}
정규화의 결과는 항상 단위 쿼터니언이다.
\lVert\hat{\mathbf{q}}\rVert = 1
7. 정규화의 필요성
정규화가 필요한 이유는 다음과 같다.
7.1 부동 소수점 오차
쿼터니언 곱을 반복적으로 수행하면 부동 소수점 반올림 오차가 누적되어 노름이 1에서 벗어난다. 정기적으로 정규화하여 단위 노름을 유지해야 한다.
7.2 회전 보장
회전을 표현하려면 단위 쿼터니언이어야 한다. 단위 노름이 아닌 쿼터니언으로 벡터를 회전하면 길이가 변하는 등의 비물리적 효과가 발생한다.
7.3 수치적 안정성
장기간의 자세 적분에서 노름이 점점 1에서 벗어나면 수치적 불안정성이 발생한다. 정규화로 안정성을 유지한다.
7.4 알고리즘 일관성
많은 알고리즘(SLERP, 회전 행렬로의 변환 등)이 단위 쿼터니언을 가정한다. 정규화하지 않으면 이러한 알고리즘이 잘못된 결과를 산출한다.
8. 정규화의 빈도
8.1 매번 정규화
매 쿼터니언 곱 후 정규화한다. 가장 안전하지만 계산 비용이 크다.
8.2 주기적 정규화
일정 시간 또는 일정 횟수마다 정규화한다. 효율과 정확성의 균형을 맞춘다.
8.3 임계값 기반
노름이 1에서 임계값 이상 벗어나면 정규화한다.
if abs(norm(q) - 1) > threshold:
q = normalize(q)
이는 가장 효율적이지만 임계값 설정이 중요하다. 통상 10^{-6} 정도의 임계값이 사용된다.
9. 정규화의 효율성
쿼터니언 정규화는 회전 행렬의 정규화(그램-슈미트 또는 SVD)보다 훨씬 효율적이다.
9.1 쿼터니언 정규화
- 노름 계산: 4 곱셈, 3 덧셈, 1 제곱근
- 나누기: 4회
총 약 12 연산이다.
9.2 회전 행렬 정규화 (그램-슈미트)
- 첫 번째 열 정규화: 약 12 연산
- 두 번째 열 정규화: 약 18 연산
- 세 번째 열 외적: 약 9 연산
총 약 39 연산이며, 더 복잡하다.
9.3 회전 행렬 정규화 (SVD)
SVD는 매우 비싼 연산이며, 보통 100-1000 연산이 필요하다.
쿼터니언 정규화의 효율성은 자세 추정 시스템에서 큰 이점이다.
10. 정규화의 수치적 특성
10.1 작은 노름의 처리
쿼터니언이 영에 가까우면 정규화가 수치적으로 불안정해진다. 영 쿼터니언으로 나누기를 피하기 위해 임계값 검사가 필요하다.
if norm(q) < epsilon:
return identity_quaternion
또는 안전한 기본값을 반환한다.
10.2 큰 노름의 처리
쿼터니언이 매우 크면 노름의 제곱이 부동 소수점 오버플로를 발생시킬 수 있다. 일반적인 응용에서는 거의 발생하지 않지만, 안전한 코드는 이를 처리해야 한다.
11. 정규화와 부호 이중성
쿼터니언의 부호 이중성(\mathbf{q}와 -\mathbf{q}가 같은 회전)이 정규화에 영향을 준다. 정규화는 노름만 1로 만들고 부호는 보존한다. 따라서 정규화 후에도 부호 이중성이 남아 있다.
회전 보간이나 평균 계산에서는 정규화 외에 부호 보정도 필요하다.
12. 노름과 회전의 관계
회전을 표현하는 단위 쿼터니언 \mathbf{q} = (\cos(\phi/2), \sin(\phi/2)\hat{\mathbf{u}})의 노름은
\lVert\mathbf{q}\rVert = \sqrt{\cos^2(\phi/2) + \sin^2(\phi/2)} = 1
이며, 항상 1이다. 이는 단위 쿼터니언이 회전을 표현하는 데 자연스러운 형태임을 보인다.
13. 일반 노름의 응용
13.1 쿼터니언의 크기 측정
특정 응용에서 쿼터니언의 “크기“가 의미를 가질 수 있다. 단위 쿼터니언이 아닌 일반 쿼터니언의 노름은 그 크기의 척도이다.
13.2 잔차의 측정
자세 추정의 오차를 측정할 때, 잔차 쿼터니언의 노름이 사용될 수 있다.
13.3 분포의 분산
쿼터니언 분포의 분산이나 표준 편차가 노름과 관련된 양으로 표현된다.
14. 노름의 미분
쿼터니언 노름의 미분은 다음과 같다.
\frac{d\lVert\mathbf{q}\rVert}{d\mathbf{q}} = \frac{\mathbf{q}^T}{\lVert\mathbf{q}\rVert}
단위 쿼터니언의 경우
\frac{d\lVert\mathbf{q}\rVert}{d\mathbf{q}}\bigg|_{\lVert\mathbf{q}\rVert=1} = \mathbf{q}^T
이는 비선형 최적화에서 단위 노름 제약을 처리할 때 사용된다.
15. 노름과 매니폴드 구조
쿼터니언의 노름이 1이라는 제약은 4차원 공간 \mathbb{R}^4 내의 3차원 매니폴드 S^3를 정의한다. 이 매니폴드 위에서의 미분 기하학이 자세 추정과 최적화의 수학적 기반이 된다.
15.1 접공간
S^3 상의 점 \mathbf{q}에서의 접공간(tangent space)은 \mathbf{q}에 직교하는 3차원 부분 공간이다. 이는 작은 회전 변화를 표현하는 데 사용된다.
15.2 매니폴드 보존
자세 추정에서 매니폴드 구조를 보존해야 한다. 단순 덧셈은 매니폴드를 벗어나므로, 정규화가 필요하다. 또는 매니폴드 위에서의 곱셈(쿼터니언 곱)을 사용한다.
16. 참고 문헌
- Hamilton, W. R. (1844). “On Quaternions; or on a New System of Imaginaries in Algebra.” Philosophical Magazine, Vol. 25, 489–495.
- Kuipers, J. B. (1999). Quaternions and Rotation Sequences. Princeton University Press.
- Sola, J. (2017). “Quaternion Kinematics for the Error-State Kalman Filter.” arXiv:1711.02508.
- Hurwitz, A. (1898). “Über die Composition der quadratischen Formen von beliebig vielen Variablen.” Nachrichten von der Königlichen Gesellschaft der Wissenschaften zu Göttingen, 309–316.
- Markley, F. L., & Crassidis, J. L. (2014). Fundamentals of Spacecraft Attitude Determination and Control. Springer.
version: 1.0