Another service from Omega

Cross Products are not Associative


*****
    |\^/|     Maple V Release 3 (SUNY at Albany)
._|\|   |/|_. Copyright (c) 1981-1994 by Waterloo Maple Software and the
 \  MAPLE  /  University of Waterloo. All rights reserved. Maple and Maple V
 <____ ____>  are registered trademarks of Waterloo Maple Software.
      |       Type ? for help.
Warning: new definition for   norm
Warning: new definition for   trace



Let us show that the cross product is NOT associative i.e. ax(bxc) DOES NOT EQUAL (axb)xc. First define a,b and c as three arbitrary vectors in 3D.


> a := vector([a1,a2,a3]); b:= vector([b1,b2,b3]); c := vector([c1,c2,c3]);


                              a := [ a1, a2, a3 ]

                              b := [ b1, b2, b3 ]

                              c := [ c1, c2, c3 ]



To save typing do


> alias(cp=crossprod);


                                     I, cp




Let's compute the quantities that we need:


> axb := cp(a,b); bxc:=cp(b,c); a_xbxc := cp(a,bxc); axbx_c:=cp(axb,c);


             axb := [ a2 b3 - a3 b2, a3 b1 - a1 b3, a1 b2 - a2 b1 ]

             bxc := [ b2 c3 - b3 c2, b3 c1 - b1 c3, b1 c2 - b2 c1 ]

             a_xbxc := [ a2 (b1 c2 - b2 c1) - a3 (b3 c1 - b1 c3),

                 a3 (b2 c3 - b3 c2) - a1 (b1 c2 - b2 c1),

                 a1 (b3 c1 - b1 c3) - a2 (b2 c3 - b3 c2) ]

             axbx_c := [ (a3 b1 - a1 b3) c3 - (a1 b2 - a2 b1) c2,

                 (a1 b2 - a2 b1) c1 - (a2 b3 - a3 b2) c3,

                 (a2 b3 - a3 b2) c2 - (a3 b1 - a1 b3) c1 ]




We then have that:
ax(bxc) - (axb)xc
equals,


> evalm(a_xbxc - axbx_c);


       [ a2 (b1 c2 - b2 c1) - a3 (b3 c1 - b1 c3) - (a3 b1 - a1 b3) c3

              + (a1 b2 - a2 b1) c2,

           a3 (b2 c3 - b3 c2) - a1 (b1 c2 - b2 c1) - (a1 b2 - a2 b1) c1

                + (a2 b3 - a3 b2) c3,

           a1 (b3 c1 - b1 c3) - a2 (b2 c3 - b3 c2) - (a2 b3 - a3 b2) c2

                + (a3 b1 - a1 b3) c1                                    ]



and we can simplify each of the entries of the above vector with


> map(simplify,");


               [ - a2 b2 c1 - a3 b3 c1 + c3 a1 b3 + c2 a1 b2,

                   - a3 b3 c2 - a1 b1 c2 + c1 a2 b1 + c3 a2 b3,

                   - a1 b1 c3 - a2 b2 c3 + c2 a3 b2 + c1 a3 b1 ]




Let's remember this "result" into res, and let maple give us ALL the cases for which the associative rule is true,


> res := ":

> solve({res[1],res[2],res[3]},{a1,a2,a3,b1,b2,b3,c1,c2,c3});

                                                     c1 b1 + c3 b3
{b3 = b3, c1 = c1, c2 = c2, a3 = a3, a2 = a2, b2 = - -------------, c3 = c3,
                                                           c2

         - a3 b3 c2 + c1 a2 b1 + c3 a2 b3
    a1 = --------------------------------, b1 = b1},
                       b1 c2

                                                    c1 b1       a2 c1
{c1 = c1, c2 = c2, a3 = a3, a2 = a2, b3 = 0, b2 = - -----, a1 = -----,
                                                      c2          c2

    c3 = c3, b1 = b1},

                                          a2 c3                a2 c1
{b3 = b3, c1 = c1, c2 = c2, a2 = a2, a3 = -----, b2 = b2, a1 = -----, c3 = c3,
                                            c2                   c2

    b1 = b1},

                                         a2 c3                a2 c1
{c1 = c1, c2 = c2, a2 = a2, b3 = 0, a3 = -----, b2 = b2, a1 = -----, c3 = c3,
                                           c2                   c2

    b1 = b1},

{c1 = c1, c2 = c2, a3 = a3, a2 = a2, b1 = 0, b3 = 0, b2 = 0, c3 = c3, a1 = a1}

    ,

      a3 c1                c2 a3
{a1 = -----, b3 = b3, a2 = -----, c1 = c1, c2 = c2, a3 = a3, b1 = 0, b2 = 0,
        c3                   c3

    c3 = c3},

      c2 a3                                            c2 b2
{a2 = -----, c1 = c1, c2 = c2, a3 = a3, b1 = 0, b3 = - -----, b2 = b2,
        c3                                               c3

    c3 = c3, a1 = a1},

      a3 c1                c2 a3
{a1 = -----, b3 = b3, a2 = -----, c1 = c1, c2 = c2, a3 = a3, b1 = 0, b2 = b2,
        c3                   c3

    c3 = c3},

{

                                                                          a2 c1
c3 = 0, b3 = b3, c1 = c1, c2 = c2, a3 = 0, a2 = a2, b1 = 0, b2 = b2, a1 = -----
                                                                            c2

},

{c1 = 0, c3 = 0, b3 = b3, a3 = a3, a2 = a2, b1 = 0, c2 = 0, b2 = b2, a1 = a1},

                                                                    a3 b3
{c3 = 0, b3 = b3, c1 = c1, a3 = a3, b1 = 0, c2 = 0, b2 = b2, a2 = - -----,
                                                                      b2

    a1 = a1},

                                                 a2 c3                a2 c1
{c1 = c1, c2 = c2, a2 = a2, b1 = 0, b3 = 0, a3 = -----, b2 = b2, a1 = -----,
                                                   c2                   c2

    c3 = c3},

{c1 = 0, c3 = 0, b3 = b3, a3 = a3, a2 = a2, c2 = 0, b2 = b2, b1 = b1, a1 = a1}

    ,

                                                             c3 b3
{b3 = b3, a3 = a3, a2 = a2, c2 = 0, b2 = b2, c3 = c3, c1 = - -----,
                                                               b1

           a2 b2 + a3 b3
    a1 = - -------------, b1 = b1},
                 b1

{

     a3 c1
a1 = -----, c1 = c1, a3 = a3, c2 = 0, b3 = 0, a2 = 0, b2 = b2, c3 = c3, b1 = b1
       c3

},

      a3 c1
{a1 = -----, b3 = b3, c1 = c1, a3 = a3, c2 = 0, a2 = 0, b2 = b2, c3 = c3,
        c3

    b1 = b1},

{c3 = 0, c1 = c1, a3 = 0, c2 = 0, b3 = 0, a2 = 0, b2 = b2, b1 = b1, a1 = a1},

{c1 = 0, c3 = 0, a3 = a3, c2 = 0, b3 = 0, a2 = 0, b2 = b2, b1 = b1, a1 = a1},

{c3 = 0, b3 = b3, c1 = c1, a3 = 0, c2 = 0, a2 = 0, b2 = b2, b1 = b1, a1 = a1},

{c1 = 0, c3 = 0, b3 = b3, a3 = a3, c2 = 0, a2 = 0, b2 = b2, b1 = b1, a1 = a1},

{c1 = c1, a3 = a3, b1 = 0, c2 = 0, b3 = 0, a2 = 0, b2 = b2, c3 = c3, a1 = a1},

{c1 = 0, c3 = 0, a3 = a3, a2 = a2, b1 = 0, c2 = 0, b3 = 0, b2 = b2, a1 = a1},

{c3 = 0, b3 = b3, c1 = c1, c2 = c2, a3 = 0, a2 = a2, b1 = 0, b2 = 0, a1 = a1},

{c1 = 0, c3 = 0, b3 = b3, a3 = a3, a2 = a2, b1 = 0, c2 = 0, b2 = 0, a1 = a1}




A total of 24 different solutions! Yes, for many choices of the vectors a,b and c the cross product is associative but not for ALL the possible choices.


> solutions := ":





Take one of the simplest solutions for example the 16th solution given by,


> solutions[16];


         a3 c1
   {a1 = -----, b3 = b3, c1 = c1, a3 = a3, c2 = 0, a2 = 0, b2 = b2, c3 = c3,
           c3

       b1 = b1}



By choosing e.g. a=u, b=v, c=w with,


> u :=[-2,0,-1]; v:=[x,y,z]; w:=[2,0,1];





But if we don't comply with the equation for a1 then, we loose associativity as we can readily check,


> u := [1,0,-1];


                                u := [1, 0, -1]



> cp(u,cp(v,w));

                            [ 2 z - x, y, 2 z - x ]



> cp(cp(u,v),w);

                           [ - x - z, y, 2 x + 2 z ]




the two sides are clearly NOT equal unless x=y=z=0. So we have shown that for the vectors (as for many others):
[1,0,-1], [x,y,z], [2,0,1]
the associativity property for the cross product is violated. Cross products are then NOT associative and they only make sense in dimension at most 3. These are really weaknesses of the vector product and make it less fundamental than the innerproduct.


Link to the commands in this file
Carlos Rodriguez <carlos@math.albany.edu>
Last modified: Wed Sep 4 18:31:06 EDT 1996