Memo Scilab

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 5

Dictionnaire:Scilab

Variables et instructions Scilab Remarques


Scilab est un langage
interprete (sans compilation), les
Pas de declaration
Declaration dune variable variables sont automatiquement
de variables
creees au moment de leur
utilisation
= Cette instruction dans Scilab
Affectation
Exemple : x=x+1 ; cree automatiquement la variable x
Affectation et ecriture Si lon necrit pas de point-virgule,
x=3
du resultat a lecran Scilab ecrit automatiquement le resultat
Affectation sans Cette instruction dans Scilab
x = 3;
ecriture du resultat cree automatiquement la variable x
Lunique instruction de Scilab
Lecture a lecran
x=input(x : ); correspond aux deux instructions
de la valeur de x
de Pascal
Affichage a lecran dune Le Pascal naccepte pas les
disp(Resultat : ) ;
chane de caracteres accents, Scilab les accepte
abs, sqrt, log, exp, En Scilab, log designe
Fonctions usuelles et Pi
cos, sin, floor, %pi le logarithme neperien
Insertion dun Le commentaire est
// commentaire
commentaire introduit a droite
Scilab dispose dune
Operations elementaires +, , , /,
operation puissance ()
Comparaison et tests ==, <, <=, =
Operateurs logiques &, |
if (x = = 0) then
Si x est egal a 0 alors
Instruction if ... then s=s+1 ;
on rajoute 1 a s
end
if (x = = 0) then
Si x est egal a 0 (test)
s=s+1 ;
Instruction if ... then ... alors on incremente
else
else s de 1, sinon
s=s-1 ;
on decremente s de 1
end

S=0 ; Calcul de la somme


for k=1 :n partielle dindice
Boucle for
S=S+1/k ; n de la serie
end harmonique

r=0 ;
Simulation dune variable
while (r= =0) do
aleatoire suivant la loi
u=rand() ;
geometrique de parametre p,
n=n+1 ;
r designe le resultat du lancer,
Boucle while if(u<p) then
u suit la loi uniforme sur [0, 1]
r=1 ;
n est le rang du premier
end
succes, levenement [u < p]
end
se produit avec une probabilite p
disp(n : ) ; disp(n) ;
Pas dequivalent En Scilab on utilisera
Boucle repeat until
en Scilab linstruction while
Loi uniforme sur [0, 1] U :=rand() ;
M=grand(3,7,uin,1,n) ;
permet de de creer une matrice
avec 2 lignes et 7 colonnes dont
Loi uniforme sur [[1, n]] U :=grand(1,1,uin,1,n) ;
les coefficients sont egaux aux valeurs
prises par une variable aleatoire
suivant la loi uniforme sur [[1, n]]
Tableaux, matrices:Scilab
Variables et instructions Pascal Scilab Remarques
Declaration dune
Pas de declaration
variable tableau
Linstruction dans Scilab
Tableau (a une ligne) X=[2, 3, 0] ; cree automatiquement letableau
X= 2 3 0

2 3
Matrice A=[2, 3 ; 0, 1 ; 4,-1] ; Creation de A = 0 1
4 1
Creation dun tableau a une ligne, 6
Tableau a une ligne A=0 :2 :10 ;
colonnes, forme des nombres entiers
ou vecteur ligne (1) A=linspace(0,10,6)
0, 2, 4, 6, 8, 10
Creation dun vecteur ligne
Vecteur ligne L=zeros(1,n) ;
L = (0, 0, . . . , 0) ou
a n colonnes (2) L=ones(1,n) ;
L = (1, 1, . . . , 1)
Vecteur colonne C=zeros(n,1) ; Creation des vecteurs
a n lignes C=ones(n,1) ; colonne correspondants
eme
k element dun
L(k)
vecteur ligne ou
C(k)
colonne
Donne le nombre delements
Taille du tableau length(L)
du tableau L
M=zeros(n,p) ; M = (0)1in,1jp
Matrices M=ones(n,p) ; M = (1)1in,1jp
M=eye(n,p) ; M = In
Coefficient dune matrice M(1,2)
Extraction de la troisieme ligne 
Extraction dune ligne L=A(3,1 :2)
de A, on obtient : L = 4 1
Extraction de la deuxieme
Extraction dune colonne C=A(1 :3,2)
colonne de A
est utilise pour le produit
Operations sur +, , , /, matriciel ou le produit par un
les matrices ., ./, . scalaire, . donne le produit
coefficient par coefficient
rank(M), size(M), rang, taille,
Fonctions matricielles
inv(M), transpose(M) inverse, transposee
Trace de la courbe Trace de la courbe representative de
x=[-2 :0.1 :4] ;
representative dune x 7 x2 + 1, pour x [2, 4]
plot(x,x2+1)
fonction 0.1 corresepond au pas choisi
Trace dune ligne x=[0,1,2,3] ; y=[2,5,7,1] ;
brisee plot(x,y)
On trace sur un meme graphique
x=[-2 :0.1 :4] ;
Trace de plusieurs les courbes de x 7 x2 + 1 et
plot(x,x2+1,red,
courbes avec couleurs x 7 x2 + 1. x=[-2 :0.1 :4] peut etre
x,2*x,black)
remplace par x=linespace(-2,4,60)
Trace de courbes On peut choisir la taille
fonction plot2d
avec legende de la fenetre daffichage
x est un vecteur ligne contenant
1000 valeurs prises par une
x=rand(1,1000,normal) ;
Histogramme (1) variable aleatoire suivant une
histplot(20,x)
loi normale centree reduite
20 est le nombre de classes
x=rand(1,1000,normal) ;
c est vecteur ligne
Histogramme (2) c=linespace(-5,5,100)
definissant les classes
histplot(c,x)
Remarque : La syntaxe precise de toutes les fonctions avec leur arguments est accessible dans laide de Scilab
Calcul matriciel
Commande Scilab Remarques

Creation de A = 0 2 4 6 8 10
Tableau a une ligne A=0 :2 :10 ;
Le vecteur obtenu comporte 6 valeurs
ou vecteur ligne A=linspace(0,10,6)
Le segment [0,10] est divise en 5 sous-segments
 
2 3 0
Matrice quelconque A=[2, 3, 0 ;1, 4,-1] ; Creation de A =
1 4 1
M=zeros(n,p) ; M = (0)1in,1jp
Matrices particulieres
M=ones(n,p) ; M = (1)1in,1jp
Initialisation
M=eye(n,n) ; M = In
Longueur dun vecteur L est un vecteur ligne ou colonne
Longueur = length(L)
ligne ou colonne Longueur est un entier
size renvoie une matrice ligne comportant deux coefficients
Taille de la matrice
[nb ligne,nb col]=size(A) Dans lexemple ci-dessus on aurait :
quelconque
[nb ligne,nb col]=[2, 3]
On affecte la valeur 2 au coefficient de la matrice A
Coefficient dune matrice A(i,j) = 2
situe a la ieme ligne et a la jeme colonne
Extraction de la deuxieme ligne de la matrice  A,
Extraction dune ligne L=A(2,1 :3) ou L=A(2, :) on obtient : L = 1 4 1
Extraction dune colonne C=A(1 :2,3) ou C=A( :,3) Extraction de la troisieme colonne de A.
: designe toutes les lignes (ou toutes les colonnes)
Extraction des colonnes 1 et3 de la matrice A, le resultat est :
v=[1,3] 
Extraction - exemple 2 0
B=A( :,v) B=
1 1
Extraction - cas general u=[u1 ,u2 ,. . . ,uk ]
La matrice B est constituee des elements de A situes aux lignes
A Mn,m (R) v=[v1 ,v2 ,. . . ,vp ]
u1 ,u2 ,. . . ,uk et aux colonnes v1 ,v2 ,. . . ,vp .
B Mk,p (R) B=A(u,v)
Concatenation horizontale C=[A,B] Si nb lignes A = nb lignes B
Concatenation verticale E=[F ;G] Si nb colonnes A = nb colonnes B
Tri des elements gsort(A,r,i) Tri sur les lignes ( r pour row), par ordre croissant (increase)
Operations +, , , /, Operations usuelles, designe la puissance
Operations pointees ., ./, . Operations coefficient par coefficient
Fonctions matricielles rank(M), inv(M), M rang, inverse, transposee (adjointe)
Si A = (ai,j ) alors B = (f (ai,j ))
Utilisation dune fonction B = f(A)
ou f est une fonction numerique comme cos, exp, log etc.
Resolution dun systeme X=A\B (division a gauche) Resolution de AX = B
A=rand(2,3) Renvoie les numeros ( cf. (*)) des elements
Commande find
x=find(A<0.5) verifiant la condition
val propres est un vecteur colonne dont les coefficients
Valeurs propres val propres=spec(A)
sont les valeurs propres de A
vect p : matrice P des vecteurs propres de A
Diagonalisation
[vect p,mat diag]=spec(A) ; mat diag : matrice diagonale D obtenue
dune matrice carree
vect p et mat diag ont la meme taille que A
Bloc-diagonalisation P : matrice de passage
[bloc diag,P]=bdiag(A) ;
dune matrice carree bloc diag : matrice bloc-diagonale
Recherche parmi les elements du vecteur x, ceux qui se trouvent
Repartition en classes dans une des classes
x =grand(1,100,exp,3) ;
Lois quelconques definies par b. pos est un vecteur de meme
b=[0,1,2,2.5,3,3.5,4,6,10] ;
Commande : taille que x, qui indique le numero de la
[pos,eff]=dsearch(x,b,c) ;
dsearch(x,b,c) classe a laquelle appartient chaque element.
eff donne leffectif de chaque classe.
Repartition en classes
x =grand(1,100,exp,3) ; Meme fonction que ci-dessus, sauf que
Lois discetes
v=[0,1,2,3,4,5,6,7,8,9,10] ; la recherche se fait par rapport aux
Commande :
[pos,eff]=dsearch(x,b,d) ; valeurs entieres definies dans le vecteur v
dsearch(x,b,d)
(*) Les matrices de Scilab sont stockees colonne par colonne, ce qui donne lordre dans lequel les elements sont comptes
Probabilites et statistiques
Commandes Scilab Remarques
lambda = 2 ; Simulation dune variable X suivant une
x =grand(1,100,exp,1/lambda) ; loi exponentielle de parametre 2 avec
Moyenne, variance empirique,
m = mean(x) ; grand ( x est une matrice ligne contenant
ecart-type, mediane,maximum.
V emp = variance(x) ; 100 valeurs prises par X). Calcul de
Commandes : mean, variance,
ecart type = st deviation(x) ; la moyenne,
Pn de la variance empirique,
st deviation, median, max. 1 2
mediane = median(x) ; ( n1 i=1 (x i x) ), de lecart-type,
maximum = max(x) ; de la mediane et du maximum
Simulation dune variable X suivant une loi
Cas dune matrice x =grand(50,100,nor,4,2) ;
normale desperance 4 et decart-type 2,
quelconque : moy l = mean(x, r) ;
x est une matrice contenant 50 lignes et
moyenne, ecart-type, moy c = mean(x, c) ;
100 colonnes, dont les coefficients sont les
mediane, maximum, ecart l = st deviation(x, r) ;
valeurs prises par X. Calcul de la moyenne
selon les lignes et les ecart c = st deviation(x, c) ;
par colonnes (le resultat est une matrice
colonnes. med l = median(x, r) ;
ligne) et par lignes (le resultat est une
Commandes : mean, med c = median(x, c) ;
matrice colonne). Calcul de lecart-type,
st deviation, median, max l = max(x, r) ;
de la mediane, du maximum,
max max c = max(x, c) ;
par colonnes et par lignes.
On reprend la matrice x precedente
x =grand(50,100,nor,4,2) ; Calcul de la somme par colonnes
Somme et somme
somme l = sum(x, r) ; et de la somme par lignes.
cumulee
somme c = sum(x, c) ; Somme cumulee par colonnes :
commandes
s cumul l =cumsum(x, r) ; Pk
sum et cumsum zi,k = j=1 xi,j pour 1 i 50
s cumul c =cumsum(x, c) ;
et 1 j 100, puis par lignes.
Fonction de repartition
Commande :
mu = 2 ;
P=cdfnor(PQ,X,Mean,Std) Calcule pour une loi normale de
sigma = 5 ;
(cumulative distribution parametres 2 et 25, la probabilite
x = 6;
function - normal ), P = (x) connaissant le seuil x
P = cdfnor(PQ,x,mu,sigma) ;
cdfbin (binomiale),
cdfpoi (Poisson) ...
Quantiles, inversion des Calcul de la valeur de x tel que
fonctions de repartition. alpha = 0.05; (x) = 1 2
Commande : x = cdfnor(X,0,1,1-alpha/2,alpha/2) Si Y suit la loi normale N (0, 1),
X=cdfnor(X,Mean,Std,P,Q) P (|Y | x) = 1 .
Covariance empirique x =grand(1,100,nor,0,1) ; On peut verifier que :
dune serie statistique y =grand(1,100,nor,0,1) ; variance(x) est egal a
n
a deux variables covar = corr(x,y,1) n1 *corr(x,x,1)
Fonction dsearch (cf. aide de Scilab) Repartition des donnees en classes
y1 = grand( m, n, bin, N, p) ;
y2 = grand( m, n, poi, lambda) ; Genere une matrice de taille m n
Simulation avec grand :
y3 = grand( m, n, nor, mu, sigma) ; constituee de nombres aleatoires distribues
lois binomiales, de Poisson,
y4 = grand( m, n, unf, a, b) ; selon la loi specifiee.
normales, uniformes a densite,
y5 = grand( m, n, uin, 1, n) ; Remarques : pour la loi normale cest
uniformes discretes, exponentielles,
y6 = grand( m, n, exp, 1/lambda) ; lecart-type qui est donne, pour la loi
geometriques, gamma,
y7 = grand( m, n, geom, p) ; exponentielle cest lesperance.
y8 = grand( m, n, gam, b, nu) ;
Diagramme en batons et x = binomial(0.6, 20) ;
La commande binomial permet dobtenir
diagramme en barres subplot(1,2,1) ;
les coefficients dune loi binomiale,
Commandes plot2d3 et bar plot2d3(0 :20, x) ;
subplot permet de diviser la fenetre
Commandes binomial subplot(1,2,2) ;
graphique en deux sous-fenetres
et subplot bar(0 :20, x) ;
Trace lhistogramme de x en utilisant n
x =grand(1,100,nor,1,2) ;
Traces dhistogrammes classes de meme largeur, leffectif de chaque
subplot(121) ; histplot(10, x) ;
Commandes : classe est normalise par leffectif total.
subplot(122) ;
histplot(n,x) Trace lhistogramme de x en utilisant
b=[-9,-4,0,1,2,5,10] ;
et histplot(b,x) les classes dont les bornes sont definies
histplot(b,x) ;
par le vecteur b ([b1 , b2 ], [b2 , b3 ], ...).
Traces de figures avec plot2d
Commandes Scilab Remarques
Trace du graphe de
x est une matrice ligne dont les coefficients
f : x 7 xex
varient de -1 a 5 par pas de 0.1
Premiere methode :
x = [-1 :0.1 :5] ; y est une matrice ligne de meme taille que x
utilisation des
y = x .* exp(-x) ; Penser a utiliser .*, le parametre 2 donne
operations coefficient
plot2d( x, y, style = 2 ) ; la couleur de la courbe :
par coefficient
xtitle(Graphe de f, avec f(x)=xexp(-x)) ; 1 2 3 4 5 6 7
( .*, ./, ., .+)
noir bleu vert cyan rouge magenta rouge
commandes : plot2d
xtitle permet de rajouter un titre
et xtitle
Trace du graphe de
La commande deff permet de definir
f : x 7 xex
rapidement une fonction simple (sinon on
Deuxieme methode : deff(y=f(x), y= x*exp(-x))
peut utiliser function y=f() ... endfunction)
pour eviter les x = [-1 :0.1 :5] ;
x est une matrice colonne
operations coefficient fplot2d( x, f, style = 2 ) ;
fplot2d permet deviter de definir la matrice
par coefficient, xtitle(Graphe de f, avec f(x)=xexp(-x)) ;
colonne y (sinon on peut aussi ecrire :
utilisation de deff
y = feval(x,f) ; plot2d( x, y, 2 ) ; )
et de fplot2d
Trace du graphe de x = [-1 :0.1 :5] ;
f : x 7 xex function y=f(x)
On commence par definir la fonction f
Troisieme methode : y = x * exp(-x) ;
x est ici une variable locale (x est un reel)
Utilisation de la , endfunction
La commande feval permet de creer
commande : feval y = feval(x, f) ;
la matrice ligne y
et de la declaration plot2d( x, y, 3, rect=[0.7,0.8,4,3]) ;
generale dune fonction xtitle(Graphe de f ) ;
Trace du graphe de x = [1 :0.01 :4] ; Pour tracer plusieurs courbes sur un meme
x2
f : x 7 2x1 en vert y1 = (x.2) ./ (2*x-1) ; graphique, on peut soit definir x, y1 et y2
et de lasymptote y2 = 0.5 * x + 0.25 ; comme des matrices lignes comme ici,
(en rouge) plot2d( x, y1, style=3 ) ; soit proceder comme ci-dessous (*)
dans la meme fenetre plot2d( x, y2, style=5, rect=[1,0,4,3] ) ; rect[xmin , ymin , xmax , ymax ] permet de definir
avec un titre et une xtitle(Graphe de f et asymptote) ; la taille de la fenetre graphique
legende legend(Graphe de f, asymptote) ; On rajoute un titre et une legende
x est ici une matrice colonne de meme que
x = [1 :0.01 :4] ; y1 et y2, ce qui permet dutiliser une seule
(*) Meme exemple y1 = (x.2) ./ (2*x-1) ; instruction plot2d, .. permet de passer a
que ci-dessus, mais y2 = 0.5 * x + 0.25 ; la ligne dans une commande (lorsquelle
avec des matrices plot2d([x x],[y1 y2], [3 5], .. est trop longue a ecrire sur une ligne),
colonnes, frameflag, frameflag=6, axesflag=5) ; frameflag=3 : echelle isometrique,
axesflag, xgrid xgrid(1) ; xtitle(Variante) ; frameflag=6 : graduations simples,
legend(Graphe de f, asymptote) ; axesflag=5 : axes qui se croisent au milieu
xgrid(1) : ajout dune grille
style = -1 permet de remplacer
Trace de points les points par des croix :
x = [-1 :0.2 :5] ;
sans ligne brisee 0 1 2 3 4 5
y = x .* exp(-x) ;
entre les points + 
plot2d( x, y, style = -1 ) ;
Parametre
xtitle(Trace des points) ;
style = n 6 7 9 10 11
4 O 
Traces de figures
x = [1 :0.01 :4] ; Trace la courbe representative de f : x 7 x2
dans des fenetres
y1 = x.2 ; y2 = 3 * x + 1 ; dans la fenetre numero 1, et la courbe
differentes
xset(window, 1) ; plot2d( x, y1, 3 ) ; representative de g : x 7 3x + 1
commande :
xset(window, 2) ; plot2d( x, y2, 5 ) ; dans la fenetre 2
xset(window, n)
Utilisation de x = [1 :0.01 :4] ; Creation de deux sous-fenetres sur une ligne,
sous-fenetres, y1 = x.2 ; y2 = 3 * x + 1 ; traces de la premiere courbe dans la premiere
commande : subplot(1,2,1) ; plot2d( x, y1, 3 ) ; sous-fenetre et de la deuxieme courbe dans
subplot(1,2,n) subplot(1,2,2) ; plot2d( x, y2, 5 ) ; la deuxieme sous-fenetre
Commande : clf clf() ; Efface toutes les figures precedentes

Vous aimerez peut-être aussi