153
INITIATION A SCILAB M. Idrissi Université Abdelmalek Essaadi Faculté des Sciences Filières SMA-SMI Automne 2012

Initiation à Scilab

Embed Size (px)

DESCRIPTION

apprenez scilab

Citation preview

  • 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