Chronology Current Month Current Thread Current Date
[Year List] [Month List (current year)] [Date Index] [Thread Index] [Thread Prev] [Thread Next] [Date Prev] [Date Next]

[Phys-l] component/basis snafu : axial vectors, pseudovectors, bivectors, quaternions, spinors



Hi Folks --

Executive summary: Sometimes it is not at all obvious what basis
people are using to expand their pseudovectors. The convenient thing
is not 100% logical, and the logical thing is not 100% convenient.

When in doubt, write out the basis bivectors explicitly.

=========

As you all know, in the context of vectors, the word "component" has
two meanings: Suppose we have a vector V which we expand as

V = [Vx, Vy, Vz] @B [1]

where Vx, Vy, Vz are some numbers, called the "components" of V in some
given basis B.

Meanwhile we can also expand V without using square brackets:

V = Vx X + Vy Y + Vz Z [2]

where X, Y, and Z are some basis vectors, and the *vector* Vx X is
called the "component" of V along the ±X direction, Vy Y is the
"component" of V along the ±Y direction, et cetera.

So in equation [1] the components are scalars, while in equation [2]
the components are vectors. Phooey. Sometimes I find it helpful
to call the things in equation [2] the /projections/ rather than the
components: Vx X is the /projection/ of V along the ±X direction.

=========

You must be wondering why I would fuss over such a small point. Well,
it turns out to be not so small when you are dealing with things like
rotations, angular momentum, magnetic fields, and various other things
that are (or should be) described as bivectors, pseudovectors, axial
vectors, quaternions, spinors, et cetera.

Let's start with the simple task of describing a rotation. I like to
make three-dimensional drawings using VRML aka x3d. It specifies a
rotation in terms of a vector and an angle ... i.e. the axis of rotation
the amount of rotation about that axis.

If you've ever thought much about rotations you know that it is better
to describe the /plane/ of rotation rather than the "axis" of rotation,
because the notion of "axis" makes no sense in D=2, D=4, or indeed any
dimensionality other than D=3. The notion of /plane/ of rotation works
equally well for any dimensionality from D=2 on up.

However, I still need to interface with VRML. I need to speak that
language. Grumble, grumble.

As you might imagine, I use bivectors as the internal representation for
all my calculations, and I convert to VRML format at the very last step.

The reason I mention this is that it is easier than you might think to
get the wrong answer.

Suppose we start with a vector

V = 1X + 2Y + 3Z [3]

Then the "corresponding" (i.e. Hodge dual) bivector is

V§ = 1YZ - 2XZ + 3XY [4]
^^^^^
which we can (at some risk) write more compactly as

V = [1, 2, 3]
V§ = [1, -2, 3] @NO [5]
V§ = [1, -2, 3] [5']

where @NO means "normal ordering" i.e. the basis vectors all appear in
alphabetical order in each term: YZ, XY, and XY. The last line shows
what happens if you get sloppy and don't specify the basis.

Things get tricky because lots of people like to write things so that
the "components" of the pseudovector V§ are numerically equal to the
"components" of the corresponding regular vector V:

V = 1X + 2Y + 3Z
V§ = 1YZ + 2ZX + 3XY [6]
^^^
where we have reversed one of the basis bivectors. The ZX bivector is
not normal ordered. We are now using some sort of weird "left handed"
basis for the bivectors. This allows the cute result

V = [1, 2, 3]
V§ = [1, 2, 3] @PV [7]
V§ = [1, 2, 3] [7']

where @PV indicates the "perverted pseudovector" basis. This stands in
dramatic contrast to equation [5]; the minus sign has disappeared.

There is AFAICT no logical basis for flipping this bivector. In particular,
you will drive yourself crazy if you try to write a computer program that
uses this representation internally. Using the /normal ordering/ basis
works a whole lot better in my experience, especially if you want the
program to generalize to D=2, D=3, D=4, and higher dimensionality.

To repeat: The main reason I can think of for flipping this basis vector
is that it gives a cute result in D=3. It's a disaster in D=4 and elsewhere.
I guess another reason is tradition, dating back to the days when nobody
understood the distinction between regular vectors and bivectors masquerading
as pseudovectors.

This is a real problem, because if you see something like [1, 2, 3] it
is not at all obvious which basis is being used, the @NO basis or the @PV
basis. Lots of people have settled on one or the other without realizing
that a choice even exists ... and they they get totally confused when they
come into contact with somebody who is using the opposite convention.

Constructive suggestion: When in doubt, write out the basis bivectors
explicitly. You can see that equations [4] and [6] are clear and correct
... in contrast to equations [7'] and [5'] which are just begging to be
misunderstood.

===

The Hodge dual of V is conventionally written V* but I prefer § for a
couple of reasons: "*" has too many other meanings. Also § has the
right symmetry: it reverses its appearance if you view it in a mirror,
as a good pseudovector should.

============

They say you never really understand something until you try to teach
it. The same goes for computers. Trying to teach a computer to do
Clifford algebra forced me to really understand things that I had sorta
glossed over previously.

I wrote a "Clifford algebra desk calculator" program. It knows how to
do addition, subtraction, dot product, wedge product, full geometric
product, reverse, Hodge dual, and so forth. Most of the features work
in arbitrarily many dimensions. It is not very nice code, but it is
better than nothing.
http://www.av8n.com/physics/rotations.htm#sec-cliffer