Académique Documents
Professionnel Documents
Culture Documents
Rappel
Contents
1 VARIABLES 2
2 MISE EN ROUTE 2
7 EXERCICES 9
page 1 of 9
Statistique en Scilab October 10, 2020
1 VARIABLES
2 MISE EN ROUTE
a- Premiers pas
La ligne de commande dans la console permet de taper des opérations élémentaires, comme pour une
calculatrice scientifique. Il faut taper tous les opérateurs, et bien mettre des parenthèses autour de la
formule.
Une fois la formule correctement entrée, appuyer sur la touche ”entrée” affiche le résultat.
Par exemple :
1 --> 1+1
2 ans =
3 2.
b- Variables
Scilab permet de stocker, manipuler et récupérer des valeurs. Ces valeurs sont stockées dans des
variables, désignées par un nom, et qui possèdent un contenu. Le nom d’une variable doit toujours
commencer par une lettre, et peut contenir des chiffres, des lettres et le symbole , mais pas d’espace,
caractères accentués ou autre symbole. La commande x = 9 permet à Scilab de créer une variable de
nom x (si elle n’existe pas déjà), et de stocker dans celle-ci la valeur 9. L’opérateur d’affectation est
ainsi =, et la formule générale est
1 --> nom = contenu
Les variables peuvent contenir divers types de valeurs : des entiers, des réels, des chaı̂nes de caractères,
des vecteurs, des matrices, etc....
ans est l’abréviation de answer, il s’agit du nom de la variable où la réponse est stockée. Remarque :
On peut effectuer plusieurs commandes sur une même ligne : pour cela on sépare deux commandes
successives par un ; si on ne désire pas que le résultat s’affiche à l’écran (lorsqu’on effectue un calcul
intermédiaire par exemple). Si au contraire on veut voir le résultat affiché, il faut séparer les deux
commandes par un ,
c- Exemple
Les donnes d’un traitement specifique dans un programme est stocker dans des variables.
Pour un triangle ABC rectangle en A tel que AB=5 et AC=3.
On sait que BC 2 = AB 2 + AC 2
page 2 of 9
Statistique en Scilab October 10, 2020
1 -->AB=5
2 AB =
3 5.
4
5 -->AC=3
6 AC =
7 3.
8
9 -->BC=sqrt(AB**2+AC**2)
10 BC =
11 5.8309519
d- Suppression
Lorsque on n’a plus besoin d’une variable, on peut la supprimer. Cela libère l’espace mémoire qu’elle
occupait.
On utilise pour cela la fonction clear.
1 -->clear AB // Permet de supprimer la variable AB
2 -->clear // Permet de supprimer toutes les variables
Une condition est fermée lorsque le mot clé end est rencontré.
1 if ( \%t ) then
2 disp("Bonjour !");
3 end;
Si la condition n’est pas satisfaite, l’instruction else permet d’exécuter une instruction alternative,
comme dans le script suivant.
1 if ( \%f ) then
2 disp("Hello !");
3 else\\
4 disp("Goodbye !");
5 end;
Lorsque nous devons combiner plusieurs conditions, l’instruction elseif est utile.
page 3 of 9
Statistique en Scilab October 10, 2020
1 i=input("saisir un nombre")
2 if ( i == 1 ) then
3 disp("Bonjour !");
4 elseif ( i == 2 ) then
5 disp("Goodbye !");
6 elseif ( i == 3 ) then
7 disp("Tchao !");
8 else
9 disp("Au Revoir !");
10 end;
• while
1. Boucle for
L’instruction for permet d’effectuer des boucles, c’est-à-dire d’effectuer une action donnée plusieurs
fois. La plupart du temps, une boucle est effectuée sur des valeurs entières, qui vont d’une valeur
d’index de départ à une valeur d’index de fin.
• Syntaxe
1 for compteur=debut:pas:fin
2 instructions ..
3 end
1 for i = 1 : 5
2 disp(i)
3 end
Nous pouvons utiliser une forme plus complète afin d’afficher les entiers impairs de 1 à 5. Pour ce
faire, nous définissons le pas
1 for i = 1 : 2 : 5
2 disp(i)
3 end
2. Boucle while
L’instruction while permet d’effectuer une boucle tant qu’une expression booléenne est vraie. Au
début de la boucle,si l’expression est vraie, les instructions dans le corps de la boucle sont exécutées.
Lorsque l’expression devient fausse (unévénement qui doit survenir à un certain moment), la boucle
est terminée.
• Syntaxe
page 4 of 9
Statistique en Scilab October 10, 2020
while(condition) //instructions si la condition est vraie end Dans le script suivant, nous calculons la
somme des nombres de 1 à 10 avec une instruction while.
1 s=0
2 i=1
3 while ( i<= 10 )
4 s=s+i
5 i=i+1
6 end
• Exemple
1 disp("debut")
2 for i=1:10
3 if(i==5)then
4 break
5 end
6 disp(i)
7 end
8 disp("fin")
le programme affichera :
1 debut
2 1
3 2
4 3
5 4
6 fin
1 function [y1,y2,...,yn]=nomfonction(x1,x2,...,xp)\\
2 <instructions>\\
3 endfunction\\
page 5 of 9
Statistique en Scilab October 10, 2020
où les xi sont les arguments d’entrée (ou paramètres), les yj étant les arguments de sortie (ou résultats).
Une fonction peutavoir 0, 1 ou plusieurs paramètres (placés entre parenthèses) ainsi que 0, 1 ou
plusieurs résultats (placés entre crochets).Dans l’exemple suivant, nous définissons la fonction myfunc-
tion, qui prend l’argument d’entrée x, le multiplie par 2, et renvoie la valeur dans l’argument de sortie y.
1 function y = myfunction ( x )
2 z=2*x
3 endfunction
l’instruction function y = myfunction (x) est l’en-tête de la fonction tandis que le corps de la fonction
est constitué de l’instruction y = 2 * x. Le corps d’une fonction peut contenir une, deux ou plusieurs
instructions.
Supposons que la fonction simplef est définie avec 2 arguments d’entrée et 2 arguments de sortie,
comme suit.
En fait, le nombre d’arguments de sortie d’une telle fonction peut être 0, 1 ou 2. Lorsqu’il n’y a pas
d’argument de sortie,la valeur du premier argument de sortie est stockée dans la variable ans. Nous
pouvons également définir la variable y1 uniquement. Enfin, nous pouvons utiliser tous les arguments
de sortie, comme prévu. l’exemple suivant présente toutes ces séquences d’appel.
1 --> simplef ( 1 , 2 )
2 ans =
3 2.
4
5 --> y1 = simplef ( 1 , 2 )
6 y1 =
7 2.
8
2. Instruction return
Dans le corps d’une fonction, return permet de revenir immédiatement, c’est-à-dire qu’elle quitte
immédiatement lafonction en cours. Cette déclaration peut être utilisée dans les cas où le reste de
l’algorithme n’est pas nécessaire.
La fonction suivante calcule la somme des entiers de istart à iend. Dans des situations normales, il
utilise la fonction sum poureffectuer son travail. Mais si la variable istart est négative ou si la con-
dition istart ¡= iend n’est pas satisfaite, la variablede sortie y est mise à 0 et la fonction retourne
immédiatement.
page 6 of 9
Statistique en Scilab October 10, 2020
3 y=0
4 return
5 end
6 if ( iend < istart ) then
7 y=0
8 return
9 end
10 y = sum ( istart : iend )
11 endfunction
l’exemple suivant permet de vérifier que l’instruction return est correctement utilisée par la fonction
mysum.
1 --> mysum ( 1 , 5 )
2 ans =
3 15.
4
5 --> mysum ( -1 , 5 )
6 ans =
7 0.
8
9 --> mysum ( 2 , 1 )
10 ans =
11 0.
La commande ’ permet de basculer d’un vecteur ligne à un vecteur colonne (et réciproquement).
1 --> w=[2,-3*%pi,7]’ // vecteur transpose
2 w =
3 2.
4 - 9.424778
5 7.
page 7 of 9
Statistique en Scilab October 10, 2020
2. Création d’un vecteur dont les éléments forment une suite arithmétique
Pour un vecteur ligne v dont les éléments forment une suite arithmétique de premier terme a, de raison
r et ne dépassant pas b, on utilise la commande : v = a : r : b.
Par exemple :
1 --> v=-3:2:14 //vecteur increment constant
2 v =
3 - 3. - 1. 1. 3. 5. 7. 9. 11. 13.
6.2 Matrices
1. Création d’une matrice de petite taille
Pour définir une matrice de petite taille, on donne la liste des éléments de la matrice entre crochets,
les éléments de chaque ligne étant séparés par des virgules (ou des espaces) et les lignes étant séparées
par des points-virgules.
Par exemple :
1 --> A=[1,2,3;4,5,6]
2 A =
3 1. 2. 3.
4 4. 5. 6.
3. Matrices prédéfinies
• ones(n,m) matrice à n lignes et m colonnes dont tous les éléments sont égaux à 1.
• zeros(n,m) matrice à n lignes et m colonnes dont tous les éléments sont égaux à 0.
• eye(n,m) matrice à n lignes et m colonnes avec des 1 sur la diagonale et des 0 ailleurs.
La concaténation :
permet de juxtaposer vecteurs et matrices dont les formats sont compatibles.
Par exemple :
page 8 of 9
Statistique en Scilab October 10, 2020
7 EXERCICES
EXERCICE 1 Construire de trois manières différentes, le vecteur ligne de taille 200 qui comporte les 200
premiers carrés des nombres entiers.
EXERCICE 2 Construire de trois manières différentes, la matrice de taille 12 qui comporte des zéros
partout sauf sur les premières et dernières ligne et colonne qui ne comportent que des 1
EXERCICE 3i Construire sans effectuer de boucles la matrice 10*10 donnant les résultats de la table de
multiplication
page 9 of 9