Dictionnaire:Scilab Variables et instructions Scilab Remarques D´ eclaration d’

Dictionnaire:Scilab Variables et instructions Scilab Remarques D´ eclaration d’une variable Pas de d´ eclaration de variables Scilab est un langage interpr´ et´ e (sans compilation), les variables sont automatiquement cr´ e´ ees au moment de leur utilisation Affectation = Exemple : x=x+1 ; Cette instruction dans Scilab cr´ ee automatiquement la variable x Affectation et ´ ecriture du r´ esultat ` a l’´ ecran x = 3 Si l’on n’´ ecrit pas de point-virgule, Scilab ´ ecrit automatiquement le r´ esultat Affectation sans ´ ecriture du r´ esultat x = 3; Cette instruction dans Scilab cr´ ee automatiquement la variable x Lecture ` a l’´ ecran de la valeur de x x=input(’x : ’); L’unique instruction de Scilab correspond aux deux instructions de Pascal Affichage ` a l’´ ecran d’une chaˆ ıne de caract` eres disp(’R´ esultat : ’) ; Le Pascal n’accepte pas les accents, Scilab les accepte Fonctions usuelles et Pi abs, sqrt, log, exp, cos, sin, floor, %pi En Scilab, log d´ esigne le logarithme n´ ep´ erien Insertion d’un commentaire // commentaire Le commentaire est introduit ` a droite Op´ erations ´ el´ ementaires +, −, ∗, /, ˆ Scilab dispose d’une op´ eration puissance (ˆ) Comparaison et tests ==, <, <=,˜ = Op´ erateurs logiques &, | Instruction if ... then if (x = = 0) then s=s+1 ; end Si x est ´ egal ` a 0 alors on rajoute 1 ` a s Instruction if ... then ... else if (x = = 0) then s=s+1 ; else s=s-1 ; end Si x est ´ egal ` a 0 (test) alors on incr´ emente s de 1, sinon on d´ ecr´ emente s de 1 Boucle for S=0 ; for k=1 :n S=S+1/k ; end Calcul de la somme partielle d’indice n de la s´ erie harmonique Boucle while r=0 ; while (r= =0) do u=rand() ; n=n+1 ; if(u<p) then r=1 ; end end disp(’n : ’) ; disp(n) ; Simulation d’une variable al´ eatoire suivant la loi g´ eom´ etrique de param` etre p, r d´ esigne le r´ esultat du lancer, u suit la loi uniforme sur [0, 1] n est le rang du premier succ` es, l’´ ev´ enement [u < p] se produit avec une probabilit´ e p Boucle repeat until Pas d’´ equivalent en Scilab En Scilab on utilisera l’instruction while Loi uniforme sur [0, 1] U :=rand() ; Loi uniforme sur [[1, n]] U :=grand(1,1,”uin”,1,n) ; M=grand(3,7,”uin”,1,n) ; permet de de cr´ eer une matrice avec 2 lignes et 7 colonnes dont les coefficients sont ´ egaux aux valeurs prises par une variable al´ eatoire suivant la loi uniforme sur [[1, n]] Tableaux, matrices:Scilab Variables et instructions Pascal Scilab Remarques D´ eclaration d’une variable tableau Pas de d´ eclaration Tableau (` a une ligne) X=[2, 3, 0] ; L’instruction dans Scilab cr´ ee automatiquement le tableau X = 2 3 0  Matrice A=[2, 3 ; 0, 1 ; 4,-1] ; Cr´ eation de A =   2 3 0 1 4 −1   Tableau ` a une ligne ou vecteur ligne (1) A=0 :2 :10 ; A=linspace(0,10,6) Cr´ eation d’un tableau ` a une ligne, 6 colonnes, form´ e des nombres entiers 0, 2, 4, 6, 8, 10 Vecteur ligne ` a n colonnes (2) L=zeros(1,n) ; L=ones(1,n) ; Cr´ eation d’un vecteur ligne L = (0, 0, . . . , 0) ou L = (1, 1, . . . , 1) Vecteur colonne ` a n lignes C=zeros(n,1) ; C=ones(n,1) ; Cr´ eation des vecteurs colonne correspondants k` eme ´ el´ ement d’un vecteur ligne ou colonne L(k) C(k) Taille du tableau length(L) Donne le nombre d’´ el´ ements du tableau L Matrices M=zeros(n,p) ; M=ones(n,p) ; M=eye(n,p) ; M = (0)1≤i≤n,1≤j≤p M = (1)1≤i≤n,1≤j≤p M = In Coefficient d’une matrice M(1,2) Extraction d’une ligne L=A(3,1 :2) Extraction de la troisi` eme ligne de A, on obtient : L = 4 −1  Extraction d’une colonne C=A(1 :3,2) Extraction de la deuxi` eme colonne de A Op´ erations sur les matrices +, −, ∗, /, ˆ .∗, ./, .ˆ ∗est utilis´ e pour le produit matriciel ou le produit par un scalaire, . ∗donne le produit coefficient par coefficient Fonctions matricielles rank(M), size(M), inv(M), transpose(M) rang, taille, inverse, transpos´ ee Trac´ e de la courbe repr´ esentative d’une fonction x=[-2 :0.1 :4] ; plot(x,xˆ2+1) Trac´ e de la courbe repr´ esentative de x 7→x2 + 1, pour x ∈[−2, 4] 0.1 corresepond au pas choisi Trac´ e d’une ligne bris´ ee x=[0,1,2,3] ; y=[2,5,7,1] ; plot(x,y) Trac´ e de plusieurs courbes avec couleurs x=[-2 :0.1 :4] ; plot(x,xˆ2+1,’red’, x,2*x,’black’) On trace sur un mˆ eme graphique les courbes de x 7→x2 + 1 et x 7→x2 + 1. x=[-2 :0.1 :4] peut ˆ etre remplac´ e par x=linespace(-2,4,60) Trac´ e de courbes avec l´ egende fonction plot2d On peut choisir la taille de la fenˆ etre d’affichage Histogramme (1) x=rand(1,1000,’normal’) ; histplot(20,x) x est un vecteur ligne contenant 1000 valeurs prises par une variable al´ eatoire suivant une loi normale centr´ ee r´ eduite 20 est le nombre de classes Histogramme (2) x=rand(1,1000,’normal’) ; c=linespace(-5,5,100) histplot(c,x) c est vecteur ligne d´ efinissant les classes Remarque : La syntaxe pr´ ecise de toutes les fonctions avec leur arguments est accessible dans l’aide de Scilab Calcul matriciel Commande Scilab Remarques Tableau ` a une ligne ou vecteur ligne A=0 :2 :10 ; A=linspace(0,10,6) Cr´ eation de A = 0 2 4 6 8 10  Le vecteur obtenu comporte 6 valeurs Le segment [0,10] est divis´ e en 5 sous-segments Matrice quelconque A=[2, 3, 0 ;1, 4,-1] ; Cr´ eation de A =  2 3 0 1 4 −1  Matrices particuli` eres Initialisation M=zeros(n,p) ; M=ones(n,p) ; M=eye(n,n) ; M = (0)1≤i≤n,1≤j≤p M = (1)1≤i≤n,1≤j≤p M = In Longueur d’un vecteur ligne ou colonne Longueur = length(L) L est un vecteur ligne ou colonne Longueur est un entier Taille de la matrice quelconque [nb ligne,nb col]=size(A) size renvoie une matrice ligne comportant deux coefficients Dans l’exemple ci-dessus on aurait : [nb ligne,nb col]=[2, 3] Coefficient d’une matrice A(i,j) = 2 On affecte la valeur 2 au coefficient de la matrice A situ´ e ` a la i` eme ligne et ` a la j` eme colonne Extraction d’une ligne Extraction d’une colonne L=A(2,1 :3) ou L=A(2, :) C=A(1 :2,3) ou C=A( :,3) Extraction de la deuxi` eme ligne de la matrice A, on obtient : L = 1 4 −1  Extraction de la troisi` eme colonne de A. : d´ esigne toutes les lignes (ou toutes les colonnes) Extraction - exemple v=[1,3] B=A( :,v) Extraction des colonnes 1 et 3 de la matrice A, le r´ esultat est : B =  2 0 1 −1  Extraction - cas g´ en´ eral A ∈Mn,m(R) B ∈Mk,p(R) u=[u1,u2,...,uk] v=[v1,v2,...,vp] B=A(u,v) La matrice B est constitu´ ee des ´ el´ ements de A situ´ es aux lignes u1,u2,...,uk et aux colonnes v1,v2,...,vp. Concat´ enation horizontale Concat´ enation verticale C=[A,B] E=[F ;G] Si nb lignes A = nb lignes B Si nb colonnes A = nb colonnes B Tri des ´ el´ ements gsort(A,’r’,’i’) Tri sur les lignes ( ’r’ pour ”row”), par ordre croissant (”increase”) Op´ erations Op´ erations point´ ees +, −, ∗, /, ˆ .∗, ./, .ˆ Op´ erations usuelles, ˆ d´ esigne la puissance Op´ erations coefficient par coefficient Fonctions matricielles rank(M), inv(M), M’ rang, inverse, transpos´ ee (adjointe) Utilisation d’une fonction B = f(A) Si A = (ai,j) alors B = (f(ai,j)) o` u f est une fonction num´ erique comme cos, exp, log etc. R´ esolution d’un syst` eme X=A\B (division ` a gauche) R´ esolution de AX = B Commande find A=rand(2,3) x=find(A<0.5) Renvoie les num´ eros ( cf. (*)) des ´ el´ ements v´ erifiant la condition Valeurs propres val propres=spec(A) val propres est un vecteur colonne dont les coefficients sont les valeurs propres de A Diagonalisation d’une matrice carr´ ee [vect p,mat diag]=spec(A) ; vect p : matrice P des vecteurs propres de A mat diag : matrice diagonale D obtenue vect p et mat diag ont la mˆ eme taille que A Bloc-diagonalisation d’une matrice carr´ ee [bloc diag,P]=bdiag(A) ; P : matrice de passage bloc diag : matrice bloc-diagonale R´ epartition en classes Lois quelconques Commande : dsearch(x,b,”c”) x =grand(1,100,”exp”,3) ; b=[0,1,2,2.5,3,3.5,4,6,10] ; [pos,eff]=dsearch(x,b,”c”) ; Recherche parmi les ´ el´ ements du vecteur x, ceux qui se trouvent dans une des classes d´ efinies par b. pos est un vecteur de mˆ eme taille que x, qui indique le num´ ero de la classe ` a laquelle appartient chaque ´ el´ ement. eff donne l’effectif de chaque classe. R´ epartition en classes Lois disc` etes Commande : dsearch(x,b,”d”) x =grand(1,100,”exp”,3) ; v=[0,1,2,3,4,5,6,7,8,9,10] ; [pos,eff]=dsearch(x,b,”d”) ; Mˆ eme fonction que ci-dessus, sauf que la recherche se fait par rapport aux valeurs enti` eres d´ efinies dans le vecteur v (*) Les matrices uploads/Industriel/ memo-scilab.pdf

  • 25
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager