Wednesday, May 30, 2012

Math and Computers

What kinds of software do you use? Why?

Mathematica: I just renewed my license for Mathematica through the college I've been working at. It's the best option for creating figures for multivariable and single-variable calc exams, multiplying matrices in a pinch, integrating things to check my answers. I've also done some checks of calculations in research with Mathematica because of the easy entry of polynomials and functions on polynomials.

GAP (Groups, algorithms, programming): Haven't used this in years. Do I vaguely remember that some of my groupy and number-theory-y friends used this?

Magma: I used this years ago in graduate school because they had a license and I was doing some number theory. It is not free. The people I know who do a lot with computer algebra systems all use other programs, so I have not felt the need to buy it. Why is that, though? There seem to be many citations of the program in areas I'm interested in. Is there some geographic clustering of users?

Sage: I know many people who use Sage! It is trying to become the great repository of everything. It's open source and user supported. One of my summer goals is to learn more about Sage and write a few packages that I'd find useful... Even if you don't want to download Sage, you can try it online through their web interface.

Macaulay2: While Macaulay2 is narrower in scope than Sage, it's the program I use the most. I found it to have a steeper learning curve for programming than some languages and I don't know enough about computer science to know why. After a week of working with it I could write crappy programs in M2. After some time brushing up on my general programming skills I could write somewhat better programs. The documentation can be a bit spotty but the folks who are community experts in M2 are very nice and helpful.

Pari/GP: Available as a C library or a computer algebra system and designed for fast computations in number theory. I used it way back when I was still studying number theory but haven't touched it in years. I have a fond memory of it, I suppose.

CoCoA is also a program for computations in commutative algebra, etc., and I found it very very easy to learn to use. I was going to say that I don't think it's actively maintained anymore -- but I guess I'm wrong! A new version was put out just this April! Maybe I will check it out again.

My computer usage goes in waves. I can spend weeks or months never using a computer to do a calculation beyond division (I'm not great at mental division). Then I can decide that I want to do a cohomological computation using the computer and spend a week and a half figuring out how to make it work and checking a bunch of examples. I am no computer expert, just someone who wants to automate certain calculations. I use these calculations for both hypothesis generation and hypothesis testing.


  1. I am trying to shift my everyday math to computer in hope to gain some efficiency. That's why I am developing this math notepad software called Math-o-mir. I am exploring ways to compete with pencil and a sheet of paper.

    When I have to do some heavier 'math', simulations usually, I use the C language. This my sound funny, but it works for me. I just model the process I am exploring in the C language.

  2. What efficiency do you gain with Math-o-mir? I could imagine that being able to save all your notes would be useful -- a friend recently saved me by being able to look up some notes she took at a seminar we both attended 3 years ago because she'd taken notes on her tablet computer. I rarely look up old paper notes.

    I forgot to mention that some students of mine have used C extensively and effectively. They're good at it so they go for it! I haven't used it for a long time so I don't....