Scilab

Last updated
Scilab
Developer(s) Dassault Systèmes
Stable release
2024.0.0 [1]   OOjs UI icon edit-ltr-progressive.svg / 24 October 2023;5 months ago (24 October 2023)
Repository
Written inScilab, C, C++, Java, Fortran
Operating system BSDs (e.g., FreeBSD), Linux, macOS, Windows
Available in English, German, Spanish, French, Italian, Japanese, Portuguese (Brazil), Russian, Ukrainian, Chinese, Czech, Polish
Type Technical computing
License GPLv2, previously CeCILL
Website www.scilab.org

Scilab is a free and open-source, cross-platform numerical computational package and a high-level, numerically oriented programming language. It can be used for signal processing, statistical analysis, image enhancement, fluid dynamics simulations, numerical optimization, and modeling, simulation of explicit and implicit dynamical systems and (if the corresponding toolbox is installed) symbolic manipulations. [2] [3] [4]

Contents

Scilab is one of the two major open-source alternatives to MATLAB, the other one being GNU Octave. [5] [6] [7] [8] Scilab puts less emphasis on syntactic compatibility with MATLAB than Octave does, [5] [9] [10] but it is similar enough that some authors suggest that it is easy to transfer skills between the two systems. [11]

Introduction

Scilab is a high-level, numerically oriented programming language. The language provides an interpreted programming environment, with matrices as the main data type. By using matrix-based computation, dynamic typing, and automatic memory management, many numerical problems may be expressed in a reduced number of code lines, as compared to similar solutions using traditional languages, such as Fortran, C, or C++. This allows users to rapidly construct models for a range of mathematical problems. While the language provides simple matrix operations such as multiplication, the Scilab package also provides a library of high-level operations such as correlation and complex multidimensional arithmetic.

Scilab also includes a free package called Xcos for modeling and simulation of explicit and implicit dynamical systems, including both continuous and discrete sub-systems. Xcos is the open source equivalent to Simulink from the MathWorks.

As the syntax of Scilab is similar to MATLAB, Scilab includes a source code translator for assisting the conversion of code from MATLAB to Scilab. Scilab is available free of cost under an open source license. Due to the open source nature of the software, some user contributions have been integrated into the main program.

Syntax

Scilab syntax is largely based on the MATLAB language. The simplest way to execute Scilab code is to type it in at the prompt, --> , in the graphical command window. In this way, Scilab can be used as an interactive mathematical shell.

Hello World! in Scilab:

disp('Hello World');

Plotting a 3D surface function:

// A simple plot of z = f(x,y)t=[0:0.3:2*%pi]';z=sin(t)*cos(t');plot3d(t,t',z)

Toolboxes

Scilab has many contributed toolboxes for different tasks, such as

More are available on ATOMS Portal or the Scilab forge.

History

Scilab was created in 1990 by researchers from INRIA and École nationale des ponts et chaussées (ENPC). It was initially named Ψlab [12] (Psilab). The Scilab Consortium was formed in May 2003 to broaden contributions and promote Scilab as worldwide reference software in academia and industry. [13] In July 2008, in order to improve the technology transfer, the Scilab Consortium joined the Digiteo Foundation.

Scilab 5.1, the first release compiled for Mac, was available in early 2009, and supported Mac OS X 10.5, a.k.a. Leopard. Thus, OSX 10.4, Tiger, was never supported except by porting from sources. Linux and Windows builds had been released since the beginning, with Solaris support dropped with version 3.1.1, and HP-UX dropped with version 4.1.2 after spotty support.

In June 2010, the Consortium announced the creation of Scilab Enterprises. [14] Scilab Enterprises develops and markets, directly or through an international network of affiliated services providers, a comprehensive set of services for Scilab users. Scilab Enterprises also develops and maintains the Scilab software. The ultimate goal of Scilab Enterprises is to help make the use of Scilab more effective and easy.

In February 2017 Scilab 6.0.0 was released which leveraged the latest C++ standards and lifted memory allocation limitations.

Since July 2012, Scilab is developed and published by Scilab Enterprises and in early 2017 Scilab Enterprises was acquired by Virtual Prototyping pioneer ESI Group [15]

Since 2019 and Scilab 6.0.2, the University of Technology of Compiègne provides resources to build and maintain the macOS version. Since mid 2022 the Scilab team is part of Dassault Systèmes.

Scilab Cloud App & Scilab Cloud API

Since 2016 Scilab can be embedded in a browser and be called via an interface written in Scilab or an API.

This new deployment method has the notable advantages of masking code & data as well as providing large computational power. [16]

These features have not been included in the open source version of Scilab and are still proprietary developments.

See also

Related Research Articles

<span class="mw-page-title-main">MATLAB</span> Numerical computing environment and programming language

MATLAB is a proprietary multi-paradigm programming language and numeric computing environment developed by MathWorks. MATLAB allows matrix manipulations, plotting of functions and data, implementation of algorithms, creation of user interfaces, and interfacing with programs written in other languages.

<span class="mw-page-title-main">Numerical analysis</span> Study of algorithms using numerical approximation

Numerical analysis is the study of algorithms that use numerical approximation for the problems of mathematical analysis. It is the study of numerical methods that attempt to find approximate solutions of problems rather than the exact ones. Numerical analysis finds application in all fields of engineering and the physical sciences, and in the 21st century also the life and social sciences, medicine, business and even the arts. Current growth in computing power has enabled the use of more complex numerical analysis, providing detailed and realistic mathematical models in science and engineering. Examples of numerical analysis include: ordinary differential equations as found in celestial mechanics, numerical linear algebra in data analysis, and stochastic differential equations and Markov chains for simulating living cells in medicine and biology.

<span class="mw-page-title-main">GNU Octave</span> Numerical analysis programming language

GNU Octave is a scientific programming language for scientific computing and numerical computation. Octave helps in solving linear and nonlinear problems numerically, and for performing other numerical experiments using a language that is mostly compatible with MATLAB. It may also be used as a batch-oriented language. As part of the GNU Project, it is free software under the terms of the GNU General Public License.

Computational science, also known as scientific computing, technical computing or scientific computation (SC), is a division of science that uses advanced computing capabilities to understand and solve complex physical problems. This includes

<span class="mw-page-title-main">Modelica</span> Computer Language for System Modeling

Modelica is an object-oriented, declarative, multi-domain modeling language for component-oriented modeling of complex systems, e.g., systems containing mechanical, electrical, electronic, hydraulic, thermal, control, electric power or process-oriented subcomponents. The free Modelica language is developed by the non-profit Modelica Association. The Modelica Association also develops the free Modelica Standard Library that contains about 1400 generic model components and 1200 functions in various domains, as of version 4.0.0.

<span class="mw-page-title-main">Computational engineering</span>

Computational Engineering is an emerging discipline that deals with the development and application of computational models for engineering, known as Computational Engineering Models or CEM. Computational engineering uses computers to solve engineering design problems important to a variety of industries. At this time, various different approaches are summarized under the term Computational Engineering, including using computational geometry and virtual design for engineering tasks, often coupled with a simulation-driven approach In Computational Engineering, algorithms solve mathematical and logical models that describe engineering challenges, sometimes coupled with some aspect of AI, specifically Reinforcement Learning.

The following tables provide a comparison of numerical analysis software.

Scicos is a graphical dynamical system modeler and simulator. The software’s purpose is to create block diagrams to model and simulate the dynamics of hybrid dynamical systems and compile these models into executable code. Applications include signal processing, systems control, queuing systems, and the study of physical and biological systems.

Dynamic simulation is the use of a computer program to model the time-varying behavior of a dynamical system. The systems are typically described by ordinary differential equations or partial differential equations. A simulation run solves the state-equation system to find the behavior of the state variables over a specified period of time. The equation is solved through numerical integration methods to produce the transient behavior of the state variables. Simulation of dynamic systems predicts the values of model-system state variables, as they are determined by the past state values. This relationship is found by creating a model of the system.

Web-based simulation (WBS) is the invocation of computer simulation services over the World Wide Web, specifically through a web browser. Increasingly, the web is being looked upon as an environment for providing modeling and simulation applications, and as such, is an emerging area of investigation within the simulation community.

<span class="mw-page-title-main">SimulationX</span> Software application

SimulationX is a CAE software application running on Microsoft Windows for the physical simulation of technical systems. It is developed and sold by ESI Group.

<span class="mw-page-title-main">ScicosLab</span>

ScicosLab is a software package providing a multi-platform environment for scientific computation. It is based on the official Scilab 4.x (BUILD4) distribution, and includes the modeling and simulation tool Scicos and a number of other toolboxes.

<span class="mw-page-title-main">20-sim</span>

20-sim is a commercial modeling and simulation program for multi-domain dynamic systems, which is developed by Controllab. With 20-sim, models can be entered as equations, block diagrams, bond graphs and physical components. 20-sim is widely used for modeling complex multi-domain systems and for the development of control systems.

OpenModelica is a free and open source environment based on the Modelica modeling language for modeling, simulating, optimizing and analyzing complex dynamic systems. This software is actively developed by Open Source Modelica Consortium, a non-profit, non-governmental organization. The Open Source Modelica Consortium is run as a project of RISE SICS East AB in collaboration with Linköping University.

<span class="mw-page-title-main">FEATool Multiphysics</span>

FEATool Multiphysics is a physics, finite element analysis (FEA), and partial differential equation (PDE) simulation toolbox. FEATool Multiphysics features the ability to model fully coupled heat transfer, fluid dynamics, chemical engineering, structural mechanics, fluid-structure interaction (FSI), electromagnetics, as well as user-defined and custom PDE problems in 1D, 2D (axisymmetry), or 3D, all within a graphical user interface (GUI) or optionally as script files. FEATool has been employed and used in academic research, teaching, and industrial engineering simulation contexts.

References

  1. "Scilab 2024.0.0" . Retrieved 24 October 2023.
  2. Holopainen, Timo (2000). "Modelling and simulation of multitechnological machine systems" (PDF).
  3. Guenther, Raidl (May 1998). "An improved genetic algorithm for the multiconstrained 0-1 knapsack problem". 1998 IEEE International Conference on Evolutionary Computation Proceedings. IEEE World Congress on Computational Intelligence (Cat. No.98TH8360). pp. 207–211. CiteSeerX   10.1.1.20.6454 . doi:10.1109/ICEC.1998.699502. ISBN   978-0-7803-4869-1. S2CID   2337792.
  4. Philippe., Roux (2016-03-29). Scilab: I. Fundamentals, from theory to practice. Paris, France. ISBN   978-2-8227-0293-5. OCLC   1003630046.{{cite book}}: CS1 maint: location missing publisher (link)
  5. 1 2 Thomas Trappenberg (2010). Fundamentals of Computational Neuroscience. Oxford University Press. p. 361. ISBN   978-0-19-956841-3.
  6. A Muhammad; V Zalizniak (2011). Practical Scientific Computing. Woodhead Publishing. p. 3. ISBN   978-0-85709-226-7.
  7. Bernard A. Megrey; Erlend Moksness (2008). Computers in Fisheries Research. Springer Science & Business Media. p. 345. ISBN   978-1-4020-8636-6.
  8. Raul Raymond Kapuno (2008). Programming for Chemical Engineers Using C, C++, and MATLAB. Jones & Bartlett Publishers. p. 365. ISBN   978-1-934015-09-4.
  9. Russell L. Herman (2013). A Course in Mathematical Methods for Physicists. CRC Press. p. 42. ISBN   978-1-4665-8467-9.
  10. Alain Vande Wouwer; Philippe Saucez; Carlos Vilas (2014). Simulation of ODE/PDE Models with MATLAB, OCTAVE and SCILAB: Scientific and Engineering Applications. Springer. pp. 114–115. ISBN   978-3-319-06790-2.
  11. Mark A. Haidekker (2013). Linear Feedback Controls: The Essentials. Newnes. p. 3. ISBN   978-0-12-405513-1.
  12. "META2.3.1.1.html META2.3.1.1".
  13. "SCILAB Consortium launched". 2003.
  14. "SCILAB Enterprises announced". 2010. Archived from the original on 2010-06-20.
  15. "ESI Group: Acquisition of Scilab Enterprises, Publisher of Scilab Open Source Analytical Computational Software". Archived from the original on 2017-08-24. Retrieved 2017-08-24.
  16. "Scilab Cloud". Scilab.io. Retrieved 2017-10-08.

Further reading