### What is Scilab?

Scilab is an engineering tool. You can do a lot of things with it. It is capable of numerical computations, data analysis and plotting, system modeling and simulation, has graphical user interface capabilities and many many more.

From the programming language point of view Scilab is an **interpreted language**. It contains a lot of already defined functions that can be used to resolve engineering and scientific problems.

If we look at the license type, Scilab is an **open source software**. It’s source code can be downloaded, modified and compiled in order to give you the answer to your needs.

Fourth definition of Scilab: **it is like Matlab®**. From a Matlab user point of view Scilab is very easy to learn. The are a lot of functions that are similar and that can be use in the same way, for the same purpose.

Scilab source code is written in **C** and **Fortran**. For the graphical user interface Scilab used **Tcl/Tk** for versions prior to 5.x and **Java** for the newer versions.

### Who is developing Scilab?

Currently Scilab is developed by the Scilab Consortium, which was created by **INRIA** (French National Institute for Research in Computer Science and Control) in 2003.

Starting with July 2008 the Scilab Consortium is part of the **Digiteo Foundation** and aims to make Scilab the reference for free numerical computation software.

In July 2012 the development of Scilab passed to **Scilab Enterprises**.

### What can you do with Scilab?

Scilab is very versatile and can solve a vast type of mathematical and engineering problems. The best way to understand it’s capabilities is to look at the available functions.

The default Scilab installation comes with a basic set of functions for:

- basic mathematical operators (addition, subtraction, multiplication, division, etc.)
- logical operations (AND, OR, NOT, etc.)
- these basic operators can be applied to various data types (booleans, integers, floating point, strings, etc.)
- matrix manipulation (transpose, product and sum of array elements, etc.)
- trigonometric functions (sine, cosine, tangent, cotangent, etc.)
- elementary functions (min, max, absolute value, etc.)
- user defined functions
- programming (conditionals and loops)
- 2-D and 3-D plotting (line and bar graphs, surface, etc.)
- I/O functions (files read and write)

If you look only at the content of the basic package it is clear that Scilab is very powerful and can be used as any programming language for data analysis, programming and plotting.

During the installation process if you select Full installation, Scilab will install additional components that will extend its capabilities. In the table below are all the components that came with Scilab 5.4.0 beta 1 release.

Component | Short description |

Differential Equation Module | Contains functions for differential algebraic equations (DAE) and ordinary differential equations (ODE) |

Polynomials Module | Contains functions for polynomial generation, evaluation, roots, division, etc. |

Symbolic Module | Simple functions for symbolic calculation (addition, subtraction, multiplication, division) |

Sparse Matrix Module | Package with functions for sparse matrix manipulation: decomposition, conversion, factorisation and iterative solvers |

Linear Algebra Module | Functions used for calculation of matrix determinant, rank, inverse, transformations (Givens), factorisation (Cholesky, LU), decomposition (QR) |

C.A.C.S.D Module | The Computer Aided Control System Design module contains a lot of function related to control theory and system identification: Bode and Nyquist plots, Nichols chart, system linearization, armax identification, observers, systems poles and roots calculation |

Statistics Module | Contains a lot of functions for statistical calculations: cumulative distribution, mean, max, min, correlation, co-variance, standard deviation and many more |

Graphics Module | Collection of functions for 2D-plots, 3D-plots, annotations, axes operations, axis manipulation, bar graphs, colour management, pie graphs and text |

FFTW Interface | Set of Fast Fourier Transformation functions based on FFTW library |

Signal Processing Module | Set of function for signal processing: filters (low pass, FIR, IIR, Butterworth, Chebyshev), Fourier transformations, convolution, correlation and co-variance |

Interpolation Module | Collection of Scilab functions for linear, spline, 3D spline, cubic and bi-cubic interpolation |

Optimization Module | Contains functions for minimum search, direct search optimization, simplex optimization and parameter identification based on measured data |

Compatibility Functions | Set of Scilab functions which emulate some Matlab functions |

Sound File Handling Toolbox | Contains functions for: sound file loading and writing (*.au and *.wav), frequency plot of a sound file, sound player and general sound analysis |

Mexlib Tools | Module which contains a set of Scilab functions used for C-files manipulation: compile, link and build |

Spreadsheet Toolbox | Small set of functions for *.csv and *.xls files manipulation: open, read and write |

Genetic Algorithms | Functions used for Genetic Algorithms calculations: population creation, mutations and selection of individuals |

Simulated Annealing Toolbox | Small collection of functions used to solve simulated annealing problems (model of a physical process of material heating and cooling) |

XML Management | Collection of functions used for *.xml files manipulation: create, read, convert, delete, dump and validate |

Scilab comes also with a help library (**Matlab® to Scilab Conversion Tips**) that contains a lot of instruction on converting functions or scripts written in Matlab® to Scilab. More, there are some utility functions (**Matlab binary files I/O**) that manipulates *.mat files (V5 binary or ASCII).

There table above contains the major part of Scilab modules but it is not exhaustive. Scilab contains a lot of functions that can answer to your problems.

Another important feature of Scilab is **ATOMS** (Automatic Modules Management for Scilab). These are modules developed by external developers and made available to the Scilab users via ATOMS portal (website). Through ATOMS every Scilab user can contribute to the development of Scilab by creating new modules or expanding existing ones. Explore them, probably you’ll find some interesting modules that will fit your needs.

Even more, Scilab provides a file exchange website where user can post their work in order to be used by others. It is rich with files and toolboxes from various categories.

This article is just a brief description of Scilab and it’s capabilities. Install the software and read all related articles from x-engineer.org.

Don’t forget to Like, Share and Subscribe!