I was wondering if it was possible to find $\overrightarrow{a}$ when it is given that: $$ \overrightarrow{a} \times \overrightarrow{b} = \overrightarrow{c}$$ Vectors $\overrightarrow{b}$ and $\overrightarrow{c}$ are known. How can I express vector $\overrightarrow{a}$ using $\overrightarrow{b}$ and $\overrightarrow{c}$??

  • $\begingroup$ The different possible vectors $\vec a$ (yes, there are more of them) all lie along a line that has direction parallel to $\vec b$. $\endgroup$ – Arthur Mar 30 '16 at 16:47
  • $\begingroup$ Not uniquely ${}$ $\endgroup$ – user251257 Mar 30 '16 at 16:48

As mentioned elsewhere, only the components of $\vec{a}$ perpendicular to $\vec{b}$ can be found.

Use $$ \vec{a}_\perp = \frac{\vec{b}\times\vec{c}}{\| \vec{b} \|^2} $$


Vector $\vec{a}$ is assumed to contain both perpendicular and parallel components to $\vec{b}$ such that $\vec{a} = \vec{a}_\parallel + \vec{a}_\perp$.

Now form $\vec{c} = \vec{a} \times \vec{b}$

$$ \vec{c} = (\vec{a}_\parallel + \vec{a}_\perp) \times \vec{b} $$

and use the formula above

$$ \vec{c} = \left(\vec{a}_\parallel + \frac{\vec{b}\times\vec{c}}{\| \vec{b} \|^2}\right) \times \vec{b} $$

Since $\vec{a}_\parallel$ is parallel to $\vec{b}$, it stands that $\vec{a}_\parallel \times \vec{b} =0 $

$$ \vec{c} = \frac{ (\vec{b}\times\vec{c})\times \vec{b} }{\vec{b} \cdot \vec{b}} = \frac{\vec{b} \times (\vec{c} \times \vec{b} )}{\vec{b} \cdot \vec{b}} = \frac{\vec{c} (\vec{b} \cdot \vec{b}) - \vec{b} (\vec{c}\cdot\vec{b}))}{\vec{b} \cdot \vec{b}} = \vec{c}$$

which is an application of the vector triple product. The above is true since $\vec{c}\cdot\vec{b}=0$ with them being perpendicular to each other.

  • $\begingroup$ I think you have a sign error when you use the triple product? Moving $b$ to the left gives you a minus, which should then appear in the answer too? $\endgroup$ – Timo Mar 31 '16 at 0:01
  • $\begingroup$ No because, I flipped the order of this $(\vec{b} \times \vec{c})$ also. $$ (b \times c) \times b = - b \times (b \times c) = b \times ( c \times b)$$ $\endgroup$ – ja72 Mar 31 '16 at 0:41
  • $\begingroup$ Ah, true, my bad. Then our answers match. $\endgroup$ – Timo Mar 31 '16 at 0:42

$\underline{a}$ would have to be a vector perpendicular to $\underline{c}$ but not parallel to $\underline{b}.$

You would therefore have to find parameters $\lambda$ and $\mu$ so that, for example $$\underline {a}=\lambda\underline{b}+\mu\underline{b}\times\underline{c}$$ where $\mu\neq0.$

We then have $$\underline{a}\times\underline{b}=(\lambda\underline{b}+\mu\underline{b}\times\underline{c})\times\underline{b}$$ $$=0+\mu(\underline{c}(b\cdot b)-\underline{b}(b\cdot c))$$

But $b\cdot c=0$ since they are perpendicular, so $\mu$ is predetermined and has value $\frac{1}{(b\cdot b)}$ and $\lambda$ is arbitrary.

So while $\underline{a}$ is not unique, it can be found for specific non parallel vectors $\underline{b}$ and $\underline{c}$

  • $\begingroup$ @Dr.MV..true, but how does this relate to my answer? $\endgroup$ – David Quinn Mar 30 '16 at 17:48
  • $\begingroup$ @Dr.MV but $(\underline{b}\times\underline{c})\times\underline{b}=\underline{c}(b\cdot b)-\underline{b}(b\cdot c)$ and $b\cdot c=0$ $\endgroup$ – David Quinn Mar 30 '16 at 18:45
  • $\begingroup$ Yes. I had incorrectly thought that $\mu$ was a free parameter. After reading again, I see it is not. So, a +1 $\endgroup$ – Mark Viola Mar 30 '16 at 19:02
  • $\begingroup$ Many thanks @Dr.MV! Your very helpful comments have prompted me to expand on and clarify my answer. $\endgroup$ – David Quinn Mar 30 '16 at 19:25
  • $\begingroup$ You're welcome! My pleasure David. -Mark $\endgroup$ – Mark Viola Mar 30 '16 at 20:27

Generally this is not possible. If you have the equation $$ \overrightarrow{a} \times \overrightarrow{b} = \overrightarrow{c} \tag{1} $$ for arbitrary $\overrightarrow{b},\overrightarrow{c}\in \mathbb{R}^3$ it is not always possible to find a proper $\overrightarrow{a}$, simply because it might not exist.

As it was already pointed out in the answer of @DavidQuinn, the resulting vector $\overrightarrow{c}$ is perpendicular to $\overrightarrow{a},\overrightarrow{b}$ and therefore to the $\operatorname{span}(\overrightarrow{a},\overrightarrow{b})$. So for example if we choose $\overrightarrow{b}=\overrightarrow{c}$, then $$ \overrightarrow{a} \times \overrightarrow{b} = \overrightarrow{c}=\overrightarrow{b} $$ is not even well defined (and we don't need to speak of a solution for $\overrightarrow{a} $ of any kind).

So let's now assume $(1)$ is well defined - which seems to be your intention - then if we find a solution, it is for sure not unique (as @Arthur already pointed out). This is because the following holds $$ \overrightarrow{a} \times (\overrightarrow{b}+\overrightarrow{c}) = (\overrightarrow{a} \times \overrightarrow{b})+(\overrightarrow{a} \times \overrightarrow{c}) $$ So assume we've found $\overrightarrow{a}$ which solves $(1)$, then we can simply add any to $\overrightarrow{b}$ parallel vector $\overrightarrow{d}$ and $(1)$ would still hold, because $$ (\overrightarrow{a}+\overrightarrow{d}) \times \overrightarrow{b} = (\overrightarrow{a} \times \overrightarrow{b})+(\overrightarrow{d} \times \overrightarrow{b})=(\overrightarrow{a} \times \overrightarrow{b})+\overrightarrow{0}=\overrightarrow{c} $$ Unfortunately, I am not aware of an algorithm which would gives us a solution $\overrightarrow{a}$ in the first place.


Assume $b, c\not = 0$. Note first that we must have $(a, c), (b, c) = 0$. Choose some vector $b'$ orthogonal to both $b$ and $c$, and write $a = \alpha b + \alpha' b'$. Then $a\times b = \alpha' (b\times b')$; and since $b, b', c$ are pairwise orthogonal, we have $b'\times b = \beta c$ for some constant $c\not = 0$. Thus $\beta$ determines $\alpha'$, and $\alpha$ is arbitrary. Specifically, for $b' = b\times c$, we have $b'\times b = |b|^2 c$ and thus $\alpha' = |b|^{-2}$.


Why is everybody assuming 3-dimensional vectors? There is a very intersting cross product in seven dimensions as well; it is anti-commutative, therefore $\mathbf a\times \mathbf b= -\mathbf b \times \mathbf a= \mathbf c$ and can be written in a matrix form:

$$ T_{\mathbf x} = \begin{bmatrix} 0 & -x_4 & -x_7 & x_2 & -x_6 & x_5 & x_3 \\ x_4 & 0 & -x_5 & -x_1 & x_3 & -x_7 & x_6 \\ x_7 & x_5 & 0 & -x_6 & -x_2 & x_4 & -x_1 \\ -x_2 & x_1 & x_6 & 0 & -x_7 & -x_3 & x_5 \\ x_6 & -x_3 & x_2 & x_7 & 0 & -x_1 & -x_4 \\ -x_5 & x_7 & -x_4 & x_3 & x_1 & 0 & -x_2 \\ -x_3 & -x_6 & x_1 & -x_5 & x_4 & x_2 & 0 \end{bmatrix}. $$

The cross product is then given by $ -\mathbf{b} \times \mathbf{a} = -T_{\mathbf{b}}\cdot \mathbf{a}=\mathbf{c}$. Calculate $-T_{\mathbf{b}}^{-1}\mathbf{c}$ (if possible!) and you're done...

  • $\begingroup$ I think the GA calculation in my answer would extend to this case too, though dealing with the extra trivector will probably introduce some new complications. $\endgroup$ – Timo Mar 31 '16 at 0:06
  • $\begingroup$ There is also a 6 dimensional cross product used in screw theory $$[v\times] = \begin{vmatrix} 0&0&0&0&-v_6&v_5\\ 0&0&0&v_6&0&-v_4\\ 0&0&0&-v_5&v_4&0 \\ 0&-v_6&v_5&0&-v_3&v_2\\ v_6&0&-v_4&v_3&0&-v_1\\ -v_5&v_4&0&-v_2&v_1&0\\ \end{vmatrix} $$ with $[v \times]u = -[u \times]v$. Also the dot product with the results are zero. $\endgroup$ – ja72 Mar 31 '16 at 13:27
  • $\begingroup$ @ja72 post another answer! Every cross product should be welcome... $\endgroup$ – draks ... Mar 31 '16 at 15:25
  • $\begingroup$ You know that $T_{\rm x}$ is singular right? See mathworld.wolfram.com/AntisymmetricMatrix.html $\endgroup$ – ja72 Mar 31 '16 at 15:44
  • $\begingroup$ @ja72 I haven't checked and tried to point that out with "(if possible!)". Thanks for checking... $\endgroup$ – draks ... Mar 31 '16 at 16:51

The question is easy to answer using geometric algebra (GA). Let me first state the answer (which is of course the same as reached in the answer by ja72) to pique your interest: $$ a = \frac{1}{|b|^2}(\alpha b - c \times b) $$ where $\alpha$ is an arbitrary real number, and $b$ must be orthogonal to $c$ in order for the problem to be well-posed. This is easy to check using the vector triple product, as ja72's answer shows.

Now, how does one get this using geometric algebra? There are several good introductions to GA online, so I won't write a new one here, but I'll provide some links in the end of the post. Now, assuming the basics are understood, we can immediately translate the problem in terms of the wedge product and the dual, using the relation $$ a\times b = a\wedge b I^{-1}, $$ where $I$ is the pseudoscalar in 3D space, and $I^{-1} = -I$ is its inverse with respect to the geometric product. This gives: $$ a \wedge b = c I. $$ The inner product product of $a$ and $b$ is some real number, say $a \cdot b = \alpha$. Let us add this to the wedge product to get $$ a\cdot b + a\wedge b = ab = \alpha + cI, $$ where the first identity is a fundamental formula in GA concerning the products of vectors.

Since vectors in GA have an inverse with respect to the geometric product, we can multiply from the right with $b^{-1} = \frac{b}{b^2}$ to get $$ a = \left(\alpha + c I\right)b^{-1} = \frac{1}{b^2}\left(\alpha b + cb I\right). $$ The fact that $b$ and $c$ must be orthogonal appears here in the form that if they are not, then $cb$ will have a three-vector component, and $a$ won't be a vector. It was of course also apparent in the first equation we wrote, since the dual of a vector in three dimensions is always a bivector orthogonal to the vector itself.

The previous formula is already the answer, but let us translate it back to the cross product form to get $$ a = \frac{1}{b^2}\left(\alpha b + c\wedge b I^{-1} I I\right) = \frac{1}{b^2}\left(\alpha b - c\times b\right), $$ where we inserted $I^{-1} I = 1$ to the second term to get the cross product to appear, and used $I^2 = -1$.

If this got you interested in learning GA, the wikipedia article is not a bad place to start. Here some more links, though which of them are most useful depend on what's your mathematical background:

Google will find a lot more sources, which of them are best for you depends on your starting level, as I mentioned.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.