Here, $R$ is a proper rotation matrix, and $(\times)$ is the cross-product.

I already found 3 ways of proving this, all have problems, and I am requesting an elegant approach.

(1) Direct calculation, $R = R_{\mathbf{u},\theta}$ has an explicit expression, where $\mathbf{u}$ is the vector about which the rotation of $\theta$ is carried out. It is essentially possible to calculate both sides and compare. Inelegant.

(2) Using antisymmetric matrices: $Ra \times Rb=S(Ra)Rb=RS(a)R^\top Rb=RS(a)b=R(a\times b)$.
My issue with this is that the equality I am trying to prove, is used to prove $RS(a)R^\top=S(Ra)$. And so using this feels circular.

(3) $Ra \times Rb=\|Ra\|\|Rb\|\sin(Ra,Rb)\mathbb{\hat{u}_1}$ and $a \times b=\|a\|\|b\|\sin(a,b)\mathbb{\hat{u}_2}$.
Here, essentially $\|Ra\|$ should equal $\|a\|$ since $R$ only affects orientation.
Because the relative orientation does not change, the $\sin(\cdot)$ term should be equal.
Likewise, $\mathbb{\hat{u}_1}$ and $\mathbb{\hat{u}_2}$ intuitively I know are equal but I am having a hard time expressing it.
Lastly, I have no idea how to bridge $(a \times b)$ to $R(a \times b)$.
I intuitively see it, and perhaps $\det R = 1$ might be useful, but I feel it is hard to write.

Please, a fourth approach is welcome, and insight is always appreciated.


4 Answers 4


Recall that the cross product $a\times b$ is characterized by the property that

$$ \det(x,a,b)=\langle x,a\times b\rangle, \qquad \forall x\in\mathbb{R}^3. $$

Now let $R\in\mathcal{SO}(3)$. Then by using the fact that $R^{\mathsf{T}} = R^{-1}$, we get

$$ \langle x, R(a \times b) \rangle = \langle R^{\mathsf{T}}x, a \times b \rangle = \langle R^{-1}x, a \times b \rangle = \det(R^{-1}x, a, b). $$

Then, utilizing the assumption $\det(R) = 1$,

$$ = \det(R) \det(R^{-1}x, a, b) = \det(x, Ra, Rb) = \langle x, Ra \times Rb \rangle. $$

Finally, since $\langle x, R(a \times b) \rangle = \langle x, Ra \times Rb \rangle$ holds for any $x\in\mathbb{R}^3$, the desired identity follows.

Addendum. A similar argument shows that, for any invertible $3\times 3$ real matrix $T$,

$$ T(a \times b) = \frac{1}{\det T}(T T^{\mathsf{T}})( Ta \times Tb). $$

  • 1
    $\begingroup$ Very interesting addendum, thank you very much. $\endgroup$
    – ex.nihil
    Sep 29, 2019 at 7:05

The simplest approach I see is the following, $$\langle R(a\times b), Ra\rangle = (Ra)^TR(a\times b)$$ $$=a^T(a\times b)=\langle a\times b, a\rangle =0$$ Similarly, $$\langle R(a\times b), Rb\rangle = 0$$ Hence, it follows that $$R(a\times b)= k( Ra\times Rb)$$ for some non-zero real number $k$. Now, observe that, $$\frac{1}{k}||R(a\times b)||^2$$ $$\langle R(a\times b), Ra\times Rb \rangle = det (R(a\times b), Ra,Rb)$$ $$=(det R)(det(a\times b,a,b))$$ $$=||a\times b||^2$$ $$=||R(a\times b)||^2$$ Required result follows.

  • $\begingroup$ In the first step you prove that $Ra\times rb$ is orthogonal to $R(a\times b)$. That proves that $R(a\times b)$ and $Ra\times Rb$ are linearly dependent. I don't see how that already implies that they also have the same length. $\endgroup$
    – celtschk
    Sep 29, 2019 at 8:30
  • $\begingroup$ @celtschk, yeah, additional argument is required. Corrected now. $\endgroup$
    – Martund
    Sep 29, 2019 at 9:42

Here's a component-wise proof. Note that I'm using the Einstein convention: If an index appears twice in a product, it is summed over. For example $$(Rv)_i = R_{ij}v_j$$ actually means $$(Rv)_i = \sum_{j=1}^3 R_{ij} v_j$$ because $j$ appears twice in $R_{ij}v_j$.

Also in case you don't know those symbols, $$\delta_{ij} = \begin{cases} 1 & i=j\\ 0 & \text{otherwise} \end{cases}$$ and $$\epsilon_{ijk} = \begin{cases} 1 & ijk \in \{123,231,312\}\\ -1 & ijk \in \{132,213,321\}\\ 0 & \text{otherwise} \end{cases}.$$ Then we can easily check that $$(a\times b)_i = \epsilon_{ijk}a_j b_k.$$ The equation we want to prove is $$R(a\times b)=Ra\times Rb.$$ Now since $R$ is invertible, we can multiply both sides with $R^{-1}$ and get an equivalent equation: $$a\times b=R^{-1}(Ra\times R_b)$$ Thus we get: \begin{aligned} &&(a\times b)_i &= (R^{-1}(Ra\times Rb))_i\\ \iff&&(a\times b)_i &= (R^{-1})_{ij}(Ra\times Rb)_j\\ \iff&&(a\times b)_i &= R_{ji}(Ra\times Rb)_j && \text{orthogonality of $R$}\\ \iff&&\epsilon_{ikl}a_kb_l &= R_{ji} \epsilon_{jmn}(Ra)_m(Rb)_n\\ \iff&&\epsilon_{ikl}a_kb_l &= R_{ji} \epsilon_{jmn}R_{mk}a_kR_{nl}b_l\\ \iff&&\epsilon_{ikl}a_kb_l &= (\epsilon_{jnm} R_{ji} R_{mk} R_{nl}) a_k b_l \end{aligned} Thus we have to prove that $$\epsilon_{ikl} = \epsilon_{jnm} R_{ji} R_{mk} R_{nl} \tag{*}$$ Now $\epsilon$ is completely characterized by the following two properties:

  • $\epsilon_{123} = 1$

  • Exchange of two indices changes the sign.

So let's check both properties for the right hand side of the above equation (note that the free indices are $i$, $k$, and $l$):

  • $ \epsilon_{jmn} R_{j1} R_{m2} R_{n3} \stackrel?= 1$

    The left hand side is the determinant of $R$, which by assumption is $1$, so this equation is indeed true.

  • Exchange of two indices: Let's without loss of generality exchange the last two indices, $§k$ and $l$.

    Clearly due to the commutativity of multiplication, we have $$\epsilon_{jnm} R_{ji} R_{ml} R_{nk} = \epsilon_{jnm} R_{ji} R_{nk} R_{ml}$$ Now the indices of $\epsilon$ in this term are summed over, therefore we can just rename them without changing anything. In particular, we exchange the names $m$ and $n$: $$\epsilon_{jnm} R_{ji} R_{nk} R_{ml} = \epsilon_{jnm} R_{ji} R_{mk} R_{nl}$$ Now we exchange the last two indices of the $\epsilon$ factor: $$\epsilon_{jnm} = -\epsilon_{jmn}$$ Putting all together, we then get $$\epsilon_{jnm} R_{ji} R_{ml} R_{nk} = -\epsilon_{jmn} R_{ji} R_{mk} R_{nl}$$ Thus exchanging $k$ and $l$ indeed changes the sign.

Thus we see that equation $(*)$ indeed holds, and thus $R(a\times b)=Ra\times Rb$.


I don't know whether this is really different from what you had in mind, but I would explain this as follows. It has a bit of Lie algebra air to it.

Let $R_{\vec{a},t}$ be the right-handed rotation about the axis $\vec{a}$ by the angle $t|\vec{a}|$. These form a 1-parameter group under composition, basically just add the angles of rotation as the axis is constant. The Lie algebra trick is to study the derivatives of such 1-parameter groups at $t=0$. The reason why cross products often appear when studying rotations in $\Bbb{R}^3$ is the following.

For all vectors $\vec{b}\in\Bbb{R}^3$ we have $$\frac d{dt}R_{\vec{a},t}\vec{b}\big\vert_{t=0}=\vec{a}\times\vec{b}.$$ In other words, cross product by $\vec{a}$ is an infinitesimal generator for the group of rotations about the axis $\vec{a}$.

The other fact I would use is the observation that

For all rotations $R$ we have the conjugation relation $$ R\circ R_{\vec{a},t}\circ R^{-1}=R_{R\vec{a},t}.$$ In other words, to rotate a vector $\vec{b}$ about the vector $R\vec{a}$ we can first apply $R^{-1}$, to move the scene to be about rotations about $\vec{a}$, then rotate about $\vec{a}$ by the prescribed angle, and then as the last step rotate the axis back to $R\vec{a}$.

We have the obvious identity $$ (R\circ R_{\vec{a},t}\circ R^{-1})R\vec{b}=R(R_{\vec{a},t}\vec{b}).\qquad(*) $$ And your claim follows from equating the derivatives of both sides of $(*)$ at $t=0$.

Don't know whether this was buried in one of your proofs, or whether you see too much handwavium in it.

  • $\begingroup$ I deleted a latter section. While it explained the first boxed fact when $\vec{a}$ is one of the standard basis vectors, I think that my claim of the first boxed fact following from that by the second leads to a circular argument. $\endgroup$ Sep 29, 2019 at 5:51
  • $\begingroup$ I did not think of it from this perspective. It's new to me. Thank you so much for broadening the horizons, I will enjoy digging into this. $\endgroup$
    – ex.nihil
    Sep 29, 2019 at 7:07

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .