# 驗證旋轉矩陣是正交矩陣
對於旋轉矩陣($R \in \mathbb{R} ^{n\times n}$)來說
$R$是歐式空間的旋轉矩陣(線性等距離且保留方向性) $\iff$ $R^TR=I$ 且 $det(R)=+1$
Note: $\iff$ : 若且唯若(if and only if,iff)
1) 先 驗證正交(Orthogonal)
假設矩陣為$R \in \mathbb{R} ^{n\times n}$
Orthogonal定義是
$$
R^TR=I
$$
2. 再驗證旋轉特性
旋轉矩陣屬於特殊正交$SO(n)$
$$
det(R)=+1
$$
當$det(R)=-1$則是帶鏡像的"反射+旋轉",不是單純的旋轉。
*特殊正交*: 每個正交矩陣($R \in \mathbb{R}^{n\times n}$)的行列式為$1$ or $-1$,其中行列式為+1的時候稱為特殊正交矩陣(Speical Orthogonal Matrix),記為$SO(n)$。
## 證明: $\implies$
旋轉的本質轉換後是向量之間是等距離 (如果有兩個點(向量)在歐式空間距離是10,透過旋轉矩陣的投影後兩個點的歐式距離在新的空間還是10)→ 等於兩個點投影前和投影後的內積值要一樣。
假設有任意$x,y\in \mathbb{R}^n$,透過旋轉矩陣$R$轉換後的結果為$R_x,R_y$,
旋轉的本質:
$$<R_x,R_y>=<x,y>$$
矩陣$R$的標準基礎向量為$e_i$和$e_j$,$i,j$表示不同基底。
--------------
標準基礎向量為
$$
e_1=[1,0,0,...]^T,e_2=[0,1,0,...]^T,...
$$
基底之間內積為$<e_i,e_j>=\delta_{ij}$
$\delta_{ij}$是Kronecker delta:
$$\delta_{ij}= \begin{cases} 1, & i=j \\ 0, & i\neq j \end{cases} $$
------------
設 $u_i=Re_i$ ($R$的第$i$欄),$R=[Re_1, Re_2, …Re_n]=[u_1,u_2,…,u_n]$
這是線性代數基本 → $R$乘上基底$e_i$,得到$R$的第$i$欄向量。 可以自己手算看看
套用旋轉矩陣「保持內積」性質
$$<R_x,R_y>=<x,y> \implies x^TR^TRy=x^Ty \implies x^T(R^TR-I)y=0$$
只有$(R^TR-I)=0$滿足,所以
$$
R^TR=I
$$
$$
<u_i,u_j>=<Re_i,Re_j>=<e_i,e_j>=\delta_{ij}
$$
$i=j$,$<u_i,u_j>=1$→每個欄位向量長度為1
$i\neq j$,$<u_i,u_j>=0$→不同欄位向量之間互相垂直。
所以$R$ 的每一欄都是單位向量,各欄位向量兩兩正交
$R$是歐式空間的旋轉矩陣(線性等距離且保留方向性) $\implies$ $R^TR=I$ 且 $det(R)=+1$
## 證明: $\impliedby$
條件是: $R^TR=I$且 $det(R)=1$ ,必為純旋轉
$$<Rx,Ry>=x^TR^TRy=x^Ty=<x,y>$$
所以R保留內積一致性,也就是保留所有夾角和距離都是線性等距(isometry)
由
$$det(R^TR)=det(I)=1 \implies det(R)=\pm1$$
因為我們的條件有$det(R)=1$,所以$R$為保向等距映射,為純旋轉的定義。
所以
「旋轉矩陣」$\iff$「正交且行列式為+1」
###### tags: `SLAM Learning`