Scilab体验
██████╗ ███████╗██████╗ ██╗ ██╗███████╗
██╔═══██╗██╔════╝██╔══██╗╚██╗ ██╔╝██╔════╝
██║ ██║███████╗██████╔╝ ╚████╔╝ █████╗
██║▄▄ ██║╚════██║██╔══██╗ ╚██╔╝ ██╔══╝
╚██████╔╝███████║██████╔╝ ██║ ███████╗
╚══▀▀═╝ ╚══════╝╚═════╝ ╚═╝ ╚══════╝
保命声明:笔者代码能力有限,若行文中有错漏之处欢迎大家指出。
Scilab简介
[https://www.scilab.org]
[https://www.cnblogs.com/begtostudy/archive/2010/08/31/1813555.html]
达索系统收购SCILAB,近乎完美的MATLAB的开源替代
Scilab is a free and open source software for engineers & scientists, with a long history (first release in 1994) and a growing community (100 000 downloads every months worldwide).
包括:
- Scilab Computation Engine
- Xcos Model-based Design(类似MATLAB的Simulink)
- ATOMS Toolboxes Management(工具箱管理器)
与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的源代码、用户手册及二进制的可执行文件都是免费的,公布于 INRIA的网站上(中法实验室已建立其镜像网站),可以直接下载,在我们的网站也可以下载。用户不仅可以在SCILAB的许可证条件下自由使用该软件,还可以根据自己需要修改源代码,使之更加符合自身需要。对这一优秀的自由软件,国外已有很多人加以关注、讨论和赞赏。在国内,2001年1月SCILAB 首次放在旨在推广开放源码软件的“共创联盟网站”上,短短不到一个月内,下载次数已达300多次。著名的Springer出版社于1999年6月出版了一本关于SCILAB的书:《Engineering and Scientific Computing With Scilab》,介绍了SCILAB的编程语言、函数、各种工具箱及其在控制、优化、图形、信号处理中的应用实例。
Scilab团队继承了法国INRIA研究所在计算机科学和自动化方面的专业知识,现在是达索系统的一部分。该团队由高等教育学校或大学的工程师和科学博士组成,他们毕业于数学、自动化、电信、物理或计算机科学。他们对Scilab软件及其环境有广泛的了解,并直接参与Scilab开发。
自2022年年中以来,Scilab团队成为达索系统的一部分。达索系统是3DEXPERIENCE公司,是人类进步的催化剂,为企业和人们提供协同虚拟环境,以想象可持续创新。达索系统的客户通过其3DEXPERIENCE平台和应用程序创造现实世界的“虚拟孪生体验”,突破了创新、学习和生产的界限。达索系统的20,000名员工正在为140多个国家的所有行业的300,000多名不同规模的客户带来价值。
Scilab的团队涵盖不同应用领域,深入了解数值计算的杰出原理。涉及到使用求解器和算法来解决复杂的物理问题。Scilab的核心基于线性代数库,纯粹的编程技能是不够的。这些能力正是艾伦·图灵(Alan Turing)等历代天才的动力。
Scilab覆盖数学、优化、统计学、信号和图像处理、控制系统、软件开发等应用领域。开发和维护Scilab需要广泛的编程技能,从低水平的硬件理解到高水平的接口开发。这种专业知识贯穿于不同的编程语言:C/C++、JAVA、Fortran,Scilab代码的质量证明了Scilab在编程方面的专业知识。
达索系统负责CATIA战略的专家BELLONCLE Guillaume在他的领英账号上分享说,Scilab将为3DEXPERIENCE平台上的CATIA和SIMULIA仿真解决方案提供额外的数据前/后处理功能。
用Scilab绘制折线图
绘制正弦函数图片
SCILAB
xdata = linspace(1,10,50);
ydata = sin(xdata);
plot(xdata, ydata);
//设置标题
xtitle("This is a Plot", "x axis", "y axis");
帮助:
对比:MATLAB
x=-4:0.1:4;
y1=sin(x);
y2=sin(2*x);
y3=2*sin(x);
%设置标题
plot(x,y1,x,y2,x,y3);
title("This is a Plot");
xlabel('x');
ylabel('y');
绘制折线图
clf()
x = [5 6 7 8]
y = [1 1 1 1 8
2 3 4 5 9
3 4 5 6 10
4 5 6 7 12];
// Only one matching possibility case: how to make 4 identical plots in 4 manners...
// x is 1x4 (vector) and y is 4x5 (non square matrix)
subplot(221); plot(x', y , "o-"); // OK as is
subplot(222); plot(x , y , "o-"); // x is transposed
subplot(223); plot(x', y', "o-"); // y is transposed
subplot(224); plot(x , y', "o-"); // x and y are transposed
绘制graypolar图片
clf()
x = [5 6 7 8]
y = [1 1 1 1 8
2 3 4 5 9
3 4 5 6 10
4 5 6 7 12];
// Only one matching possibility case: how to make 4 identical plots in 4 manners...
// x is 1x4 (vector) and y is 4x5 (non square matrix)
subplot(221); plot(x', y , "o-"); // OK as is
subplot(222); plot(x , y , "o-"); // x is transposed
subplot(223); plot(x', y', "o-"); // y is transposed
subplot(224); plot(x , y', "o-"); // x and y are transposedrho=1:0.1:4;theta=(0:0.02:1)*2*%pi;
z=30+round(theta'*(1+rho.^2));
f=gcf();
f.color_map= hotcolormap(128);
clf();graypolarplot(theta,rho,z)