6 ms·
I think there is a two-part answer to your question. 1. What's the difference between Geometric Algebra and exterior algebras? Clifford algebras? This is a ha
by gugagore 6y ago
I think there is a two-part answer to your question.
1. What's the difference between Geometric Algebra and exterior algebras? Clifford algebras?
This is a hand-wavy explanation, but the GA community has specific GAs give a geometric meaning to objects and operations of some Clifford algebra. For example, there's a 5D algebra (Conformal Geoemtric Algebra?), which is really a 2^5=32D algebra, where elements of the algebra can represent points, point pairs, circles, planes, etc. On the level of Clifford algebra, any of these objects is a point in a 32D space, and operations on points give you other points. That's sort of the mechanics. And then it's the job of GA to give a geometric interpretation of the points and the operations. To draw an analogy to logic, I think of it as syntax vs semantics.
2. Also, what's wrong with cross products?
I just explained how GA is sort of unifying and uniforming. All sorts of disparate geometric objects can be treated uniformly in one representation.
At the same time GA allows you to distinguish between objects that are different. If you give me a vector `A` and a vector `B`, and I return to you `C=A×B`, on the "syntax" level, A, B, and C look the same. If we're thinking in terms of coordinates, they are all triples of real numbers.
But `C` is unlike `A` or `B`. For example, if you wish to operate under a different coordinate system, you might have a transformation matrix M to convert between old and new coordinates. So for example `Anew = M * A`, `Bnew = M * B`, and `Cnew = det(M) * M^{-1}^{T} * C` [2]. What what? The explanationsSome would use is that `A` and `B` are true vectors or polar vectors, and `C` is a pseudovector or axial vector.
In code that I write, I would very much like to have some distinction between vectors that transform like `A` or `B` and vectors that transform like `C`. You can do this with naming conventions, or just making sure you do keep track in some other way that. A GA framework would give you a way to track this difference. In my opinion (and there are many ways to accomplish the same thing) the programming language type of `C` should be distinct from `A`.
I think Hodge duality and the cross product are important, and I honestly don't know what's right to teach kids in high school. The tradition we currently have gets us pretty far. On the other hand, how awkward is it to invoke the notion of C being a "pseudovector" [3]? I think most people never really learn that. The first time I really reckoned with that was when learning computer graphics, because normal vectors transform differently from tangent vectors. Incidentally, if what I wrote doesn't make sense to anyone, learning about these concepts by thinking of normal vectors vs tangent vectors is probably an intuitive motivation. This page should help: https://www.scratchapixel.com/lessons/mathematics-physics-for-computer-graphics/geometry/transforming-normals https://www.scratchapixel.com/lessons/mathematics-physics-fo...
For anyone who might not know, "an oriented 3-dimensional Euclidean space, an oriented plane can be represented by the exterior product of two basis vectors, and its Hodge dual is the normal vector given by their cross product" [1].
[1] https://en.wikipedia.org/wiki/Hodge_star_operator https://en.wikipedia.org/wiki/Hodge_star_operator
[2] https://en.wikipedia.org/wiki/Cross_product#Algebraic_properties https://en.wikipedia.org/wiki/Cross_product#Algebraic_proper...
[3] https://en.wikipedia.org/wiki/Pseudovector https://en.wikipedia.org/wiki/Pseudovector
- MiroF 6y agoAs a physics undergrad, most of these concepts started being introduced to me once we got into relativity and coordinate shifts were much more common. I wish it had been earlier because I think it is important to have a strong idea of what the objects you are working with are and what properties they have.
- a1369209993 6y ago> If you give me a vector `A` and a vector `B`, and I return to you `C=A×B`, on the "syntax" level, A, B, and C look the same. Here you go: A = <1.0, 2.0, 3.0, 4.0> B = <5.0, 6.0, 7.0, 8.0> What exactly is A×B supposed to look like there? :) Cross product is awful. The wedge product, on the other hand, is: # C = <<Ax*By-Ay*Bx,Ax*Bz-Az*Bx,Ax*Bt-At*Bx, Ay*Bz-Az*By,Ay*Bt-At*By,Az*Bt-At*Bz>> # C = <<1*6-2*5,1*7-3*5,1*8-4*5,2*7-3*6,2*8-4*6,3*8-4*7>> # C = <<6-10,7-15,8-20,14-18,16-24,24-28>> C = <<-4.0,-8.0,-12.0,-4.0,-8.0,-4.0>> Which works fine for any number of dimensions. (Assuming coordinate-lexicographic order (resonable) and that I didn't screw up the arithmetic (less so).)
- MiroF 6y agoWell if you think of the cross product as returning a single vector that is orthogonal to all the others, then your question "what is AxB" for $\mathbb{R}^4$ seems ill-specified. You would instead need to do CrossProduct(A, B, C) and calculate the determinant of the 4x4 matrix with the last row being the $\mathbb{R}^4$ basis. You could also create a function by lazy evaluation of CrossProduct(A, B) : $\mathbb{R}^4 \rightarrow \mathbb{R}^4$
- a1369209993 6y ago> "what is AxB" for $\mathbb{R}^4$ seems ill-specified. Thats also true for R^3: does <1,0,0>x<0,1,0> give <0,0,1>, or <0,0,-1>?
- MiroF 6y agothe determinant of the matrix {{1,0,0},{0,1,0},{e_1,e_2,e_3}} is e_3 so <0,0,1>. it's completely specified by the order of A and B - there are two possible orders and two possible vectors.