- Scilab
-
Scilab
Scilab 5.2.2Desarrollador Scilab Consortium
www.scilab.orgInformación general Última versión estable 5.3.3 (info)
22 de julio de 2011Última versión en pruebas Master branch - nightly builds (info) Género Computación técnica Programado en C Sistema operativo Windows
GNU/Linux
Mac OS XPlataforma 32 bits (excepto Mac)
64 bitsLicencia CeCILL Idiomas Inglés En español Scilab es un software matemático, con un lenguaje de programación de alto nivel, para cálculo científico, interactivo de libre uso y disponible en múltiples sistemas operativos (Mac OS X, GNU/Linux, Windows) desarrollado por INRIA (Institut National de Recherche en Informatique et Automatique) y la ENPC (École Nationale des Ponts et Chaussées) desde 1990. Scilab es ahora desarrollado por Scilab Consortium dentro de la fundación Digiteo.
Scilab fue creado para hacer cálculos numéricos aunque también ofrece la posibilidad de hacer algunos cálculos simbólicos como derivadas de funciones polinomiales y racionales. Posee cientos de funciones matemáticas y la posibilidad de integrar programas en los lenguajes más usados (Fortran, Java, C y C++ ). La integración puede ser de dos formas; por ejemplo, un programa en Fortran que utilice Scilab o viceversa.[1] Scilab fue hecho para ser un sistema abierto donde el usuario puede definir nuevos tipos de datos y operaciones entre los mismos.
Scilab viene con numerosas herramientas: gráficos 2-D y 3-D, animación, álgebra lineal, matrices dispersas, polinomios y funciones racionales, Simulación: programas de resolución de sistemas de ecuaciones diferenciales (explícitas e implícitas), Xcos: simulador por diagramas en bloque de sistemas dinámicos híbridos, Control clásico, robusto, optimización LMI, Optimización diferenciable y no diferenciable, Tratamiento de señales, Grafos y redes, Scilab paralelo empleando PVM, Estadísticas, Creación de GUIs, Interfaz con el cálculo simbólico (Maple, MuPAD), Interfaz con TCL/TK.
Además se pueden agregar numerosas herramientas o toolboxes hechas por los usuarios como Grocer una herramienta para Econometría u Open FEM (Una caja de Herramientas para Elementos Finitos), hecha por INRIA.
En el pasado Scilab podía ser utilizado en el análisis de sistemas, pero no podía interactuar con el exterior. Hoy en día se pueden construir interfaces para que desde Scilab se pueda manejar un dispositivo, se conecte a la red a través de Tcp (Protocolo de Control de Transmisión) o Udp (User Datagram Protocol), etc. Esto brinda la posibilidad de conectar una placa de adquisición de datos a Scilab y de esta forma el control de una planta on-line.[2] [3] [4]
Contenido
Historia
Scilab fue creado en 1990 por investigadores del INRIA y de la École nationale des ponts et chaussées (ENPC). El Consorcio Scilab (Scilab Consortium en inglés) fue creado en mayo de 2003 para ampliar y promover Scilab como software de referencia en todo el mundo en el mundo académico y la industria.[5] En julio de 2008, con el fin de mejorar la transferencia de tecnología, el Scilab Consortium se unió a la Fundación Digiteo.
Sintaxis
Scilab posee su propio lenguaje de programación, orientado al uso de matrices y vectores. Es un lenguaje interpretado. Scilab incorpora su propio editor llamado SciNotes, aunque está disponible también Scipad. La extensión de estos archivos es *.sce o *.sci. Ejemplo del programa hola mundo:
//línea de comentario.... como en C++ clc //limpia la pantalla disp("Hola Mundo") //imprime Hola Mundo
Scilab permite la operación de matrices. Ejemplo del uso de matrices:
--> A=[2/3 3/5; 21 7];
Gráficos
Gráfico de la función y = f(t) = sen(t)
t=[0:0.001:2*%pi]; y=sin(t); xlabel("eje X");ylabel("Eje y");title("Título del gráfico"); plot(t,y)
Gráfico de una función de dos variables
i=[-2:0.05:2]; j=[-3:0.1:3]; [u,v]=meshgrid(i,j); w=5*u.^2-v.^2; plot3d(u,v,w)
Este programa integra numéricamente el sistema de ecuaciones diferenciales conocido como Oscilador de van der Pol:
Lo primero es crear una función que de cuenta de las anteriores ecuaciones (es decir que al ingresarle x,y y t esta devuelva y ) esta puede crearse con SciPad y se puede guardar con el nombre de vdp.sci y contiene lo siguiente:
function fxy =vdp(x,y) fxy=zeros(2,1) fxy(1)=y(2) fxy(2)=-y(1)+y(2)*(1-y(1)*y(1)) endfunction
Luego se ejecuta el siguiente script que usa la función anteriormente creada, invoca a la función ode de scilab y finalmente muestra la gráfica (que hace parte de la imagen mostrada en esta página):
getf vdp.sci x0=0.01; y0=[0.00001;0.00001]; t=[0.01:0.01:5000*0.01]; yt=ode(y0,x0,t,vdp); x=yt(1,:); y=yt(2,:); plot2d(x,y,2)
Polinomios y cálculo simbólico
Scilab tiene funciones diseñadas especialmente para el tratamiento de polinomios y cálculo simbólico (aunque existen otros que facilitan la transcripción de texto como Máxima). Por ejemplo para insertar el polinomio:
Se utilizan los siguientes comandos (nótese que los coeficientes del polinomio se insertan del término con menor orden x0 hasta el término de orden mayor x3 poniendo ceros en los términos no existentes:
y=poly([-3 1/2 0 5],"x","coeff")
Para hallar las raíces de un polinomio dado, se utiliza el comando roots que se emplea de la siguiente forma:
s=roots(poly([-3 1/2 0 5],"x","coeff"))
o si ya se tiene definido un polinomio (en el ejemplo se ha definido como y')':
s=roots(y)
El vector s guarda las raíces del polinomio, sean estas reales o complejas.
Se pueden hacer operaciones simbólicas entre los polinomios. Por ejemplo si se quiere hacer la siguiente operación:
podemos proceder con las siguientes órdenes:
p1=poly([1 1],"x","coeff"); p2=poly([-1 1],"x","coeff"); oper1=p1*p2 oper2=oper1^2
Si se desea evaluar el anterior polinomio en un punto determinado y guardar su valor en una variable f, se pueden utilizar los siguientes comandos:
f=horner(oper2,3)
Nótese que se ha evaluado el polinomio en el punto x=3.
Estos procedimientos sirven y funcionan de igual forma para funciones racionales, lo cual es muy útil en la teoría de control. Por ejemplo se puede obtener el producto (la suma, la diferencia o el cociente) de dos funciones definidas como siguen:
;
Lo que en Scilab se realiza de la siguiente forma (nótese la forma de definir las funciones, de forma similar como se hace en Matlab:
s=poly(0,"s")// se define la variable s como un polinomio de orden 1 g=s/(s^2+1) h=1/s gh=g*h
Los polinomios se pueden declarar también por sus raíces no incluyendo la opción "coeff" en el comando "poly", como se hizo en el ejemplo anterior al definir como un polinomio con raíz en cero.
Fracciones parciales
El programa también tiene opciones para cálculo simbólico. Por ejemplo, sí se tiene la siguiente función racional:
puede ser introducida por los siguientes comandos:
s=poly(0,"s"); g=s^2/((s+1)^3-2);
El numerador y el denominador de la función G(s) puede ser recuperado en variables mediante los siguientes comandos:
numerador=numer(g) numerador = 2 s denominador=denom(g) denominador = 2 3 - 1 + 3s + 3s + s
Xcos
El programa Scilab tiene un entorno similar a Simulink de Matlab para simulación de sistemas dinámicos y resolución de sistemas de ecuaciones diferenciales. Este entorno posee varios paquetes que incluye algunas herramientas para simulación sencilla de circuitos eléctricos y termo hidráulica.
Para lanzar el entorno desde Scilab basta con poner el siguiente comando:
xcos
Se lanza una nueva ventana, desde en la cual se insertan y conectan todos los bloques a voluntad del usuario.
Paquetes disponibles para Scilab (Toolbox)
A partir de la versión 5.2 se puede consultar: http://atoms.scilab.org/ para obtener un listado de módulos que extienden las capacidades de Scilab.
Para instalar módulos, podemos abrir Atoms haciendo click en Applications->Module Manager ATOMS, seleccionamos la aplicación y ATOMS la descargara de internet y la instalara en nuestro Scilab.
- MuPAD
- OpenFem
Programas similares
- GNU Octave
- Koctave
- MATLAB
- PsiLAB
Enlaces externos
- Wikilibros alberga un manual sobre Scilab.
- Página oficial de Scilab
Referencias
- ↑ Modeling and Simulation in Scilab/Scicos. Stephen L. Campbell, Jean-Philippe Chancellier and Ramine Nikoukhah
- ↑ The Present and Future of Scilab’s Engineering Application. Zhe Peng, Longhua Ma. http://www.equalis.com/resource/dynamic/forums/20101012_150034_22180.pdf
- ↑ Scicos Hardware In The Loop http://www-scicos.inria.fr/scicoshil.html
- ↑ Articulo que describe una aplicación http://www-scicos.inria.fr/ScicosHIL/angers2006eng.pdf
- ↑ Gomez, Claude (julio de 2003). «SCILAB Consortium launched» (en inglés). Consultado el 28 de marzo de 2011.
Categorías:- Lenguajes de programación
- Software de análisis numérico
- Software libre
- Software matemático
Wikimedia foundation. 2010.