定义与性质
四元数的表示
代数形式<font face="KaTeX_Main, Times New Roman, serif"><span style="font-size: 18.15px; white-space: nowrap;"> </span></font><span class="equation-text" contenteditable="false" data-index="0" data-equation="\begin{aligned}&q=a+b i+c j+d k, \quad(a, b, c, d \in \mathbb{R})\\&i^2=j^2=k^2=i j k=-1\end{aligned}"><span></span><span></span></span>
向量表示 <span class="equation-text" contenteditable="false" data-index="0" data-equation="q=\left[\begin{array}{l}a \\b \\c \\d\end{array}\right]"><span></span><span></span></span>
标量和向量的有序对形式 <span class="equation-text" contenteditable="false" data-index="0" data-equation="q=[s, \mathbf{v}] . \quad\left(\mathbf{v}=\left[\begin{array}{l}x \\y \\z\end{array}\right], s, x, y, z \in \mathbb{R}\right)"><span></span><span></span></span>
模长<br><span class="equation-text" contenteditable="false" data-index="0" data-equation="\|q\|=\sqrt{a^{2}+b^{2}+c^{2}+d^{2}}"><span></span><span></span></span><br> <span class="equation-text" data-index="1" data-equation="\begin{aligned}\|q\| & =\sqrt{s^{2}+\|\mathbf{v}\|^{2}} \\& =\sqrt{s^{2}+\mathbf{v} \cdot \mathbf{v}} \quad\left(\mathbf{v} \cdot \mathbf{v}=\|\mathbf{v}\|^{2}\right)\end{aligned}" contenteditable="false"><span></span><span></span></span>
加法和减法
标量乘法
四元数乘法
不遵守交换律
矩阵形式
<span class="equation-text" data-index="0" data-equation="q_1 q_{2}=\left[\begin{array}{cccc}a & -b & -c & -d \\b & a & -d & c \\c & d & a & -b \\d & -c & b & a\end{array}\right]\left[\begin{array}{l}e \\f \\g \\h\end{array}\right] ." contenteditable="false"><span></span><span></span></span><br><span class="equation-text" contenteditable="false" data-index="1" data-equation="q_{2} q_{1}=\left[\begin{array}{cccc}a & -b & -c & -d \\b & a & d & -c \\c & -d & a & b \\d & c & -b & a\end{array}\right]\left[\begin{array}{l}e \\f \\g \\h\end{array}\right]"><span></span><span></span></span><br>
纯四元数
如果有两个纯四元数<span class="equation-text" data-index="0" data-equation="v=[0,\mathbf{v}],u=[0,\mathbf{u}]" contenteditable="false"><span></span><span></span></span>,那么<br><span class="equation-text" contenteditable="false" data-index="1" data-equation="\begin{aligned}vu&=[0-\mathbf{v}\cdot\mathbf{u},0+\mathbf{v}\times\mathbf{u}]\\ &=[-\mathbf{v\cdot}\mathbf{u},\mathbf{v\times u}].\end{aligned}"><span></span><span></span></span><br>
逆和共轭
将乘法的逆运算定义为 𝑝𝑞-1 或者 𝑞-1𝑝,注意它们的结果一般是不同的.<br><span class="equation-text" contenteditable="false" data-index="0" data-equation="q q^{-1}=q^{-1} q=1 \quad(q \neq 0)"><span></span><span></span></span><br>
<span class="equation-text" data-index="0" data-equation="𝑞=𝑎+𝑏𝑖+𝑐𝑗+𝑑𝑘" contenteditable="false"><span></span><span></span></span> 的共轭为<br><span class="equation-text" contenteditable="false" data-index="1" data-equation="𝑞^∗ =𝑎−𝑏𝑖−𝑐𝑗−𝑑𝑘"><span></span><span></span></span>
<span class="equation-text" data-index="0" data-equation="q=\left[s,\mathbf{v}\right] " contenteditable="false"><span></span><span></span></span>的共轭为<br><span class="equation-text" contenteditable="false" data-index="1" data-equation="q^{*}=[s,-\mathbf{v}]"><span></span><span></span></span><br>
<span class="equation-text" data-index="0" data-equation="\begin{aligned}qq^*&=[s^2+\mathbf{v}\cdot\mathbf{v},\mathbf{0}]\\ &=s^2+x^2+y^2+z^2\\ &=\|q\|^2.\end{aligned}" contenteditable="false"><span></span><span></span></span><br><b>结果是一个实数,而它正是四元数模长的平方</b><br>
<span class="equation-text" data-index="0" data-equation="q^*q=qq^*" contenteditable="false"><span></span><span></span></span><br><b>这个特殊的乘法是遵守交换律的</b><br>
<span class="equation-text" data-index="0" data-equation="q^{-1}=\frac{q^*}{\|q\|^2}" contenteditable="false"><span></span><span></span></span><br><b>用这种办法寻找一个四元数的逆会非常高效,<br>我们只需要将一个四元数的虚部改变符号,<br>除以它模长的平方就能获得这个四元数的逆了<br><br><span class="equation-text" contenteditable="false" data-index="1" data-equation="\begin{array}{rlrl}q q^{-1} & =1 & \\q^* q q^{-1} & =q^* & & \\\left(q^* q\right) q^{-1} & =q^* & & \text { 等式两边同时左乘以 } \left.q^*\right) \\\|q\|^2 \cdot q^{-1} & =q^* & & \left(q^* q=\|q\|^2\right) \\q^{-1} & =\frac{q^*}{\|q\|^2} . &\end{array}"><span></span><span></span></span> </b><br>
四元数与3d旋转
因为所有的旋转四元数的实部都只是一个角度的余弦值,假设有一个单位四元数 <span class="equation-text" data-index="0" data-equation="q=[a, \mathbf{b}]" contenteditable="false"><span></span><span></span></span>,<br>其对应的旋转角度为,<span class="equation-text" data-index="1" data-equation="\frac{\theta}{2}=\cos ^{-1}(a)" contenteditable="false"><span></span><span></span></span>,旋转轴为 <span class="equation-text" contenteditable="false" data-index="2" data-equation="\mathbf{u}=\frac{\mathbf{b}}{\sin \left(\cos ^{-1}(a)\right)}"><span></span><span></span></span>
<b>虽然 3D 旋转的矩阵形式可能不如四元数形式简单,而且占用更多的空间,<br>但是对于大批量的变换,使用预计算好的矩阵是比四元数乘法更有效率的</b>