Posted by
Antonio Cangiano in
Software on
June 2nd, 2007 |
119 responses

Mathematical software can be very expensive. Programs like Mathematica, Maple and Matlab are incredibly powerful, flexible and usually well documented and supported. Their price tags however are a big let down for many people, even if there are cheap (in some cases crippled) versions available for educational purposes (if you are a student or a teacher). The secondary disadvantages are those caused by the fact that such programs are proprietary. This can also affect or limit a “sharing oriented” environment like the academic and research fields. In this short article I propose well known programs that will give you a lot of flexibility and math crunching fun. And with no cost, they are great for all the different careers with a math degree. All of them have advantages and drawbacks and none of them can be considered perfect or infallible, but I consider them some of the best available today in their respective categories. They are rather general purpose softwares, but there are plenty of other specialized open source programs if you have specific needs. I’ve chosen one program for each of the 3 macro categories: symbolic, numeric and statistical computing, but you can expect quite a bit of overlapping and shared functionalities. Try the three of them, try the suggested alternatives and settle with the ones that you like and that meet your needs the best.

A general purpose CAS (Computer Algebra System) is a program that’s able to perform symbolic manipulation for the resolution of common problems. As a matter of fact, modern CAS covers an extremely wide range of functionalities. Maple is a prime example of a commercial CAS software. In this category I’d say that Maxima is an excellent open source cross platform tool. wxMaxima is a good GUI version (possibly the best one on Windows), but other front-ends exist. The 3D plot below was generated by Maxima.

Valuable mentions are:

Matlab is the standard for numerical computing, but there are a few clones and valid alternatives that are entirely free. Scilab is the closest that you can get to Matlab without spending a penny. It’s very compatible with Matlab (albeit not 100%) but it’s really flexible, powerful and comes with a Matlab converter and Scicos which is a block diagram modeler and simulator.

Valid alternatives are:

For statistical computing and analysis in the Open Source world, it doesn’t get any better than R. It is a programming language and environment that enables you to do pretty much anything that the commercial software (S-Plus) does. It is so widely adopted that it can be considered a standard in the field.

As usual, please feel free to share your experiences and add your suggestions to enrich the discussion.

**Sponsor’s message**: Math Better Explained is an insightful ebook and screencast series that will help you deeply understand fundamental mathematical concepts, and see math in a new light. Get it here.

I noticed that PTC Mathcad’s latest free version of Mathcad isn’t on your list. It debuted in September of 2012 but it is free for life engineering calculations software. Try it here: http://www.ptc.com/product/mathcad/free-trial/download/

I think GNU Octave is better than scilab.

Could you give us some ideas on why GNU Octave is better than SCILAB? Just curious.

Incanter is R-like and works with the Clojure language.

I’ve use Gnu Octave and it’s pretty good.

Another powerful tool is ILNumerics: It’s a math library for C#/.NET that offers convenient syntax, high performance, very nice visualization features and a wide platform support. The Community Edition of ILNumerics is available for download here: http://ilnumerics.net/download-ilnumerics.html

thanks

really awesome….

[…] http://math-blog.com/2007/06/02/3-awesome-free-math-programs/ […]

I would also add SCaVis (http://jwork.org/scavis) math software package. It’s free and has very good documentation

I think sagemath is the most developed free software !

Now there is sagemath cloud usefull for windows users

For doing real mathematical research some of these free software tools just don’t cut it and will crash under certain conditions. The three big M’s (Maple, Matlab, and Mathematica) can handle very large sets of data and can perform a variety of calculations that those other free software programs can’t handle.

I think you underestimate the power and size of the free software. Does Matlab handle bigger problems than SciLab or Octave? No. SAS handles bigger problems R, but with Parallel R, you’re home free. Some other commercial don’t handle huge problems, but for specialized work, they are good.

Lp_Solve is wonderful and handles huge problems. Cplex and other commercial programs handle bigger problems and non-linear programming. When Lp_solve was created in the 80’s, it was the largest problem solver.

DMelt takes over from SCaVis.

Look at (http://jwork.org/dmelt) math software package. I agree, it is well documented and it has several choices for programming language. I use Python and, some time, Octave.

For those of you who teach first-year calculus and for students of calculus, I wanted to post a link to the wxMaxima lab manuals I wrote this Spring for single variable calculus: http://wxmaximafor.wordpress.com/ These works are published under a CC-BY-NC-SA license, and the .pdfs are free. In other words, these are “open-texts”. Combined with the open-source software, it is possible to run calculus labs without placing any additional financial burden on the students or the institution. The books can also be used as an introduction to wxMaxima for those who prefer to learn by example (I count myself among their numbers). — Thanks

Really useful article, especially for beginner. I like the most matlab, but its free alternatives are also very helpful. Now I try Maxima, maybe somebody know if it can be used on web server? I think about something like wolframalpha, i.e. some interface and button “Calculate”.