
Functional Differential Geometry (2012) [pdf] - kevdevnull
http://groups.csail.mit.edu/mac/users/gjs/6946/calculus-indexed.pdf
======
adolgert
Enough of you care about this to vote it to the front page? Who are you
people? In that case, I have two favorite books on this topic.

Bamberg and Sternberg, A Course in Mathematics for Physics Students. It's a
redo of calculus using differential geometry from the start. A very pretty way
to do E&M, or calculations on the surface of the Earth, or vector flows.

Grady and Polimeni, Discrete Calculus. This is how you do calculus on graphs,
which is how you do scoring algorithms on graphs. You know, for big data.

Discrete exterior calculus in Python! (almost forgot)
[http://arxiv.org/abs/1103.3076](http://arxiv.org/abs/1103.3076) They have
demos that show how extraordinarily powerful it is.

That ought to keep you busy for a few months, you odd ducks.

~~~
cowpig
Treating data as a distribution in high-dimensional space is at the core of
machine learning, and differentiating across those dimensions is typically how
learning is done.

I don't know if this is true, but at a glance it looks to me like differential
geometry could be useful to people in machine learning. Am I right about that?
I am probably going to look closer tonight...

~~~
mjw
It is -- there's a whole area called Information Geometry which treats the
parameter spaces of statistical models as Riemannian manifolds under the
Fisher information metric.

As an example application, when sampling from the posterior of a Bayesian
model it can help to take this natural geometry of the parameter space into
account, e.g. via Riemannian Manifold Hamiltonian Monte Carlo [1]

Then again, from what I've seen most Manifold Learning only uses the word
manifold in a loose handwavey sense to motivate what they're doing -- the
added abstraction level of differential geometry doesn't always add very much
you're just interested in learning smooth functions from R^m -> R^n.

[1]
[http://www.dcs.gla.ac.uk/publications/PAPERS/9149/RMHMC_MG_B...](http://www.dcs.gla.ac.uk/publications/PAPERS/9149/RMHMC_MG_BC_SC_07_09.pdf)

------
ajtulloch
I think a functional (or CS) perspective is an interesting approach, but I
think you can lose some nice results in introductory differential geometry by
following just this course. For example, the Gauss-Bonet theorem doesn't
appear to be covered, which is an incredibly beautiful result linking the
geometry and topology of manifolds.

For a more classical introduction to differential geometry requiring only
multivariate calculus and some real analysis/point set topology, Do Carmo's
"Differential Geometry of Curves and Surfaces" is a great textbook.

I put together a summary (key definitions/theorems) from an undergraduate
course following Do Carmo at [2].

[1]: [http://www.amazon.com/Differential-Geometry-Curves-
Surfaces-...](http://www.amazon.com/Differential-Geometry-Curves-Surfaces-
Manfredo/dp/0132125897)

[2]:
[http://ajtulloch.github.io/PDFs/MATH3968LectureNotes.pdf](http://ajtulloch.github.io/PDFs/MATH3968LectureNotes.pdf)

~~~
crasshopper
My three cents: Lee, Spivak v1, Stillwell.

~~~
kevdevnull
Lee's books are great as well, very different perspective, audience,
motivation and development, but great. I am working through his first on
topological manifolds now.

Also, at about the same level of difficulty but a different perspective:

[http://f3.tiera.ru/2/M_Mathematics/MD_Geometry%20and%20topol...](http://f3.tiera.ru/2/M_Mathematics/MD_Geometry%20and%20topology/MDdg_Differential%20geometry/Jost%20J.%20Riemannian%20Geometry%20and%20Geometric%20Analysis%28Springer%202005%29%28573s%29_MDdg_.pdf)

------
mhartl
In [ _Structure and Interpretation of Classical Mechanics_
]([http://mitpress.mit.edu/sites/default/files/titles/content/s...](http://mitpress.mit.edu/sites/default/files/titles/content/sicm/book.html)),
the same authors mention that a computational approach to calculus revealed
errors in their own understanding of classical mechanics equations (such as
Lagrange's equations), and they introduced new notation to address the
problem. It appears that _Functional Differential Geometry_ picks up that idea
and runs with it.

~~~
crasshopper
I would call both of these "X for computer scientists".

------
throwaway283719
I started implementing the 'scmutils' library that this book uses in Haskell.
I stopped working on it a year or so ago (because life) but it's here if
anyone is interested -

[https://github.com/chris-taylor/Classical-
Mechanics](https://github.com/chris-taylor/Classical-Mechanics)

~~~
notthemessiah
Glad you posted this, had tried to do the same earlier this year. Also
related, this POPL paper shows how Noether's Theorem (the idea that every
symmetry yields a conservation law e.g. rotational symmetry => angular
momentum conservation) can be derived from applying parametric polymorphism to
Lagrangian mechanics: [http://bentnib.org/conservation-
laws.html](http://bentnib.org/conservation-laws.html)

This summary of the above paper is much more comprehensible:
[http://ezyang.tumblr.com/post/74405137526/robert-atkey-
from-...](http://ezyang.tumblr.com/post/74405137526/robert-atkey-from-
parametricity-to-conservation-laws#notes)

------
andyclymer
What makes this book exciting to me is that "computer programming is used to
explain the mathematical formulas".

As someone who struggles with some areas of mathematics (the ones I wish I
paid more attention to in high school because I could be using them now) but
who finds more ease with understanding the code examples used in this book, I
would love to read more books like this. What other books on mathematics could
you recommend to a programmer such as myself?

Are there any books on Linear Algebra or Calculus who take the same approach,
to teach using a programming language?

~~~
TOMDM
This reminds me of a concept I have been toying with for a while now that I
would love to see implemented.

What I would absolutely adore is a wiki styled over the idea of covering
mathematical topics in the style of a programming API, and teach it in the
same manner. Meaning that someone could use the math as a concept to kludge
some code together, or teach it to themselves in this style using the
material.

I've been too lazy to start the wiki myself, and not nearly knowledgeable
enough to throw together to a few topics to get the ball rolling.

If anyone likes this idea, please steal it, it's something I would love to
see.

------
jordigh
I have a big problem when people describe mathematics as just "a language".
The people who usually do this say this because they are not interested in the
mathematics itself, but in some other subject that happens to require
mathematics. In this case, the actual subject of interest appears to be
relativity, not mathematics. It seems to me like a disrespect to say that
mathematics is a language, because it seems to suggest that mathematics on its
own has no substance, nothing intrinsic to itself.

To be sure, there is a mathematical language, a notation with much ambiguity
that is typically ok when conveyed to other humans, because humans are great
with ambiguity. This book is attempting to get rid of that ambiguity by
rewriting it in notation that does not allow for ambiguity and present it to
computers, who are still very bad at ambiguity. But this mathematical language
is not mathematics, and there is real substance behind the language itself,
just like poems can be translated into other natural languages or algorithms
can be written in several programming languages.

Calling mathematics a language confuses form with substance or declares that
it's all form and no substance.

~~~
mnemonicsloth
_Calling mathematics a language confuses form with substance or declares that
it 's all form and no substance._

Fauconnier & Turner (2002)?

------
mrcactu5
without scribd [http://groups.csail.mit.edu/mac/users/gjs/6946/calculus-
inde...](http://groups.csail.mit.edu/mac/users/gjs/6946/calculus-indexed.pdf)

how do I read a book like this? do I copy the code and run scheme? do I
translate into my favorite lisp variant?

I have been recently looking into Coq which is getting a lot of attention at
UPenn
[http://www.cis.upenn.edu/~bcpierce/sf/current/Basics.html](http://www.cis.upenn.edu/~bcpierce/sf/current/Basics.html)

~~~
daveloyall
[http://groups.csail.mit.edu/mac/users/gjs/6946/linux-
install...](http://groups.csail.mit.edu/mac/users/gjs/6946/linux-install.htm)

I followed the installation instructions exactly and it works fine on my
Debian machine. I had to modify the script `/usr/local/bin/mechanics` since I
don't have a binary named `xterm` on my path. While I was at it, I made it
skip that and just `exec $CMD` as it would do if `$DISPLAY` weren't set.

This `edwin` that it comes with is a weird (faithful) emacs clone that runs
under mit-scheme. Emacs18, that is.

I carefully typed in the first few code examples and they ran flawlessly.
There even is some gui tool which pops up a rendering of mathematical
expressions.

------
krastanov
For python implementation of functional differential geometry based on this
very book see sympy:

[http://docs.sympy.org/latest/modules/diffgeom.html](http://docs.sympy.org/latest/modules/diffgeom.html)

------
sytelus
This is amazing! I'd read Lagrange's eq in classical mechanics texts many
times but my brain is just so tuned in thinking in terms of computations and
programming that this approach in this PDF just feels natural. If lot of other
things (how about General Relativity?) were written like this in terms of
code, I would eat it up like buttered bread.

------
hga
The Sussman way, by Gerald Sussman and Jack Wisdom with Will Farr.

I know differential geometry is, as they say, needed for general relativity,
they say also for quantum field theory.

------
morenoh149
aw snap the sussman.

