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.

### 1. Maxima

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:

### 2. Scilab

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:

### 3. R

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.

#### Get more stuff like this

Get interesting math updates directly in your inbox.

If you want more programmable flexibility and know Python, you should also check out Numpy and Scipy: http://scipy.org and http://numpy.scipy.org.

Bit of a plug for something I wrote years ago and have been giving away free ever since: http://www.flat502.com/newt/

The source isn’t available yet, but with enough motivation I’ll put some time aside and move it to something like SourceForge.

Checkout my free speed arithmetic program I made in flash too (link) it’s only 33kb

How about Geogebra, the Open Source dynamic geometry application? I love it 🙂

The student wersion of Mathematica is cheap and far from crippled. I believe anything printed using it notes that the document was printed using the student version, but otherwise the student version is identical to the commercial version.

When i was student on electronic and signal search in france, i use to program on this amazing tools.

Matlab and scilab.I use to create mini-software with menu, and a lot of functions.

I use to work for signal treatment, and we modelize it on matlab.I create a software for “science” that can underline points on a pictures (example: eyes in different color, to show some kind of anormal status for eyes, in order to help doctor to make a diagnostic for patient…)

This tool is so nice because it permits you to create software easily with a debugg simple.

But like all things there is so stuff to learn before.

I use to work 5 mois on this tool , but now it’s been a long time i ‘ve never use it.

It was my school stage so it is passed.

So, this was my experience.

Have you heard of mathematica? that is probably one of the more powerful packages and definitely better than the options you have posted here.

@Peter

I program in Python and like both NumPy and SciPy. In this article I just wanted to cover full software packages rather than APIs for specific languages. Thanks for your comment.

@JamesG

From the screenshots it looks promising. You should definitely think about open sourcing it. Thanks for commenting and working on this.

@Jimmy

Your little program is nice but it obviously has a different audience than the aforementioned programs.

@Robert Jones

I love that program! It’s very nice and has won many awards. I actually thought about including it in the post, but then opted for the main 3 categories of general purpose Math software.

@ed priman

Thanks for pointing this out. I’m happy to learn that their educational version is fully functional. It’s still very good that there are free alternatives though.

@Mark

Did you read the article, Mark? 🙂 I mentioned and even linked to Mathematica. Unfortunately Mathematica is not free, and in this article I list software that won’t cost you a dime. 😉

There’s also freemat at http://freemat.sf.net – it’s highly matlab compatible, and free (both gratis and libre)

Or for

realmathematics, there’s GAP, which allows you to manipulate groups, permutations, graphs, rewriting systems, Lie algebras, etc, using a Python-like language. Lots of standard algorithms for computational algebra are implemented in the standard library. Disclaimer: I’ve only played with it, not used it for anything serious.For several–specific–numerical mathematical routines, there is also the following URL:

http://www.akiti.ca/Mathfxns.html

The routines posted off this page are based on good-quality code, mostly from the NETLIB repository of algorithms. Very handy (quick, easy-to-use, and free!) for when numbers are required, but a user might not want to install and start up a whole software package.

— Robert

Octave is an excellent Matlab clone. It uses gnuplot for graphs and it is extremely compatible with matlab.

http://www.gnu.org/software/octave/

Amjith,

thanks for you comment but GNU Octave is already listed in the article as a valid alternative to Scilab.

awesome tools!

Jenny

You do give it a mention, but I think you are really undervaluing SAGE. It uses python to tie together a number of open-source programs in a common format and can be used either by a command line or using your web browser as a GUI. The standard distribution contains Maxima, GAP, PARI, Singular, NetworkX, and much more. A number of open-source packages besides those in the standard distribution can be added if desired, and it has built-in interfaces to Axiom, Octave, Maple, Mathematica and Matlab as well.

On its own, SAGE is a great way to get a lot of great open-source software in one easy package, and it is fantastic at getting all kinds of packages working together.

http://en.wikipedia.org/wiki/Grace_%28plotting_tool%29

For 2D plots, I recommend “Grace” (http://plasma-gate.weizmann.ac.il/Grace/).

good information

Ajay George PalakuzhyI was hoping to see GNUPlot here…

Great apps, didn’t know about Maxima

Interesting tools 😉

very good, thanks! I think I’ll need these ones for university 🙂

Nice. Currently compiling a list of software for use in the University learning environments so this is great.

If you need a free online charting service:

http://www.chartAll.com

A free general purpose charting tool (2D, 3D, Maps, etc):

http://www.steema.com/products/teechart/office/overview.html

Aweasome list. Bookmarked and linked. Thx.

These are pretty nice tools! Thanks.

What do you guys think about Maple?

All very good stuff here.

Has anyone seen Mathematica Demonstrations, now free online and IMHO powerful? I think they and their free Integrate show the way ahead for all of Mathematica ie give it away Adobe style. Their corporate fees from uni’s and commercial users must be enough to float their massive and science-shaping enterprise, plus fund the media areas they need to get into to share the social science advances they make.

That said, the FLOSS math programs are brilliant for all the good reasons. I have just one hesitation: time spent re-inventing low level stuff by math folk who could be doing cutting edge stuff that would benefit themselves and all of us. (Do we stop discovering things by 25?) The counter-argument is also true: if we allow the cathedral to be the only inventor, our brains narrow. Luckily we have free will and live for now on a very rich planet, so can afford both approaches.

But let’s keep an eye on the other ball as well. Luckily able people work so quickly they can use both well, and this multi-tasking stimulates ideas.

It is designed for more than just Math, but offering Scientific and other Units for Java, JScience (http://www.jscience.org) also is a very useful framework for Mathematics.

There are other Scientific and Mathematic libraries built on top of it.

See the JScience website for more information.

no mention of PARI GP?!

Best soft for data analysis (aka. numerical computations) is programmed by CERN particle accelerator physicists themselfs – ROOT.

CERN LHC collider will generate data about some Petabytes / year. This data should be analysed by physicists. What program should be able to do this job better than ROOT ?

http://root.cern.ch/

Hi

I must do graphs and translations. Geometer Sketchpad is very good, but not open source. Do you know of any such program?

Rika

@rika

Hi Rika,

try GeoGebra and take a look at this list of software on Wikipedia.

Does anyone know whether there is a pdf version of the Maxima manual?

I agree with u, these are wonderful programs.

This is very good.It will be usefull to me.

Thanks for sharing these open source softwares.

I’m a little surprised that the links you included for math software (Mathematica, Maple and [sic] Matlab) led to Wikipedia, rather than the software vendors’ Web pages, such as this one for MATLAB:

http://www.mathworks.com/

-Will

Does one of these programs is capable of solving partial differential equations [both analytically and numerically] and plotting their graphs? [I’m especially interested in wave equation and Schroedinger equation].

Perfect choice of programs.

The only comment I have is about scilab – I use it (and can use it) because I know Matlab inside out and scilab is quite similar.

The only aspect in which Matlab is greatly superior to scilab is documentation. I think if I had started using scilab the same way I started Matlab (essentially self-taught, just had to solve some programming problems in a lab), in spite of some programming experience I would probably have not gotten far because of lacking documentation and examples, abundant in the Matlab help.

The program itself is just as good …

Very cool – thanks!

Grapher on OS X is pretty sweet too.

This realy helped me

thanks!

Does any of these freewares do dimensional analysis?

hi,

In the finance industry, which is the preferred CAS/numerical computing software

by both quant engineers and/or software developers ?

Thanks in advance.

hi,

In the finance industry, which is the preferred CAS/numerical computing software

by both quant engineers and/or software developers ?

Thanks in advance.

Gracias por el articulo

i have a big problem here, since i used newton rhapson methode for calculate:

Y = a^(1/n)….,where “a” is arbitary number

including complex number, while “n” is every positive numbers.

i can’t use the first guest number by 0 (zero).

why does matlab can’t do this?

i think there is some mistake in matlab work.

@andre

I ever meet similar problem at this address

http://eqworld.ipmnet.ru/forum/viewtopic.php?f=2&t=34&start=30

@andre and all,

OMG.. I’ve missed in submitting the above information, I mean at this address :

http://math152.wordpress.com/2009/01/13/interesting-proof-by-contradiction/#comment-255

Apologise so much.

Denaya Lesa.

For analysts who want to do pretty serious regression-related analysis but not learn R, GRETL is an excellent open-source alternative.

It can be used as a front-end to R, as well as standalone.

Several years ago I owned a Mathamatica package. At that time I was using a Mac computer. I have long sense moved to PC’s. Primarily because of the better quality and lower price. I miss my math program much more than my Mac. I use Mathcad now. But there is no comparison. As a Social Scientist, much of my research is statistical in nature. As an amature Astronomer I do enjoy calculatng the orbits of near earth objects.

Since a disablying accident 10 years ago I have more time then money. So any good low cost or free mathamatical modeling programs are very much appreciated.

You don’t have $2,400 for an individual Mathematica license? Honestly though it’s a great program. If I had that kind of money I’d pay for it too. I’m in the same boat and have explored using Maxima or REDUCE. These appear to be the strongest CAS (computer algebra systems) and some say REDUCE may be better. It’s hard to find documentation though.

great help.I looking for something like this for my seminary work.

Python,as a language or anything else,is really a very good tool ,with a lot of open source package.So why not try Python.

Yeah Python looks good and it even has Sympy for symbolic/algebraic computing. But from I can gather it appears to be limited in it’s ability to do more sophisticated integration.

I was after a good 3D graph program, having had no success with WolframAlpha. Some of the bigger programs you suggest gave me trouble in installing for various reasons (probably my fault). But I hit upon Graphing Calculator 3D which worked fine. You can even move your viewpoint to any direction by dragging with the mouse pointer. The free version does not allow you to save or print results, but you can use printscreen (on WindowsXP) and paste it into any program.

Graphing Calculator 3D, as pointed out by Don, is a great alternative to the more complicated software such as Maple. When designing Graphing Calculator 3D we tried to focus on the most commonly used features, hence it is much easier and quicker to use. In addition, the 3D graphs produced by this 3D grapher are much nicer than those of other tools due to the extensive use of graphics card rendering hardware facilities which includes shading, light reflections and transparency.

Regards,

Dr. Saeid Nourian

President of Runiter Company

http://calculator.runiter.com/

hi,

In wxMaxima Linux, I try assume(x>0);solve( x^2-4)

but it gives x=-2 and x=+2 , but why doesn’t it respect the context and just give x=2?

I’m not aware of an built-in, easy solution and you can’t use assume like that. See: http://www.math.utexas.edu/pipermail/maxima/2006/003702.html

I use the three math software listed above for teaching Civil and Environmental Engineering courses. MAXIMA for symbolic calculations, SCILAB for numerical calculations, and R for statistical applications. In the last year and a half I’ve also been using SMath Studio, a paper-like application for mostly numerical calculations, but with some basic symbolic calculations. Here’s the website for the most current (although, still “beta”) version:

http://en.smath.info/forum/default.aspx?g=posts&t=643

Gilberto Urroz

I am looking for a PC equivalent of an iOS app that shows a line of consequtive numbers, where you can put a marker between them, and go into closer details, showing more and more decimals.

This is great for younger students that do not know how to round of decimals correctly yet.

Anyone know about such a program?

Geogebra is another powerful website as well

Though it is not a general purpose math program, it is free and very useful for researchers in Group Theory and permutations:

GAP – http://www.gap-system.org

This is what I was looking for. Maxima is awesome. Thank you so much for the information.

I need a program that will allow me to graph complex numbers and complex funtions, including, I hope, Riemann spheres. Does anybody have any ideas? I need free if it is available. Thanks.

You can use Octave (or MATLAB) to manipulate and graph complex numbers. For example, this code:

octave-3.4.0:1> setenv(‘GNUTERM’, ‘x11’)

octave-3.4.0:2> theta = 0.0:0.1:2*pi;

octave-3.4.0:3> z = theta .* cos(theta) + theta .* sin(theta) * j;

octave-3.4.0:4> plot(z)

octave-3.4.0:5>

generates a 2D plot of the complex numbers in the Octave matrix z on my Macbook Pro with Octave 3.4.0

The same code generates the same plot in MATLAB R2011b on the same Macbook Pro.

I am not certain about the Riemann sphere.

Sincerely,

John

There are home/personal versions of Maple and Mathematica available for around $200. Considering the power and support available it is worth the investment. I personally only use Maple. Never used any of the open source, I thought my time is better invested in the mainstream software.

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/

Very limited version, though.

This is just a teaser to buy the full version.

I think GNU Octave is better than scilab.

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

I recognize this is an old thread, but other readers might be interested. First of all, we are not comparing apples and oranges, it is more like granny smith and golden delicious apples.

Octave will execute almost all Matlab code. It does not do Simulink (that I know of) and there are some compiled modules it doesn’t like. Other than that, there is little that won’t run. The current version has a nice GUI, but previous versions were command line with an unreliable GUI. My problem with it is that it uses GraphicsMagick for image I/O in the image processing toolkit and ImageMagick is superior and is regularly updated. It had been years before it had been updated prior to November.

Many Matlab programs will not run on Scilab directly and usually need quite a bit of rewrite. Scilab is superior on some features, but the image processing equivalent of a toolkit is not very comprehensive.

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….

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”.

Try WxMaxima at http://andrejv.github.io/wxmaxima/index.html

Hanks for this… it gives an idea about our claas presentation

can any body tell me from where i can free download Maple leaf software.

There is no free version, unfortunately. And we are against software piracy, so any links to torrent sites will be removed.

Really beneficial article. However, for me there is no easier to use software than Matlab. Maybe because I am used to it but its simplicity is just superb.

I need to do a short series of simple movie/image/mathematical operations – hopefully with one free (math) software package, but so far only MatLab seems to have all of the functions I need: (a) parse a .mp4 file into individual frames, (b) extract (relative) total RGB intensity from a specified image “row,col” array into a “time,intensity” array. (Repeat so that I have data for one short movie clip and one long movie clip.) (c) Correlate these two data arrays and find the Offset for the “Best Fit”. (An excellent example of what I’m hoping to accomplish can be found at: https://www.youtube.com/watch?v=7u1nSD0RlwY&t=3s I’ve tried several of these free programs, and so far I’m not able to so much as accomplish the first two steps above. Might anyone have any helpful suggestions? Or am I going to have to spring for a MatLab License? — Thanks!!