登录站点

用户名

密码

Scilab简介

1已有 138 次阅读  2020-08-20 06:03

由于软件本身的稳定性有时间规律性,加之人们对于某个事物的接受需要一个过程,因此,一项软件或者技术可能出现较早,但成熟应用或者受到重视往往需要经过较长时间。

Scilab是一款较为知名的开源软件,从易用性和易安装性等方面考虑,可以作为工程师或科研工作者的一个重要手段,替换复杂的MATLAB。

MATLAB主要是基于数值式计算,MAPLE主要是基于符号式计算,SCILAB 则是由法国国家信息、自动化研究院(INRIA)开发的“开放源码”软件。SCILAB 一词源于英文“Scientific Laboratory(科学实验室)词头的合并)。与MATLAB类似,SCILAB也是一种科学工程计算软件,可以很方便地实现各种矩阵运算与图形显示,能应用于科学计算、数学建模、信号处理、决策优化、线性/非线性控制等各个方面。它还提供可以满足不同工程与科学需要的工具箱,例如SCICOS,信号处理工具箱,图与网络工具箱等。

由于SCILAB的语法与MATLAB非常接近,熟悉MATLAB编程的人很快就会掌握SCILAB的使用。有意思的是,SCILAB提供的语言转换函数可以自动将用MATLAB语言编写的程序翻译为SCILAB语言。目前,SCILAB除了WINDOWS与NT版本外,还有多种UNIX或LINUX下的版本。

以下是两个方面对Scilab的简单介绍,其它复杂功能在此基础上非常容易读懂。

.基本命令

Scilab主要针对向量和矩阵进行分析和运算,其基本命令主要围绕着与它们相关的内容展开。

简单数据处理

例1.生成向量和矩阵。

V = ones(1,120)

M = ones(5,5)

Scilab中生成矩阵和向量的方法有很多,例1中使用的是ones这个函数,生成全1元素的函数。还有zeros函数,生成全0元素的函数;rand函数,生成随机元素的函数。

例2.采用rand函数生成一个向量和矩阵,然后寻找其中的最大值和最小值。

V = rand(1,10)

M = rand(5,5)

max(M)

min(v)

对于常见的实验数据,通常采用向量来保存这些实验数据,实际中可以采用Scilab中的均值函数mean和标准方差函数stdev来分析这些实验数据。

例3.简单分析向量储存的实验数据。

mean(v)

stdev(v)

Scilab编程

为了便于统一维护和实现数据分析的独立性,通常针对一批数据的处理书写一个Scilab处理脚本。这个脚本的书写就是Scilab里面的编程,它的若干语句类似于C语言,具备很强的可操作性。采用这种方式使用Scilab,可以减少后期的维护难度,提高可复用性。

例4,列举一个典型的Scilab脚本的内容。

// Data

x = -1:0.1:1;

y = -1:0.1:1;

[X,Y] = meshgrid(x,y);

Z = X.^2 + Y.^2;

// Plot

scf(14);

clf(14);

xset("colormap",jetcolormap(4));

surf(X,Y,Z);

xlabel('X');ylabel('Y');zlabel('Z');

上面列举的便是一个典型的Scilab编程脚本,里面包含了数据及其对数据的操作,每次只需要在Scilab的命令终端执行该脚本就可以得到相同的结果,并绘制出相应的图像,后续也可以修改该脚本,完成更复杂的任务。

矩阵运算

Scilab中基本的矩阵运算与Matlab类似,实际工程运用中可以大量使用算术操作或矩阵函数,简化数据分析和处理的困难。

.2D网格

例1.对2D曲线的绘制,例如绘制图形,采用如下程序实现对曲线的绘制:

clear

x = linspace(-5,5,51)

y = 1 ./(1+x.^2);

plot(x,y,'o-b');

绘制出来的基本二维曲线为:

例2.在例1的基础上增加如下语句,添加2D曲线的网格。

xgrid(5,1,7)

在计算流体力学(CFD)和核反应堆计算中经常需要绘制2D情况下的流函数分布和中子通量分布,这时需要使用Sgrayplot函数。

 例3,使用Sgrayplot绘制二维平面的流函数分布。已知二维平面均匀化的网格点上的流函数值,采用矩阵方式进行存放,将使用Scilab内置的Sgrayplot函数来进行绘制。

zm = min(FV);zM = max(FV)

xset("colormap",jetcolormap(64))

colorbar(zm,zM)

Sgrayplot(x,y,FV)

相应的二维平面流函数分布如下图所示。

实质上Scilab一开始设计便是贴近MATLAB,所以其脚本编程或者图形界面都是模仿的MATLAB。MATPLOTLIB采用脚本语言进行数据可视化操作,注重的是对数据的高效存储和可视化。Scilab则更加强调对数据的操作和处理,可视化仅仅是其一方面。在使用Scilab的时候仅仅需要利用它对各类数据进行数值分析和处理,或者利用第三方功能包来完成某个特定领域的仿真计算。近年来流行R语言及其工具,更多面向数理统计方面,但很多情况下Scilab涵盖了这些功能,一般的数据处理依赖于Scilab和MATPLOTLIB就足够了。

推荐材料

[1] Campbell S L, Chancelier J P, Nikoukhah R. Modeling and Simulation in SCILAB[M].Springer New York, 2006.

[2] Van Zutven P W M. Scilab as an alternative for Matlab[J]. 2006.

[3] Baudin M. Floating point numbers in Scilab[J]. 2011.

原文地址:https://blog.csdn.net/betterlord/article/details/51723725

分享 举报

发表评论 评论 (1 个评论)

涂鸦板