Sunday, December 18, 2011

Derivation of the cross product formula

This post is a continuation of the earlier post on the dot product. In this post, I will be deriving the vector product or cross product formula from basic principles, and I will also be elaborating on the logical basis of the derivation.

The cross product formula is a very famous one, and it is commonly used to find a vector that is orthogonal to two other vectors, both of which have been computed into the formula. It is also used to find areas of triangles or parallelograms that are formed by the initial two vectors as they join together.

This is what it looks like:

Where a and b are some nonequivalent vectors with different directions, and n (cap) is a unit vector orthogonal to both a and b.

The direction of a x b is given by the left-hand rule (Note: it can also be given by the right-hand rule, but I'll be explaining a possible reason later on as to why the left-hand rule is preferred).

To start off the derivation, assume two vectors a and b exist, and so does another vector n, that is orthogonal to both a and b:

Our aim is to find the components of n, in terms of the components of a and b. Since n is orthogonal to both a and b, these conditions must apply:

Another independent equation of the component of n is necessary to solve this simultaneous equation with three unknowns of n1, n2 and n3. Notice that we haven't specified the magnitude of n. For simplicity, let the magnitude of n be 1 or unity.

This now gives us 3 simultaneous equations to solve to determine the 3 unknowns of n1, n2 and n3. Solving this sort of a simultaneous equation is not easy, and that's why another field of linear algebra was invented; to make our lives easier. But I'm not going to use the help of linear algebra. I'm going to work from basic algebraic principles. This is going to be long!

Now we've found n1, n2 and n3 in terms of the components of a and b.

Although we have succeeded in expressing n (cap) in terms of the components of a and b, we have arrived at a couple of problems. Firstly, we are stuck with an ugly and long square root Z term. This is a problem because we want our formula to be neat and easy to compute for future use. Elegance is an important part of Mathematics, but this formula is unfortunately not very elegant because of the square root Z term. Secondly, we are stuck with plus or minus signs. This arises because the vector n (cap) orthogonal to a and b can be pointing in one direction, or a direction that is anti-parallel to it. Which sign, and thus direction, do we choose? I will be solving both of these problems one at a time, to finally arrive at the definition of the cross product, as intended.

Firstly, we need to get rid of the square root Z term by understanding what it is made up of.

By multiplying the (cap) vector by square root Z, we get rid of the ugliness of Z on the right hand side. The n vector orthogonal to a and b now no longer has a magnitude of 1, but now has a magnitude of the square root of Z. To make things elegant, we have to find a way to break Z down to smaller components.

As said earlier,

Notice that Z comprises some common components like a2b2a3b3 and a1b1a3b3. These terms are also common in the dot product formula. Introducing information from the dot product formula might help us in understanding the structure of Z.



Now we have figured out the composition of square root Z! The next problem is understanding which sign to give the orthogonal vector (cross product vector). If no particular sign is chosen, these two cross product vectors n1 and n2 are possible:

Since the left-hand rule convention is adopted (as defined at the start and also shown above), the vector we are looking for is n1. Now we have to figure out which sign, positive or negative, produces n1.

To do that, we firstly have to assume once again that two different vectors a and b exist. We need to apply a mathematical trick here. Assume these two vectors are free vectors. That means that we can move them around without affecting them or their components. We can place them at a common point such that both diverge outwards. Now, we transform the co-ordinate system that governs them, from i,j and k to a more convenient co-ordinate system of i',j' and k', such that a and b now become a' and b' in the new co-ordinate system and now lie in the plane i'j'. The two vectors should look like this:

Such that,

Using this information, I will test out the possible cross products with the positive sign and the negative sign to determine which sign gives the cross product vector that follows the left-hand rule (ie, gives a positive k' axis value).

Note: The positive and negative signs below the brackets indicate which sign was used in the computation.

Since a and b travel along the positive i' axis and a travels along the negative j' axis while b travels along the positive j' axis:

Thus, it is the negative sign in the cross product formula that produces an orthogonal vector that obeys the left-hand rule, as proven above for arbitrary vectors a and b.

Summing everything up:

That was really long!

Now for something softer... Why do you think the left-hand rule is sometimes preferred over the right-hand rule?

Well, it could possibly be that the person who coined the left-hand rule was actually right handed, and realized that it would be more efficient to choose the left-hand rule, since he could look at his left hand to analyze vectors and write with his right hand, all at the same time.

What about the lefties!

Picture source:

LaTeX codes:


  1. best proof I have ever seen! THANK YOU SO MUCH

  2. Hi Adam!

    Thanks so much for your compliment. I'm glad to know you liked this proof.

    I checked out your blog and it seems you and I like the same type of music. Oh and you're from Cape Town? I've been there before and I love that place!

    Do write back if you can.

  3. thank u
    it is very very beautiful

  4. قشنگ بود ودیدنی معدلات سه مجهولی ولی بسیار زیبا بود

  5. I'm fairly sure the right hand rule is the convention chose

  6. A nice construction, especially since it doesn't require you to know anything about determinants. Too often the cross product is simply defined for students as a determinant with the i-, j- and k-vectors in the top row without going into detail about how and why it is defined as it is. I think Lagrange might have derived the cross product just as you did if what Wikipedia says about him is true.

    My only criticism is that when you were deriving a formula for Z, you didn't explain how you came up with the idea of adding the product ||a||*||b|| to both sides of the equation after multiplying it by -1. You lost me there for a second.

  7. fantastic proof , i liked it . If you read text books , it is as the cross product was a side -line (sorry english is not my mother tongue) of quatornions. But because Gauss used it , it had to have an algebraic expression similar derived by you . thank you so mutch

  8. I see a problem with the introduction of the dot product in relation to Z. (|A|*|B|cos(x))^2 = |A|^2*|B|^2*cos^2(x) not |A|*|B|*cos^2(x). The length of vector is given by its inner dot product so |A| = (A dot A); that means |A|^2 is (A dot A)^2 which would be very hairy with 4th powers involved. If I'm not seeing something please correct me. Thanks for the proof

  9. It's a nice post about cross product of two vectors. I like the way you have described it. It's really helpful. Thanks for sharing it.

  10. At the very beginning we allowed n(vector), the cross product of a(vector) and b(vector), to have a magnitude of 1. I'm a bit confused. Are we just allowed to do that? Sorry if that's a bad question. I just don't understand why we can do it.