A COMPARATIVE EVALUATION OF MATLAB, OCTAVE, FREEMAT, AND SCILAB FOR RESEARCH AND TEACHING

Author/Creator ORCID

Date

2010

Department

Program

Citation of Original Publication

Rights

This item is likely protected under Title 17 of the U.S. Copyright Law. Unless on a Creative Commons license, for uses protected by Copyright Law, contact the copyright holder or the author.

Abstract

The commercial software package Matlab is the most widely used numerical computational package. GNU Octave, FreeMat, and Scilab are other numerical computational packages that have many of the same features as Matlab. Unlike Matlab, the other three packages are free of charge to the user and easily available to download to Linux, Windows, or Mac OS X operating systems. Are these packages viable alternatives to Matlab for uses in research or teaching? We review in depth the basic operations of Matlab, such as solving a system of linear equations, computing eigenvalues and eigenvectors, and plotting in two-dimensions. In addition, we research a more complex test problem resulting from a finite difference discretization of the Poisson equation in two spatial dimensions. Then, we compare the results we receive from GNU Octave, FreeMat, and Scilab to our previously found Matlab results. All packages gave identical numerical results, though Scilab exhibited a limitation in the size of the linear system it could solve in the complex test problem and FreeMat was hampered by the lack of a conjugate gradient function. The available graphical functions differ in functionality, but give equivalent plots, though FreeMat has limited three-dimensional graphics capabilities at present. Based on these tests, we conclude that GNU Octave is the most compatible with Matlab due to its numerical abilities and the similarity of its syntax. Another reason to consider Octave is that free parallel computing extensions are available that are known to work with this package. Therefore, for uses in research, Octave’s maturity and resulting richness of functions make it a viable alternative to Matlab. For uses in teaching, the similarity of its syntax with Matlab will likely make textbook instructions directly applicable, and we thus recommend consideration of Octave for this purpose, though the particular assignments of each course will need to be tested in detail.