The Complete Magazine on Open Source

A quick look at open source numerical computation for Windows

4.77K 0

numerical-computation_osfy-nov-16

In this article, we present some numerical and scientific computational tools that the open source world has to offer to Windows users.

Mathematics and scientific computation have become part of every engineering workflow. The extensive numerical processing required in many fields like machine learning and analytics is driving technology trends. Windows users needn’t have to worry, since there are many free and open source software when it comes to numerical or scientific computations. This article presents the various options that Windows users could try exploring in this context.

Scilab
Scilab is an open source numeric computational package governed by the CeCILL licence (GPL compatible). It is a great alternative to MATLAB and is available for use on Windows, Linux and Mac OS. The software provides a rich set of functionalities in signal processing, statistical analysis, fluid dynamics simulation, image enhancement and other frequently used computations in the automotive, aerospace, medical, control systems and meteorology industries. Scilab is also popular in academics for linear algebra, trigonometry, calculus, differentiation, genetic algorithms and statistics. It is currently gaining momentum in research fields like machine learning for its regression, classification and probability distribution capabilities.
Apart from being software that can be accessed through a MATLAB-like GUI or an interactive command line, Scilab is also ideal as a platform for applications because of its computational abilities. It is interoperable with programming languages like C, C++, Java, Python and Tkl, and corresponding Scilab APIs can be called from these applications. Proprietary software like NI’s LabVIEW can also be made to call into Scilab to make the best use of both the packages. Scilab also comes with a module called Xcos, which is a graphical simulation environment similar to MATLAB’s Simulink. The software is known for its compatibility with MATLAB as it comes with a built-in code translator that smoothly migrates MATLAB code to versions compatible with Scilab.
The software can be downloaded from http://www.scilab.org/download/latest.

GNU Octave
Another open source option for Windows users is GNU Octave, which is freely available and redistributable software under the terms of the GPL as published by the Free Software Foundation. Octave is written in C++ and was first used in chemical reactor design. Later, it got redeveloped for academic, research and commercial applications. The software is built using standard numerical libraries like LAPACK (linear algebra package) and BLAS (basic vector and matrix operations). Octave resembles MATLAB closely, in terms of its feature set and the syntax that it uses. It primarily features linear and matrix algebra, statistics, geometry, sets, object-oriented programming, polynomial manipulations, as well as signal, image and audio processing. As a programming language, it is interpreted and follows a structured programming style similar to C with access to standard library functions and certain UNIX system calls. Its interpreter has an open graphics library (OpenGL) based graphics engine to create plots, graphs and charts. Octave also gels well with popular graphing utilities like Gnuplot and Plplot. Just like Scilab, Octave is considered as another great alternative to MATLAB.
It is available for download at https://www.gnu.org/software/octave/download.html.

FreeMat
Another open source option for Windows users is FreeMat, which comes with an interactive shell and is famous for its 3D visualisation and plotting capabilities in a way similar to Matpolib and R. The software extensively uses the OpenGL library that renders 3D functionalities. FreeMat features an interface to programming languages like C, C++ and Fortran. Users can download it from http://freemat.sourceforge.net/download.html.

SageMath
SageMath, shortened to Sage, is mathematical software written in Python for algebra, geometry, number theory, cryptography, and various other related mathematical fields. The official Sage documentation states that the software is not natively available on Windows but can be run with the help of a virtual machine or the Cygwin Linux API layer. However, as Sage is popular in the field of computations, I felt it worthwhile to cover it in this article. Its beauty is that besides its core functionalities, it builds on top of nearly a hundred other established open source mathematical packages like SymPy, SciPy, Maxima, NumPy, R, GAP, etc, thereby making it a rich collection of functionalities and a superset of various packages. Users can interact with Sage through an interactive shell or Jupyter notebook, which is a Web UI that Python users are familiar with. The software also comes with advanced mathematical functionalities like Dirichlet characters, group theory, algebraic geometry, differential equations, multivariate polynomial gcd and discrete algebra. Interested readers can refer to the official Sage manual to explore all that it has to offer.