Computer Programs for Pure Mathematicians

Question: Which computer programs are useful for a pure mathematician to familiarize themselves with?

Less Briefly: I was once told that, now-a-days, any new mathematician worth his beans knows how to TeX up work; when I began my graduate work one of the fourth year students told me he couldn't TeX, I was horrified! Similarly, a number of my peers were horrified when I told them I'd never used Matlab or Mathematica before. Currently, I can "get by" in all three of these programs, but it made me think: what programs are popular with pure mathematicians? I don't mean to limit this to computing things: programs which help to draw pictures and things can also be included.

Lest I Start A Flame War: This is not meant to be a "what is your favorite computer language" question or a poll on who thinks Mathematica is worse than Sage. This is meant to be a survey on what programs and resources are currently being used by pure mathematicians and may be good to look at and read up on.

I'm also unsure of how to tag this.


Solution 1:

I found Sage pretty useful for number theory and algebraic geometry. But it can do lots of other stuff, too.

Solution 2:

Mathematica is the de-facto standard for symbolic computation. I would argue that there is no other CAS that matches the sheer amount of stuff that Mathematica can do (this is not to say that there aren't other systems out there that do certain things better - like graphing/plotting). Part of the power of Mathematica's strength is the ability to write and evaluate expressions just like you would in your notebook (hence the "notebook" UI paradigm) , however, its reliance on symbolic computation also is its greatest weakness (in terms of strength as a programming language, portability, and speed). Just because of its ubiquity, if there is one thing you should learn, it is this.

Matlab is the de-facto standard for numerical computations, under the broad category of numerical analysis. It is less designed for symbolic analysis, but its numerical analysis tools are industry standard. With countless additional packages it can seamlessly (well almost seamlessly, and for several thousand dollars) incorporate data capture from everything from webcams to particle physics experiments. Its usefulness as a pure mathematics tool might not be as as obvious as Mathematica, but if you ever plan on collaborating with applied mathematicians, physicists, or engineers, working knowledge of Matlab is a must.

Python + Scipy + numpy . By combining the free programming/scripting language with powerful (C-based) packages for scientific computation, this suite can rival the numerical analysis tools of Matlab. If you extend this combination with Matlplotlib (numpy based package for plotting) you can get publication quality plots and graphs with a familiar syntax (matlab) for $0.

GnuPlot. With the ability to graph/plot pretty much anything you want and a very powerful text based input, this software allows you to create publication quality plots with ease (after learning the syntax of course). Plus it is free and open source.

Solution 3:

If you do any commutative algebra or algebraic geometry, Macaulay2 is amazing. It requires minimal system resources and is free. There is a springer book about computations in Macaulay2.

http://www.math.uiuc.edu/Macaulay2/Book/

Also, here is a comparison of computer algebra systems on wikipedia.

http://en.wikipedia.org/wiki/Comparison_of_computer_algebra_systems