For faster navigation, this Iframe is preloading the Wikiwand page for Scilab.

Scilab

维基百科,自由的百科全书

Scilab
运行Scilab的截屏
运行Scilab的截屏
开发者INRIA, ENPC, Scilab Enterprises
稳定版本
6.1.1[1]
(2021年7月16日,12个月前)
原始码库 编辑维基数据链接
编程语言Scilab, C语言, C++, Java, Fortran
操作系统LinuxmacOSWindows
类型数值分析
许可协议CeCILL英语CeCILL
网站Scilab, Scilab Enterprises

Scilab是由法国国立电脑及自动化研究院(l'Institut national de recherche en informatique et en automatique,简称INRIA)和法国国立桥梁学院(l'École nationale des ponts et chaussées,简称ENPC)开发的开放原始码科学计算自由软件。Scilab一词来源于英文“Scientific Laboratory”(科学实验室)词头的合并。

目前全世界使用Scilab的人数估计有1000,000人。[来源请求]Scilab也是以矩阵作为主要的数据类型,同时拥有丰富的绘图功能。Scilab能处理包括信号处理统计分析图像增强、数值优化、动力系统仿真等方面的问题。网络上也有不少人为它写了许多延伸、丰富了它的功能。

为推广普及Scilab,自2002年起,INRIA跟中国科学院自动化研究所每年组织一次Scilab竞赛[2]

历史

Scilab始源于80年代在INRIA开发的电脑辅助控制系统设计软件Blaise,其最初的开发者为弗朗斯瓦·底列贝克(François Delebecque)和舍齐·史迪尔(Serge Steer)。Blaise的诞生受到了克里夫·莫勒尔(Steve Moler)当时用Fortran编写的MATLAB软件的启发[3]

1984年,Blaise更名为Basile,由Simulog(INRIA的第一个研发小组)负责分发。

90年代初,Simulog停止分发Basile。Basile更名为Scilab,由来自ENPC的Jean-Philippe Chancelier和来自INRIA的François Delebecque,Claude Gomez,Maurice Goursat,Ramine Nikoukhah,Serge Steer共6人组成的Scilab小组继续进行开发工作。后来INRIA决定把Scilab作为开源软件分发。1994年1月2日,Scilab的第一个释放版本,Scilab 1.1上传到一个匿名ftp站点。直到2002年底,Scilab都是由6人小组与一些外部开发者一道共同开发并发布的[3]。从2003年开始,由新成立的Scilab协会负责Scilab软件的后续开发以及相关技术支持。

Scilab协会于2005年启动了基于Java的Scilab 5.x的开发,而之前的部分Scilab开发小组成员(包括ENPC以及部分INRIA成员)则在之前的Scilab 4.x的基础上另外发布了基于GTK+的Scilab版本:ScicosLab英语ScicosLab(该版本集成了Scicos英语Scicos)。

Scilab协会在2008年加入Digiteo基金会,自此Scilab协会开始在Digiteo基金会的引领下对Scilab进行开发,这种情况一直持续到2012年6月。另外也是在2008年,Scilab开始基于CeCILL英语CeCILL许可协议发行,CeCILL是一个与GPL兼容的开源许可协议。

为了保证Scilab的长远发展,在INRIA的支持下,Scilab事业公司于2010年6月成立。自2012年7月开始,Scilab事业公司将完全负责对Scilab后续版本的开发与发布,此外公司也提供关于Scilab的专业服务与支持。2017年,Scilab事业公司被ESI集团并购。

主要特点

  • 大约1700个用于科学和工程计算的数学函数
  • 2维和3维可视化数据图形
  • 约束/无约束、连续/离散问题的优化
  • 数据分析与建模
  • 控制系统的分析与设计
  • 信号处理
  • 用于自定义开发扩展功能的API

GUI界面

Scilab的GUI界面与MATLAB很类似,其主要部分是一个用于输入命令的交互式控制台;在Scilab控制台中按Tab键,Scilab会依据光标之前的文字自动补齐变量、函数或文件的名称;此外,Scilab也会保存控制台中输入的命令,通过按“"↑","↓"”键就能前后检索已键入的命令。

Scilab语言

Scilab语言也是一种交互性的数学脚本语言,语法与MATLAB语言相近,也以矩阵作为数据的基本组织形式。Scilab还有一个可以把MATLAB源程序变换为Scilab源程序的代码翻译器。

数据类型

1.常数(constant)类型(数据前面加%表示该数据是Scilab已经定义好的)

-->a = [1.5-2.5*%i, %pi; %inf, -1.5e2] 
 a =
    1.5 - 2.5i    3.1415927  
    Inf         - 150.

2.字符串(string)类型

-->b = ["123", "456"; "Let''s use", "SciLab!"] 
 b =
!123        456      !
!                    !
!Let's use  SciLab!  !

3.有理式(rational)类型

-->x = poly(0, "x"); //定义x为多项式
-->c = [x/(x^2+1), 2; -1/x, x^3+1]
 c =
      x       2       
    -----     -       
         2            
    1 + x     1       
                      
                   3  
  - 1         1 + x   
    -         -----   
    x           1 

4.表(list)类型(类似于C语言中的“结构”数据类型,即可以包含不同类型的元素)

-->d = list([1,2;3,4], "abc", poly([1,2,3],"x","c"))
 d =
 
       d (1) 
    1.    2.  
    3.    4.  
 
       d (2) 
 abc   
 
       d (3) 
               2  
    1 + 2x + 3x  
编程

1.if选择语句

-->x = 1; 
-->if  x > 0
-->    y = x - 1;
-->elseif  x < 0
-->    y = x + 1;
-->else
-->    y = x;
-->end 
-->y
 y =
    0.

2.select选择语句

-->x = 1;
-->select  x
-->case  1
-->    y = x + 1;
-->case  -1
-->    y = x - 1;
-->else
-->    y = x;
-->end
-->y
 y =
    2.

3.for循环语句

-->x = []; 
-->for  k = 1:4
-->    x (k) = 2 * k;
-->end
-->x'
 ans =
    2.    4.    6.    8.

4.while循环语句

-->k = 1; 
-->x = []; 
-->while  k < 5
-->    x (k) = 2 * k;
-->    k = k + 1;
-->end
-->x'
 ans =
    2.    4.    6.    8.
  • 另外,可以在while或for循环语句中使用break关键字跳出循环

5.自定义函数

-->function  [a,b] = mpx1,x2-->    a = x1 + x2;
-->    b = x1 * x2;
-->endfunction
-->[x,y] = mp1+%i,2y =
    2. + 2.i  
 x =
    3. + i

工具箱

同MATLAB软件中的Simulink工具箱类似,Scilab也拥有一个用于混合动力系统建模/仿真的工具箱:Xcos(它代替了Scilab 5.2之前的Scicos英语Scicos)。用户可以自己编写扩展的工具模块并添加于Scilab中,或者使用别人已编写好的扩展模块。Scilab提供了一个模块管理器(ATOMS)统一对扩展模块进行搜索、安装和更新。在Scilab官方的wiki页面上对Scilab工具箱和MATLAB工具箱之间的相关性进行了详细对比。

Scilab的其它一些工具箱:图像处理(SIP英语Scilab Image Processing、SIVP)、小波变换(Scilab Wavelet Toolbox)、串口通信(Serial Communication Toolbox)、图形和网络计算(Metanet)、GPU计算(sciGPGPU)、航天动力学分析(CelestLab)等等。

Scilab的许多任务具箱可以在网站ATOMS Portal页面存档备份,存于互联网档案馆)或者Scilab forge页面存档备份,存于互联网档案馆)上找到。

参考文献

引用

  1. ^ https://www.scilab.org/download/6.1.1。
  2. ^ Scilab in China. scilab.org. [2008-11-25]. (原始内容存档于2005-01-03) (英语). 
  3. ^ 3.0 3.1 History. scilab.org. [2010-05-08]. (原始内容存档于2010-06-20) (英语). 

网页

参见

外部链接


{{bottomLinkPreText}} {{bottomLinkText}}
Scilab
Listen to this article

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

This article was just edited, click to reload
This article has been deleted on Wikipedia (Why?)

Back to homepage

Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install
{{::$root.activation.text}}

Install Wikiwand

Install on Chrome Install on Firefox
Don't forget to rate us

Tell your friends about Wikiwand!

Gmail Facebook Twitter Link

Enjoying Wikiwand?

Tell your friends and spread the love:
Share on Gmail Share on Facebook Share on Twitter Share on Buffer

Our magic isn't perfect

You can help our automatic cover photo selection by reporting an unsuitable photo.

This photo is visually disturbing This photo is not a good choice

Thank you for helping!


Your input will affect cover photo selection, along with input from other users.