> What does it even mean to have a “mixed-grade” multivector? The product of two vectors has a scalar part and a bivector part. Why?
I interpret the mixed grade vectors as weighted sums of parallel and perpendicular parts. The product preserves information by letting the product of grade 1 and grade 1 be in grade 0 + grade 2. It's the same interpretation for products of vectors and blades. you get a multivector which preserves the geometric information in a n-1 and n+1 grade multivector.
The product has the interpretation as the information preserving product. So I don't really see what you mean when you say:
>Either way, GA’s trick of “removing the vector part, then putting it back” is just… weird, I guess?
uv = u(v|| + v_|_) = scalar + bivector
every vector is decomposable and so I dont get why this grade splitting is unnatural or uninterpretable to you? It's the reason people are always talking about the even subalgebras of geometric algebras.
Besides all the this. The purpose of the geometric product, is that it is an associative product over the embedding 2^n dimensional vector space and you get a closed associative algebra.
As a software developer, the point about distinguishing multi-vectors from operations they may be isomorphic to makes complete sense.
I.e. just because two data structures have the same values, and are related, doesn't make them the same thing.
A great deal of clarity is had by not treating all two-field structures of real/float x and y, as if they were all points and offsets and vectors, etc. Each of those things is a different type, with different expectations on how it will be legally used, and combined with the others.
The fact that two numbers over two dimensions allows for isomorphic relations between them, does not make them the same thing.
--
This is very similar to how pointers/addresses (1-dimensional objects) are represented by an integer, and so are offsets/sizes. But they are different. Adding two addresses makes no sense. De-referencing an offset makes no sense.
There is an isomorphism, between offsets from the zero address and the same numerical addresses, but the distinction between whether you have an offset or address is important if you want your type system to guarantee proper/safe behavior.
Conceptually, an address consists of a RAM origin, and an offset. Where as an offset is just an offset.
You can add and subtract offsets. You can add and subtract offsets to addresses (i.e. to their offsets). And you can subtract addresses (the RAM origins cancel, leaving an offset).
But you can't add two addresses, because adding two origins makes no sense.
(Generalizing from adding two values, to multiple additions = multiplication of by indices: multiplying offsets by indices makes sense. Multiplying addresses by offsets or indices does not. Adding and subtracting indices makes sense. Multiplying indices makes sense, but not as an offset (although there is an isomorphism from the number of elements n of an i x j array of objects, it objects have a size of 1.))
I don't quite follow where you are deriving the reflection of a vector across another vector. You seem to assume that it is the parallel part which needs to be flipped--isn't it the perpendicular part?
And the GA derivation doesn't seem that much different from the operator-based one, viz:
let a||b be the component of a parallel to b, let a_|_b be the component of a perpendicular to b:
I too would start where your operator-style derivation starts, i.e.
a reflected across b = (a||b) - (a_|_b) (flipping the perpendicular, not the parallel, component).
Given that a||b = (a.b)/b and (a_|_b) = (a^b)/b, we can express it as:
a reflected across b = (a.b)/b - (a^b)/b
Because the geometric product is associative, we can factor out the division by b, and rewrite it as:
= ((a.b)- (a^b))/b
Now, the numerator, (a.b) - (a^b), just looks so *achingly* close to a geometric product, doesn't it? If only we could somehow swap the sign of the exterior product....well, gee whiz, all we have to do is swap the order of the arguments!
= ((b.a) + (b^a))/b
= (b*a)/b
Substituting in for the definition of 1/b, we get the sandwich product
= (b*a*b)/(b*b)
which, if b is a unit vector, = b*a*b. If we start out with b as a unit vector, the derivation is so simple it feels like cheating:
a reflected across b = (a.b)*b - (a^b)*b = (a.b - a^b)* b = (b.a + b^a)*b = b*a*b.
Is that really so much harder to derive, or does it really give that much harder of a formula to remember, than the operator-based approach? If so, can you spell it out a bit?
To me anyways, the geometric product really shines here: because it operates so much like ordinary (though order-dependent) multiplication, its easy for me to use my mad algebra skillz to wrangle the expression into any particular form which is handy to me.
The basic complaint is that GA adds nothing to exterior algebra, which is well understood, even if under-utilized. That the concepts of EA are under-used is not up for debate: Everyone agrees. In fact, by reframing everything from the first introduction to linear algrebra and up in terms of GA, you lose intuition, compatibility, and gain nothing.
Having read the GA textbook and vector calculus textbook, I can't agree more. The whole thing made me consistently think "Oh cool, so what?". Usually when I read through a grad / undergrad textbook I gain a new way of thinking about problems I want to think about. With GA, it was more of contorting my problems to fit onto GA, and then ... nothing.
However, there were some claims that I did not verify in the GA textbook about being computationally faster and more stable. Those, if borne out, would be valuable.
In my first few semesters of studying Physics I found these commonly used integral identities (Stokes etc.) really odd and wondered why those look so similar. Of course EA/differential forms provide ways to generalize that. Then other QM topics have these absolutely counter-intuitive geometries, although GA seems to provide some consistent intuition. (E.g. why a full rotation is 720 degrees)
That said, I think vector algebra/calculus seems to be too much calculation focused to me. It's really hard to develop an intuition without excessive amounts of exercising calculations. (And books about GA still seem scarce)
Hmmm.... if I understand your post correctly, it seems like you think the geometric product should be canceled ("cancel" as in cancel culture). And it should be canceled because it's really weird to be adding a scalar to a vector.
Let me try to emphasize your case as much as possible: The geometric product of two vectors, a and b is;
a * b = a . b + a ^ b
I.e. an "inner' or "interior" product, plus an "outer" or "exterior" product. What kind of self-respecting multiplication consists of a sum of two other kinds of multiplications? And why the heck would you even want to add them?
Do I have you correct?
As a point of departure, let me quote you here:
// The general geometric product between two mixed-grade multivectors follows by writing them all out as sums of products of vectors like the above, then cancelling everything out according to xx=1 and xy=−yx for all choices of x=y //
Yup. But you do need quantities who have a multiplication table like x and y above, in order to develop the exterior product. And you say you like the exterior product. So, the existence of quantities which multiply like xx=1 and xy=-yx isn't objectionable to you, per se, right?
But, as you also say above, the geometric product is just polynomial multiplication with expressions using quantities like x and y with those multiplication tables.
E.g., suppose we are multiplying a and b, which are 2D vectors expressed in the basis of x and y:
(ax*bx + ay*by) + (ax*by-bx*ay)*xy = (a . b) + (a ^ b)
So the reason why it's not weird that the geometric product is the sum of two other products, is that polynomial multiplication is not weird.
And that's the same reason why it's legit to add a scalar to a bivector: because polynomial multiplication is legit.
When you are multiplying out 2d vectors, the number of terms is reasonable, but 3d and 4d vectors it starts to get to be very tedious to do by hand. The solution? Well, we use (a . b) as a shorthand for some of the terms, and (a^b) as a short hand for the rest of the terms.
Basically, it's just naming/bundling together terms from a polynomial multiplication in order to treat them as a single entity, instead of a bunch of entities. Its conceptually more tractable that way, and its way easier on your hand when you are writing them out manually.
It's really not as bizarre as it looks. I really wish that this view of geometric algebra were front and center in presentations of it. It does seem really weird to come upon a*b = a.b + a^b cold, without knowing what the heck a wedge product is and why we have two different kinds of products added together.
Hope that helps, sorry if I didn't really get your objections or address all your points.
Thanks for reading! Yeah I have no problem with the exterior product which obeys x ∧ y=-y ∧ x and x ∧ x = 0. But I see no reason to use the same product for xx=1. Exterior algebra does just fine with its two separate products, and combining the two into the same product seems to me to go poorly pretty much everywhere it's done. The two operations are just not the same and when you combine them the rules are weird and you have to un-combine them to actually do anything useful outside of a couple of specific examples.
(Also I'll point out that ab = a·b + a∧b is not generally true for multivectors; it only works for vectors. For arbitrary multivectors you end up with a bunch of "mixed" terms, for instance (xy)(yz) = xz = x∧z which you can't write as either a dot or wedge product.)
Hmmm....so basically, you are saying that you prefer to keep two sets of books, one for the inner product and one for the outer product?
Its true that when you are, say, proving that two expressions are equal, e.g.:
a = b
you might have to "unpack" each of the components, and separately equate them, e.g.:
ax*x = bx*x and
ay*x = by*x so ax = bx and ay = by
etc etc, but frequently, there are a lot of intermediate steps before that, and I've always found it easier to reason about those steps at the higher level of combining the two products into a single product.
I guess I still don't understand why you think the rules are weird: its just polynomial multiplication, what's so weird about that? Yeah, the operations are not the same, but they are come from one operation, viz, multiplying two polynomials.
Sure ab = a.b + a^b is only true if a and b are vectors. But if they are general multi vectors, computing ab is still just a polynomial multiplication. And yeah, not every geometric multiplication can be expressed as (a.b) +(a^b), which is to say that we have not invented a shorthand operator for every possible subset of terms for every possible result of multiplying two polynomials together. Doesn't mean its not useful shorthand tho!
The real big payoff (as another commenter mentioned in another thread) is that the geometric product is invertable. Neither (a.b) or (a^b) is invertible by itself. But their sum is. The fact that geometric multiplication is invertible just makes it soooo much easier to use all your algebra skills when manipulating and deriving expressions.
......
Do you remember the first time you learned about vectors? I do....I had just spent 4 or 5 years learning that you can multiply and divide integers, and integers are just a subset of real numbers, which you can also multiply and divide. And then complex numbers, which are a superset of the real numbers, which you can multiply and divide.
So, naturally, I just assumed that you would be able to multiply and divide vectors, and add scalars to vectors, just like I added integers to real numbers.
But the teacher just said "you can't multiply or divide vectors, MmmKay?" No reason. No explanation. "you can't add vectors to scalars, MmmKay?"
YMMV, but I would have enjoyed the experience much more if I had known that you actually can multiply and divide vectors, and add them to scalars, etc. And that multi vectors are a superset of real and complex numbers, just like they are supersets of integers. The whole thing would have cohered a lot better than just an arbitrary "stop asking those kind of questions" did.
And learning geometric algebra in the 9th grade (which is possible, because you've already learned polynomial multiplication), and therefore, ipso facto, learned the exterior algebra, would have been endlessly useful for the rest of my life. Imagine learning real physics in high school.
> its just polynomial multiplication, what's so weird about that?
Well that's the point of the article. You can do it, but the point of GA is to make vector algebra and calculus easier, and the geometric product doesn't do it. So stop teaching it to people. It just makes the problem worse: "you CAN multiply vectors, but it's even more confusing, yet we're going to act like it's even less confusing". I agree that it was weird, back in the day, to not be able to multiply vectors... but I would say, yes, you can, it's called the tensor product. Out of all the operations: geometric product, tensor product, wedge product, dot product... the geometric product is the least useful and least intuitive. So stop telling people that it's fundamental and reframing other things in terms of it. Just nix it entirely and everything makes a lot more sense.
Re invertibility: Yes, the geometric product is invertible (in positive metrics), but what are you inverting? Inverting something that isn't meaningful just produces something else that isn't meaningful. The cases where it's useful is when the thing you're inverting is a specific operator, like a rotation, and in that case you may as well just invert that operator, not the geometric product in general.
Perhaps I would understand your point better if you showed the same derivation both using GA and keeping two books for the two separate products?
Honestly, I don’t get why the geometric product is unintuitive and not meaningful: it’s just polynomial multiplication, which I have known what it means since 9th grade, and have very strong intuitions about.
Well it is not just polynomial multiplication, because polynomial multiplication has xy = yx whereas the geometric product has xy=-yx for orthogonal vectors and xa=ax for parallel vectors.
Actually the thing that is "just" polynomial multiplication is the "symmetric" product, defined as a×b = a⊗b + b⊗a and extended to be symmetric on all arguments in larger products. It obeys eg xyxxy = x^3y^2 for all factors without anything cancelling out. The geometric product, on the other hand, is some weird intermediate operation between the symmetric product and the antisymmetric product.
But again, the complaint is that the geometric product of two multivectors doesn't have any geometric interpretation. It is just a thing you have to deal with. Whereas in polynomial multiplication, and in exterior algebra, every single intermediate object means something. For instance in a polynomial like abc^2 you can talk about objects like (abc) and (bc^2) and (c^2) and assign meaning to them. In a geometric product like abcc you can't assign any meaning to any of the objects (except for cc = |c|^2) without knowing more about them. So it is uniquely un-meaningful out of the objects you can do vector algebra with.
// Its not just //
Come on man, polynomials don't have to be only over complex numbers and their subsets...its algebra, not algebra ;-)
In fact, it's not even just polynomial multiplication, it's just plain multiplication. The geometric product of two scalars is the product of the scalars. The geometric product of a scalar and a vector is the product of the scalar and the vector.
Geometric multiplication is called "multiplication" because its multiplication. Its just a coherent superset of the kinds of multiplication you do on all other numbers/elements of the field/whatever.
// doesn't have any geometric interpretation //
Still don't understand why you don't think it does. I mean, the dot product? The exterior product? Are they not full of geometric meaning?
Is it just the fact that they are added together that you don't like? Hmmm....I don't know whether this is helpful or not, but try this on for size, you are a programmer right?
Most scripting languages have a data structure like a hash-map, where you can associate a key and a value, ya?
Well....a multi vector is a hash map. Really. The basis vectors, basis bivectors, etc, are the keys. The coefficients on them are the values. Come to think of it, this way of viewing it should make the grade operator make sense as well: its just like the [] operator on a hash map: if a = ax*x +ay*y, then a[x] = ax, and a[y] = ay. (Well, not just like the [] operator; the grade operator returns a new hash map of all of the key-values pairs for which the keys are of the given grade. But you get the idea).
The geometric product is then a function which returns a hash map. If you pass in two vectors, the returned hash map will map the key 1 to the dot product, and map the key xy to the exterior product. The function is implemented as a call to the "multiply polynomials" subroutine.
This way of looking at it has been a great intuition pump for me, as well as providing for a bridge between my knowledge of programming and my knowledge of geometry.
Before I thought of multi vectors this way, I would find myself thinking things like "man, if I could just bundle up these values in a hash map and then feed it to a function..."
Now I can!! The vectors <=> polynomials <=> hash map isomorphism allowed me to bring my full brain to bear on geometric problems. The facility I had with manipulating polynomials and the facility I had with hash maps could be brought together in a unified methodology.
The utility of the geometric product then is kind of like the utility of operator overloading: imagine you had to have a different operator to multiply ints, reals, and complex numbers? Imagine if you wanted to add them together, you'd need a separate kind of operator for real + int, real + real, real + complex, etc etc. Madness. The push to express everything as geometric multiplication is the same push as to write general purpose, reusable functions when programming.
> What does it even mean to have a “mixed-grade” multivector? The product of two vectors has a scalar part and a bivector part. Why?
I interpret the mixed grade vectors as weighted sums of parallel and perpendicular parts. The product preserves information by letting the product of grade 1 and grade 1 be in grade 0 + grade 2. It's the same interpretation for products of vectors and blades. you get a multivector which preserves the geometric information in a n-1 and n+1 grade multivector.
The product has the interpretation as the information preserving product. So I don't really see what you mean when you say:
>Either way, GA’s trick of “removing the vector part, then putting it back” is just… weird, I guess?
uv = u(v|| + v_|_) = scalar + bivector
every vector is decomposable and so I dont get why this grade splitting is unnatural or uninterpretable to you? It's the reason people are always talking about the even subalgebras of geometric algebras.
Besides all the this. The purpose of the geometric product, is that it is an associative product over the embedding 2^n dimensional vector space and you get a closed associative algebra.
As a software developer, the point about distinguishing multi-vectors from operations they may be isomorphic to makes complete sense.
I.e. just because two data structures have the same values, and are related, doesn't make them the same thing.
A great deal of clarity is had by not treating all two-field structures of real/float x and y, as if they were all points and offsets and vectors, etc. Each of those things is a different type, with different expectations on how it will be legally used, and combined with the others.
The fact that two numbers over two dimensions allows for isomorphic relations between them, does not make them the same thing.
--
This is very similar to how pointers/addresses (1-dimensional objects) are represented by an integer, and so are offsets/sizes. But they are different. Adding two addresses makes no sense. De-referencing an offset makes no sense.
There is an isomorphism, between offsets from the zero address and the same numerical addresses, but the distinction between whether you have an offset or address is important if you want your type system to guarantee proper/safe behavior.
Conceptually, an address consists of a RAM origin, and an offset. Where as an offset is just an offset.
You can add and subtract offsets. You can add and subtract offsets to addresses (i.e. to their offsets). And you can subtract addresses (the RAM origins cancel, leaving an offset).
But you can't add two addresses, because adding two origins makes no sense.
(Generalizing from adding two values, to multiple additions = multiplication of by indices: multiplying offsets by indices makes sense. Multiplying addresses by offsets or indices does not. Adding and subtracting indices makes sense. Multiplying indices makes sense, but not as an offset (although there is an isomorphism from the number of elements n of an i x j array of objects, it objects have a size of 1.))
I don't quite follow where you are deriving the reflection of a vector across another vector. You seem to assume that it is the parallel part which needs to be flipped--isn't it the perpendicular part?
And the GA derivation doesn't seem that much different from the operator-based one, viz:
let a||b be the component of a parallel to b, let a_|_b be the component of a perpendicular to b:
I too would start where your operator-style derivation starts, i.e.
a reflected across b = (a||b) - (a_|_b) (flipping the perpendicular, not the parallel, component).
Given that a||b = (a.b)/b and (a_|_b) = (a^b)/b, we can express it as:
a reflected across b = (a.b)/b - (a^b)/b
Because the geometric product is associative, we can factor out the division by b, and rewrite it as:
= ((a.b)- (a^b))/b
Now, the numerator, (a.b) - (a^b), just looks so *achingly* close to a geometric product, doesn't it? If only we could somehow swap the sign of the exterior product....well, gee whiz, all we have to do is swap the order of the arguments!
= ((b.a) + (b^a))/b
= (b*a)/b
Substituting in for the definition of 1/b, we get the sandwich product
= (b*a*b)/(b*b)
which, if b is a unit vector, = b*a*b. If we start out with b as a unit vector, the derivation is so simple it feels like cheating:
a reflected across b = (a.b)*b - (a^b)*b = (a.b - a^b)* b = (b.a + b^a)*b = b*a*b.
Is that really so much harder to derive, or does it really give that much harder of a formula to remember, than the operator-based approach? If so, can you spell it out a bit?
To me anyways, the geometric product really shines here: because it operates so much like ordinary (though order-dependent) multiplication, its easy for me to use my mad algebra skillz to wrangle the expression into any particular form which is handy to me.
You probably want to give this a bit of time and repost it when the geometric cache flushes a little bit:
https://hn.algolia.com/?dateRange=all&page=0&prefix=false&qu...
Hm, didn't think about that. Is it like.. days? or weeks?
Second one in that list says 'couple of months' https://news.ycombinator.com/item?id=39542165
The basic complaint is that GA adds nothing to exterior algebra, which is well understood, even if under-utilized. That the concepts of EA are under-used is not up for debate: Everyone agrees. In fact, by reframing everything from the first introduction to linear algrebra and up in terms of GA, you lose intuition, compatibility, and gain nothing.
https://en.wikipedia.org/wiki/Exterior_algebra
Having read the GA textbook and vector calculus textbook, I can't agree more. The whole thing made me consistently think "Oh cool, so what?". Usually when I read through a grad / undergrad textbook I gain a new way of thinking about problems I want to think about. With GA, it was more of contorting my problems to fit onto GA, and then ... nothing.
However, there were some claims that I did not verify in the GA textbook about being computationally faster and more stable. Those, if borne out, would be valuable.
In my first few semesters of studying Physics I found these commonly used integral identities (Stokes etc.) really odd and wondered why those look so similar. Of course EA/differential forms provide ways to generalize that. Then other QM topics have these absolutely counter-intuitive geometries, although GA seems to provide some consistent intuition. (E.g. why a full rotation is 720 degrees)
That said, I think vector algebra/calculus seems to be too much calculation focused to me. It's really hard to develop an intuition without excessive amounts of exercising calculations. (And books about GA still seem scarce)
By the way, this article provides some estimations about no. operations compared to just using matrices: https://enkimute.github.io/LookMaNoMatrices/
Hmmm.... if I understand your post correctly, it seems like you think the geometric product should be canceled ("cancel" as in cancel culture). And it should be canceled because it's really weird to be adding a scalar to a vector.
Let me try to emphasize your case as much as possible: The geometric product of two vectors, a and b is;
a * b = a . b + a ^ b
I.e. an "inner' or "interior" product, plus an "outer" or "exterior" product. What kind of self-respecting multiplication consists of a sum of two other kinds of multiplications? And why the heck would you even want to add them?
Do I have you correct?
As a point of departure, let me quote you here:
// The general geometric product between two mixed-grade multivectors follows by writing them all out as sums of products of vectors like the above, then cancelling everything out according to xx=1 and xy=−yx for all choices of x=y //
Yup. But you do need quantities who have a multiplication table like x and y above, in order to develop the exterior product. And you say you like the exterior product. So, the existence of quantities which multiply like xx=1 and xy=-yx isn't objectionable to you, per se, right?
But, as you also say above, the geometric product is just polynomial multiplication with expressions using quantities like x and y with those multiplication tables.
E.g., suppose we are multiplying a and b, which are 2D vectors expressed in the basis of x and y:
(ax * x + ay * y) * (bx * x + by * y) =
(ax*bx)*(x*x) + (ax*by)*(x*y) + (ay*bx)*(y*x) + (ay*by)*(y*y) =
(ax*bx + ay*by) + (ax*by-bx*ay)*xy = (a . b) + (a ^ b)
So the reason why it's not weird that the geometric product is the sum of two other products, is that polynomial multiplication is not weird.
And that's the same reason why it's legit to add a scalar to a bivector: because polynomial multiplication is legit.
When you are multiplying out 2d vectors, the number of terms is reasonable, but 3d and 4d vectors it starts to get to be very tedious to do by hand. The solution? Well, we use (a . b) as a shorthand for some of the terms, and (a^b) as a short hand for the rest of the terms.
Basically, it's just naming/bundling together terms from a polynomial multiplication in order to treat them as a single entity, instead of a bunch of entities. Its conceptually more tractable that way, and its way easier on your hand when you are writing them out manually.
It's really not as bizarre as it looks. I really wish that this view of geometric algebra were front and center in presentations of it. It does seem really weird to come upon a*b = a.b + a^b cold, without knowing what the heck a wedge product is and why we have two different kinds of products added together.
Hope that helps, sorry if I didn't really get your objections or address all your points.
Thanks for reading! Yeah I have no problem with the exterior product which obeys x ∧ y=-y ∧ x and x ∧ x = 0. But I see no reason to use the same product for xx=1. Exterior algebra does just fine with its two separate products, and combining the two into the same product seems to me to go poorly pretty much everywhere it's done. The two operations are just not the same and when you combine them the rules are weird and you have to un-combine them to actually do anything useful outside of a couple of specific examples.
(Also I'll point out that ab = a·b + a∧b is not generally true for multivectors; it only works for vectors. For arbitrary multivectors you end up with a bunch of "mixed" terms, for instance (xy)(yz) = xz = x∧z which you can't write as either a dot or wedge product.)
Hmmm....so basically, you are saying that you prefer to keep two sets of books, one for the inner product and one for the outer product?
Its true that when you are, say, proving that two expressions are equal, e.g.:
a = b
you might have to "unpack" each of the components, and separately equate them, e.g.:
ax*x = bx*x and ay*x = by*x so ax = bx and ay = by
etc etc, but frequently, there are a lot of intermediate steps before that, and I've always found it easier to reason about those steps at the higher level of combining the two products into a single product.
I guess I still don't understand why you think the rules are weird: its just polynomial multiplication, what's so weird about that? Yeah, the operations are not the same, but they are come from one operation, viz, multiplying two polynomials.
Sure ab = a.b + a^b is only true if a and b are vectors. But if they are general multi vectors, computing ab is still just a polynomial multiplication. And yeah, not every geometric multiplication can be expressed as (a.b) +(a^b), which is to say that we have not invented a shorthand operator for every possible subset of terms for every possible result of multiplying two polynomials together. Doesn't mean its not useful shorthand tho!
The real big payoff (as another commenter mentioned in another thread) is that the geometric product is invertable. Neither (a.b) or (a^b) is invertible by itself. But their sum is. The fact that geometric multiplication is invertible just makes it soooo much easier to use all your algebra skills when manipulating and deriving expressions.
......
Do you remember the first time you learned about vectors? I do....I had just spent 4 or 5 years learning that you can multiply and divide integers, and integers are just a subset of real numbers, which you can also multiply and divide. And then complex numbers, which are a superset of the real numbers, which you can multiply and divide.
So, naturally, I just assumed that you would be able to multiply and divide vectors, and add scalars to vectors, just like I added integers to real numbers.
But the teacher just said "you can't multiply or divide vectors, MmmKay?" No reason. No explanation. "you can't add vectors to scalars, MmmKay?"
YMMV, but I would have enjoyed the experience much more if I had known that you actually can multiply and divide vectors, and add them to scalars, etc. And that multi vectors are a superset of real and complex numbers, just like they are supersets of integers. The whole thing would have cohered a lot better than just an arbitrary "stop asking those kind of questions" did.
And learning geometric algebra in the 9th grade (which is possible, because you've already learned polynomial multiplication), and therefore, ipso facto, learned the exterior algebra, would have been endlessly useful for the rest of my life. Imagine learning real physics in high school.
> its just polynomial multiplication, what's so weird about that?
Well that's the point of the article. You can do it, but the point of GA is to make vector algebra and calculus easier, and the geometric product doesn't do it. So stop teaching it to people. It just makes the problem worse: "you CAN multiply vectors, but it's even more confusing, yet we're going to act like it's even less confusing". I agree that it was weird, back in the day, to not be able to multiply vectors... but I would say, yes, you can, it's called the tensor product. Out of all the operations: geometric product, tensor product, wedge product, dot product... the geometric product is the least useful and least intuitive. So stop telling people that it's fundamental and reframing other things in terms of it. Just nix it entirely and everything makes a lot more sense.
Re invertibility: Yes, the geometric product is invertible (in positive metrics), but what are you inverting? Inverting something that isn't meaningful just produces something else that isn't meaningful. The cases where it's useful is when the thing you're inverting is a specific operator, like a rotation, and in that case you may as well just invert that operator, not the geometric product in general.
Perhaps I would understand your point better if you showed the same derivation both using GA and keeping two books for the two separate products?
Honestly, I don’t get why the geometric product is unintuitive and not meaningful: it’s just polynomial multiplication, which I have known what it means since 9th grade, and have very strong intuitions about.
Well it is not just polynomial multiplication, because polynomial multiplication has xy = yx whereas the geometric product has xy=-yx for orthogonal vectors and xa=ax for parallel vectors.
Actually the thing that is "just" polynomial multiplication is the "symmetric" product, defined as a×b = a⊗b + b⊗a and extended to be symmetric on all arguments in larger products. It obeys eg xyxxy = x^3y^2 for all factors without anything cancelling out. The geometric product, on the other hand, is some weird intermediate operation between the symmetric product and the antisymmetric product.
But again, the complaint is that the geometric product of two multivectors doesn't have any geometric interpretation. It is just a thing you have to deal with. Whereas in polynomial multiplication, and in exterior algebra, every single intermediate object means something. For instance in a polynomial like abc^2 you can talk about objects like (abc) and (bc^2) and (c^2) and assign meaning to them. In a geometric product like abcc you can't assign any meaning to any of the objects (except for cc = |c|^2) without knowing more about them. So it is uniquely un-meaningful out of the objects you can do vector algebra with.
// Its not just // Come on man, polynomials don't have to be only over complex numbers and their subsets...its algebra, not algebra ;-)
In fact, it's not even just polynomial multiplication, it's just plain multiplication. The geometric product of two scalars is the product of the scalars. The geometric product of a scalar and a vector is the product of the scalar and the vector.
Geometric multiplication is called "multiplication" because its multiplication. Its just a coherent superset of the kinds of multiplication you do on all other numbers/elements of the field/whatever.
// doesn't have any geometric interpretation // Still don't understand why you don't think it does. I mean, the dot product? The exterior product? Are they not full of geometric meaning?
Is it just the fact that they are added together that you don't like? Hmmm....I don't know whether this is helpful or not, but try this on for size, you are a programmer right?
Most scripting languages have a data structure like a hash-map, where you can associate a key and a value, ya?
Well....a multi vector is a hash map. Really. The basis vectors, basis bivectors, etc, are the keys. The coefficients on them are the values. Come to think of it, this way of viewing it should make the grade operator make sense as well: its just like the [] operator on a hash map: if a = ax*x +ay*y, then a[x] = ax, and a[y] = ay. (Well, not just like the [] operator; the grade operator returns a new hash map of all of the key-values pairs for which the keys are of the given grade. But you get the idea).
The geometric product is then a function which returns a hash map. If you pass in two vectors, the returned hash map will map the key 1 to the dot product, and map the key xy to the exterior product. The function is implemented as a call to the "multiply polynomials" subroutine.
This way of looking at it has been a great intuition pump for me, as well as providing for a bridge between my knowledge of programming and my knowledge of geometry.
Before I thought of multi vectors this way, I would find myself thinking things like "man, if I could just bundle up these values in a hash map and then feed it to a function..."
Now I can!! The vectors <=> polynomials <=> hash map isomorphism allowed me to bring my full brain to bear on geometric problems. The facility I had with manipulating polynomials and the facility I had with hash maps could be brought together in a unified methodology.
The utility of the geometric product then is kind of like the utility of operator overloading: imagine you had to have a different operator to multiply ints, reals, and complex numbers? Imagine if you wanted to add them together, you'd need a separate kind of operator for real + int, real + real, real + complex, etc etc. Madness. The push to express everything as geometric multiplication is the same push as to write general purpose, reusable functions when programming.
helpful at all?