It is hard to describe what Mathematica is and what it is used for because it can be used for so many diverse things. If I were asked “What is Mathematica?” by someone who has never heard of it, I would probably say it is the “Swiss Army Knife of technical computing”. That might not exactly answer the question, but once they got to know Mathematica they would understand the meaning of the reference.
To elaborate on my Swiss Army Knife characterization, here are a few fields in which Mathematica is in use today: engineering, physics, computer science, publishing, finance/economics, mathematics, social sciences and life sciences.
Besides Mathematica's wide field of application, the support for various hardware platforms and operating systems is just as varied. Mathematica 4.2 runs on the following operating systems: Linux, Mac OS X, Mac OS 8.1 or later, Windows, Solaris, Tru64, HP-UX, AIX and IRIX.
If we concentrate only on the Linux release of Mathematica, we'll see that to Wolfram Research, Linux is not just another operating system to which to port. The Mathematica kernel is entirely developed on Linux and then ported to other platforms. No wonder the Linux release of Mathematica actually runs on four different architectures: IA-32 (x86), PowerPC, Alpha and IA-64 (Itanium). There is also a version of Mathematica for Linux clusters called gridMathematica.
There is no doubt that Linux is an important market for Wolfram Research both in professional and student applications. The commercial license might be a bit too pricey for a casual home user, but it's well worth it for an enterprise or a research environment. On the other hand, the student version of Mathematica is a bargain and has exactly the same features as the commercial version.
The Mathematica 4.2 package contains: “Installing Mathematica 4.2 for Unix and Linux”, “Getting Started with Mathematica”, The Mathematica Book (Fourth Edition), Standard Add-on Packages and Mathematica 4.2 (installation CD).
“Installing Mathematica 4.2 for Unix and Linux” includes information on UNIX and Linux installation and describes the upgrade process from earlier versions.
The “Getting Started with Mathematica” guide is a 50-page booklet describing the basics of Mathematica. It is a good reference for beginners as it is a fast crash course on usage and interaction with Mathematica. The guide also lists various on-line resources, which are a must-see for new users.
The Mathematica Book (Fourth Edition) is an approximately 1,500-page book on Mathematica functions and capabilities. This has got to be the most definitive resource on the subject. It contains more information than I could ever possibly describe for this review.
Standard Add-on Packages is a 500-page book dedicated to more than 1,000 additional functions that are in the Standard Add-on packages. Standard Add-on packages are a part of the full version of Mathematica and include, but are not limited to graphics, geometry, audio, statistics, units, algebra, calculus, discrete mathematics and numerical mathematics. The subject of this book is somewhat complementary to The Mathematica Book, and I felt that it should really be a part of it, especially considering the fact that the Standard Add-on packages are distributed with all releases of Mathematica.
Mathematica 4.2 for Linux runs on three different platforms: x86, Alpha and PowerPC (an Itanium version has just been released, so it wasn't on the CD). The media also contains both The Mathematica Book and the Standard Add-on Packages book. The books are in the Mathematica “Notebook” format, which is browseable and searchable. Having the books in such a format is a great reference while working on your own creations in Mathematica, whatever they might be.
Mathematica installation is pretty straightforward. Pop the CD into your CD-ROM; go into the appropriate platform subdirectory under the Installers directory and run the MathInstaller script. At the end of the installation, the installer will ask for your license number and password. It is okay if you don't have all the required information at this time. You will be prompted again later when you run Mathematica.
Your license number always remains the same, even when you upgrade. Your password is generated by Wolfram Research when you register. In order to give you a password, they need your license number and your MathID, a value that is generated dynamically when Mathematica starts up.
From my own experience I wouldn't recommend installing Mathematica on a system where the configuration changes frequently. If the system configuration changes, it's very likely that the MathID will change too. This also holds true for upgrading to a new kernel. What this really means is that you have to contact Wolfram Research and get another password. I am sure that this helps them prevent some opportunistic unauthorized copying of the program. Having said that, I found it a nuisance.
The fundamental idea behind Mathematica is what makes it such a versatile and powerful computing platform. Everything in Mathematica is represented as a symbolic expression typically looking like “Sin[x]”. And that is the key because any function in Mathematica can be an output to or take input from any other function. This opens up so many possibilities I was literally overwhelmed by the sheer number of things I could try for the review.
To help you better visualize the “any to any” concept of Mathematica let's take a look at the Sin function in Figure 1. The function Sin takes the variable x10 as input and outputs to the function Plot. This makes a nice plot of the values that the function Sin produces. If we decide we want something other than a regular plot we can simply represent the Sin function output with a different function. Play for example, produces an actual sound that is heard when you click on the picture.
I also wanted to explore the 3-D capabilities of Mathematica. As you can see in Figure 2, I am using the Sine and Cosine functions as input for the “ParametricPlot3D” function. As I finish typing the expression, I press Shift-Enter and Mathematica produces a 3-D plot of the data.
Those are just a few out of the 1,100 built in and 1,000 additional functions that come with the 4.2 Mathematica package. In the limited amount of time I had for this review, I felt that I had not even scratched the surface of the computing system that is Mathematica.
Not only that, Dr Michael Trott of Wolfram Research, the author of the book Graphica—www.graphica.com, generously provided me with the full notebooks (2GB) of his upcoming book series called The Mathematica Guidebook Series. It was a real treat to browse, experiment and evaluate the expressions that produce some of the stunning images that appear in Wolfram Research publications—images such as the “Mathematica 4 Dodecahedron” from the cover of The Mathematica Book and many, many more. I can't wait until the book series is finished.
Evaluation of Mathematica was done on two different architectures and two different operating systems. I personally reviewed the Linux version on x86 while a mathematician, Dr Helen Moore, worked on the Mac OS X release. Helen helped with the evaluation, although this review is solely my own opinion.
Using Mathematica on the two platforms was basically analogous, and both Helen and I liked the product. However, we were a bit vexed with the registration and password creation process. Despite these issues, we would still recommend Mathematica for Linux or Mac OS X to anyone.
The people at Wolfram Research were really willing to listen and work on all the issues that I brought up (great service). Mathematica for Linux is a great product. It's probably the most beautiful piece of Linux software I have ever used. During my review, I couldn't help but spend hours and hours just experimenting with the capabilities and exploring the options.
Helen said, “Mathematica is great. It's pretty much the best commercial package available, both for symbolic and numerical computations.”
- Integrating Trac, Jenkins and Cobbler—Customizing Linux Operating Systems for Organizational Needs
- Tech Tip: Really Simple HTTP Server with Python
- Returning Values from Bash Functions
- New Products
- EdgeRouter Lite
- Non-Linux FOSS: Remember Burning ISOs?
- RSS Feeds
- Cooking with Linux - Serious Cool, Sysadmin Style!