14
$\begingroup$

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.

  • 0
    You probably mean LaTeX, not TeX. Most mathematicians do not know how to use raw TeX.2014-06-26

5 Answers 5

0

mpmath, which is a part of sage has great special functions support.

nickle is good for quick things, and has C like syntax.

15

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

12

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.

  • 2
    They might not be on equal footing, but the one is free while the other costs hundreds to thousands of euros/dollars. One might want to use the free solution as long as it does everything needed.2010-12-12
7

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

2

GAP (http://www.gap-system.org), which is, as it is written on the GAP website, an open source "system for computational discrete algebra, with particular emphasis on Computational Group Theory. GAP provides a programming language, a library of thousands of functions implementing algebraic algorithms written in the GAP language as well as large data libraries of algebraic objects. GAP is used in research and teaching for studying groups and their representations, rings, vector spaces, algebras, combinatorial structures, and more."

The core GAP system is redistributed with its GAP Packages, which extend further the functionality of the system and improve its performance. Some packages include binaries and require separate compilation.

To obtain GAP, go to Downloads . Windows users may use .exe installer with precompiled binaries. Unix and OS X users would have to compile GAP and packages.