Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> ij = k is arbitrary, ...

It's probably my mathematical background speaking, but I find this far from arbitrary. Quaternions don't spring from nothing. It seems to me that (xy)(yz)=x(yy)z=xz needs just as much justification and memorisation ... why should y^2=1?

I guess my point is this. If people put in as much effort to understand quaternions as has been expended in this article, then quaternions would probably be just as easy to grasp and the system being described.



I disagree, but then I used bivectors extensively in the geometric part of my mathematical research (back when) so I would. ;)

y^2 = 1 is because it's a unit vector. The fact that bivectors are the correct way to view rotations is evident if you look at higher dimensions. Bivectors work just the same way as described here when you want to work in R^n, you just add basis vectors beyond x, y, z. But the algebra they describe no longer forms an associative division algebra over the reals. There is no way to get to the algebra of the (generators of) rotations in higher dimensions from the quaternions.

This is why i would say the quaternions (as built up from the complex numbers) are a non-sequitur and incidental to the structure of rotations.

Then again, I would always argue that one should use complex numbers to think of rotations in R^2, so.... :)


> I would always argue that one should use complex numbers to think of rotations in R^2, so.... :)

That's not so strange, it's basically e^i*theta isn't it?


> If people put in as much effort to understand quaternions as has been expended in this article, then quaternions would probably be just as easy to grasp and the system being described.

You can do anything you do with our numbers with roman numerals. You could argue that our base-10 system is as arbitrary as roman numerals, or that knowing how to do arithmetic in one system will allow you to do arithmetic in the other one. But that does not mean that learning arithmetic with roman numerals has the same difficulty as with base-10 numbers, and the only reason we find it more difficult is because we do not put enough effort.

I have introduced a few grad students to quaternions and GA. We eventually use quaternions most of the time, but they do not understand quaternions until they see GA (the same as someone may need some base-10 theory before completely understanding roman numerals arithmetic).


From the complex abacus the romans left us, it would seem that they used both base 10 and base 12 (for fractions - 360° in a circle is an extension of that). Base 12 seems to be slightly better than 10, but switching over would be WAY harder to "finishing" algebra... (and we wouldn't have the quite important these days 10^3~2^10 approximation.)


But they wouldn't extend to 4D.

You can treat complex numbers as 2D rotors (a 2D rotor is cos alpha + xy sin alpha, so xy can be replaced with i) and quaternions as 3D rotors. But if you build Cayley numbers from quaternions they don't have the same geometric meaning as 4D rotors.


y^2 = 1 because it is the sum of the dot product (1) and the outer product (0). The latter is because the parallelogram between y and y has zero area. The former is just the length of the vector y.

Some memorisation is required, but it is in terms of things that are easily visualised.


But why would the area be expressed as a length? This always struck me as a coincidence, and having read on bivectors it just makes sense that it would be (because a vector represents a distance on a line, a bivector represents an area on plane, a trivector represents a volume on a 3D space and so on).


Area is not expressed as a length. In general you can't simplify an expression that is a sum of an area and a length (this is one of the features of geometry that GA handles for you algebraically). e.g. "one meter plus one meter" can be simplified to "two meters", but "one square meter plus one meter" cannot be simplified. However if one of the terms is zero you can remove it, so "zero square meters plus one meter" is "one meter".

So x² = xx = x^x + x·x = 0 (area) + 1 (length)

xy = x^y + x·y = x^y (unit area) + 0 (length)


Right, with bivectors as in the article it all works.

What I was saying is that summing areas and length is exactly what happens with vector product. The k vector (or the k imaginary unit in quaternions) is the third unit vector, so it has length 1. But when I compute i⨯j=k, I suddenly interpret it as the area of the parallelogram formed by a and j, and at the same time k is the direction perpendicular to both i and j so its coefficient must be a length.

Likewise for triple product which computes a volume but it expresses it as a number (i.e. a length). We study all of these things in vector calculus and don't pay attention to these inconsistencies, but they are there.


Ah, apologies, I see what you're saying now :)

It's even more confusing because the triple product is actually a signed volume (pseudoscalar). I admit that I also never noticed these problems until learning GA.


ij=k means that the product of two of the three unit vectors must equal the third, which is a fundamental, non-arbitrary property, and without loss of generality the signs can be chosen so that ij=k (rather than ij=-k). Adding ii=-1,jj=-1,kk=-1 it's easy to deduce ijk=-1, j=ki, and i=jk, and ij=-ji, ik=-ki, jk=-kj.

Having to remember, out of the six possible permutations, that one of the three correct formulas is the one with the symbols in alphabetical order is much better than remembering the "right hand rule" (or was it "left hand rule"?).


But why would you remember a right hand or left hand rule? bivectors don't require you to.

x ^ y = x y - y x^T is the generator of the rotation that rotates a vector in the direction y into the direction of x. There is absolutely nothing to remember, and you can work this out immediately from just multiplying out the matrices:

exp(epsilon x ^ y) v ~ v + epsilon x ^ y * v = v + epsilon x (y,v) - epsilon y (x,v)

We add a little bit in the x direction and remove a bit in the y direction.

The whole view of rotations happening round an axis is just a coincidence of 3d space, it doesn't make sense in higher dimensions. On the other hand rotations always do (compose into ones that) happen on planes.


In my college in Antarctica we were taught

  x ^ y = y x^T - x y 
  
  exp(ε x ^ y) v ~ v + ε x ^ y * v
  = ε y (x,v) - v + ε x (y,v)
because we use the left-hand rule down under.


That's my point, you need to remember "ijk" in order (i.e. i=jk or ij=k) in a purely algebraic definition instead of a meaningless and complicated "handedness" rule involving rotations.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: