Introduction
Scilab est un logiciel libre de calcul numérique multiplate-forme fournissant un environnement de calcul pour des applications scientifiques. Il possède un langage de programmation orienté calcul numérique de haut niveau. Il peut être utilisé pour le traitement du signal, l'analyse statistique, le traitement d'images, les simulations de dynamique des fluides, l'optimisation numérique, et la modélisation et simulation de systèmes dynamiques explicites et implicites.
Principales fonctionnalités
- Des centaines de fonctions mathématiques
- Un langage de programmation haut niveau
- Graphiques 2D et 3D
- Structures de données avancées et types de données définis par l'utilisateur
- Xcos : outil de modélisation et de simulation des systèmes hybrides et dynamiques
Calcul Numérique
- Algèbre linéaire
- Matrices creuses
- Polynômes et fractions rationnelles
- Simulation : solveurs de systèmes d’équations différentielles (explicites et implicites)
- Commande robuste et classique
- Optimisation différentiable et non différentiable
Analyse de données
- Interpolation, approximation
- Traitement du signal
- Statistiques
Fonctionnalités étendues
- Graphes et réseaux
- Interface avec Fortran, C, C + +, Java
- Fonctions pour appeler Scilab à partir de C, C + +, Fortran et Java
- Passerelle LabVIEW
- Un grand nombre de modules disponibles via ATOMS http://atoms.scilab.org/
Visualisation 2D et 3D
- Lignes
- Diagrammes circulaires
- Histogrammes
- Surfaces
- Animations
- Export des graphiques dans de nombreux formats: GIF, BMP, JPEG, SVG, PDF …
Utilisation
Pour utiliser Scilab il faut charger le module correspondant :
$ module load scilab
Mode interactif
Après avoir charger le module scilab, on lance la commande :
$ scilab
Il est possible de lancer Scilab sans fenêtres graphique en utilisant la commande scilab-cli
$ scilab-cli ___________________________________________ scilab-5.2.2 Consortium Scilab (DIGITEO) Copyright (c) 1989-2010 (INRIA) Copyright (c) 1989-2007 (ENPC) ___________________________________________ Startup execution: loading initial environment -->
Mode batch
$ scilab-cli < program.sci > out
Exemple de script SGE
- scilab.sge
#!/bin/bash -l #$ -l h_rt=2:00:0 #$ -cwd #$ -o $JOB_NAME.o$JOB_ID #$ -e $JOB_NAME.e$JOB_ID #$ -N job_scilab_2h_seq #$ -q all.q #$ -V # Demander 4 Go de memoire vive pour le job #$ -l h_vmem=4G module load scilab scilab-cli < monprogramme.sci
Exemples
Calcul de puissance
- pow.sci
scilab.org/product/dic-mat-sci/M2SCI_doc.htm">function [y] = puissance(x,n) y = 1 scilab.org/product/dic-mat-sci/M2SCI_doc.htm">if n > 0 then scilab.org/product/dic-mat-sci/M2SCI_doc.htm">for i = 1:n y = y*x scilab.org/product/dic-mat-sci/M2SCI_doc.htm">end scilab.org/product/dic-mat-sci/M2SCI_doc.htm">end scilab.org/product/dic-mat-sci/M2SCI_doc.htm">endfunction puissance(2,3)
Système d'équations linéaires
résoudre : Ax=b
A=[3 1 ; 4 -1]; b=[-5 ; -9]; linsolve(A,b) ans = 2. - 1.
Équation différentielle ordinaire
On se place sur un segment [0,5;1] ; on veut déterminer les valeurs numériques de la fonction y
vérifiant :
dy/dt = t et y(0) = 0
On a donc ƒ(t,y) = t , t0 = y0 = 0
t=[0.5:0.1:1]; // points de [0,5;1] espacés de 0,1 le ; sert à ne pas afficher les 5 valeurs de t lors de l'exécution du code deff('[u] = f(t,y)', 'u = t') // définition de la fonction f ode(0,0,t,f) ans = 0.125 0.18 0.245 0.32 0.405 0.5
qui sont bien les valeurs de 1/2×t²
Visualisation
//definition of the x-axis and the y values x= [0: (%pi/20): 2*%pi]; y=sin(x); //plot the data plot2d(x,y); plot2d(x,2*y); // will be plotted in the same figure