Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Scilab
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|Open-source numerical computation software}} {{More citations needed|date=April 2009}} {{Infobox software | name = Scilab | logo = Scilab Logo.png | screenshot = Scilab 6 1.png | caption = Screenshot of Scilab 6.1 | developer = [[Dassault Systèmes]] | latest release version = {{wikidata|property|edit|reference|P348}} | latest release date = {{start date and age|{{wikidata|qualifier|P348|P577}}}} | programming language = Scilab, [[C (programming language)|C]], [[C++]], [[Java (programming language)|Java]], [[Fortran]] | operating system = [[BSD]]s (e.g., [[FreeBSD]]), [[Linux]], [[macOS]], [[Microsoft Windows|Windows]] | language = [[English language|English]], [[German language|German]], [[Spanish language|Spanish]], [[French language|French]], [[Italian language|Italian]], [[Japanese language|Japanese]], [[Portuguese language|Portuguese (Brazil)]], [[Russian language|Russian]], [[Ukrainian language|Ukrainian]], [[Chinese language|Chinese]], [[Czech language|Czech]], [[Polish language|Polish]] | genre = [[List of numerical-analysis software|Technical computing]] | license = [[GPLv2]], previously [[CeCILL]] | website = {{URL|https://www.scilab.org}} }} '''Scilab''' is a [[free and open-source]], cross-platform [[Numerical analysis|numerical computational]] package and a [[High-level programming language|high-level]], numerically oriented [[programming language]]. It can be used for [[signal processing]], [[statistical analysis]], [[image processing|image enhancement]], [[fluid dynamics]] simulations, [[Optimization (mathematics)|numerical optimization]], and modeling, simulation of explicit and implicit [[dynamical system]]s and (if the corresponding toolbox is installed) symbolic manipulations.<ref>{{cite web |title=Modelling and simulation of multitechnological machine systems|url=http://www.vtt.fi/inf/pdf/symposiums/2001/S209.pdf|last=Holopainen|first=Timo|year=2000 }}</ref><ref>{{cite book |date=May 1998|first=Raidl|last=Guenther |title=1998 IEEE International Conference on Evolutionary Computation Proceedings. IEEE World Congress on Computational Intelligence (Cat. No.98TH8360) |chapter=An improved genetic algorithm for the multiconstrained 0-1 knapsack problem |isbn=978-0-7803-4869-1|doi=10.1109/ICEC.1998.699502|pages=207–211|citeseerx=10.1.1.20.6454|s2cid=2337792 }}</ref><ref>{{Cite book|title=Scilab: I. Fundamentals, from theory to practice|last=Philippe.|first=Roux|isbn=978-2-8227-0293-5|location=Paris, France|oclc=1003630046|date = 2016-03-29}}</ref> Scilab is one of the two major open-source alternatives to [[MATLAB]], the other one being [[GNU Octave]].<ref name="Trappenberg2010">{{cite book|author=Thomas Trappenberg|title=Fundamentals of Computational Neuroscience|year=2010|publisher=Oxford University Press|isbn=978-0-19-956841-3|page=361}}</ref><ref name="MuhammadZalizniak2011">{{cite book|author1=A Muhammad|author2=V Zalizniak|title=Practical Scientific Computing|year=2011|publisher=[[Woodhead Publishing]]|isbn=978-0-85709-226-7|page=3}}</ref><ref name="MegreyMoksness2008">{{cite book|author1=Bernard A. Megrey|author2=Erlend Moksness|title=Computers in Fisheries Research|year=2008|publisher=Springer Science & Business Media|isbn=978-1-4020-8636-6|page=345}}</ref><ref name="Kapuno2008">{{cite book|author=Raul Raymond Kapuno|title=Programming for Chemical Engineers Using C, C++, and MATLAB|year=2008|publisher=Jones & Bartlett Publishers|isbn=978-1-934015-09-4|page=365}}</ref> Scilab puts less emphasis on syntactic compatibility with MATLAB than Octave does,<ref name="Trappenberg2010"/><ref name="Herman2013">{{cite book|author=Russell L. Herman|title=A Course in Mathematical Methods for Physicists|year=2013|publisher=CRC Press|isbn=978-1-4665-8467-9|page=42}}</ref><ref name="WouwerSaucez2014">{{cite book|author1=Alain Vande Wouwer|author2=Philippe Saucez|author3=Carlos Vilas|title=Simulation of ODE/PDE Models with MATLAB, OCTAVE and SCILAB: Scientific and Engineering Applications|year=2014|publisher=Springer|isbn=978-3-319-06790-2|pages=114–115}}</ref> but it is similar enough that some authors suggest that it is easy to transfer skills between the two systems.<ref name="Haidekker2013">{{cite book|author=Mark A. Haidekker|title=Linear Feedback Controls: The Essentials|year=2013|publisher=Newnes|isbn=978-0-12-405513-1|page=3}}</ref> ==Introduction== Scilab is a high-level, numerically oriented programming language. The language provides an [[interpreted language|interpreted]] programming environment, with [[matrix (mathematics)|matrices]] as the main [[data type]]. By using matrix-based computation, [[dynamic typing]], and [[Garbage collection (computer science)|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 (programming language)|C]], or [[C++]]. This allows users to rapidly construct [[computer simulation|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 [[command-line interface|prompt]], <code>--> </code>, in the graphical command window. In this way, Scilab can be used as an interactive mathematical [[command line interpreter|shell]]. [[Hello World!]] in Scilab: <syntaxhighlight lang="scilab"> disp('Hello World'); </syntaxhighlight> Plotting a 3D surface function: <syntaxhighlight lang="scilab"> // A simple plot of z = f(x,y) t=[0:0.3:2*%pi]'; z=sin(t)*cos(t'); plot3d(t,t',z) </syntaxhighlight> Determining the equivalent single index corresponding to a given set of subscript values:<ref>{{github|https://github.com/pygments/pygments/blob/master/tests/examplefiles/scilab/scilab.sci|pygments/tests/examplefiles/scilab/scilab.sci}}</ref> <syntaxhighlight lang="scilab"> function I=sub2ind(dims,varargin) //I = sub2ind(dims,i1,i2,..) returns the linear index equivalent to the //row, column, ... subscripts in the arrays i1,i2,.. for an matrix of //size dims. //I = sub2ind(dims,Mi) returns the linear index //equivalent to the n subscripts in the columns of the matrix Mi for a matrix //of size dims. d=[1;cumprod(matrix(dims(1:$-1),-1,1))] for i=1:size(varargin) if varargin(i)==[] then I=[],return,end end if size(varargin)==1 then //subindices are the columns of the argument I=(varargin(1)-1)*d+1 else //subindices are given as separated arguments I=1 for i=1:size(varargin) I=I+(varargin(i)-1)*d(i) end end endfunction </syntaxhighlight> == Toolboxes == Scilab has many contributed toolboxes for different tasks, such as * [[Scilab Image Processing]] Toolbox (SIP) and its variants (such as SIVP) * Scilab Wavelet Toolbox * Scilab Java and .NET Module * Scilab Remote Access Module More are available on ATOMS Portal or the Scilab forge. == History == Scilab was created in 1990 by researchers from [[Institut National de Recherche en Informatique et en Automatique|INRIA]] and [[École nationale des ponts et chaussées]] (ENPC). It was initially named '''Ψlab'''<ref>{{Cite web | url=http://raweb.inria.fr/rapportsactivite/RA94/meta2/META2.3.1.1.html | title=META2.3.1.1.html META2.3.1.1}}</ref> ''(Psilab)''. The Scilab Consortium was formed in May 2003 to broaden contributions and promote Scilab as worldwide reference software in academia and industry.<ref>{{cite web | title=SCILAB Consortium launched | url=http://www.ercim.org/publication/Ercim_News/enw54/gomez.html | year=2003 }}</ref> 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 [[MacOS|Mac]], was available in early 2009, and supported [[Mac OS X 10.5]], a.k.a. [[Mac OS X Leopard|Leopard]]. Thus, OSX 10.4, [[Mac OS X Tiger|Tiger]], was never supported except by porting from sources. [[Linux]] and [[Microsoft Windows|Windows]] builds had been released since the beginning, with [[Oracle Solaris|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.<ref>{{cite web |url=http://www.scilab.org/aboutus/pressroom/press_release/pr_20100602 |title=SCILAB Enterprises announced |year=2010 |archive-url=https://archive.today/20100620181929/http://www.scilab.org/aboutus/pressroom/press_release/pr_20100602 |archive-date=2010-06-20 }}</ref> 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]]<ref>{{Cite web |url=https://finance.yahoo.com/news/esi-group-acquisition-scilab-enterprises-074500256.html |title=ESI Group: Acquisition of Scilab Enterprises, Publisher of Scilab Open Source Analytical Computational Software |access-date=2017-08-24 |archive-url=https://web.archive.org/web/20170824181417/https://finance.yahoo.com/news/esi-group-acquisition-scilab-enterprises-074500256.html |archive-date=2017-08-24 }}</ref> Since 2019 and Scilab 6.0.2, the [https://www.utc.fr/en/ University of Technology of Compiègne] provides resources to build and maintain the macOS version. After 5 years of Scilab versions made by ESI Group, Scilab operational team joins Dassault Systèmes in 2022.<ref>{{Cite web |url=https://www.scilab.org/about/company/history |title=Scilab History |access-date=2025-03-20 }}</ref> == 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.<ref>{{Cite news|url=https://scilab.io/cloud/|title=Scilab Cloud|work=Scilab.io|access-date=2017-10-08|language=en-US}}</ref> These features have not been included in the open source version of Scilab and are still proprietary developments. == See also == * [[SageMath]] * [[List of numerical-analysis software]] * [[Comparison of numerical-analysis software]] * [[SimulationX]] == References == {{Reflist|30em}} === Further reading === * {{cite book |author=Stephen L. Campbell |author2=Jean-Philippe Chancelier |author3=Ramine Nikoukhah | title = Modeling and Simulation in Scilab/Scicos | publisher = Springer | location = New York | year = 2006 | isbn = 978-0-387-27802-5 }} == External links == {{Commons}} * [https://www.scilab.org/ Scilab website] {{Numerical analysis software}} {{Dassault Systèmes}} {{Authority control}} [[Category:Array programming languages]] [[Category:Dassault Systèmes]] [[Category:Free educational software]] [[Category:Free mathematics software]] [[Category:Free software programmed in Fortran]] [[Category:Numerical analysis software for Linux]] [[Category:Numerical analysis software for macOS]] [[Category:Numerical analysis software for Windows]] [[Category:Numerical programming languages]] [[Category:Science software that uses GTK]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Authority control
(
edit
)
Template:Cite book
(
edit
)
Template:Cite news
(
edit
)
Template:Cite web
(
edit
)
Template:Commons
(
edit
)
Template:Dassault Systèmes
(
edit
)
Template:Github
(
edit
)
Template:Infobox
(
edit
)
Template:Infobox software
(
edit
)
Template:Main other
(
edit
)
Template:More citations needed
(
edit
)
Template:Numerical analysis software
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)
Template:Sister project
(
edit
)
Template:Template other
(
edit
)