Sunday, August 22, 2010

Mathematical Software

So we want to experiment with mathematical software. At this stage we don't have any specific goal in mind. We just want to explore the possibilities and play with some programs a bit. We would like to do numerical calculations and also to evaluate symbolic expressions: factor, expand, integrate and differentiate. Finally, we would like to display the results of this work graphically. How easily can we plot curves and surfaces? How about data sets?

The commercial landscape for mathematical software is relatively small. It is basically dominated by two heavy weights: Mathematica and MATLAB. The first is the all-in-one solution to scientific computing. It can do numerics, symbolics, graphics and programming. The second, while probably equally capable, is seen as more oriented to matrix and numerical calculations. In a second tier, if you will, one finds two other strong contenders: Maple and Mathcad. Like their more famous friends these products can also be extended via numerous add-ons and packages to accommodate specific engineering and scientific needs.

In a third tier, considerably lower than the above products, one should not forget the ubiquitous Excel. Although we tend to associate this name to price lists and accounting, a spreadsheet can handle some interesting scientific tasks. I don't think you can evaluate symbolic expressions with Excel but you can do statistics, numerical integration and differentiation and, of course, draw nice graphics.

Judging by the existing literature about them, these commercial products are enormously successful. Each has a large number of users and (with the exception of Excel) could be used for learning and experimenting with mathematics. The problem, as we all know, is that they are also very, very expensive. Moreover, if you are curious about how they implement this or that function, you are out of luck. These products don't come with source code and you can only guess which techniques they use to implement your favorite feature.

So, without the need of further explaining, let's look at the Free/Open Software options!

Just a little searching around is necessary to reveal the two most famous mathematical programs in the free software world: Maxima and Octave. Perhaps I should put Octave first, given that it seems to be much more popular than Maxima, but I want to emphasize that they more or less mimic their commercial counterparts Mathematica and MATLAB.

Saying that Maxima tries to mimic Mathematica is, of course, a misstatement. Maxima descends from Macsyma, which takes its name not from the Apple computer but from the famous MIT Project MAC of the 60's, and as such is the granddaddy of all mathematical software. The "syma" suffix, as you may guess, suggests that this program was intended to do symbolic math, a revolutionary feature at that time. Mathematica has no direct link to Macsyma except, perhaps, as a source of inspiration. So the relation between these programs is rather tenuous but I think that today Maxima is still the closest free alternative to Mathematica.

On the other hand, Octave tries hard to emulate MATLAB in many areas. I'm still a newcomer to Octave, but a quick glimpse at its manual shows its authors' concerns about compatibility with the commercial cousin. There seem to be some small restrictions but the core functionality of MATLAB seems to be available in Octave. As "Macsyma", the name "Octave" is a bit misleading. It has nothing to do with music but comes, as we learn by reading the first paragraphs of its documentation, from a Professor close to the original author!

In the next posts I will try to report my own experiences dealing with these free mathematical programs and some other helper packages like gnuplot.

2 comments:

Dr. Hartmann said...

I am intrigued by your Blog project. As the Education Program Manager at PTC for Mathcad, I often think about these questions from the perspective of value-added to student learning. What questions are you asking of the software? Surely the answers that you gain from your analysis will depend upon the questions that guide your inquiry.

I will follow your blog and I look forward to reading your posts as your work continues.

mathcadeducation@ptc.com

Ekryton said...

Dr. Hartmann, thanks for your comment. My intention is to explore free/open source mathematical software from the point of view of a dilettante. The questions I'm planning to ask are simply what you can and cannot do with them. I have no access to any of the cited commercial software so I think I will not be making any more comments about them in the future.