8 ms·
"Don’t think of them as rotations, think of them as a unit vectors of a new coordinate systems." This makes it clear to me that many people have been very poor
by MiroF 6y ago
"Don’t think of them as rotations, think of them as a unit vectors of a new coordinate systems."
This makes it clear to me that many people have been very poorly served by their linear algebra courses if that is not obvious.
- criddell 6y agoI'm one of those people. I really struggled with my undergrad linear algebra courses. It was taught in a very abstract way with no suggestion ever that any of this had useful applications. I passed (barely) and was glad to be free of it. Years later when I got into graphics programming I found myself dealing with linear algebra concepts but this time it made much more sense to me. Being able to apply the ideas to real problems with visual solutions made all the difference.
- 0xfaded 6y agoI went through Stephen Boyd's "Introduction to Linear Dynamical Systems", and at some point he said something like "Eigen vectors are just the directions linear systems grow in", and bam!, many years of linear algebra came rushing back and everything made sense.
- MiroF 6y agoI had a very similar moment when I was thinking about why the determinants of all (non-identity) projections are 0 and the fact that the determinant is the product of the eigenvalues.
- deleted 6y ago[deleted]
- Balgair 6y ago> the determinant is the product of the eigenvalues. Ohhhhh, now I get determinants. I just thought they were some easy way to classify a matrix, not that they had any special meaning. Not that they were also all the eigenvalues multiplied too.
- jcranmer 6y agoAnd the trace is the sum of the eigenvalues.
- llamaz 6y agoThat's one concrete way to view determinants, but it's not _the_ way to think about them. Determinants are kind of abstract and even inelegant. This is because it's defined in terms of coordinates rather than abstractly. A coordinate free definition exists, but it's very complicated. Ideally they would not be taught at all, but it's useful for doing exam problems. Cramer's rule in particular is quite useful when solving simultaneous equations in engineering under exam conditions, for example. Even in computer/engineering applications, row reduction/diagonal normal form type are used instead. Determinants are a way to get a scalar number out of a matrix. You have linear forms, bilinear forms, and multilinear forms, the latter of which determinants fall under. There are certain properties you would like the determinant to satisfy, such as det(AB) = det(A) det(B), so that the determinant can give you an idea of whether a matrix is invertible. Eventually you work out that a determinant _has to be_ a multilinear form with certain properties (alternating, skew symmetric). Again this is all very complex and messy. Initially 'linear algebra' was just the study of determinants, because people thought of math in terms of solving equations. Linear algebra, as it's known today, came later. Bilinear forms turn up all the time, so ideally you would first learn bilinear forms, then learn the properties a bilinear form can have (e.g. alternating, skew symmetry, etc), and then learn determinants in that context.
- mkl 6y agoDeterminants aren't inherently abstract, they're quite practical, especially in the article's context: they tell you the scaling factor of the transformation the matrix represents, and whether it does a reflection. E.g. the determinants of the rotation matrices in the article are all 1, because they don't scale or reflect anything, just rotate.
- MiroF 6y agoThe matrix {{1,0,0},{0,-1,0},{0,0,-1}} has a determinant of 1 too, but it reflects along two different axes. So there's no way to distinguish from the determinant between the identity and between a reflection across two axes. I think the important detail is if you're changing from right-handed bases to left-handed or vice versa during the transformation.
- edge17 6y agoI've been looking for a course on this topic. Would you recommend it?
- Teknoman117 6y agoAt my university they rolled differential equations and linear algebra into the same course. It ... wasn't very good.
- nitrogen 6y agoI had that as well. IMO it was bad because of the lecturer, clearly a TA who really wanted to be doing something else. That was the semester I dropped out and started a company.
- MiroF 6y agoI was taught linear algebra largely through various physics courses I took through undergrad. Not necessarily the most traditional way, but I think that it should be taught that way more frequently - with physics, there is something concrete to grasp which can be helpful to a lot of people.
- neutronicus 6y agoIn physics they make sure you know that you can't make a mirror out of rotations, too.
- DougBTX 6y agoBut interestingly, you can make rotations out of mirrors.
- znpy 6y agoI am not sure about this. It looks more intuitive and I kinda agree that it would be more intuitive and easier to grasp. On the other hand though, wouldn't you lose the generality? Part of my undergraduate geometry and linear algebra course was on fields, groups and rings and that was built in order to show that once you can define a certain set of operations on a mathematical structure you can do "math" on such structures "as if" they were regular numbers (limitations apply). Think of matrix fields (not sure if it would be the correct translation, in Italian they were called "campi matriciali"). That was kinda mind blowing to me but at the same time it made perfect sense because of the generic definitions underlying. Not sure how you could go ahead and explain that with regular 3d-world physics.
- recursive 6y agoI technically passed a linear algebra course, but developed zero intuition for any of the facts I memorized. As a result, I no longer remember any of it other than something-something eigen-matrix.
- failuser 6y agoThey probably skipped classes to build their new app’s prototype. I wouldn’t even say it’s worse, most coder won’t need linear algebra.
- MiroF 6y agoIf you ever want to really do math at some point in your life, I think you need linear algebra or something equivalent. Better to build the intuitions earlier in your life.
- arcticbull 6y agoHaving a breadth of knowledge is one of those things you never realize the value of, if you don't have it. That's something I realized over the course of my career. For instance, I have a broad math background, nothing too deep, but enough to have an intuition on how complex things worked. One of the defining projects of my career to date was an embedded signal processing project given to me because "it seems like you know math" -- and I figured it out on the job by intuiting my way through. I figured out Fourier analysis and windows and FIR filters by intuition, and was able to use the pieces I had available as API to do something truly impactful. Most people won't need most things from school, but if you're the one who knows that one thing that's needed that one time, it can be disproportionately rewarding.
- mytailorisrich 6y agoRecently I worked on a project involving rotation matrices. Engineers were worried about matrix multiplications. I told them it's just a dot product with each of the 3 unit vectors... Sighs of relief all round.
- jheriko 6y agomany people did not learn about them from a linear algebra course
- ranger207 6y agoI've never really needed to use linear algebra, but I did take a class on it recently, so... Why does it matter that it's unit vectors in a new coordinate system? I don't really care about the new coordinate system, I care about rotating something to this position in my old coordinate system. Saying "oh yeah it's <1,1,1> in this coordinate system" doesn't really help because I still need to translate <1,1,1> in the old coordinate system to <1,1,1> in the new coordinate system... and now I've got the same problem again. I mean, I get that a rotation matrix, or any matrix for that matter, represents unit vectors in a new coordinate system. If I got nothing else from that course I at least learned that a matrix represents like 50 different concepts like systems of equations, coordinate spaces, etc. A big part of my course was applying rules for one representation of a problem to another equivalent representation to a problem. What I never understood is why it matters how you're representing the problem. Identifying that a rotation matrix is just unit vectors in a new coordinate space doesn't help me solve my problem of wanting to rotate something, yet it felt like 75% of my course was about converting problems from one representation to another.
- Twisol 6y agoI think the idea is to recontextualize the coordinate system of your object as not being the global coordinate system in the first place. The matrix defines the orientation of your object relative to the global coordinate system. The question of "how to rotate something" rests on operational semantics. The question of "how is this related to that" rests on denotational semantics, and is much more general. The beauty of linear algebra is how closely the two are related: every linear transformation (the relationship) gives a matrix given a choice of basis, and matrices have a direct algorithm for transforming coordinate vectors.
- overgard 6y agoIn this case, the idea is to make it easier to debug by looking at it. If you work in 3D graphics, usually looking at euler angles (ie, rotation around x,y,z) is pretty intuitive, but it has a lot of issues with gimbal lock, order the rotations happen in, etc. Quaternion's fix that, but they're very unintuitive to look at (well, unless there's another tricky like this I'm unaware off -- I'm sure there is). On the other hand, this trick with the rotation matrix lets me represent an arbitrary rotation, but it's also pretty easy to take that representation back to something I can understand. In 3d graphics (or physics or what have you) you're constantly moving between coordinate systems/frames of reference because certain things are very easy to represent in a local coordinate system but are difficult to work with in a global one
- white-flame 6y agoEven if you didn't learn this from linear algebra, doing any measure of graphics programming at the matrix level very directly reveals these sorts of associations as you see how the numbers accumulate, and get everything debugged. Children learned these concepts, too, as they hobbied around with programming rotating visuals. It doesn't require advanced math, it's just a very practical perspective. SNES programming also directly introduces people into the notion of 2d vectors advancing over an original axis, which ends up in a rotation in mode 7 stuff.
- taneq 6y agoI remember this being one of the huge "aha!" moments in my linear algebra course. I'd been doing 3D graphics programming for a while at that point and suddenly all the mechanics behind the calculations snapped into place.
- SagelyGuru 6y agoI would emphasise one more thing in connection with this: scalar products being projections onto the new axis and the matrix multiplication (so called rotation) of a vector is just calculating those scalar products. Now you can forget all those confusing angles altogether.
- rumanator 6y ago> "Don’t think of them as rotations, think of them as a unit vectors of a new coordinate systems." That's exactly what all square non-singular matrices with unit column spaces are. In fact, all square non-singular matrices are coordinate transformations. That's pretty much the central point of linear algebra. Framing rotation matrices as changes to the coordinate system doesn't add much info like framing polynomials as continuous functions. Technically it's true, but it doesn't add much to clarify.