|
> I answered, "i^2 = j^2 = k^2 = ijk = -1". Could you explain why? For someone without a math background, it seems indeed like a pretty arbitrary thing to define. (I can understand the idea behind complex numbers and how the multiplication rules followed from the desire to define the square root of a negative number - however, so far, I don't get the motivation of introducing even more "special" elements) |
That's a bit reductionist. You don't just get the square root of a negative number, you get the Fundamental Theorem of Algebra (an Nth degree polynomial has N roots), which is a mathematical power tool if ever there was one.
Complex numbers dramatically simplify a bunch of proofs in linear algebra, give us tons of nifty integration techniques in complex analysis (the techniques are relevant for real numbers, they just use C), provide a representation of 2D rotations that can be manipulated using the rules of algebra (this is the most relevant to the thread), and give physicists, electrical engineers, and signal processing people an abstraction to represent oscillations (energy sloshing between two buckets = two elements of a complex number, which you can then do algebra with). They're a workhorse.
Quaternions are an attempt to do that in 3D. The dot and cross product of vector calculus are other pieces of those efforts. Unfortunately, vector calculus escaped the "math lab" before it was complete and got written into other fields and engineering books, so even though the underlying concepts were eventually sorted out (it's called Geometric Algebra), everybody just uses the half-baked abstractions (quaternions, dot product, cross product) which are Good Enough. It's a perfect example of "worse is better" affecting something other than software engineering.