5/28/2018 Initiation Scilab
1/153
INITIATION A SCILABM. Idrissi
Universit Abdelmalek Essaadi
Facult des SciencesFilires SMA-SMI
Automne 2012
5/28/2018 Initiation Scilab
2/153
INITIATION A SCILAB
Scilab
Contenu
Introduction la programmation matricielle
Scripts, fonctions
Notion denvironnement dexcution
Spcificit de la programmation matricielle
Graphisme Optimisation en programmation matricielle
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
5/28/2018 Initiation Scilab
3/153
INITIATION A SCILAB
I- Introduction la programmation
matricielle
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
5/28/2018 Initiation Scilab
4/153
INITIATION A SCILAB
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
1. Prsentation gnrale de Scilab2. Une super-calculatrice3. Vecteurs et matrices4. Quelques exemples
I- Introduction la programmation matricielle
5/28/2018 Initiation Scilab
5/153
INITIATION A SCILAB
I- Introduction la programmation matricielle
1. Prsentation gnrale de Scilab
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
5/28/2018 Initiation Scilab
6/153
INITIATION A SCILAB
I- Introduction la programmation matricielle
1. Prsentation gnrale de Scilab
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
Logiciel libre : http://www.scilab.org
- Dvelopp depuis 1990 par lINRIA etlENPC- Distribu gratuitement (OpenSource surInternet)- Version actuelle : 4.1.2- Architectures : Unix, Linux, MS Windows
5/28/2018 Initiation Scilab
7/153
INITIATION A SCILAB I-
Introduction la programmation matricielle
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
Environnement de programmation
- Environnement de calcul scientifique-Ensemble de fonctions prdfinies
Langage de programmation
- Augmentation de lenvironnement Scilab- Ajout de fonctions lenvironnement
1. Prsentation gnrale de Scilab
5/28/2018 Initiation Scilab
8/153
INITIATION A SCILAB
I- Introduction la programmation matricielle1. Prsentation gnrale de Scilab
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
Logiciels de calcul scientifique : les clones
Matlab : MAtrix LABoratoryhttp://www.mathworks.com ;
- Lanctre : origines dans les annes 60- Calcul matriciel- Le plus complet (nombreuses toolboxes,environnement simulink, ...)- Produit commercial ...- Trs utilis dans lindustrie et la recherche,prototypage de prog.
5/28/2018 Initiation Scilab
9/153
INITIATION A SCILAB
I- Introduction la programmation matricielle
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
Scilab : http://www.scilab.org
- Dvelopp depuis 1990-Trs complet, nombreuses contributions
Octave :http://www.gnu.org/software/octave/
- Dvelopp depuis 1988, projet moins actif- Surtout distribu pour Linux
1. Prsentation gnrale de Scilab
5/28/2018 Initiation Scilab
10/153
INITIATION A SCILAB
I- Introduction la programmation matricielle1. Prsentation gnrale de Scilab
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
Bibliographie
Documentation en ligne sur le site de Scilab- http://www.scilab.org Engineering and scientific computing with
Scilab, C. Gomez eds, 1999 Introduction Scilab : exercices pratiquescorrigs dalgbre linaire,
G. Allaire et al., Ellipses, 2002
5/28/2018 Initiation Scilab
11/153
INITIATION A SCILAB
I- Introduction la programmation matricielle
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
2. Une super-calculatrice
- 2.1 Commandes simples- 2.2 Constantes- 2.3 Boolens
- 2.4 Variables
5/28/2018 Initiation Scilab
12/153
INITIATION A SCILAB
I- Introduction la programmation matricielle
2. Une super-calculatrice. Commandes simples
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
5/28/2018 Initiation Scilab
13/153
INITIATION A SCILAB
I- Introduction la programmation matricielle2. Une super-calculatrice. Commandes simples
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
5/28/2018 Initiation Scilab
14/153
INITIATION A SCILAB
I- Introduction la programmation matricielle2. Une super-calculatrice. Commandes simples
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
Excution de commandes simples
Scilab connat les entiers, les nombres rels Scilab connat la plupart des fonctions mathmatiquesusuelles, p. ex
- racine carre sqrt(3)
1.7320508- exponentielle exp(1) 2.7182818- logarithme nprien log(2) 0.6931472- puissance 2 4 16
Notation Scilab : notation mathmatique usuelle :- composition de fonctions : log(exp(1)) 1
5/28/2018 Initiation Scilab
15/153
INITIATION A SCILAB
I- Introduction la programmation matricielle2. Une super-calculatrice. Utilisation de constantes
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
Scilab connat les constantes usuelles : nom prcd de %par exemplee : %e - : %pi - infini : %inf - i complexe : %i Une constante est une valeur fige laquelle on associe un nom
(symbolique) afin de la manipuler plus facilement Elles sont ensuite utilises comme les autres lments : par exemple%e 2.7182818 %pi 3.1415927log(%e) 1 cos(%pi) -1%e3 20.085537 sin(%pi/2) 1%i2 -1 atan(%inf)*2 - %pi 01 / %inf 0
5/28/2018 Initiation Scilab
16/153
INITIATION A SCILAB
I- Introduction la programmation matricielle2. Une super-calculatrice. Utilisation de constantes
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
Scilab connat les constantes usuelles : nom prcd de %par exemple:e : %e
%pi
infini : %infi complexe : %i
Une constante est une valeur fige laquelle on associe unnom (symbolique) afin de la manipuler plus facilement
5/28/2018 Initiation Scilab
17/153
INITIATION A SCILAB
I- Introduction la programmation matricielle2. Une super-calculatrice. Utilisation de constantes
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
Elles sont ensuite utilises comme les autres lments : par
exemple%e 2.7182818 %pi 3.1415927
log(%e) 1
cos(%pi) 1%e3 20.085537
sin(%pi/2) 1
%i2 -1
atan(%inf)*2 - %pi 01 / %inf 0
5/28/2018 Initiation Scilab
18/153
INITIATION A SCILAB
I- Introduction la programmation matricielle2. Une super-calculatrice. Utilisation de constantes
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
Erreurs de syntaxe Scilab est trs sensible la casse descaractres : diffrence entre majuscules et
minuscules %pi est la constante pi,mais %Pi ou %PI ne sont pas connus log mais pas Log, ou LOG, ou LoG
Quand il ne peut pas valuer une expression,Scilab signale une erreur
5/28/2018 Initiation Scilab
19/153
INITIATION A SCILAB
I- Introduction la programmation matricielle2. Une super-calculatrice. Comparaisons et boolens
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
Comparaisons : le rsultat est vrai (True) ou faux (False)
supriorit stricte : 5 > 3 Tsupriorit : 5 >= 5 Tinfriorit stricte : 5 < 3 Finfriorit : 5
5/28/2018 Initiation Scilab
20/153
INITIATION A SCILAB
I- Introduction la programmation matricielle2. Une super-calculatrice. Comparaisons et boolens
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
Vrai et faux : constantes Scilab : %t ou %T, %f ou %F
Algbre de Boole
ET : (5 > 3) & (3 > 1) T %T & %F FOU : (5 > 3) | (3 > 1) T %T | %F TNON : ~(3 > 1) F ~%T F
5/28/2018 Initiation Scilab
21/153
INITIATION A SCILAB
I- Introduction la programmation matricielle2. Une super-calculatrice. Variables de calcul
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
Une variable permet de mmoriser un rsultat intermdiairepour le rutiliser par la suite.
Opration daffectation : =On affecte a le rsultat de 2*3Scilab confirme la mmorisationOn utilise la valeur de a
5/28/2018 Initiation Scilab
22/153
INITIATION A SCILAB
I- Introduction la programmation matricielle
3. Vecteurs et matrices
- 3.1 Notations des vecteurs et des matrices
- 3.2 Oprations de base
- 3.3 Un exemple dapplication - 3.4 Assemblage et "dsassemblage" de matrices
- 3.5 Dfinition de matrices et vecteurs spcifiques
- 3.6 Fonctions lmentaires
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
5/28/2018 Initiation Scilab
23/153
INITIATION A SCILAB
I- Introduction la programmation matricielle
3. Vecteurs et matrices
Scilab est fait pour manipuler les vecteurs et les matrices
- Les crochets [ et ] dfinissent un vecteur ou une matrice
- Les colonnes sont spares par des virgulesou des espaces
- Les lignes sont spares par des points virgules
- Une matrice est donne ligne par ligne
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
5/28/2018 Initiation Scilab
24/153
INITIATION A SCILAB
I- Introduction la programmation matricielle3. Vecteurs et matrices
Exemples :- Vecteur ligne (matrice 1x3):
[1, 2, 3] ou [1 2 3]
- Vecteur colonne (matrice 3x1)[1; 2; 3]
- Matrice 2 lignes, 3 colonnes (matrice 2x3)
[1, 2, 3; 4, 5, 6]
Toutes les lignes doivent avoir la mme taille
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
5/28/2018 Initiation Scilab
25/153
INITIATION A SCILAB
I- Introduction la programmation matricielle3. Vecteurs et matrices
Exemples : matrices de rels
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
Matrice carre
Erreur dedimensions
Utilisation deconstantes et
de fonctions
5/28/2018 Initiation Scilab
26/153
INITIATION A SCILAB
I- Introduction la programmation matricielle3. Vecteurs et matrices
Exemples : matrices de boolens
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
Table de vrit du ET
5/28/2018 Initiation Scilab
27/153
INITIATION A SCILAB
I- Introduction la programmation matricielleVecteurs et matrices Matrices et variables
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
On peut utiliser une variable pour mmoriserune matrice
Mme mode de fonctionnement que si la variable contenait unevaleur classique.
5/28/2018 Initiation Scilab
28/153
INITIATION A SCILAB
I- Introduction la programmation matricielle3. Vecteurs et matrices
Deux fonctions lmentaires : taille des matrices
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
La fonction size() renvoie lesdimensions de la matrice passeen paramtre sous la forme dunvecteur deux lments :
- le nombre de lignes- le nombre de colonnes
Les scalaires sont des matrices detaille 1
La fonction length() renvoie lenombre total dlments de la matrice: nbLignes x nbColonnes
5/28/2018 Initiation Scilab
29/153
INITIATION A SCILAB
I- Introduction la programmation matricielle3. Vecteurs et matrices Oprations sur les matrices
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
Scilab permet la manipulation des matrices Une matrice est un lment comme un autreIl connat donc la majorit des oprations sur les matrices :
addition, multiplication, inversion, ...
A + B : addition si A et B sont de mme tailleA B : soustraction si A et B sont de mme tailleA B : multiplication si le nombre de lignes de A
est gal au nombre de colonnes de B
5/28/2018 Initiation Scilab
30/153
INITIATION A SCILAB
I- Introduction la programmation matricielle3. Vecteurs et matrices Oprations sur les matrices, exemples
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
Les oprations + et - sappliquent termes termes
5/28/2018 Initiation Scilab
31/153
INITIATION A SCILAB
I- Introduction la programmation matricielle
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
A*B : produit matriciel :matrices de tailles compatibles : A taille n p, et Btaille p malors C = A Best de taille n mtelle que
A.*B (notation pointe) : produit terme termematrices de mme taille : A et B de taille n palors C = A. Best de taille n paussi, et telle que
Il en est de mme pour la division
3. Vecteurs et matrices Oprations sur les matrice. Multiplication
5/28/2018 Initiation Scilab
32/153
INITIATION A SCILAB
I- Introduction la programmation matricielle
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
3. Vecteurs et matrices. Oprations sur les matrices
5/28/2018 Initiation Scilab
33/153
INITIATION A SCILAB
I- Introduction la programmation matricielle
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
3. Vecteurs et matrices. Oprations sur les matrices
5/28/2018 Initiation Scilab
34/153
INITIATION A SCILAB
I- Introduction la programmation matricielle
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
3. Vecteurs et matrices. Oprations sur les matrices
Une matrice et un scalaire : pour tous les termes de la matrice
A + x: addition de x tous les termes de la matrice
A x: soustraction de x tous les termes de la matrice
A x: multiplication par x de tous les termes de la matrice
A/x: division par xde tous les termes de la matrice
5/28/2018 Initiation Scilab
35/153
INITIATION A SCILAB
I- Introduction la programmation matricielle
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
3. Vecteurs et matrices. Oprations sur les matrices Les oprations avec un scalaire sappliquent tous les lments de lamatrice.
5/28/2018 Initiation Scilab
36/153
INITIATION A SCILAB
I- Introduction la programmation matricielle
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
Transposition
apostrophe :A
3. Vecteurs et matrices. Oprations sur les matrices
5/28/2018 Initiation Scilab
37/153
INITIATION A SCILAB
I- Introduction la programmation matricielle
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
Un exemple dapplication
Conversion de mesures de tempratures
Si f est une valeur en degr fahrenheit, alors son quivalent en
degrs Celsius c sobtient par:c =5/9(f 32) Donner la table des correspondances en Celsius destempratures Fahrenheit suivantes :
0, 20, 40, 60, 80 et 100 Le calcul doit seffectuer en une seule fois pour toutes lesvaleurs.
3. Vecteurs et matrices. Oprations sur les matrices
5/28/2018 Initiation Scilab
38/153
INITIATION A SCILAB
I- Introduction la programmation matricielle
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
3. Vecteurs et matrices. Oprations sur les matricesConversion de mesures de tempratures
5/28/2018 Initiation Scilab
39/153
INITIATION A SCILAB
I- Introduction la programmation matricielle
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
3. Vecteurs et matrices. Oprations sur les matrices
Conversion de mesures de tempratures
resultat =
[tempFahrenheit tempCelsius]
5/28/2018 Initiation Scilab
40/153
INITIATION A SCILAB
I- Introduction la programmation matricielle
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
Construction de matrices par blocs
On nest pas oblig de dfinir les matrices lment par lment On peut mettre en ligne ou en colonnes des matricesexistantes et non seulement des nombres
Avec le mme principe :
, (ou espace) pour mettre cte cte :
condition sur le nb de lignes; pour mettre en dessous :
condition sur le nb de colonnes
3. Vecteurs et matrices. Assemblage et "dsassemblage" de matrices
5/28/2018 Initiation Scilab
41/153
INITIATION A SCILAB
I- Introduction la programmation matricielle
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
Construction de matrices par blocs: exemple
3. Vecteurs et matrices. Assemblage et "dsassemblage" de matrices
5/28/2018 Initiation Scilab
42/153
INITIATION A SCILAB
I- Introduction la programmation matricielle
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
Extraction dlments
Aune matrice, de taille n mPour i [1, n]etj [1,m], on peut rfrencerun lment :A(i,j) = Aijune ligne :A(i,:) : on ne donne pas de numro de
colonne, mais on le remplace par deux pointsune colonne :A(:, j)
Cas des vecteurs : un seul indice suffit :v(i) donne le i-melment du vecteur
3. Vecteurs et matrices. Assemblage et "dsassemblage" de matrices
5/28/2018 Initiation Scilab
43/153
INITIATION A SCILAB
I- Introduction la programmation matricielle
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
3. Vecteurs et matrices. Assemblage et "dsassemblage" de matrices
Extraction dlments
5/28/2018 Initiation Scilab
44/153
INITIATION A SCILAB
I- Introduction la programmation matricielle
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
3. Vecteurs et matrices. Assemblage et "dsassemblage" de matrices
Extraction dlments le symbole $
v($) est le dernier lment du vecteur
A($, j) est llment situ dans la dernire ligne, colonne j,
soit Anj
A(i,$) est llment situ dans ligne i, dans la dernire colonne
j, soit Aim
A(:,$) est la dernire colonneA($,$) =Anm
5/28/2018 Initiation Scilab
45/153
INITIATION A SCILAB
I- Introduction la programmation matricielle
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
3. Vecteurs et matrices. Dfinition de matrices et vecteurs spcifiques
ones : cre une matrice contenant des 1
ones(m, n) : construit une matrice de 1 mlignes et n colonnesones(A) oAest une variable : construit une matrice de mme
tailleque A
rappel : un scalaire est une matrice de taille 1x1 :ones(5) renvoie 1ones renvoie un 1
zeros : mme chose pour des matrices contenant des 0
INITIATION A SCILAB
5/28/2018 Initiation Scilab
46/153
INITIATION A SCILAB
I- Introduction la programmation matricielle
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
3. Vecteurs et matrices. Dfinition de matrices et vecteurs spcifiques
Exemples
INITIATION A SCILAB
5/28/2018 Initiation Scilab
47/153
INITIATION A SCILAB
I- Introduction la programmation matricielle
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
3. Vecteurs et matrices. Dfinition de matrices et vecteurs spcifiques
eye : matrice diagonale, dont la diagonale contient des 1
eye(n, n) : matrice identit de taille n
eye(n, m) : matrice de taille n mtelle que Aii = 1, et Aij = 0 si
i j
eye(A) o A est une variable : matrice de mme taille que A
INITIATION A SCILAB
5/28/2018 Initiation Scilab
48/153
INITIATION A SCILAB
I- Introduction la programmation matricielle
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
3. Vecteurs et matrices. Dfinition de matrices et vecteurs spcifiques
INITIATION A SCILAB
5/28/2018 Initiation Scilab
49/153
INITIATION A SCILAB
I- Introduction la programmation matricielle
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
3. Vecteurs et matrices. Dfinition de matrices et vecteurs spcifiques
rand: matrice alatoire
- valeurs gnresselon une distribution uniforme sur ]0, 1[- rand(n,m) : matrice alatoire de taille n m
- rand(A) o A est une variable : matrice de mme taille que A- rand, ou rand(), ou rand(n) rend une valeur alatoire de
]0, 1[
INITIATION A SCILAB
5/28/2018 Initiation Scilab
50/153
INITIATION A SCILAB
I- Introduction la programmation matricielle
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
3. Vecteurs et matrices. Dfinition de matrices et vecteurs spcifiques
Notation : dpart:pas:arrive
-dpart : premire valeurdu vecteur
-pas : valeur entre chaque lmentdu vecteur
- arrive : valeur ne pas dpasser
INITIATION A SCILAB
5/28/2018 Initiation Scilab
51/153
INITIATION A SCILAB
I- Introduction la programmation matricielle
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
3. Vecteurs et matrices. Fonctions lmentaires
La fonction minimum
min(A) : calcule la valeur minimale de la matricemin(A, r) : calcule le vecteur ligne (row) contenant le
minimum de chaquecolonne
min(A, c) : calcule le vecteur colonne (column) contenantle minimum de chaque ligne
INITIATION A SCILAB
5/28/2018 Initiation Scilab
52/153
INITIATION A SCILAB
I- Introduction la programmation matricielle
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
3. Vecteurs et matrices. Fonctions lmentaires
max pour calculer le maximum
mean pour calculer la moyennestdev (standard deviation) pour calculer lcart-typesumpour calculer la somme des termes
INITIATION A SCILAB
5/28/2018 Initiation Scilab
53/153
INITIATION A SCILAB
I- Introduction la programmation matricielle
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
3. Vecteurs et matrices. Fonctions lmentaires
Autres fonctions
Fonction terme terme :- racine carre :
Fonction matricielle :- racine carre matricielle : A telle que A A = M
INITIATION A SCILAB
5/28/2018 Initiation Scilab
54/153
INITIATION A SCILAB
I- Introduction la programmation matricielle
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
3. Vecteurs et matrices. Fonctions sur les matrices
Manipulations algbriques
Il existe aussi de nombreuses fonctions spcifiques aux matrices :
Dterminant det
Rang : rank Inverse : inv Valeurs et vecteurs propres : spec Dcomposition de Choleski : chol
Rsolution de systmes linaires : x tel que Ax = b : x = A\b Analyse en composantes principales :pca
INITIATION A SCILAB
5/28/2018 Initiation Scilab
55/153
INITIATION A SCILAB
I- Introduction la programmation matricielle
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
3. Vecteurs et matrices. Quelques exemples
Construction de matrices simples
1. Construire la matrice A de taille 5x4 contenant uniquement des zros 2. Remplacer la premire ligne de A par le vecteur (5, 0, 4, 12)
3. Remplacer la troisime colonne de A par
4. Calculer la plus grande valeur de A en valeur absolue
INITIATION A SCILAB
5/28/2018 Initiation Scilab
56/153
INITIATION A SCILAB
I- Introduction la programmation matricielle
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
3. Vecteurs et matrices. Quelques exemples
Construction de matrices simples
1. Construire la matrice A de taille 5x4 contenant uniquement des zrosOn utilise la fonction zeros
ou alors
Le point virgule ; supprime laffichage
INITIATION A SCILAB
5/28/2018 Initiation Scilab
57/153
INITIATION A SCILAB
I- Introduction la programmation matricielle
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
3. Vecteurs et matrices. Quelques exemples
Construction de matrices simples
2. Remplacer la premire ligne de A par le vecteur (5, 0, 4, 12)
On construit le vecteur en question,avec [ ], , et;
On utilise lextraction dlments,avecA(i,j), A(i,:), A(j,:)
v = [-5 0, 4, 12]
A(1,:) = v
INITIATION A SCILAB
5/28/2018 Initiation Scilab
58/153
I- Introduction la programmation matricielle
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
3. Vecteurs et matrices. Quelques exemples.
Construction de matrices simples
3. Remplacer la troisime colonne de A par (1,14, 2, 0, 2)
On utilise la constructionde matrices avec[ ], , et ;
On utilise lextractiondlments dunematrice
w = [1;-14; 2;0;2]
A(:,3) = w
INITIATION A SCILAB
5/28/2018 Initiation Scilab
59/153
I- Introduction la programmation matricielle
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
3. Vecteurs et matrices. Quelques exemples
Construction de matrices simples
3. Remplacer la troisime colonne de A par (1,14, 2, 0, 2)
INITIATION A SCILAB
5/28/2018 Initiation Scilab
60/153
I- Introduction la programmation matricielle
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
3. Vecteurs et matrices. Quelques exemples
Construction de matrices simples
4. Calculer la plus grande valeur de A en valeur absolue
Utilisation de fonctions :abs etmax
max(abs(A))
INITIATION A SCILAB
5/28/2018 Initiation Scilab
61/153
I- Introduction la programmation matricielle
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
3. Vecteurs et matrices. Quelques exemplesConstruction de vecteurs
1. Construire le vecteur complexev1 = (1 + i, 2 + 2i, 3 + 3i, 4 + 4i, 5 + 5i)
2. Construire le vecteur complexev2 = (1 + i, 1 + 2i, 1 + 3i, 1 + 4i, 1 + 5i)
3. Construire le vecteur contenant les valeurs de
(sin(0) sin(/2), sin(), sin(3/2), sin(2)) 4. Construire le vecteur ligne des puissances de 2 :w1 = (2, 4, 8, 16, 32, 64, 128, 256)
5. Construire le vecteur colonne des puissances de 2
INITIATION A SCILAB
5/28/2018 Initiation Scilab
62/153
I- Introduction la programmation matricielle
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
3. Vecteurs et matrices. Quelques exemples
Construction simples de vecteurs
on utilise-la construction de vecteurs
depart:pas:arrivee- la constante %i-les oprations entrescalaires
et vecteurs- les oprations entrevecteurs
indices = 1:10
v = indices + %i*indices
1. Construire v1 = (1 + i, 2 + 2i, 3 + 3i, 4 + 4i, 5 + 5i)
INITIATION A SCILAB
5/28/2018 Initiation Scilab
63/153
I- Introduction la programmation matricielle
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
3. Vecteurs et matrices. Quelques exemples.Construction simples de vecteurs
2. Construire v2 = (1 + i, 1 + 2i, 1 + 3i, 1 + 4i, 1 + 5i),on utilise- la construction de vecteurs depart:pas:arrivee- la constante %i- les oprations entre scalaires et vecteurs
indices = 1:10v2 = ones(indices) +
%i*indices
INITIATION A SCILAB
5/28/2018 Initiation Scilab
64/153
I- Introduction la programmation matricielle
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
3. Vecteurs et matrices. Quelques exemplesConstruction simples de vecteurs
3. Construire le vecteur contenant les valeurs de
on utilise-la construction de vecteursdepart:pas:arrivee- la constante %pi
-les fonctions appliquesaux vecteurs
sin((0:4)*%pi/2)
sin(0:%pi/2:2*%pi)
INITIATION A SCILAB
5/28/2018 Initiation Scilab
65/153
I- Introduction la programmation matricielle
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
3. Vecteurs et matrices. Quelques exemples
Construction simples de vecteurs
4. Construire le vecteur ligne des puissances de 2 :w1 = (2, 4, 8, 16, 32, 64, 128, 256)
on utilise- la construction de vecteurs depart:pas:arrivee- les fonctions appliques aux vecteurs
w1 = 2[1:8]
INITIATION A SCILAB
5/28/2018 Initiation Scilab
66/153
I- Introduction la programmation matricielle
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
3. Vecteurs et matrices. Quelques exemples
Construction simples de vecteurs
5. Construire le vecteur colonne des puissances de 2 :
on utilise
-la construction de vecteurs-depart:pas:arrivee- les fonctions appliques aux vecteurs- la transposition
w2 = 2([1:8])
w2 = w1
INITIATION A SCILAB
5/28/2018 Initiation Scilab
67/153
II- Scripts et fonctions
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
INITIATION A SCILAB
5/28/2018 Initiation Scilab
68/153
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
1. Scripts Scilab 2. Structure de contrle
3. La structure itrative while 4. Fonctions
II- Scripts et fonctions
INITIATION A SCILABII S i f i
5/28/2018 Initiation Scilab
69/153
II- Scripts et fonctions
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
1. Scripts Scilab. Exemple introductif
Somme des carrs des entiers
Calculer la somme des carrs des entiers de 1 n par un calcul direct Vrifier la formule mathmatique
INITIATION A SCILABII S i t t f ti
5/28/2018 Initiation Scilab
70/153
II- Scripts et fonctions
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
1. Scripts Scilab. Exemple introductif
Somme des carrs des entiers
Calcul direct de la somme des carrs des entiers de 1 100
on utilise- la construction de vecteur depart:arrivee- le calcul des carrs appliqu lment par lmentau vecteur- la fonction sum
n = 100
sommeCarres = sum((1:n).2)
INITIATION A SCILABII Scripts et fonctions
5/28/2018 Initiation Scilab
71/153
II- Scripts et fonctions
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
1. Scripts Scilab. Exemple introductifSomme des carrs des entiers
verifFormule =
sommeCarres== resFormule
resFormule =
n*(n+1)*(2*n+1)/6
n = 100;sommeCarres =
sum((1:n).2)
INITIATION A SCILABII Scripts et fonctions
5/28/2018 Initiation Scilab
72/153
II- Scripts et fonctions
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
1. Scripts Scilab. Exemple introductif
Somme des carrs des entiers
Si on veut tester avec une autre valeur de n, il faut retaper les
trois commandes : peu pratique!!
On veut regrouper les 3 lignes sous un seul nom, pourpouvoir les appeler en une seule fois cest ce que permet unscript.
INITIATION A SCILABII Scripts et fonctions
5/28/2018 Initiation Scilab
73/153
II- Scripts et fonctions
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
1. Scripts Scilab. Dfinition des scripts
Regroupement de commandes, que lon peut appeler en
une seulefois dans Scilab
- permet de sauvegarder un ensemble de commandes, pouren faciliter la rutilisation
- permet dexcuter toute une squence de commandesScilab automatiquement.- gnralement, un programme se lance laide dun script
Cest un fichier texte qui comporte une suite de commandesScilab
INITIATION A SCILABII- Scripts et fonctions
5/28/2018 Initiation Scilab
74/153
II- Scripts et fonctions
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
1. Scripts Scilab. Dfinition des scripts Ecriture de scripts : mthode
Etape 1: on ouvre un diteur de fichiers texte(ascii)
- sous Linux: emacs, vi, ...- sous Windows: notepad, blocnote, ...-ou avec Scilab: lditeur Scipad par exemple
Etape 2: on crit les commandes dans ce fichier- par exemplesommeCarres = sum((1:n).2)
resFormule = n*(n+1)*(2*n+1)/6verifFormule = resFormule == sommeCarres
INITIATION A SCILABII- Scripts et fonctions
5/28/2018 Initiation Scilab
75/153
II Scripts et fonctions
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
1. Scripts Scilab. Dfinition des scripts
Ecriture de scripts : mthode
Etape 3: on enregistredans le rpertoire de travail de Scilaben lui donnant un nom dextension sce-par exemple verifSommeCarres.sce
Etape 4 : on excute le script, par la commandeexec(nomDuScript)
INITIATION A SCILABII- Scripts et fonctions
5/28/2018 Initiation Scilab
76/153
II Scripts et fonctions
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
1. Scripts Scilab. Dfinition des scripts
Ecriture de scripts
- Scilab excute alors les unesaprs les autres les commandesdu script
- et affiche les rsultats au fur et
mesure
INITIATION A SCILABII- Scripts et fonctions
5/28/2018 Initiation Scilab
77/153
II Scripts et fonctions
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
1. Scripts Scilab. Dfinition des scripts
Le nom dun fichier script possde, par convention, lextension sce
Un script sexcute laide de la commande exec("nomDuFichier")- Le nom du fichier doit contenir le chemin daccs si le script ne setrouve pas dans le rpertoire courant- Le nom doit correspondre un fichier valide :
Contrainte sur le nom des scripts
INITIATION A SCILABII- Scripts et fonctions
5/28/2018 Initiation Scilab
78/153
p
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
1. Scripts Scilab. Dfinition des scripts
Script "verifSommeCarres.sce
Utilisation : exec(verifSommeCarres.sce)
INITIATION A SCILABII- Scripts et fonctions
5/28/2018 Initiation Scilab
79/153
p
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
1. Scripts Scilab. Dfinition des scriptsLes points virgules et les scripts.
Point-virgule = supprimer laffichage
Au niveau de exec : Sans ; Avec ; pour le exec
INITIATION A SCILABII- Scripts et fonctions
5/28/2018 Initiation Scilab
80/153
p
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
1. Scripts Scilab. Dfinition des scriptsLes points virgules et les scripts.
Dans le scriptSans ; ; dans le script
INITIATION A SCILABII- Scripts et fonctions
5/28/2018 Initiation Scilab
81/153
p
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
1. Scripts Scilab. Dfinition des scripts
Exemple du loto
Ecrire un script qui:
- gnre 7 entiers alatoires entre 1 et 49- indique si ces 7 nombres peuvent correspondre un tirage duloto - cest--dire si ces 7 nombres sont diffrents.
INITIATION A SCILABII- Scripts et fonctions
5/28/2018 Initiation Scilab
82/153
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
1. Scripts Scilab. Dfinition des scripts.Exemple du loto gnration dun entier alatoire
La gnration dun numro de loto;- un entier entre 1 et 49- distribution uniforme des valeurs
Utilisation de rand
rand() renvoie une valeur alatoiredans ]0,1[
49*rand()+1 donne donc une valeur alatoire dans ]1, 50[on utilise aussi la fonction floor qui pour x rel rend la partie entire
de x : floor(x) x < floor(x) + 1
ceil(x) rend lentier immdiatement suprieur x:ceil(x) 1 < x ceil(x)
INITIATION A SCILABII- Scripts et fonctions
5/28/2018 Initiation Scilab
83/153
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
1. Scripts Scilab. Dfinition des scriptsExemple du loto gnration dun entier alatoire
Le tirage dun numro est simul par floor(49*rand()+1)
Deux excutions successives :
INITIATION A SCILABII- Scripts et fonctions
5/28/2018 Initiation Scilab
84/153
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
1. Scripts Scilab. Dfinition des scriptsExemple du loto gnration dun entier alatoire
: La gnration de 7 numros de loto- 7 entiers entre 1 et 49- distribution uniforme-tous distincts
Mthode :- gnration : floor(49*rand(1,7)+1)- vrification quils sont tous distincts : utilisation de la fonction unique
INITIATION A SCILABII- Scripts et fonctions
5/28/2018 Initiation Scilab
85/153
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
1. Scripts Scilab. Dfinition des scriptsExemple du loto
Ecrire un script qui
- gnre 7 entiers alatoires entre 1 et 49- indique si ces 7 nombres peuvent correspondre un tirage du loto-cest--dire si ces 7 nombres sont diffrents
Mthode- on crit le code dans un fichier- on utilise la fonction rand- on utilise la fonction unique Dans un fichier, par exemple appel loto.sce
tirage = floor(49*rand(1,7)+1)
loto = length(unique(tirage)) == 7
INITIATION A SCILABII- Scripts et fonctions
5/28/2018 Initiation Scilab
86/153
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
2. Structure de contrle.
Exemple introductif : pile ou face
Ecrire un script qui simule un tirage pile ou face
- en utilisant la fonction rand- avec affichage
Plus prcisment
- Gnrer un nombre alatoire x entre 0 et 1- Si x < 0.5, afficher "pile"
- Sinon afficher "face"
INITIATION A SCILABII- Scripts et fonctions
5/28/2018 Initiation Scilab
87/153
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
2. Structure de contrleExemple introductif : pile ou face
La fonction disp
Fonction daffichage simple
- quil y ait un ; ou non : disp(m); disp(m)
Exemplesdisp(bonjour); affiche bonjourdisp(%pi) affiche 3.1415927disp(a) o a est une variable, affiche la valeur de a
v = [1 2 3]; disp(v) affiche [1 2 3]
attention : disp(v); affiche le caractre v
INITIATION A SCILABII- Scripts et fonctions
2 S d l
5/28/2018 Initiation Scilab
88/153
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
2. Structure de contrle
Schma du fonctionnement souhait
INITIATION A SCILABII- Scripts et fonctions
2 St t d t l
5/28/2018 Initiation Scilab
89/153
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
2. Structure de contrle
Lexpression conditionnelle alternative comporte trois lments :
- une partie condition : expression boolenne- une partie consquent : une squence dinstructions excuter si lacondition est vraie- une partir alternant : une squence dinstructions excuter si lacondition est fausse
Syntaxe Scilab :if condition
consquent
else
alternant
end
INITIATION A SCILABII- Scripts et fonctions
2 Structure de contrle
5/28/2018 Initiation Scilab
90/153
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
2. Structure de contrle
Le script
x = rand()if x
5/28/2018 Initiation Scilab
91/153
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
2. Structure de contrle Exemple dexcution
Excution du script
La partie consquent estapplique
Il ne se passe rien pour la
partie alternant
Gnration de x
INITIATION A SCILABII- Scripts et fonctions
2 Structure de contrle
5/28/2018 Initiation Scilab
92/153
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
2. Structure de contrle Exemple dexcution
Excution du script
Gnration de x
Il ne se passe rien pour la
partie consquent
La partie alternant est applique
INITIATION A SCILABII- Scripts et fonctions
2 Structure de contrle Lexpression conditionnelle simple
5/28/2018 Initiation Scilab
93/153
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
2. Structure de contrle L expression conditionnelle simple
Lexpression conditionnelle (simple) comporte seulementdeux lments- une partie condition : expression boolenne-une partie consquent : une squence dinstructions excuter si la condition est vraie
Syntaxe Scilab :
if condition
consquentend
INITIATION A SCILABII- Scripts et fonctions
2 Structure de contrle
5/28/2018 Initiation Scilab
94/153
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
2. Structure de contrle
Exemple: Nombre de racines dun trinme
delta = b*b-4*a*c; calcul du discriminant dans un fichier, parexemple appel nbRacinesTrinome.sce
if delta >0 on teste la valeur du discriminant
nbRacines = 2else
if delta == 0
nbRacines = 1
else
nbRacines = 0end
end
INITIATION A SCILABII- Scripts et fonctions
2 Structure de contrle
5/28/2018 Initiation Scilab
95/153
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
2. Structure de contrle
Exemple:Nombre de racines dun trinme
INITIATION A SCILABII- Scripts et fonctions
2 Structure de contrle
5/28/2018 Initiation Scilab
96/153
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
2. Structure de contrle
Expression conditionnelle alternative
if conditionconsquentelse
alternantend
Traitement de conditions complexes : imbrication des if- comme dans lexemple sur les trinmes du second degr-Il faut mettre autant de end que de if
Simplification de lcriture : expression conditionnelle enrichie :elseif
INITIATION A SCILABII- Scripts et fonctions
2 Structure de contrle Expression conditionnelle gnrale
5/28/2018 Initiation Scilab
97/153
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
2. Structure de contrle Expression conditionnelle gnrale
if condition1consquent
elseif condition2consquent2
elsealternant
end
Principe- consquent2 excut si condition1 non vrifie ET condition2 vrifie- alternant excut si condition1 et condition2 non vrifies
INITIATION A SCILABII- Scripts et fonctions
2. Structure de contrlel if l t i
5/28/2018 Initiation Scilab
98/153
Universit Abdelmalek Essaadi Automne 2012
Facult des Sciences Filires SMA-SMI
2. Structure de contrleelseif pour le trinme
Avec if imbriqus Avec elseif
INITIATION A SCILABII- Scripts et fonctions
3. Structure itrative while
5/28/2018 Initiation Scilab
99/153
Lexpression itrative while
Universit Abdelmalek Essaadi Automne 2012
Facult des Sciences Filires SMA-SMI
a
La squence itrative while comporte deux lments :- une partie condition : expression boolenne- une partie consquent : une squence dinstructions excutertant que la condition est vraie Syntaxe Scilab :
while condition
consquent
end
INITIATION A SCILABII- Scripts et fonctions
3 Structure itrative while
5/28/2018 Initiation Scilab
100/153
Universit Abdelmalek Essaadi Automne 2012
Facult des Sciences Filires SMA-SMI
3. Structure itrative while
pasLoto = %T;
nbTirages = 0;
whilepasLoto
tirage = floor(49*rand(1,7)+1);
nbTirages = nbTirages+1;
pasLoto = length(unique(tirage)) ~= 7;
end
tiragenbTirages
Exemple du loto
INITIATION A SCILABII- Scripts et fonctions
3. Structure itrative while
5/28/2018 Initiation Scilab
101/153
Universit Abdelmalek Essaadi Automne 2012
Facult des Sciences Filires SMA-SMI
3. Structure itrative while
Exemple du loto
INITIATION A SCILABII- Scripts et fonctions
4. Fonctions
5/28/2018 Initiation Scilab
102/153
Universit Abdelmalek Essaadi Automne 2012
Facult des Sciences Filires SMA-SMI
Syntaxe gnrale dappel de fonctions
[val1, val2, ..., valN] = nomFonction(param1, param2
..., paramM)
valI peuvent tre de nimporte quel type
- nombre, boolen, chane de caractres, matrice, vecteur
- la spcification indique lordre et le type des variables- spares par des virgules- entre crochetsparamJpeuvent tre de nimporte quel type aussi
- nombre, boolen, chane de caractres, matrice, vecteur- la spcification indique lordre et le type des arguments- spares par des virgules
INITIATION A SCILABII- Scripts et fonctions
4. Fonctions
5/28/2018 Initiation Scilab
103/153
Universit Abdelmalek Essaadi Automne 2012
Facult des Sciences Filires SMA-SMI
Syntaxe gnrale dappel de fonctions
Exemple de la fonctionmax
a = max(A) pour calculer la plus grande valeur de A
a2 = max(A, r) pour calculer le vecteur ligne des plus grandes
valeurs de chaque colonne de Aa3 = max(A, c) pour calculer le vecteur colonne des plus
grandes valeurs de chaque ligne de A
max(A) renvoie 12max(A, r) renvoie (12, 8)max(A, c) renvoie
INITIATION A SCILABII- Scripts et fonctions
4. Fonctions
5/28/2018 Initiation Scilab
104/153
Universit Abdelmalek Essaadi Automne 2012
Facult des Sciences Filires SMA-SMI
Exemple de fonctions:
max(A) renvoie le maximum de la matrice A
mais peut renvoyer aussi la position du maximum dans la matrice :les indices i et j tels que max(A) = Aij
le maximum est 12,et sa position est i = 2 etj = 1
INITIATION A SCILABII- Scripts et fonctions
4. Fonctions
5/28/2018 Initiation Scilab
105/153
Universit Abdelmalek Essaadi Automne 2012
Facult des Sciences Filires SMA-SMI
Exemple de fonctions:
Pour avoir la fois la valeur et la position du maximum[valMax, posMax] = max(A)
Variables de sortie :valMax : valeur du max ! cest un scalaire
posMax : position du max ! cest un vecteur de 2 entiers
valMax vaut 12,posMax vaut [2, 1]
INITIATION A SCILABII- Scripts et fonctions
4. Fonctions
5/28/2018 Initiation Scilab
106/153
Universit Abdelmalek Essaadi Automne 2012
Facult des Sciences Filires SMA-SMI
Exemple de fonctions:
Affichage dans lordre inverse
Avec un seul nom pour la sortieon nobtient que la valeur du maximum
INITIATION A SCILABII- Scripts et fonctions
4. Fonctions
5/28/2018 Initiation Scilab
107/153
Universit Abdelmalek Essaadi Automne 2012
Facult des Sciences Filires SMA-SMI
Le cas de max(A,r)
max(A, r) renvoie un vecteur ligne contenant le maximum de chaquecolonne de la matrice A
max(A, r) peut renvoyer aussi un vecteur de positions indiquant, pour
chaque colonne, la ligne dans laquelle se trouve le maximum
Mme syntaxe :[maxCol, maxColPos] = max(A, r)
Deux variables de sortie : 2 vecteurs de mme taille
- les valeurs des maximums- leurs positions
INITIATION A SCILABII- Scripts et fonctions
4. Fonctions
5/28/2018 Initiation Scilab
108/153
Universit Abdelmalek Essaadi Automne 2012
Facult des Sciences Filires SMA-SMI
Le cas de max(A,r)
INITIATION A SCILABII- Scripts et fonctions
4. Fonctions
5/28/2018 Initiation Scilab
109/153
Universit Abdelmalek Essaadi Automne 2012
Facult des Sciences Filires SMA-SMI
Le cas de max(A,r)
[valMax, posMax] = max(A)
[maxCol, maxColPos] = max(A, r)
Mais attention : signification diffrente-posMax a toujours 2 composantes, quelle que soit la taille de A
-maxColPos a mme nombre de colonnes que A
Dans les deux cas- on peut rcuprer plusieurs rsultats simultanment, en donnantdeux noms de variables entre crochets
- si on donne un seul nom, on na que le premier rsultat, cest--direvalMax etmaxCol respectivement
INITIATION A SCILABII- Scripts et fonctions
4. Fonctions
5/28/2018 Initiation Scilab
110/153
Universit Abdelmalek Essaadi Automne 2012
Facult des Sciences Filires SMA-SMI
Le cas de max(A,r)
max(A,c) a le mme fonctionnement quemax(A,r) il en est de mme pourmin mais pas pour sum
cas de unique :- v = unique(A) renvoie un vecteur contenant les valeurs distinctes
de A, tries en ordre croissant- [v, pos] = unique(A) renvoie de plus les positions des
premires occurrences des valeurs de v dans A
INITIATION A SCILABII- Scripts et fonctions
4. Fonctions
5/28/2018 Initiation Scilab
111/153
Universit Abdelmalek Essaadi Automne 2012
Facult des Sciences Filires SMA-SMI
Lcriture de nouvelles fonctions
Objectif :- assez proche de celui des scripts :- combiner des squences de commandes-programmer des traitements complexes, des algorithmes
Avantages par rapport aux scripts :- pas ncessaire de connatre le nom des variables utilises- pas ncessaire de connatre le nom de la variable rsultat
INITIATION A SCILABII- Scripts et fonctions
4. FonctionsLcriture de nouvelles fonctions
5/28/2018 Initiation Scilab
112/153
Universit Abdelmalek Essaadi Automne 2012
Facult des Sciences Filires SMA-SMI
Elles dpendent de paramtres dentre- on peut les appeler directement avec les valeurs quon souhaiteutiliser- on peut les appeler en utilisant des variables quelconques qui
contiennent les valeurs quon souhaite utiliserpas de contrainte sur le nom de ces arguments
Elles renvoient un rsultat- que lon peut rcuprer, et affecter une variable quelconque
pas de contrainte sur le nom des variables de sortie Leur syntaxe est similaire celle utilise en math
INITIATION A SCILABII- Scripts et fonctions
4. FonctionsLcriture de nouvelles fonctions
5/28/2018 Initiation Scilab
113/153
Universit Abdelmalek Essaadi Automne 2012
Facult des Sciences Filires SMA-SMI
L criture de nouvelles fonctions
Proprits :
- squence de commandes- crite dans un fichier dextension .sci- avec des contraintes de syntaxe pour grer les paramtres dentreet les valeurs renvoyes
En pratique, dans le cas o un seule valeur est renvoye
function nomVarRes = nomFonction(nomParam1, nomParam2,
...)
instructionsnomVarRes = expressionendfunction
INITIATION A SCILABII- Scripts et fonctions
4. FonctionsLcriture de nouvelles fonctions Un exemple
5/28/2018 Initiation Scilab
114/153
Universit Abdelmalek Essaadi Automne 2012
Facult des Sciences Filires SMA-SMI
L criture de nouvelles fonctions Un exemple
INITIATION A SCILABII- Scripts et fonctions
4. Fonctions
Utili ti d f ti
5/28/2018 Initiation Scilab
115/153
Universit Abdelmalek Essaadi Automne 2012
Facult des Sciences Filires SMA-SMI
Utilisation des fonctions
Lexcution se fait en deux temps:-il faut charger la fonction dans lenvironnement de travailgetf(nomDuFichier.sci)
- puis appeler la fonction, comme toute autre fonction de Scilab
nomDeFonction(parametre)
Dans le cas prcdentgetf(polynome1.sci);
res = f(42);
INITIATION A SCILABII- Scripts et fonctions
4. Fonctions
5/28/2018 Initiation Scilab
116/153
Universit Abdelmalek Essaadi Automne 2012
Facult des Sciences Filires SMA-SMI
Fichier polynome1.scifunction y = f(x)
y = x2+x+1
endfunction
Fichier fonctionF.scey = x2+x+1;
Calcul de f(42) et affectation la variable aAffichage de la valeur de f(4.2)
Utilisation des fonctions
INITIATION A SCILABII- Scripts et fonctions
4. Fonctions
Comparaison fonction script
5/28/2018 Initiation Scilab
117/153
Universit Abdelmalek Essaadi Automne 2012
Facult des Sciences Filires SMA-SMI
Comparaison fonction script
1. on charge la fonction2. on calcule la valeur en 42 et onaffecte le rsultat a
1. on affecte 42 la variable x :il faut savoir quelle sappelle x2. on calcule la valeur
3. on affecte a le rsultat,qui est dans y : il faut savoir quilest dans y
Calcul de f(42)
INITIATION A SCILABII- Scripts et fonctions
4. Fonctions
5/28/2018 Initiation Scilab
118/153
Universit Abdelmalek Essaadi Automne 2012
Facult des Sciences Filires SMA-SMI
Comparaison fonction script
1. on calcule f(4.2) sans ;affichage
1. on affecte la variable x : il fautsavoir quelle sappelle x
2. on calcule la valeur3. on affiche la variable y : il fautsavoir que le rsultat est dans y
Affichage de f(4.2)
INITIATION A SCILABII- Scripts et fonctions
4. Fonctions
Quelques remarques pratiques
5/28/2018 Initiation Scilab
119/153
Universit Abdelmalek Essaadi Automne 2012
Facult des Sciences Filires SMA-SMI
Quelques remarques pratiques
On peut crire plusieurs fonctions dans le mme fichier
Il faut commenter les programmes
- par exemple pour expliquer lordre des arguments, leurs types(puisque le langage nest pas typ)-syntaxe :
// commentaire
INITIATION A SCILABII- Scripts et fonctions
4. Fonctions Bilan
5/28/2018 Initiation Scilab
120/153
Universit Abdelmalek Essaadi Automne 2012
Facult des Sciences Filires SMA-SMI
function [varRes1, varRes2, ...] = nomFonction(param1,
param2, ...)
Instructions
varRes1 = expression
varRes2 = expression
endfunction
En entre :- tous types possibles : types de base, ou matrices- les arguments sont indpendants (types diffrents)
En sortie- tous types possibles : types de base, ou matrices- pas de contrainte dhomognit : paramtres indpendants
INITIATION A SCILABII- Scripts et fonctions
4. Fonctions
Fonctions et environnement mmoire
5/28/2018 Initiation Scilab
121/153
Universit Abdelmalek Essaadi Automne 2012
Facult des Sciences Filires SMA-SMI
o ct o s et e o e e t o e
Cration de variables dans les fonctions, un exemple :function z = f(x)
a = 5;
z = x*x
disp("fonction f : a= "+string(a));
endfunction
Fonctionnement ;- elle cre la variable a
- fait un calcul- affiche la valeur de a- renvoie le rsultat de son calcul
INITIATION A SCILABII- Scripts et fonctions
4. Fonctions
Fonctions et environnement mmoire
5/28/2018 Initiation Scilab
122/153
Universit Abdelmalek Essaadi Automne 2012
Facult des Sciences Filires SMA-SMI
Fonctions et environnement mmoire
Cration de variables dans les fonctions,un exemple :
function z = f(x)a = 5;
z = x*x
disp("fonction f : a=
"+string(a));
endfunction
a est inaccessible depuis Scilab
INITIATION A SCILABII- Scripts et fonctions
4. Fonctions
Fonctions et environnement mmoire Imbrication 2 niveaux
5/28/2018 Initiation Scilab
123/153
Universit Abdelmalek Essaadi Automne 2012
Facult des Sciences Filires SMA-SMI
Imbrication 2 niveaux
Fonction appele depuis une fonction appele depuis lenvironnement
gnral.
function z = z = g(x+2)
f(x)
a = 5;
endfunction
functionm = g(n)
m = n*n
endfunctionCommande Scilab-> y = f(4);
INITIATION A SCILABII- Scripts et fonctions
4. Fonctions Porte des variables
Depuis lenvironnement de cration
5/28/2018 Initiation Scilab
124/153
Universit Abdelmalek Essaadi Automne 2012
Facult des Sciences Filires SMA-SMI
Depuis l environnement de cration
Une variable est accessible en lecture et en criture depuislenvironnement o elle a t cre
Cest la proprit quon utilise depuis le dbut, pour faire voluerles valeurs des variables- directement dans Scilab- dans les scripts
- dans les fonctions
INITIATION A SCILABII- Scripts et fonctions
4. Fonctions
Porte des variablesDepuis un environnement imbriqu
5/28/2018 Initiation Scilab
125/153
Universit Abdelmalek Essaadi Automne 2012
Facult des Sciences Filires SMA-SMI
Depuis un environnement imbriqu
Une variable est accessible en lecture depuis lesenvironnements imbriqus dans son environnement decration
Quelques exemples :- montrer quelle est bien accessible en lecture dans un environnementimbriqu
- montrer quelle nest pas accessible en lecture dans unenvironnement englobant
INITIATION A SCILABII- Scripts et fonctions
4. Fonctions
Porte des variablesDepuis un environnement imbriqu
5/28/2018 Initiation Scilab
126/153
Universit Abdelmalek Essaadi Automne 2012
Facult des Sciences Filires SMA-SMI
Depuis un environnement imbriqu
n dfinie dans Scilab, lue depuis f
function y = f(x)disp(fonction f: n=+string(n));
y = x*x
endfunction
INITIATION A SCILABII- Scripts et fonctions
4. Fonctions
Porte des variables Depuis un environnement imbriqu
5/28/2018 Initiation Scilab
127/153
Universit Abdelmalek Essaadi Automne 2012
Facult des Sciences Filires SMA-SMI
n dfinie dans Scilab, lue depuis g appele depuis f
function y = f(x)
y = g(x)
endfunction
functionb = g(a)disp(fonction g: n=
+string(n));
disp(fonction g: x=
+string(x));b = a*a
endfunction
INITIATION A SCILABII- Scripts et fonctions
4. Fonctions
Porte des variables Depuis un environnement imbriqu
5/28/2018 Initiation Scilab
128/153
Universit Abdelmalek Essaadi Automne 2012
Facult des Sciences Filires SMA-SMI
Pas de lecture: a dfinie dans f est inaccessible
dans Scilab.
function z = f(x)
a = 5;
z = x*x
disp("fonction f:
a="
+string(a));endfunction
INITIATION A SCILABII- Scripts et fonctions
4. Fonctions
Porte des variables.Cas de laccs en criture
5/28/2018 Initiation Scilab
129/153
Universit Abdelmalek Essaadi Automne 2012
Facult des Sciences Filires SMA-SMI
Cas de l accs en criture
Une variable est inaccessible en crituredepuis les environnements imbriqus dansson environnement de cration-il est impossible de modifier une variabledun environnement englobant
function z = f(x)a = 5;z = x*
xendfunction
INITIATION A SCILABII- Scripts et fonctions
4. Fonctions
Porte des variables.
5/28/2018 Initiation Scilab
130/153
Universit Abdelmalek Essaadi Automne 2012
Facult des Sciences Filires SMA-SMI
Cas de laccs en criture
Impossible de modifier une variable dun environnementenglobant :
phnomne de copie locale-si on cherche modifier une variable de mme nom dans f,
il y a cration une nouvelle variable de mme nom danslenvironnement local de f
- cette nouvelle variable masque, recouvre la variable delenvironnement gnral
INITIATION A SCILABII- Scripts et fonctions
4. Fonctions
Porte des variables. Cas de laccs en criture
5/28/2018 Initiation Scilab
131/153
Universit Abdelmalek Essaadi Automne 2012
Facult des Sciences Filires SMA-SMI
-> a = 1;
-> y = f(2)
function z = f(x)a = 5;
z = x*x
endfunction
INITIATION A SCILABII- Scripts et fonctions
4. FonctionsPorte des variables.
Recouvrement de variables
5/28/2018 Initiation Scilab
132/153
Universit Abdelmalek Essaadi Automne 2012
Facult des Sciences Filires SMA-SMI
Visualisation en utilisant who_user
function z =
f(x)
a = 5;z = x*x
who_user
endfunction
INITIATION A SCILABII- Scripts et fonctions
4. FonctionsPorte des variables.
Recouvrement de variables
Les fonctions appeles par f accdent alors la variable a de f,
5/28/2018 Initiation Scilab
133/153
Universit Abdelmalek Essaadi Automne 2012
Facult des Sciences Filires SMA-SMI
pp p ,non celle de lenvironnement gnral
Aucun moyen de remonter lenvironnement gnral
function z = f(x)
disp(f avant:+)
a = 5;
disp(f aprs:+)z = g(x)
endfunction
function z = g(x)
disp(g:+string(a))z = x*x
endfunction
INITIATION A SCILABIII Complments sur les matrices
5/28/2018 Initiation Scilab
134/153
Universit Abdelmalek Essaadi Automne 2012
Facult des Sciences Filires SMA-SMI
III Complments sur les matrices
INITIATION A SCILABIII Complments sur les matrices
1. Reprsentation en mmoire des matrices
Les matrices sont stockes sous la forme dun vecteur
5/28/2018 Initiation Scilab
135/153
Universit Abdelmalek Essaadi Automne 2012
Facult des Sciences Filires SMA-SMI
Les matrices sont stockes sous la forme d un vecteurcolonne- avec leur taille : nombre de lignes et nombre de colonnes
nbLignes = 3
nbCols = 3
INITIATION A SCILABIII Complments sur les matrices
1. Reprsentation en mmoire des matrices
Les matrices sont stockes sous la forme dun vecteur colonneC t i tili l t ti B(14) l
5/28/2018 Initiation Scilab
136/153
Universit Abdelmalek Essaadi Automne 2012
Facult des Sciences Filires SMA-SMI
Consquence : on peut aussi utiliser la notation B(14), avec un seulparamtre dans les parenthses
INITIATION A SCILABIII Complments sur les matrices
1. Reprsentation en mmoire des matrices
Les matrices sont stockes sous la forme dun vecteur colonne De faon gnrale quelle est la correspondance entre les coordonnes
5/28/2018 Initiation Scilab
137/153
Universit Abdelmalek Essaadi Automne 2012
Facult des Sciences Filires SMA-SMI
De faon gnrale, quelle est la correspondance entre les coordonnes un paramtre et les coordonnes deux paramtres ?
A(a,b) = A(i) avec
i = (b-1)nbLignes+a
A(i) =A(a,b) avec
b = E((i-1)/nbLignes)+1
a = i-(b-1)nbLignes
ou
a = modulo(i-1,nbL)+1
INITIATION A SCILABIII Complments sur les matrices
2. Redimensionnement des matrices
On peut modifier la taille de la matrice si le produit
5/28/2018 Initiation Scilab
138/153
Universit Abdelmalek Essaadi Automne 2012
Facult des Sciences Filires SMA-SMI
On peut modifier la taille de la matrice si le produitnbLignes x nbColonnesnest pas modifi
cest--dire pour un nombre total dlments constant
Commande :
B = matrix(A, nouveauNbLignes, nouveauNnCol);
INITIATION A SCILABIII Complments sur les matrices
3. La commande matrix
matrix(M, n,m) : renvoie la matrice de dimensionnxm obtenue en parcourant M(:)
5/28/2018 Initiation Scilab
139/153
Universit Abdelmalek Essaadi Automne 2012
Facult des Sciences Filires SMA-SMI
nxm obtenue en parcourantM(:)
- la matrice rsultat est construite de la premire la dernire colonne
INITIATION A SCILABIII Complments sur les matrices
4. Ajout de composantes : exemple
Si on a une matrice A de taille 2x3,A(3 4)
5/28/2018 Initiation Scilab
140/153
Universit Abdelmalek Essaadi Automne 2012
Facult des Sciences Filires SMA-SMI
A(3,4) provoque une erreur
mais pas A(3,4) = 42;
INITIATION A SCILABIII Complments sur les matrices
4. Ajout de composantes : principe
Exemple : si on a une matrice A de taille 2x3,A(3 4)
5/28/2018 Initiation Scilab
141/153
Universit Abdelmalek Essaadi Automne 2012
Facult des Sciences Filires SMA-SMI
- A(3,4) provoque une erreur
-mais pas A(3,4) = 42;
Consquence de A(3,4) = 42;
- cration dune nouvelle matrice de taille 3x4
- dans la sous-matrice 1:2,1:3, copie de la matrice A- la position (3, 4), affectation de 42-autres cases remplies avec des 0
A viter si possible : cot calculatoire lev
INITIATION A SCILABIII Complments sur les matrices
5. Extraction de sous-matrices : principe
t i d t ill b i b l
5/28/2018 Initiation Scilab
142/153
Universit Abdelmalek Essaadi Automne 2012
Facult des Sciences Filires SMA-SMI
Aune matrice de taille nbLignes x nbCols
v1 un vecteur de taillem, v1 = (i1, i2, . . . , im)contenant des valeurs entires entre 1 et nbLignesv1 un vecteur de taille n, v2 = (j1, j2, . . . , jn)contenant des valeurs entires entre 1 et nbCols
AlorsB = A(v1, v2) est une matrice de taillem n :B(i, j) =A(v1(i), v2(j))
B : intersections des lignes i1, i2, . . . , imet des colonnes j1,
j2, . . . , jn
INITIATION A SCILABIII Complments sur les matrices
5. Extraction de sous-matrices : exemples
5/28/2018 Initiation Scilab
143/153
Universit Abdelmalek Essaadi Automne 2012
Facult des Sciences Filires SMA-SMI
Extraction de sous-matrices->A([1 3 4],[2 4]) ->A([4 3 1],[2 4]) ->A([4 3 1],[4 2])
INITIATION A SCILABIII Complments sur les matrices
5. Extraction de sous-matrices : suppressionOn peut sen servir pour supprimer des lments de la matrice
A -> A(:, 1:2)= [] -> A(3, :)= []
5/28/2018 Initiation Scilab
144/153
Universit Abdelmalek Essaadi Automne 2012
Facult des Sciences Filires SMA-SMI
B = A(:,3:4) B = [A(1:2,:);
A(4,:)]
Attention la cohrence en terme de taille : on ne peut supprimer dela sorte que des lignes entires ou des colonnes entires
INITIATION A SCILABIII Complments sur les matrices
6. Fonction find
La fonction findpermet de trouver les lments dune matrice qui
vrifient une condition donne.
5/28/2018 Initiation Scilab
145/153
Universit Abdelmalek Essaadi Automne 2012
Facult des Sciences Filires SMA-SMI
par exemple,
- trouver les lments suprieurs 10- ou trouver les chanes de caractres de longueur 2 contenues dansune matrice de chanes de caractres
Syntaxe : find() une condition boolenne faisant intervenir une matriceM
Valeur de retour : deux possibilits- un vecteur : indices des lments deM(:) qui vrifient
- deux vecteurs de mme taille contenant respectivement des indices de lignes et desindices de colonnes tels que les lments (lig col) deMvrifient
INITIATION A SCILABIII Complments sur les matrices
6. Fonction findExemple
Soit M la matrice
5/28/2018 Initiation Scilab
146/153
Universit Abdelmalek Essaadi Automne 2012
Facult des Sciences Filires SMA-SMI
SoitMla matrice
-> indices = find(M == 1) renvoieindices = [1 6 8]
-> [indLignes, indCols] = find(M == 1) renvoie
indLignes = [1 2 3]indCols = [1 3 2]
INITIATION A SCILABIII Complments sur les matrices
6. Fonction findATTENTION
-> indices = find(M == 1) renvoieindices = [1 6 8]
5/28/2018 Initiation Scilab
147/153
Universit Abdelmalek Essaadi Automne 2012
Facult des Sciences Filires SMA-SMI
-> [indLignes, indCols] = find(M == 1)
renvoieindLignes = [1 2 3]
indCols = [1 3 2]
ATTENTION
M(indLignes, indCols) nest pas la sous-matrice des lmentsdeMqui vrifie la condition
M(indices) est le sous-vecteur des lments deM(:) qui vrifientla condition
INITIATION A SCILAB
5/28/2018 Initiation Scilab
148/153
Universit Abdelmalek Essaadi Automne 2012
Facult des Sciences Filires SMA-SMI
IV La boucle for
INITIATION A SCILABIV La boucle for
1. Principe et syntaxe
Lexpression itrative for comporte 2 parties- une partie ensemble de dfinition avec:
5/28/2018 Initiation Scilab
149/153
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
- une variable de boucle- Une matrice de valeurs- une partie instructions : squence dinstructions excuter pourtout lment de lensemble de dfinition
for =
instructionsend
INITIATION A SCILABIV La boucle for
2. Itration sur un vecteur ligne
Afficher les composantes du vecteur
5/28/2018 Initiation Scilab
150/153
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
INITIATION A SCILABIV La boucle for
3. Autres exemples
Itrer sur une matrice constante
5/28/2018 Initiation Scilab
151/153
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
INITIATION A SCILABIV La boucle for
4. Addition des termes dun vecteur
Avec la fonction sum
5/28/2018 Initiation Scilab
152/153
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
function res = additionSum(v)res = sum(v)
endfunction
Avec un for Avec un for Scilabfunction res = additionFor1(v) function res = additionFor2(v)
res = 0 res = 0
for i = 1:length(v) for i = v
res = res+v(i) res = res+i
end end endfunction endfunction
INITIATION A SCILABIV La boucle for
5. Conclusions sur la boucle for
Eviter les boucles (while comme for) autant que possible
5/28/2018 Initiation Scilab
153/153
Universit Abdelmalek Essaadi Automne 2012Facult des Sciences Filires SMA-SMI
- utiliser de prfrence les fonctions Scilab il faut connatre les fonctions Scilab
Si on utilise des boucles- exploiter au maximum les spcificits Scilab (reprsentationinterne en mmoire, ...) il faut connatre les spcificits Scilab
Par ailleurs
- une programmation efficace repose dabord sur des algorithmesefficaces
Top Related