什麼是四元數計算機?
四元數是一種四維數,寫成 \(q = w + xi + yj + zk\),其中 w 是純量(實數)部分,(x, y, z) 則是向量(虛數)部分。四元數廣泛應用於 3D 電腦繪圖、機器人、航太工程與物理領域,用來表示旋轉,並可避免歐拉角常見的萬向鎖(gimbal lock)問題。本計算機能將兩個四元數相乘,同時計算各自的範數,以及第一個四元數的共軛。
使用方法
分別輸入四元數 q1 與 q2 的四個分量(w、x、y、z)。計算機會回傳兩者的漢米爾頓積 q1 × q2(一個新的四元數)、兩個輸入的模長(範數),以及 q1 的共軛。請特別注意,四元數乘法不具交換律:一般而言 q1 × q2 ≠ q2 × q1,因此運算順序會影響結果。
公式解析
漢米爾頓積由純量部分與向量部分組合而成。純量結果為 w₁w₂ 減去兩個向量部分的點積;向量結果為 w₁v₂ + w₂v₁ 再加上叉積 v₁ × v₂。範數是歐幾里得長度 \(\sqrt{w^2+x^2+y^2+z^2}\),而共軛只需將向量分量取負號即可:\(q^{*} = (w, -x, -y, -z)\)。
$$\begin{gathered} q_1 q_2 = (w_1 w_2 - x_1 x_2 - y_1 y_2 - z_1 z_2) + (w_1 x_2 + x_1 w_2 + y_1 z_2 - z_1 y_2)\,i \\ + (w_1 y_2 - x_1 z_2 + y_1 w_2 + z_1 x_2)\,j + (w_1 z_2 + x_1 y_2 - y_1 x_2 + z_1 w_2)\,k \\[1.5em] \text{where}\quad \left\{ \begin{aligned} q_1 &= \text{w}_1 + \text{x}_1\,i + \text{y}_1\,j + \text{z}_1\,k \\ q_2 &= \text{w}_2 + \text{x}_2\,i + \text{y}_2\,j + \text{z}_2\,k \end{aligned} \right. \end{gathered}$$$$q_1^{*} = \text{w}_1 - \text{x}_1\,i - \text{y}_1\,j - \text{z}_1\,k$$$$\lVert q_1 \rVert = \sqrt{\text{w}_1^{2} + \text{x}_1^{2} + \text{y}_1^{2} + \text{z}_1^{2}}$$$$\lVert q_2 \rVert = \sqrt{\text{w}_2^{2} + \text{x}_2^{2} + \text{y}_2^{2} + \text{z}_2^{2}}$$
實例演算
設 q1 = (1, 2, 3, 4)、q2 = (5, 6, 7, 8)。純量部分為 \(1\cdot5 - 2\cdot6 - 3\cdot7 - 4\cdot8 = 5 - 12 - 21 - 32 = -60\);i 部分為 \(1\cdot6 + 2\cdot5 + 3\cdot8 - 4\cdot7 = 6 + 10 + 24 - 28 = 12\);j 部分為 \(1\cdot7 - 2\cdot8 + 3\cdot5 + 4\cdot6 = 7 - 16 + 15 + 24 = 30\);k 部分為 \(1\cdot8 + 2\cdot7 - 3\cdot6 + 4\cdot5 = 8 + 14 - 18 + 20 = 24\)。因此 \(q_1 \times q_2 = (-60, 12, 30, 24)\)。
常見問題
四元數乘法符合交換律嗎?不符合。由於含有叉積項,q1 × q2 通常不等於 q2 × q1。
什麼是單位四元數?範數等於 1 的四元數。單位四元數可用來表示 3D 空間中的純旋轉。
如何旋轉一個向量?將向量視為 w = 0 的四元數,再計算 \(q \cdot v \cdot q^{*}\),其中 q 是代表該旋轉的單位四元數。