单位四元数（Unit quaternion）可以用于表示三维空间裡的旋转。它与常用的另外两种表示方式（三维正交矩阵和欧拉角）是等价的，但是避免了欧拉角表示法中的万向锁问题。比起三维正交矩阵表示，四元数表示能够更方便地给出旋转的转轴与旋转角。


基本方法 用四元数来表示旋转要解决两个问题，一是如何用四元数表示三维空间裡的点，二是如何用四元数表示三维空间的旋转。


= 四元数表示空间中的点 =
若三维空间裡的一个点的笛卡尔坐标为 (x,y,z)，则它用纯四元数（类似于纯虚数，即实部为0的四元数）xi+yj+zk 表示。


= 单位四元数表示一个三维空间旋转 =
设 q 为一个单位四元数，而 p 是一个纯四元数，定义

  
    
      
        
          R
          
            q
          
        
        (
        p
        )
        =
        q
        p
        
          q
          
            −
            1
          
        
      
    
    {\displaystyle R_{q}(p)=qpq^{-1}}
  

则 Rq(p) 也是一个纯四元数，可以证明 Rq 确实表示一个旋转，这个旋转将空间的点 p 旋转为空间的另一个点 Rq(p)。


与正交矩阵表示的关系 四元数的表示与正交矩阵表示是等价的，这可以通过直接的代数计算得到。
仿照关于单位复数的欧拉公式的证明方法，可以得到单位四元数的欧拉公式：

  
    
      
        
          e
          
            
              
                θ
                2
              
            
            (
            x
            i
            +
            y
            j
            +
            z
            k
            )
          
        
        =
        cos
        ⁡
        
          
            θ
            2
          
        
        +
        (
        x
        i
        +
        y
        j
        +
        z
        k
        )
        sin
        ⁡
        
          
            θ
            2
          
        
        ,
        
        
          for 
        
        x
        ,
        y
        ,
        z
        ∈
        
          R
        
        
           s.t. 
        
        
          x
          
            2
          
        
        +
        
          y
          
            2
          
        
        +
        
          z
          
            2
          
        
        =
        1
      
    
    {\displaystyle e^{{\frac {\theta }{2}}(xi+yj+zk)}=\cos {\frac {\theta }{2}}+(xi+yj+zk)\sin {\frac {\theta }{2}},\quad {\text{for }}x,y,z\in \mathbb {R} {\text{ s.t. }}x^{2}+y^{2}+z^{2}=1}
  

显然，当 x=1, y=z=0 的时候就回到一般的欧拉公式。
设

  
    
      
        q
        =
        
          e
          
            
              
                θ
                2
              
            
            (
            
              u
              
                x
              
            
            i
            +
            
              u
              
                y
              
            
            j
            +
            
              u
              
                z
              
            
            k
            )
          
        
        =
        cos
        ⁡
        
          
            θ
            2
          
        
        +
        (
        
          u
          
            x
          
        
        i
        +
        
          u
          
            y
          
        
        j
        +
        
          u
          
            z
          
        
        k
        )
        sin
        ⁡
        
          
            θ
            2
          
        
      
    
    {\displaystyle q=e^{{\frac {\theta }{2}}(u_{x}i+u_{y}j+u_{z}k)}=\cos {\frac {\theta }{2}}+(u_{x}i+u_{y}j+u_{z}k)\sin {\frac {\theta }{2}}}
  

  
    
      
        p
        =
        x
        i
        +
        y
        j
        +
        z
        k
      
    
    {\displaystyle p=xi+yj+zk}
  

  
    
      
        
          p
          ′
        
        =
        
          q
          
            −
            1
          
        
        p
        q
        =
        w
        +
        
          x
          ′
        
        i
        +
        
          y
          ′
        
        j
        +
        
          z
          ′
        
        k
      
    
    {\displaystyle p'=q^{-1}pq=w+x'i+y'j+z'k}
  

（通过下面的计算可以知道，w=0，即计算结果是纯四元数）
则

  
    
      
        
          q
          
            −
            1
          
        
        =
        
          e
          
            −
            
              
                θ
                2
              
            
            (
            
              u
              
                x
              
            
            i
            +
            
              u
              
                y
              
            
            j
            +
            
              u
              
                z
              
            
            k
            )
          
        
        =
        cos
        ⁡
        
          
            θ
            2
          
        
        −
        (
        
          u
          
            x
          
        
        i
        +
        
          u
          
            y
          
        
        j
        +
        
          u
          
            z
          
        
        k
        )
        sin
        ⁡
        
          
            θ
            2
          
        
      
    
    {\displaystyle q^{-1}=e^{-{\frac {\theta }{2}}(u_{x}i+u_{y}j+u_{z}k)}=\cos {\frac {\theta }{2}}-(u_{x}i+u_{y}j+u_{z}k)\sin {\frac {\theta }{2}}}
  

为简便起见，令

  
    
      
        c
        =
        cos
        ⁡
        
          
            θ
            2
          
        
        ,
        s
        =
        sin
        ⁡
        
          
            θ
            2
          
        
      
    
    {\displaystyle c=\cos {\frac {\theta }{2}},s=\sin {\frac {\theta }{2}}}
  

  
    
      
        
          
            
              
                
                  q
                  
                    −
                    1
                  
                
                p
                q
              
              
                =
              
              
                [
                c
                −
                (
                
                  u
                  
                    x
                  
                
                i
                +
                
                  u
                  
                    y
                  
                
                j
                +
                
                  u
                  
                    z
                  
                
                k
                )
                s
                ]
                (
                x
                i
                +
                y
                j
                +
                z
                k
                )
                [
                c
                +
                (
                
                  u
                  
                    x
                  
                
                i
                +
                
                  u
                  
                    y
                  
                
                j
                +
                
                  u
                  
                    z
                  
                
                k
                )
                s
                ]
              
            
            
              
              
                =
              
              
                [
                c
                −
                (
                
                  u
                  
                    x
                  
                
                i
                +
                
                  u
                  
                    y
                  
                
                j
                +
                
                  u
                  
                    z
                  
                
                k
                )
                s
                ]
                {
                −
                (
                
                  u
                  
                    x
                  
                
                x
                +
                
                  u
                  
                    y
                  
                
                y
                +
                
                  u
                  
                    z
                  
                
                z
                )
                s
                +
                i
                [
                x
                c
                +
                (
                
                  u
                  
                    z
                  
                
                y
                −
                
                  u
                  
                    y
                  
                
                z
                )
                s
                ]
                +
                j
                [
                y
                c
                +
                (
                
                  u
                  
                    x
                  
                
                z
                −
                
                  u
                  
                    z
                  
                
                x
                )
                s
                ]
                +
                k
                [
                z
                c
                +
                (
                
                  u
                  
                    y
                  
                
                x
                −
                
                  u
                  
                    x
                  
                
                y
                )
                s
                ]
                }
              
            
            
              
              
                =
              
              
                i
                {
                x
                
                  c
                  
                    2
                  
                
                +
                2
                (
                
                  u
                  
                    z
                  
                
                y
                −
                
                  u
                  
                    y
                  
                
                z
                )
                s
                c
                +
                [
                
                  u
                  
                    x
                  
                
                (
                
                  u
                  
                    x
                  
                
                x
                +
                
                  u
                  
                    y
                  
                
                y
                +
                
                  u
                  
                    z
                  
                
                z
                )
                −
                
                  u
                  
                    y
                  
                
                (
                
                  u
                  
                    y
                  
                
                x
                −
                
                  u
                  
                    x
                  
                
                y
                )
                +
                
                  u
                  
                    z
                  
                
                (
                
                  u
                  
                    x
                  
                
                z
                −
                
                  u
                  
                    z
                  
                
                x
                )
                ]
                
                  s
                  
                    2
                  
                
                }
                +
                …
              
            
          
        
      
    
    {\displaystyle {\begin{array}{rcl}q^{-1}pq&=&[c-(u_{x}i+u_{y}j+u_{z}k)s](xi+yj+zk)[c+(u_{x}i+u_{y}j+u_{z}k)s]\\&=&[c-(u_{x}i+u_{y}j+u_{z}k)s]\{-(u_{x}x+u_{y}y+u_{z}z)s+i[xc+(u_{z}y-u_{y}z)s]+j[yc+(u_{x}z-u_{z}x)s]+k[zc+(u_{y}x-u_{x}y)s]\}\\&=&i\{xc^{2}+2(u_{z}y-u_{y}z)sc+[u_{x}(u_{x}x+u_{y}y+u_{z}z)-u_{y}(u_{y}x-u_{x}y)+u_{z}(u_{x}z-u_{z}x)]s^{2}\}+\ldots \end{array}}}
  

省略号表示由第一项通过简单的轮换可以得到的项。最后得到四元数的矩阵表示为

  
    
      
        
          
            [
            
              
                
                  
                    x
                    ′
                  
                
              
              
                
                  
                    y
                    ′
                  
                
              
              
                
                  
                    z
                    ′
                  
                
              
            
            ]
          
        
        =
        M
        (
        q
        )
        
          
            [
            
              
                
                  x
                
              
              
                
                  y
                
              
              
                
                  z
                
              
            
            ]
          
        
        =
        
          
            [
            
              
                
                  
                    c
                    
                      2
                    
                  
                  −
                  (
                  1
                  −
                  2
                  
                    u
                    
                      x
                    
                    
                      2
                    
                  
                  )
                  
                    s
                    
                      2
                    
                  
                
                
                  2
                  
                    u
                    
                      x
                    
                  
                  
                    u
                    
                      y
                    
                  
                  
                    s
                    
                      2
                    
                  
                  +
                  2
                  
                    u
                    
                      z
                    
                  
                  s
                  c
                
                
                  2
                  
                    u
                    
                      x
                    
                  
                  
                    u
                    
                      z
                    
                  
                  
                    s
                    
                      2
                    
                  
                  −
                  2
                  
                    u
                    
                      y
                    
                  
                  s
                  c
                
              
              
                
                  2
                  
                    u
                    
                      x
                    
                  
                  
                    u
                    
                      y
                    
                  
                  
                    s
                    
                      2
                    
                  
                  −
                  2
                  
                    u
                    
                      z
                    
                  
                  s
                  c
                
                
                  
                    c
                    
                      2
                    
                  
                  −
                  (
                  1
                  −
                  2
                  
                    u
                    
                      y
                    
                    
                      2
                    
                  
                  )
                  
                    s
                    
                      2
                    
                  
                
                
                  2
                  
                    u
                    
                      y
                    
                  
                  
                    u
                    
                      z
                    
                  
                  
                    s
                    
                      2
                    
                  
                  +
                  2
                  
                    u
                    
                      x
                    
                  
                  s
                  c
                
              
              
                
                  2
                  
                    u
                    
                      x
                    
                  
                  
                    u
                    
                      z
                    
                  
                  
                    s
                    
                      2
                    
                  
                  +
                  2
                  
                    u
                    
                      y
                    
                  
                  s
                  c
                
                
                  2
                  
                    u
                    
                      y
                    
                  
                  
                    u
                    
                      z
                    
                  
                  
                    s
                    
                      2
                    
                  
                  −
                  2
                  
                    u
                    
                      x
                    
                  
                  s
                  c
                
                
                  
                    c
                    
                      2
                    
                  
                  −
                  (
                  1
                  −
                  2
                  
                    u
                    
                      z
                    
                    
                      2
                    
                  
                  )
                  
                    s
                    
                      2
                    
                  
                
              
            
            ]
          
        
        
          
            [
            
              
                
                  x
                
              
              
                
                  y
                
              
              
                
                  z
                
              
            
            ]
          
        
      
    
    {\displaystyle {\begin{bmatrix}x'\\y'\\z'\end{bmatrix}}=M(q){\begin{bmatrix}x\\y\\z\end{bmatrix}}={\begin{bmatrix}c^{2}-(1-2u_{x}^{2})s^{2}&2u_{x}u_{y}s^{2}+2u_{z}sc&2u_{x}u_{z}s^{2}-2u_{y}sc\\2u_{x}u_{y}s^{2}-2u_{z}sc&c^{2}-(1-2u_{y}^{2})s^{2}&2u_{y}u_{z}s^{2}+2u_{x}sc\\2u_{x}u_{z}s^{2}+2u_{y}sc&2u_{y}u_{z}s^{2}-2u_{x}sc&c^{2}-(1-2u_{z}^{2})s^{2}\\\end{bmatrix}}{\begin{bmatrix}x\\y\\z\end{bmatrix}}}
  

设

  
    
      
        C
        =
        cos
        ⁡
        θ
        ,
        S
        =
        sin
        ⁡
        θ
      
    
    {\displaystyle C=\cos \theta ,S=\sin \theta }
  

运用简单的三角恒等变形可以得到，

  
    
      
        M
        (
        q
        )
        =
        
          
            [
            
              
                
                  C
                  +
                  
                    u
                    
                      x
                    
                    
                      2
                    
                  
                  (
                  1
                  −
                  C
                  )
                
                
                  
                    u
                    
                      x
                    
                  
                  
                    u
                    
                      y
                    
                  
                  (
                  1
                  −
                  C
                  )
                  +
                  
                    u
                    
                      z
                    
                  
                  S
                
                
                  
                    u
                    
                      x
                    
                  
                  
                    u
                    
                      z
                    
                  
                  (
                  1
                  −
                  C
                  )
                  −
                  
                    u
                    
                      y
                    
                  
                  S
                
              
              
                
                  
                    u
                    
                      x
                    
                  
                  
                    u
                    
                      y
                    
                  
                  (
                  1
                  −
                  C
                  )
                  −
                  
                    u
                    
                      z
                    
                  
                  S
                
                
                  C
                  +
                  
                    u
                    
                      y
                    
                    
                      2
                    
                  
                  (
                  1
                  −
                  C
                  )
                
                
                  
                    u
                    
                      y
                    
                  
                  
                    u
                    
                      z
                    
                  
                  (
                  1
                  −
                  C
                  )
                  +
                  
                    u
                    
                      x
                    
                  
                  S
                
              
              
                
                  
                    u
                    
                      x
                    
                  
                  
                    u
                    
                      z
                    
                  
                  (
                  1
                  −
                  C
                  )
                  +
                  
                    u
                    
                      y
                    
                  
                  S
                
                
                  
                    u
                    
                      y
                    
                  
                  
                    u
                    
                      z
                    
                  
                  (
                  1
                  −
                  C
                  )
                  −
                  
                    u
                    
                      x
                    
                  
                  S
                
                
                  C
                  +
                  
                    u
                    
                      z
                    
                    
                      2
                    
                  
                  (
                  1
                  −
                  C
                  )
                
              
            
            ]
          
        
      
    
    {\displaystyle M(q)={\begin{bmatrix}C+u_{x}^{2}(1-C)&u_{x}u_{y}(1-C)+u_{z}S&u_{x}u_{z}(1-C)-u_{y}S\\u_{x}u_{y}(1-C)-u_{z}S&C+u_{y}^{2}(1-C)&u_{y}u_{z}(1-C)+u_{x}S\\u_{x}u_{z}(1-C)+u_{y}S&u_{y}u_{z}(1-C)-u_{x}S&C+u_{z}^{2}(1-C)\\\end{bmatrix}}}
  

容易验证，M(q)是正交矩阵，且行列式为+1，于是我们得到了四元数对应于正交矩阵的关系。即我们证明了Rq的确表示三维空间中的一个旋转。进一步由旋转的正交矩阵表示的相关知识知，上式中的 θ 就是旋转角。


旋转轴与旋转角 由四元数的结合律马上可以得到，若r为单位纯四元数，则

  
    
      
        
          R
          
            
              e
              
                i
                λ
                r
              
            
          
        
        (
        k
        r
        )
        =
        
          e
          
            −
            i
            λ
            r
          
        
        k
        r
        
          e
          
            i
            λ
            r
          
        
        =
        k
        r
        ,
         
        ∀
        λ
        ,
        k
        ∈
        
          R
        
      
    
    {\displaystyle R_{e^{i\lambda r}}(kr)=e^{-i\lambda r}kre^{i\lambda r}=kr,\ \forall \lambda ,k\in \mathbb {R} }
  

这表明kr在旋转操作下不变，也就是kr给出旋转的旋转轴（当然r也给出旋转的旋转轴），不妨取k=s，由四元数的欧拉公式我们马上知道，任给一个单位四元数q，计算它的虚部，我们就马上可以知道转轴是什么。
同时，根据四元数的正交矩阵表示，我们又可以马上得到，计算一个单位四元数的实部，它的反余弦值给出旋转角的一半。于是我们马上可以看到用四元数相对于正交矩阵表示的优势：在四元数表示下，计算转轴和旋转角变得异常简单。
进一步地，这表明了三维空间中的每一个旋转都可以用单位四元数表出。若进一步要求 ux 非负，则这种表出是唯一的。


旋转操作的复合 显然有：

  
    
      
        
          R
          
            
              q
              
                1
              
            
            
              q
              
                2
              
            
          
        
        (
        p
        )
        =
        (
        
          q
          
            1
          
        
        
          q
          
            2
          
        
        )
        p
        (
        
          q
          
            1
          
        
        
          q
          
            2
          
        
        
          )
          
            −
            1
          
        
        =
        
          q
          
            1
          
        
        
          q
          
            2
          
        
        p
        
          q
          
            2
          
          
            −
            1
          
        
        
          q
          
            1
          
          
            −
            1
          
        
        =
        
          R
          
            
              q
              
                1
              
            
          
        
        [
        
          R
          
            
              q
              
                2
              
            
          
        
        (
        p
        )
        ]
      
    
    {\displaystyle R_{q_{1}q_{2}}(p)=(q_{1}q_{2})p(q_{1}q_{2})^{-1}=q_{1}q_{2}pq_{2}^{-1}q_{1}^{-1}=R_{q_{1}}[R_{q_{2}}(p)]}
  

于是两个旋转操作的复合，只需要将对应的单位四元数相乘，这一点比欧拉角表示要简单。


与超球面、典型群、自旋群的关系 首先很容易看到，单位四元数与3-球面S3（或三维实射影空间，RP3）同构。
其次，根据单位四元数的矩阵表示，我们又知道，存在一个单位四元数到特殊正交群 SO(3) 的同态，但这不是同构。给定一个角 θ， 2π+θ 与 θ 对应的正交矩阵相同，但是由欧拉公式给出的单位四元数不同（恰好相反）。实际上，这反映了在三维空间中旋转 2π 弧度和旋转 4π 弧度是不等价的，参见旋量。
事实上，单位四元数群与自旋群 Spin(3) 同构。这也表明，S3与自旋群 Spin(3) 同构。进一步地，它们微分同胚。
另一方面，单位四元数群与复数域上的2-球面同构，于是与特殊正交群 SO(2,C) 同构，而后者实际上就是特殊酉群 SU(2)。S3 与 SU(2) 也是微分同胚的。


参考 Simon L. Altman (1986) Rotations, Quaternions, and Double Groups, Dover Publications.
Du Val, Patrick (1964), "Homographies, quaternions, and rotations". Oxford, Clarendon Press (Oxford mathematical monographs). LCCN 64056979


外部連結 線代啟示錄—四元數與三維空間旋轉（页面存档备份，存于互联网档案馆）
四元數與旋轉（页面存档备份，存于互联网档案馆）