认识SCILAB


   最为基本的、通用的科学计算软件应该走向自由和共享。只有这样才能最大限度地提高计算机应用的普及程度,共享的结果可以汇集更广泛的资料,使软件不断趋于 尽善尽美的水平。科学计算自由软件SCILAB正是在追求“自由,同创,共享”这样一种理念下应运而生的,并成为自由软件的一面旗帜。
科学计算(如加、减、乘、除、微积分、逻辑推理等)是计算机应用的主要内容之一。以完成这一类科学计算问题为目的应用软件,我们称之为科学计算软件。在 此,我们应该对“科学计算软件”一词有更广义的理解。它不仅限于科学方面的应用,也包括各种工程技术、金融、经济等方面的应用。目前这类软件多数是以数值 计算形式为主,然而基于符号推导(如公式推导)的计算软件也变得日益普及。除此之外,科学计算可视化同样是该类软件的涵盖内容。
如果你是理工科学生或研究人员,你将对MATLAB软件不会陌生。目前书市中流行大量有关MATLAB软件的丛书,介绍了这个当前国际上最好的商业版科学 计算软件。它的应用已经给科学与工程等诸多领域带来了可观的发展与进步。在美国、加拿大等西方国家,MATLAB已经成为许多理工学院学生、以及工业界工 程师人员的必备工具。它所配备的数学工具如此之多以致于对常用的科学计算与分析方法无所不包。除MATLAB主体本身,可以根据具体应用情况配备各类工具 箱:如信号处理,图像处理,模糊系统,神经网络系统,有限元分析,优化计算,小波分析,金融分析,系统辨识,各种控制方法等。
随着科学技术的普及发展,以及计算机应用进入各个领域,使用科学计算软件已经变成越来越常规的工作。在这样的背景下,MATLAB(主要是基于数值式计 算)、MAPLE(主要是基于符号式计算)等科学计算软件得到了迅猛发展。正像计算机的许多发展已经超出我们的初始想象,科学计算软件的广阔发展前景以及 未来得到的普及应用,同样是我们不可低估的。
SCILAB 是由法国国家信息、自动化研究院(INRIA)的科学家们开发的“开放源码”软件。SCILAB 一词来源于英文“Scientific Laboratory"(科学实验室)词头的合并。与MATLAB 类似,SCILAB也是一种科学工程计算软件,其数据类型丰富,可以很方便地实现各种矩阵运算与图形显示,能应用于科学计算、数学建模、信号处理、决策优 化、线性/非线性控制等各个方面。它还提供可以满足不同工程与科学需要的工具箱,例如SCICOS,信号处理工具箱,图与网络工具箱等。可以说,就基本的 功能如科学计算、矩阵处理及图形显示而言,MATLAB 能完成的工作SCILAB都可以实现。
由于SCILAB的语法与MATLAB非常接近,熟悉MATLAB编程的人很快就会掌握SCILAB的使用。有意思的是,SCILAB提供的语言转换函数 可以自动将用MATLAB语言编写的程序翻译为SCILAB语言。目前,SCILAB除了WINDOWS与NT版本外,还有多种UNIX或LINUX下的 版本,如SGI MIPS Irix, PC Linux, Sun Sparc stations(Sun Solaris) 等。

功能介绍

   Scilab(Scientific Laboratory)是一个为工程和科学应用量身定做的强大计算环境,由一系列数值计算的科学软件包组成。最初(1990年)是INRIA和ENPC的 研究者开发,1994年开始在网上自由分发,现在国外已经广泛应用于教育和工业环境中。它拥有成百可以与许多程序语言(例如:C、Fortran...) 交互的数学函数、精巧高级的数据结构(例如:链表、多项式、有理函数、线性系统...)、高水平的程序设计语言和解释器。另外,Scilab完全是一个开 放的系统,你可以利用重载技术定义新的数据结构。Scilab的一个重要特征是它具有丰富的工具箱,目前的最新版本(4.0)可用的有:
* 2-D 和 3-D 图形及动画
* 线性代数, 稀疏矩阵
* 多项式和有理函数
* 模拟: ODE 求解(ODEPACK) 和 DAE 求解(DASSL)
* Scicos: 一个动力系统建模器和模拟器
* 经典鲁棒控制, LMI 优化
* 微分和非微分优化
* 信号处理
* Metanet: 图形和网络
* 使用PVM的并行Scilab
* 统计学
* 与计算机代数系统(Maple, MuPAD)的接口
* Tck/Tk接口
   当然还有许许多多其它的工具箱, Scilab可以运行在包括Linux在内的绝大部分UNIX系统下,当然在Windows 9X/NT/2000/XP 下也有相应的运行版本。它的源代码、在线帮助和英文使用手册都免费提供下载。

SCILAB在中国

   中国科学院自动化所和法国国立信息与自动化研究院(INRIA)联合创办的中法信息、自动化与应用数学实验室吸引了中法许多大学和科研单位的科学家,这些科学家紧密合作,从事了许多基础性、公益性的前沿科学研究。
   近年来,双方科学家又在推动发展和普及科学计算自由软件SCILAB。他们组织了基于SCILAB平台的应用软件比赛,又出版SCILAB相关的书籍,以便 让更多的同仁们了解和掌握SCILAB。中法科学家还在策划进一步完善这一具有巨大应用前景(尤其是对中国科技与教育界)的开放源代码自由软件,体现了中 法科学家共有的社会责任。
   十余年来,INRIA和法国国立桥梁学院(ENPC)的科学工作者坚持SCILAB的开放源代码与自由软件原则,最近又与中法联合实验室的同仁们共同努力 准备将其在中国推广普及,这一行为理所当然地受到了中法两国科学家地支持。许多中国高校地学生还积极参与了基于SCILAB软件平台的应用软件比赛。中国 科技部“863”计划和法国驻华使馆,也对此给予了积极的支持。由胡包钢老师编写的《科学计算自由软件——SCILAB教程》的出版,是推动该工作在中国 进一步开展的重要一步。
   活动总结如下:

2001 年4月9日-11 日在北京举办“2001 年科学计算软件-SCILAB 研讨会”。
2001 年9月-2002 年3 月由中法实验室与INRIA 共同举办了“2002 年SCILAB 竞赛”。
2002 年4月在上海由复旦大学主办、中法实验室协助举办了“2002 年SCILAB 科学计算与工业应用研讨会”,与会者四十多人。
2002 年5月在中欧信息论坛会议上,由中法实验室与INRIA 共同举办了“2002 年SCILAB 竞赛” 颁奖议式。
2002 年9月“SCILAB 中国代表队” 共7 人访问了法国INRIA,其中有3 名学生完成了一个月的访问学习。
2002 年-2003 年10 月由清华大学主办了“2003 年SCICAB 竞赛”。
2003 年1月第一本中文SCILAB 书籍《科学计算自由软件-SCILAB 教程》由清华大学出版社出版。
2003 年-2004 年12 月,中法实验室与西安及北京地区等单位共同获得了国家863计划资助,项目名称为“开放源代码软件SCILAB 的开发及在中国西部教育的推广应用”。
2003 年9月为迎接“中法文化年”,中法实验室完成制作并发行“SCILAB”徽章。
2003 年10月“SCILAB 中国代表队” 共3 人访问了法国INRIA。
完成十多所中国大学SCILAB 推广讲座工作。这些大学包括:中国科学院北京研究生院,北京大学,清华大学,首都师范大学,四川大学,电子科学技术大学,华中科学技术大学,厦门大学等。
2004年3月,“SCILAB中国代表队”共10人访问了法国INRIA。
2004年4月在清华大学和北京航空航天大学中方主任胡包钢老师,Promotion Manager李实老师以及访法学生代表,开展了两次大型讲座活动。
2005年10月,2005年Scilab竞赛在武汉举行。
2006年9月,2006年Scilab竞赛颁奖仪式及其工程应用国际研讨会在浙江大学举行。

2007年5月,2007年Scilab竞赛颁奖仪式及其工程应用国际研讨会在广东佛山南海东软学院举行。


学习方法


对于刚刚接触SCILAB的人来说可以通过五种途径来学习它:
通过实例演示学习SCILAB;
应用“日志记录”学习SCILAB;
通过帮助方式学习SCILAB;
通过其他MATLAB教程资料学习SCILAB。
推荐书籍:胡包刚

工程应用


   自由软件是指允许任何人使用、拷贝、修改、分发(免费/少许收费)的软件。尤其是这种软件的源码(通常是指用C、Fortran、C++等高级语言书写,程序员容易看懂的程序代码)必须是可得到的。从某种意义上说,“没有源码,就称不上是自由软件。”
   自由软件的英文是“Free Software”。因为英文中的Free一字的多意性,对什么是自由软件,在国际上也有各种误解,在国内最普遍的理解为“免费软件”。这种说法是不对的。“自由软件”是一个版权意义上的范畴。美国麻省理工学院的理查德·斯托曼于八十年代中、后期首先提出了“自由软件”的概念。这个概念就是软件的源代码应该是属于全人类的公共知识产权, 应该在编制和使用程序的人之间自由地传播,而不应该是商人谋取利益的手段。 对这一知识产权的任何限制最终都将造成发展的限制和阻碍。 “自由软件”的倡导者们不是企图将别人的软件共有化,他们的做法是将自己的软件作品纳入“自由软件”的范畴,贡献给全世界。
   当我们使用商业软件时我们都会看到一个版权信息,它通常是说你没有权力对你买的软件进行拷贝、分销。至于理解和修改,因为根本就没有源码所以就无所谓“理解”和“修改”。 毋庸讳言,在我们的身边,至今有人还未注意到有关版权的信息,因此,我们不知道我们究竟放弃了自己的哪些权力,而我们或许会为此付出代价。在美国,人们对于自己的权力非常敏感。David LaMacchia是一名21岁的麻省理工学院的学生,以加密的地址匿名在网络上设立了一个电子公告栏(BBS),并且鼓励网络使用者上传流行的应用电脑软件以及电脑游戏。然后他将上传的软件转发到另外一个地址,在该地址上,知道密码的网络用户就可以下载应用软件及游戏软件。在事情泄露后David被拘捕,被指控违反了美国电信欺诈法案。但由于他并没有从侵权行为中得到任何经济利益,所以当时法院并没有对其进行制裁。但是这一事件却引发了司法及立法机构对此类网络上的软件侵权事件的重视,它们认为这一种对软件的侵权行为,即使侵权者并没有商业动机,也应该对其处以刑事及民事上的处罚。所以他们既不愿违反法律,又不想违反人性的自由、表现、发展和对美好的追求。于是,举起了“自由软件”大旗。
   自由软件给使用者运行、拷贝、散布、学习、修改和改进软件的权力(run,copy,distribute,study,change and improve the software)。具体说你具有:学习程序如何工作、 修改使之适合你的需要;散布,使你和你的邻居、朋友共享软件;改进程序,将你的改进公之于众,使整个社会受益等权利。
   我们看到“自由软件”的本质不是免费,他们甚至鼓励你在可能的情况下尽可能多赚钱,因为这样可以更好地支持“自由软件”的发展;它的本质是共享,是非垄断,是鲜活的思想贡献,借助别人的优秀思想,加上你自己独特思维使全社会受益。如果你没有钱,你可以通过免费的渠道,如从朋友处拷贝或通过Internet下载。如果你很有钱,你可以以捐赠的方式用高价购买。这一切取决于您自己。
   当随意使用一个软件而不必担心侵权时,深晓“自由”真谛的人们,必会感到社会的温馨和友爱。当可以随时修改程序使它更好、更适用时,一定能体验工作效率得到提高的兴奋。 当把自己的辛勤劳动公之于众、供千万人使用的时候,被承认的自豪感将充分体验自由、和谐、高效的世界充满着爱!
   与“商业软件”不同,“自由软件”带来的不是某个公司或者某个人的直接商业利益,而是对国民经济的整体经济利益。每使用一份“自由软件”,就能省下一份购买商业软件的资金,而且,没有限制知识传播的苛刻条件。“自由软件”本身虽然不能赚钱,但它为社会节约的资金绝不是无足轻重的,它可以使我国信息技术发展有可能走比西方更为经济的道路。
   国民经济信息化不能没有自己可以完全控制的系统,特别是国家要害部门。 商业软件由于源代码的保密,使用户无法了解源代码的安全性并进行客观的评估和检验。源代码公开的“自由软件”一旦发现毛病容易进行修改。在公开的源代码基础上对所传送的信息用某种强加密算法进行加密,将成为最安全的软件,美国一些机要部门都是采用这种方法。软件产业已经历了几十年的发展和积累。世界各国投入了大量的资金,培养了大量的人才。我国的软件虽然也经历了几十年的发展,但是由于各种各样的原因,目前还是处于相对落后的状况。要彻底改变这种状况是有困难的,按传统的模式需要投入大量的资金,积累大量的专门知识、经验,培养一大批掌握这些知识和具有相应经验的人。自由软件是世界上成千上万个专家智慧的结晶,充分学习、利用和参与开发自由软件,将使得我们能够以最少的资金投入,最充分地引进和利用国际上的智力资源,站在巨人的肩膀上,彻底改变闭门造车的开发模式,有可能以短的时间、快的速度,在大的范围内赶上国际上发达国家的发展步伐。
   事实上世界计算机和软件的发展从来离不开国际合作。信息时代国际竞争的特点是围绕信息来源和信息加工的知识和掌握这些知识的人的竞争。日本政府在80年代投巨资开发第五代计算机,企图一举超过美国,但由于采取的是传统的关起门来开发的老路,结果功亏一篑。与日本相反,芬兰在80年代中,充分利用先进的信息技术,联通了Internet,建立了当时全球规模最大、收藏资料最全的自由软件库。芬兰之所以能够诞生Linux 操作系统并成为目前世界信息技术综合指数仅次于美国的信息技术发达国家, 是与充分重视和利用“自由软件”分不开的。

推广意义


   弘扬科学研究中的自由与共创精神
   “科学无国界。”科学本身充分体现了自由与共创精神。目前计算机应用是以商业软件为主,但我们不应该忘记计算机软件同时具有科学方面的属性。自由需求开 放,利益趋向封闭。纯商业软件一统天下的结果,难免会束缚计算机的普及应用和向更高水平的发展。自由精神和商业利益是共辅的,这好比科学与技术之树,二者 是一体生长的(图一)。科学对应植物的根系;技术代表树木枝干。当“商业价值”指标由下向上增长时,“自由精神”则是反向的。二者具有竞争(如资源或养 分),但更重要的是合作。只有根深叶茂,树木才能茁壮成长。纯商业软件一统天下的结果,难免会束缚计算机的普及应用和向更高水平的发展。可以理解最为基本 的、通用的科学计算软件部分应该走向自由与共享。只有这样才能最大限度地提高计算机应用的普及程度,使具有高新内容的商业软件业兴旺发达。另一方面,共享 的结果可以汇集更广泛的智力,使软件不断趋于尽善尽美的水平。如果将软件业的发展比喻为飞鸟的翱翔, 则“开放源码”与“封闭源码”软件分别代表飞鸟的两翼(图二)。 只有双翅奋扬,方可搏击长空。
   促进科学计算软件在我国教育中的普及应用
   近几年来,我国教育界中应用科学计算软件的普及增长很快,普及科学计算软件在教育中的应用将为更新传统的教学方式及教学内容带来突破性的进展。例如在物理 教学中,应用科学计算软件可以在计算机屏幕上形象的模拟皮球的自由落下、弹起、直至静止的动态全过程;另外对于高中解析几何的学习可以借助有关软件以加深 学生的理解。借助科学计算软件开展的教学实验将为培养学生分析问题和解决实际问题的能力提供更为广阔的空间。在完成作业或解决实际问题时,同学们可以用计 算机的各种图形方式给出结果。亲手应用科学计算软件可以大大提高学生们的学习兴趣和掌握科学计算工具的本领。
   缓解计算机用户资金短缺的问题
   中国应用科学计算软件的未来市场是巨大的。如果认为该类软件引入高中教学的想法是可取的,那么仅这一项的市场就是相当可观的。然而,中国的教育机面临着严 重的资金短缺问题。由于国度间经济发展水平的差异,由西方工业国家开发出来的商用软件价格,国人很难承受。以MATLAB软件为例,目前主体部分的价格要 1万多元人民币,每一个工具箱需3000多元(工具箱是根据具体应用领域而选择的,MATLAB可提供20多个工具箱)。这以上的价格是为学校提供的折扣 价。SCILAB无疑为学校解决资金短缺问题提供了一条很好的出路。目前版本的SCILAB已经能够胜任科学计算中的基本数值计算并具可视化功能,完全可 以满足高中以及大学教学内容的要求。
   倡导合法、规范性使用软件的风气与行为
   合法、规范性地使用他人脑力劳动成果(如作品、专利、软件等)如果在社会中形不成主流,那么中国软件业将无法实现快速增长的目标。在教育界中推广、鼓励应 用“开放源码”软件不单单是出于经济上的考虑,它将对学生建立合法使用软件意识、养成规范行为习惯有着潜移默化的作用。当国内许多大学已经将软件应用作为 教学与科研的基本工具时,我们学校的领导与老师有责任共同努力营造合法使用软件的环境与氛围。
   培养人才、推动中国软件业的发展
   “十年树木,百年树人”。 人才的培养难于实物的建立。 教育领域应该成为软件业发展的最好起点。“开放源码”方式将从技术的最基本层次为中国的软件业提供便利、可行的发展机遇。我们不怀疑中国能够培育出具有国 际竞争力强大软件人员队伍与企业,使中国在未来多极化的国际软件市场占有一席之地。我们更希望看到,中国的教育能够早日早就出世界级的计算机科学家。至 少,在未来自由、共创的软件宝库中,能够看到众多的来自中国的奉献。