News for hackers. Stuff that matters.
Re:Robotics 501: Mathematics for Robotics by Tainnor on Thursday January 27, 2022 @09:55AM (#30101283)
I think the Gauss-Jordan method has some reason to be taught:

- Most people have probably solved systems of equations by hand in school. G-J basically just systematises this process by abstracting away the unnecessary details and it has a clear sequence of steps (although you can still choose different pivots). I think it would not be satisfying to never see that.

- G-J can be done by hand on simple systems.

- It is a rather simple algorithm, but it still has some edge cases to consider (what if you have a 0 in pivot position?). I've seen a number of people try to implement G-J (we used it as a coding challenge and, yes, this was actually job-related in this case ;)) and fail on particular examples, e.g. stopping iteration too early after skipping a column.

- The algorithm runs in polynomial time (assuming floating point arithmetic; it's unfortunately not polynomial for arbitrary precision integers), so it's efficient. Knowing that a system of linear equations can efficiently be solved is, I think, rather important.

- you can discuss numerical stability in the context of different pivot strategies

- other algorithms use it as a building block or are basically a variation of it (LR factorisation, matrix inversion, simplex algorithm, etc.)

Of course, you could probably just tell people that instead of teaching them the algorithm, but I would think that it sticks better if you've actually seen it and it's not that hard of an algorithm (and I don't think you need to require people to memorise it either).

If you'd ask about teaching Jordan decomposition to engineers I would agree. :)

(But I've also never taught anyone, especially not engineers. So this is just what makes sense to me personally.)

There are no comments on this comment yet.