3 ms·
In case you're interested, my recommendation for learning differential geometry is Lee's "Smooth Manifolds". I prefer the 1st edition to the 2nd [0], but both
by benrbray 6y ago
In case you're interested, my recommendation for learning differential geometry is Lee's "Smooth Manifolds". I prefer the 1st edition to the 2nd [0], but both present a much more clear overview of the basic definitions than I've seen anywhere else.
I think differential geometry is a field where it really helps to think about the "types" of each object, and to write the type signatures down explicitly for every function of interest. Unfortunately even Lee's book doesn't always do this, but I think it'll help you when taking notes.
If you just want to learn about the "spirit" of DG and not the rigorous details, I highly highly recommend Keenan Crane's "Discrete Differential Geometry" book [1] and course [2,3]. It's very computationally-oriented and you'd be in a good position to read more about the continuous case afterwards.
[0] due to differences in order of topics and typographical style
[1] http://www.cs.cmu.edu/~kmcrane/Projects/DGPDEC http://www.cs.cmu.edu/~kmcrane/Projects/DGPDEC
[2] http://brickisland.net/DDGSpring2020/ http://brickisland.net/DDGSpring2020/
[3] https://www.youtube.com/watch?v=FRvhgkGKfSM&list=PL9_jI1bdZmz0hIrNCMQW1YmZysAiIYSSS https://www.youtube.com/watch?v=FRvhgkGKfSM&list=PL9_jI1bdZm...
- da39a3ee 6y agoThanks! > I think differential geometry is a field where it really helps to think about the "types" of each object, and to write the type signatures down explicitly for every function of interest. Do you have an opinion on https://mitpress.mit.edu/books/functional-differential-geometry https://mitpress.mit.edu/books/functional-differential-geome...? I haven't gone through any of it, but I have gone through some of their companion book on classical mechanics. https://mitpress.mit.edu/sites/default/files/titles/content/sicm_edition_2/book.html https://mitpress.mit.edu/sites/default/files/titles/content/...
- benrbray 6y agoThat book has been on my reading list for a while, but I haven't yet done more than skim the first couple chapters. So, disclaimer: The below is my "HOT TAKE" (extremely unsubstantiated opinion) that you should definitely take with a grain of salt! I really like the idea of providing code+math together! I applaud their attempt at using code to clarify differential geometry notation, which is very overloaded. However, I am extremely skeptical that using Scheme (or any Lispy language) is the best choice here. I'm guessing the choice of Scheme has little to do with pedagogical value and more to do with the fact that Scheme was created by Sussman, one of the authors. I think Scheme is a poor choice here, mostly due to its lack of static types / type annotations. I'm also not a fan of S-expressions, but that's a different can of worms. To me, the lack of type information makes Scheme even more difficult to read than appropriately-parenthesized math notation. I think Haskell, Idris, or Julia might be more effective for clear communication of mathematical ideas. I think this quote sums up my view nicely: > "Dynamic typing" The belief that you can't explain to a computer why your code works, but you can keep track of it all in your head. (https://chris-martin.org/2015/dynamic-typing https://chris-martin.org/2015/dynamic-typing) The book is probably very effective at teaching differential geometry to a target audience that already knows Scheme inside and out. But to everyone else? I'm not so sure.
- da39a3ee 6y agoYes, that has always been my feeling about SICM (their mechanics version). It was very helpful to me to see the Euler-Lagrange equations explained in the way they did, i.e. using Spivak's notation for differential calculus, as well as lisp. But they even state in the introduction that the reason they are taking that approach is because the traditional Leibniz-ish notation is full of type errors, so as you say there seems to be a huge question about why they didn't tackle it with a language with a rich type system like Haskell or Idris. I know they did lots of clever things with schema some of which would be impossible to realize similarly in non-lisps, but still.