Scilab is an
open sourceThe term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...
, cross-platform
numerical computationalNumerical analysis is the study of algorithms that use numerical approximation for the problems of mathematical analysis ....
package and a
high-levelA high-level programming language is a programming language with strong abstraction from the details of the computer. In comparison to low-level programming languages, it may use natural language elements, be easier to use, or be from the specification of the program, making the process of...
, numerically oriented
programming languageA programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine and/or to express algorithms precisely....
. It
can be used for
signal processingSignal processing is an area of systems engineering, electrical engineering and applied mathematics that deals with operations on or analysis of signals, in either discrete or continuous time...
, statistical analysis,
image enhancementIn electrical engineering and computer science, image processing is any form of signal processing for which the input is an image, such as a photograph or video frame; the output of image processing may be either an image or, a set of characteristics or parameters related to the image...
,
fluid dynamicsIn physics, fluid dynamics is a sub-discipline of fluid mechanics that deals with fluid flow—the natural science of fluids in motion. It has several subdisciplines itself, including aerodynamics and hydrodynamics...
simulations,
numerical optimizationIn mathematics, computational science, or management science, mathematical optimization refers to the selection of a best element from some set of available alternatives....
, and modeling and simulation of explicit and implicit
dynamical systemA dynamical system is a concept in mathematics where a fixed rule describes the time dependence of a point in a geometrical space. Examples include the mathematical models that describe the swinging of a clock pendulum, the flow of water in a pipe, and the number of fish each springtime in a...
s.
MATLABMATLAB is a numerical computing environment and fourth-generation programming language. 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,...
code, which is similar in syntax, can be converted to Scilab. Scilab is one of several open source alternatives to
MATLABMATLAB is a numerical computing environment and fourth-generation programming language. 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,...
.
Overview
Scilab is a
high-levelA high-level programming language is a programming language with strong abstraction from the details of the computer. In comparison to low-level programming languages, it may use natural language elements, be easier to use, or be from the specification of the program, making the process of...
, numerically oriented
programming languageA programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine and/or to express algorithms precisely....
. The language provides an
interpretedInterpreted language is a programming language in which programs are 'indirectly' executed by an interpreter program. This can be contrasted with a compiled language which is converted into machine code and then 'directly' executed by the host CPU...
programming environment, with
matricesIn mathematics, a matrix is a rectangular array of numbers, symbols, or expressions. The individual items in a matrix are called its elements or entries. An example of a matrix with six elements isMatrices of the same size can be added or subtracted element by element...
as the main
data typeIn computer programming, a data type is a classification identifying one of various types of data, such as floating-point, integer, or Boolean, that determines the possible values for that type; the operations that can be done on values of that type; the meaning of the data; and the way values of...
. By utilizing matrix-based computation, dynamic typing, and
automatic memory managementIn computer science, garbage collection is a form of automatic memory management. The garbage collector, or just collector, attempts to reclaim garbage, or memory occupied by objects that are no longer in use by the program...
, many numerical problems may be expressed in a reduced number of code lines, as compared to similar solutions using traditional languages, such as
FortranFortran is a general-purpose, procedural, imperative programming language that is especially suited to numeric computation and scientific computing...
,
CC is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....
, or
C++C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...
. This allows users to rapidly construct
modelsA computer simulation, a computer model, or a computational model is a computer program, or network of computers, that attempts to simulate an abstract model of a particular system...
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
correlationIn statistics, dependence refers to any statistical relationship between two random variables or two sets of data. Correlation refers to any of a broad class of statistical relationships involving dependence....
and complex multidimensional arithmetic. The software can be used for
signal processingSignal processing is an area of systems engineering, electrical engineering and applied mathematics that deals with operations on or analysis of signals, in either discrete or continuous time...
, statistical analysis,
image enhancementIn electrical engineering and computer science, image processing is any form of signal processing for which the input is an image, such as a photograph or video frame; the output of image processing may be either an image or, a set of characteristics or parameters related to the image...
,
fluid dynamicsIn physics, fluid dynamics is a sub-discipline of fluid mechanics that deals with fluid flow—the natural science of fluids in motion. It has several subdisciplines itself, including aerodynamics and hydrodynamics...
simulations, and
numerical optimizationIn mathematics, computational science, or management science, mathematical optimization refers to the selection of a best element from some set of available alternatives....
.
Scilab also includes a free package called
XcosXcos is a graphical dynamical system modeler and simulator. It is based on Scicos and is included with the Scilab package....
(based on
ScicosScicos is a graphical dynamical system modeler and simulator. User can create block diagrams to model and simulate the dynamics of hybrid dynamical systems and compile such models into executable code...
) for modeling and simulation of explicit and implicit
dynamical systemA dynamical system is a concept in mathematics where a fixed rule describes the time dependence of a point in a geometrical space. Examples include the mathematical models that describe the swinging of a clock pendulum, the flow of water in a pipe, and the number of fish each springtime in a...
s, including both continuous and discrete sub-systems. Xcos can be compared to
SimulinkSimulink, developed by MathWorks, is a commercial tool for modeling, simulating and analyzing multidomain dynamic systems. Its primary interface is a graphical block diagramming tool and a customizable set of block libraries. It offers tight integration with the rest of the MATLAB environment and...
from
the MathWorksThe MathWorks, Inc., branded as simply MathWorks, is a privately held, multi-national corporation that specializes in mathematical computing software. Its major products include MATLAB and Simulink. In addition to their application in industry and government, the company's tools are used for...
.
As the
syntaxIn linguistics, syntax is the study of the principles and rules for constructing phrases and sentences in natural languages....
of Scilab is similar to
MATLABMATLAB is a numerical computing environment and fourth-generation programming language. 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,...
, 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 sourceThe term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...
license. Due to the open source nature of the software, some user contributions have been integrated into the main program.
License
Scilab family 5 is distributed under the
GPLThe GNU General Public License is the most widely used free software license, originally written by Richard Stallman for the GNU Project....
-compatible
CeCILLCeCILL is a free software license adapted to both international and French legal matters, in the spirit of and retaining compatibility with the GNU General Public License....
license.
Prior to version 5, Scilab was semi-free software according to the nomenclature of the
Free Software FoundationThe Free Software Foundation is a non-profit corporation founded by Richard Stallman on 4 October 1985 to support the free software movement, a copyleft-based movement which aims to promote the universal freedom to create, distribute and modify computer software...
. The reason for this is that earlier versions' licenses prohibited commercial distribution of modified versions of Scilab.
Syntax
Scilab
syntaxIn linguistics, syntax is the study of the principles and rules for constructing phrases and sentences in natural languages....
is largely based on the
MATLABMATLAB is a numerical computing environment and fourth-generation programming language. 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,...
language. The simplest way to execute Scilab code is to type it in at the
promptA command-line interface is a mechanism for interacting with a computer operating system or software by typing commands to perform specific tasks...
,
--> , in the graphical command window. In this way, Scilab can be used as an interactive mathematical
shellA shell is a piece of software that provides an interface for users of an operating system which provides access to the services of a kernel. However, the term is also applied very loosely to applications and may include any software that is "built around" a particular component, such as web...
.
LaTeX engine
Scilab can render formulas in mathematical notation using its own Java-based rendering engine, a fork of the JMathTeX project.
Toolboxes
Scilab has many contributed toolboxes for different tasks:
Many more toolboxes are available on
ATOMS Portal.
History
Scilab was created in 1990 by researchers from
INRIAThe National Institute for Research in Computer Science and Control is a French national research institution focusing on computer science, control theory and applied mathematics.It was created in 1967 at Rocquencourt near Paris, part of Plan Calcul...
and
École nationale des ponts et chausséesFounded in 1747, the École nationale des ponts et chaussées , often referred to as les Ponts, is the world's oldest civil engineering school...
(ENPC). The Scilab Consortium was formed in May 2003 to broaden contributions and promote Scilab as worldwide reference software in academia and industry. In July 2008, in order to improve the technology transfer, the Scilab Consortium joined the Digiteo Foundation.
In June 2010, the Consortium announced the creation of
Scilab Enterprises. 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 September 2010, Scilab Enterprises announced a world-wide partnership with
Equalis to provide Scilab Online Support (SOS) Services. Through this partnership Scilab users can get the benefit of industrial-grade software, support, and services from Equalis and its network of partners anywhere in the world.
See also
- Scicos
Scicos is a graphical dynamical system modeler and simulator. User can create block diagrams to model and simulate the dynamics of hybrid dynamical systems and compile such models into executable code...
- List of numerical analysis software
- Comparison of numerical analysis software
The following tables provide a comparison of numerical analysis software.- General :- Operating system support :The operating systems the software can run on natively .- Language features :Colors indicate features available as...
External links