Scientific computation software revisited

Updated: March 8, 2010

Three years ago, I've shown you a number of free alternatives to the powerful yet quite expensive Matlab numerical computation program. These included FreeMat, Octave and Scilab, each of which offered a unique set of tools, strengths and weaknesses. While neither can completely replace Matlab as the leading geek engine in the science and engineering world, they are rather useful for testing, learning the code, home use, academic use, on basic and intermediate levels of knowledge.

Today, I'd like to revisit my older review and show you what the updated versions of these three programs can offer, both in terms of visual changes and cosmetics, as well as the raw functionality.

Linux-wise, I tested all three programs on Ubuntu Karmic, where the programs are readily available in the repositories. Then, there's a bunch of screenshots taken on Windows XP, just for good measure. So, let's begin.

Teaser

FreeMat

homepage

FreeMat in the Ubuntu repos is currently at version 3.6 and has changed quite a bit since its early incarnations. While it retains the basic simplicity, it's a little more plump and rounded, better polished, and works with a wider range of Matlab functions, allowing you an instant or an almost-instant portability.

FreeMat main

FreeMat working

In the past, there used to be tiny glitches with some of the functions, like clearing the command history or printing the images. No more, these have been smoothed out, adding to a pleasant, seamless experience.

Print

The Editor remains simple and quite useful, with lots of useful right-click options, like the ability to comment and uncomment regions of code or execute only selected bits of it.

Below, you can see an inane example of a simulation, showing you the number of guided bombs required to penetrate a concrete block, based on the slab thickness, the detonation cross section and the Circular Error Probability (CEP). Just made those up, so don't panic. They make for lovely graphs, which you will see soon.

Right click

I wrote this code as part of a concept work for a turn-based strategy computer game, written in Matlab, but the code runs flawlessly in FreeMat, without any modifications. And here you go, crazy patterns in 2D color maps, what can be sexier than that?

Pattern 1

Pattern 2

Pattern 3

You also get a very decent documentation.

Help

Summary: At only 18MB, FreeMat is very hard to beat. It's fast and robust, comes with excellent documentation and is continuously improved. Matlab mode fidelity is quite high. Grade: 8.5.

GNU Octave

homepage

Octave is a heavier, more complex program. By default, it does not come with any GUI, but you can find available packages, both in Windows and Linux. However, Octave promises an almost 100% compatibility with Matlab code. This is what the basic interface looks like:

CLI

However, you can download QtOctave GUI and make it look like Matlab:

qtoctave

And you get this:

GUI

Working with Octave is fun. It's a powerful program, with lots of useful options and features. Many common, often-used functions are included in the File menu, allowing you to increase your productivity instantly.

Menu

Another useful feature is the fact that Octave, just like Matlab, can dock different windows into the GUI, so you have everything in a single view, if you want.

Editor

When it comes to code fidelity, Octave clearly wins. It even displays the colorbar, just like Matlab and allows you to switch color maps, to say winter, summer, gray, bone, and others.

Run 1

Run 2

For instance, here you have the gray and summer color maps:

Gray

Summer

Octave Help is also very decent and displayed as inline HTML pages, just like Matlab:

Help

Summary: While big and requires a separate GUI frontend to resemble and behave like Matlab, Octave brings in a slew of powerful features and the highest level of code compatibility that make it a very good alternative to the payware program. The help files are also extremely useful. Grade: 9.

Scilab

homepage

Scilab is a category of its own. It's not your average home program and is more befitting advanced users. It does not run Matlab code directly, but it can convert it to its own, with a varying level of success. However, Scilab also comes with a Simulink/LabVIEW style software, called Scicos, allowing you to build simulation models. On top of that, you get a range of powerful toolboxes, very similar to Matlab, and a host of demo applets to get you started working with the program.

Options

Main

If you want to run Matlab code, the first thing you will want to do is try to convert the Matlab language into Scilab:

Converter

Converted

As you can see, many of the functions are currently missing, including the seemingly trivial 2D convolution, which makes it somewhat difficult to port programs easily.

Converted code

However, Scilab compensates with the large, extensive demo library, where you can find tens of models, including image and signal processing, genetic algorithms, and many others. A great thing about the demos is that you can view code and use it to branch off your own demonstrations.

Demo 1

Demo 2

Scicos is another powerful feature. A program unto itself, it comes with Scilab. With Scicos, you can create real-time simulation models for a wide range of applications. Unfortunately due to Java errors on Ubuntu, it would not run as expected. I'm not sure what the problem exactly is, but it does feel Scilab is more suited for the Windows platform.

Java error

The help is quite decent. If you're not really sure what to do, browsing the available resources should get you started fairly quickly. Scilab and Scicos do take more time mastering than either FreeMat or Octave, but it opens a range of possibilities that the other two programs do not offer.

Help

Some Windows screenshots

A small gallery of program images on the Windows platform:

FreeMat

FreeMat 2

Scilab 1

Scilab 2

Conclusion

All three programs have their merits. For Windows users, the simplest choice is FreeMat, while Octave is the most powerful and best run on Linux. Scilab works better on Windows, but it is not fully compatible with Matlab language and requires more effort to master, while leveraging these disadvantages with the fleet of toolboxes and Scicos.

The best thing is, you can use them all together. But if you want to be picky, then I'd recommend you start with FreeMat and Octave and move on to Scilab when you gain enough expertise.

If you have other scientific programs you would like to see reviewed here at Dedoimedo, feel free to contact me. Till then, enjoy your time crunching numbers.

Cheers.