Introduction to Scilab

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.

ComponentShort description
Differential Equation ModuleContains functions for differential algebraic equations (DAE) and ordinary differential equations (ODE)
Polynomials ModuleContains functions for polynomial generation, evaluation, roots, division, etc.
Symbolic ModuleSimple functions for symbolic calculation (addition, subtraction, multiplication, division)
Sparse Matrix ModulePackage with functions for sparse matrix manipulation: decomposition, conversion, factorisation and iterative solvers
Linear Algebra ModuleFunctions used for calculation of matrix determinant, rank, inverse, transformations (Givens), factorisation (Cholesky, LU), decomposition (QR)
C.A.C.S.D ModuleThe 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 ModuleContains a lot of functions for statistical calculations: cumulative distribution, mean, max, min, correlation, co-variance, standard deviation and many more
Graphics ModuleCollection of functions for 2D-plots, 3D-plots, annotations, axes operations, axis manipulation, bar graphs, colour management, pie graphs and text
FFTW InterfaceSet of Fast Fourier Transformation functions based on FFTW library
Signal Processing ModuleSet of function for signal processing: filters (low pass, FIR, IIR, Butterworth, Chebyshev), Fourier transformations, convolution, correlation and co-variance
Interpolation ModuleCollection of Scilab functions for linear, spline, 3D spline, cubic and bi-cubic interpolation
Optimization ModuleContains functions for minimum search, direct search optimization, simplex optimization and parameter identification based on measured data
Compatibility FunctionsSet of Scilab functions which emulate some Matlab functions
Sound File Handling ToolboxContains functions for: sound file loading and writing (*.au and *.wav), frequency plot of a sound file, sound player and general sound analysis
Mexlib ToolsModule which contains a set of Scilab functions used for C-files manipulation: compile, link and build
Spreadsheet ToolboxSmall set of functions for *.csv and *.xls files manipulation: open, read and write
Genetic AlgorithmsFunctions used for Genetic Algorithms calculations: population creation, mutations and selection of individuals
Simulated Annealing ToolboxSmall collection of functions used to solve simulated annealing problems (model of a physical process of material heating and cooling)
XML ManagementCollection 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!

Leave a Reply

Ad Blocker Detected

Dear user, Our website provides free and high quality content by displaying ads to our visitors. Please support us by disabling your Ad blocker for our site. Thank you!

Refresh