Introduction au langage Matlab et à la programmation ...€¦ · Introduction au langage Matlab et...

30
École Nationale Polytechnique de Constantine (ENPC) Introduction au langage Matlab et à la programmation fonctionnelle Dr. Mohamed Mahdi Benmoussa (ENPC) 7 mars 2020 1 / 30

Transcript of Introduction au langage Matlab et à la programmation ...€¦ · Introduction au langage Matlab et...

Page 1: Introduction au langage Matlab et à la programmation ...€¦ · Introduction au langage Matlab et à la programmation fonctionnelle Dr. Mohamed Mahdi Benmoussa (ENPC) 7 mars 20201/30.

École Nationale Polytechnique de Constantine (ENPC)

Introduction au langage Matlab et à la programmationfonctionnelle

Dr. Mohamed Mahdi Benmoussa (ENPC)

7 mars 2020 1 / 30

Page 2: Introduction au langage Matlab et à la programmation ...€¦ · Introduction au langage Matlab et à la programmation fonctionnelle Dr. Mohamed Mahdi Benmoussa (ENPC) 7 mars 20201/30.

plan

Plan

1 Introduction

2 Initiation au langage matlab

3 Graphisme

7 mars 2020 2 / 30

Page 3: Introduction au langage Matlab et à la programmation ...€¦ · Introduction au langage Matlab et à la programmation fonctionnelle Dr. Mohamed Mahdi Benmoussa (ENPC) 7 mars 20201/30.

Initiation au langage matlab

Variables

ConstantesQuelques exemples de constantes :

pi : 3.1415926535897eps : précision numérique relativerealmin : plus petit nombre à virgule flottante manipulablerealmax : plus grand nombre à virgule flottante manipulableinf : infini, qui est obtenu lors de l’évaluation d’une expression quiexcède realmaxNaN : not-a-number, qui est obtenu quand on essaie d’effectuer uneopération non-définie comme 0/0

7 mars 2020 3 / 30

Page 4: Introduction au langage Matlab et à la programmation ...€¦ · Introduction au langage Matlab et à la programmation fonctionnelle Dr. Mohamed Mahdi Benmoussa (ENPC) 7 mars 20201/30.

Initiation au langage matlab

Opérations

Opérateurs arithmétiques

L’opérateur ./ (.*) permet de diviser (multiplier chaque élément du vecteurv par l’élément correspondant du vecteur b (v./b).

7 mars 2020 4 / 30

Page 5: Introduction au langage Matlab et à la programmation ...€¦ · Introduction au langage Matlab et à la programmation fonctionnelle Dr. Mohamed Mahdi Benmoussa (ENPC) 7 mars 20201/30.

Initiation au langage matlab

Opérations

Opérateurs de comparaison

Il s’agit d’opérateurs "binaires", lesquels retournent la valeur 0 (=false)quand la relation est fausse et 1 (=true) quand la relation est vraie.

7 mars 2020 5 / 30

Page 6: Introduction au langage Matlab et à la programmation ...€¦ · Introduction au langage Matlab et à la programmation fonctionnelle Dr. Mohamed Mahdi Benmoussa (ENPC) 7 mars 20201/30.

Initiation au langage matlab

Opérations

Opérateurs de comparaisonLa comparaison peut être effectuée à toute une matrice, coefficient parcoefficient. Par exemple :

7 mars 2020 6 / 30

Page 7: Introduction au langage Matlab et à la programmation ...€¦ · Introduction au langage Matlab et à la programmation fonctionnelle Dr. Mohamed Mahdi Benmoussa (ENPC) 7 mars 20201/30.

Initiation au langage matlab

Opérations

Opérateurs logiquesDes opérateurs permettent de combiner différentes conditions. Lacomparaison logique s’effectue élément par élément et permet de comparerdes matrices. court-circuit signifie que la seconde condition est évaluéeseulement si le résultat n’est pas déjà déterminé par la 1ere condition.

7 mars 2020 7 / 30

Page 8: Introduction au langage Matlab et à la programmation ...€¦ · Introduction au langage Matlab et à la programmation fonctionnelle Dr. Mohamed Mahdi Benmoussa (ENPC) 7 mars 20201/30.

Initiation au langage matlab

Opérations

Opérateurs logiques

Il est possible de combiner des matrices logiques (de même taille). Lesopérateurs logiques sont alors exécutés coefficient par coefficient, et lamatrice résultante est de même taille que les matrices utilisées, avec lerésultat de la comparaison affecté à chaque coefficient. On peut aussicombiner plusieurs comparaisons / opérateurs logiques. Par exemple :

7 mars 2020 8 / 30

Page 9: Introduction au langage Matlab et à la programmation ...€¦ · Introduction au langage Matlab et à la programmation fonctionnelle Dr. Mohamed Mahdi Benmoussa (ENPC) 7 mars 20201/30.

Initiation au langage matlab

Manipulation des vecteurs et des matrices

GénéralitésPour Matlab toute variable est considérée comme étant un tableaud’éléments d’un type donné. Matlab différencie trois formes particulières detableaux :

Les scalaires qui sont des tableaux à une ligne et une colonneLes vecteurs qui sont des tableaux à une ligne ou à une colonneLes matrices qui sont des tableaux ayant plusieurs lignes et colonnes

Une variable Matlab est donc toujours un tableau que l’on appelle variablescalaire, vecteur ou matrice suivant la forme du tableau

7 mars 2020 9 / 30

Page 10: Introduction au langage Matlab et à la programmation ...€¦ · Introduction au langage Matlab et à la programmation fonctionnelle Dr. Mohamed Mahdi Benmoussa (ENPC) 7 mars 20201/30.

Initiation au langage matlab

Manipulation des vecteurs et des matrices

7 mars 2020 10 / 30

Page 11: Introduction au langage Matlab et à la programmation ...€¦ · Introduction au langage Matlab et à la programmation fonctionnelle Dr. Mohamed Mahdi Benmoussa (ENPC) 7 mars 20201/30.

Initiation au langage matlab

Manipulation des vecteurs et des matrices

Les vecteursOn définit un vecteur ligne en donnant la liste de ses éléments entrecrochets ([]). Les éléments sont séparés au choix par des espaces ou pardes virgules. On définit un vecteur colonne en donnant la liste de seséléments séparés au choix par des points virgules ( ;) ou par des retourschariots (touche Entrée). On peut transformer un vecteur ligne x en unvecteur colonne et réciproquement en tapant x’

7 mars 2020 11 / 30

Page 12: Introduction au langage Matlab et à la programmation ...€¦ · Introduction au langage Matlab et à la programmation fonctionnelle Dr. Mohamed Mahdi Benmoussa (ENPC) 7 mars 20201/30.

Initiation au langage matlab

Manipulation des vecteurs et des matrices

7 mars 2020 12 / 30

Page 13: Introduction au langage Matlab et à la programmation ...€¦ · Introduction au langage Matlab et à la programmation fonctionnelle Dr. Mohamed Mahdi Benmoussa (ENPC) 7 mars 20201/30.

Initiation au langage matlab

Manipulation des vecteurs et des matrices

Les vecteursIl est inutile de définir la longueur d’un vecteur au préalable. Cette longueursera établie automatiquement à partir de l’expression mathématiquedéfinissant le vecteur ou à partir des données. On peut en revanche obtenirla longueur d’un vecteur donné grâce à la commande length

7 mars 2020 13 / 30

Page 14: Introduction au langage Matlab et à la programmation ...€¦ · Introduction au langage Matlab et à la programmation fonctionnelle Dr. Mohamed Mahdi Benmoussa (ENPC) 7 mars 20201/30.

Initiation au langage matlab

Manipulation des vecteurs et des matrices

Les vecteursLes éléments d’un vecteur peuvent être manipulés grâce à leur indice dansle tableau. Le k ieme élément du vecteur x est désigné par x(k). Le premierélément d’un vecteur a obligatoirement pour indice 1.

7 mars 2020 14 / 30

Page 15: Introduction au langage Matlab et à la programmation ...€¦ · Introduction au langage Matlab et à la programmation fonctionnelle Dr. Mohamed Mahdi Benmoussa (ENPC) 7 mars 20201/30.

Initiation au langage matlab

Manipulation des vecteurs et des matrices

Les vecteursIl est possible de manipuler plusieurs éléments d’un vecteur simultanément.Ainsi les éléments k à 1 du vecteur x sont désignés par v(k :1). On peutégalement manipuler facilement les éléments d’un vecteur dont les indicessont en progression arithmétique. On écrira v1=(k :p :10 et on lit celasuite de 4 à 10 avec le pas de 2.

7 mars 2020 15 / 30

Page 16: Introduction au langage Matlab et à la programmation ...€¦ · Introduction au langage Matlab et à la programmation fonctionnelle Dr. Mohamed Mahdi Benmoussa (ENPC) 7 mars 20201/30.

Initiation au langage matlab

Manipulation des vecteurs et des matrices

Les vecteursQuelques vecteurs spéciaux :

ones(1,n) : vecteur ligne de longueur n dont tous les éléments valent 1ones(m,1) : vecteur colonne de longueur m dont tous les élémentsvalent 1zeros(1,n) : vecteur ligne de longueur n dont tous les éléments valent0zeros(m,1) : vecteur colonne de longueur m dont tous les élémentsvalent 0rand(1,n) : vecteur ligne de longueur n dont les éléments sont générésde manière aléatoire entre 0 et 1rand(m,1) : vecteur colonne de longueur m dont les éléments sontgénérés de manière aléatoire entre 0 et 1

7 mars 2020 16 / 30

Page 17: Introduction au langage Matlab et à la programmation ...€¦ · Introduction au langage Matlab et à la programmation fonctionnelle Dr. Mohamed Mahdi Benmoussa (ENPC) 7 mars 20201/30.

Initiation au langage matlab

Manipulation des vecteurs et des matrices

Les vecteursQuelques fonctions portant sur les vecteurs (de même sur les matrices) :

7 mars 2020 17 / 30

Page 18: Introduction au langage Matlab et à la programmation ...€¦ · Introduction au langage Matlab et à la programmation fonctionnelle Dr. Mohamed Mahdi Benmoussa (ENPC) 7 mars 20201/30.

Initiation au langage matlab

Manipulation des vecteurs et des matrices

Les MatricesPour déclarer une matrice dans une variable A, on énumère entre crochersses éléments (séparés par des espaces), et on utilise un point virgule pourpasser d’une ligne à l’autre :A = [1 2 3 ; 4 5 6 ; 7 8.5 9 ; 10 11.5 12]D’après le code ci-dessus, la matrice A possède quatre lignes et troiscolonnes. On peut vérifier cela dans la zone des variables. Si on doubleclique sur la variable dans la zone des variables son contenu s’affiche. Onpeut aussi utiliser la fonction disp pour afficher une matrice.

7 mars 2020 18 / 30

Page 19: Introduction au langage Matlab et à la programmation ...€¦ · Introduction au langage Matlab et à la programmation fonctionnelle Dr. Mohamed Mahdi Benmoussa (ENPC) 7 mars 20201/30.

Initiation au langage matlab

Manipulation des vecteurs et des matrices

7 mars 2020 19 / 30

Page 20: Introduction au langage Matlab et à la programmation ...€¦ · Introduction au langage Matlab et à la programmation fonctionnelle Dr. Mohamed Mahdi Benmoussa (ENPC) 7 mars 20201/30.

Initiation au langage matlab

Manipulation des vecteurs et des matrices

Les MatricesUn élément de matrice est référencé par ses numéros de lignes et decolonnes. A(i,j) désigne le j ieme élément de la i ieme ligne de la matrice A.Ainsi A(2,1) désigne le premier élément de la deuxième ligne de la matriceA.

7 mars 2020 20 / 30

Page 21: Introduction au langage Matlab et à la programmation ...€¦ · Introduction au langage Matlab et à la programmation fonctionnelle Dr. Mohamed Mahdi Benmoussa (ENPC) 7 mars 20201/30.

Initiation au langage matlab

Manipulation des vecteurs et des matrices

Les MatricesOn peut obtenir, avec la fonction size, la taille d’une matrice. La fonctiongénère un vecteur ligne où le premier élément est le nombre de lignes de lamatrice et le second élément est le nombre de colonnes. Par exemple :

7 mars 2020 21 / 30

Page 22: Introduction au langage Matlab et à la programmation ...€¦ · Introduction au langage Matlab et à la programmation fonctionnelle Dr. Mohamed Mahdi Benmoussa (ENPC) 7 mars 20201/30.

Initiation au langage matlab

Manipulation des vecteurs et des matrices

Les MatricesUne autre fonction utile pour les matrices est numel, qui renvoie le nombred’éléments d’une matrice passée en paramètre. Par exemple :

7 mars 2020 22 / 30

Page 23: Introduction au langage Matlab et à la programmation ...€¦ · Introduction au langage Matlab et à la programmation fonctionnelle Dr. Mohamed Mahdi Benmoussa (ENPC) 7 mars 20201/30.

Initiation au langage matlab

Manipulation des vecteurs et des matrices

Les MatricesIl est aussi possible d’appeler des fonctions sur une matrice (sqrt, cos, sin,exp, ...), afin qu’elle s’exécute sur chaque élément de la matrice. Parexemple :

7 mars 2020 23 / 30

Page 24: Introduction au langage Matlab et à la programmation ...€¦ · Introduction au langage Matlab et à la programmation fonctionnelle Dr. Mohamed Mahdi Benmoussa (ENPC) 7 mars 20201/30.

Initiation au langage matlab

Manipulation des vecteurs et des matrices

Les MatricesLa manipulation d’une matrice est de la manière suivante :

7 mars 2020 24 / 30

Page 25: Introduction au langage Matlab et à la programmation ...€¦ · Introduction au langage Matlab et à la programmation fonctionnelle Dr. Mohamed Mahdi Benmoussa (ENPC) 7 mars 20201/30.

Initiation au langage matlab

Manipulation des vecteurs et des matrices

Les MatricesMatrices spéciales :

: la matrice à m lignes et n colonnes dont tous les éléments valent 1: la matrice à m lignes et n colonnes dont tous les éléments valent 0: la matrice à m lignes et n colonnes dont tous les éléments sontgénérés de manière aléatoire entre 0 et 1

Exemple de traitement de matrice

7 mars 2020 25 / 30

Page 26: Introduction au langage Matlab et à la programmation ...€¦ · Introduction au langage Matlab et à la programmation fonctionnelle Dr. Mohamed Mahdi Benmoussa (ENPC) 7 mars 20201/30.

Initiation au langage matlab

Instructions d’entrées et de sorties

LectureAfin de lire des données utiles à l’exécution on peut procéder de deuxfaçon :

input : data=input(’Donnez votre valeur’) ;fscanf : pour lire des fichiers de données (voir l’exemple). Pour plusde détails tapez help fscanf

7 mars 2020 26 / 30

Page 27: Introduction au langage Matlab et à la programmation ...€¦ · Introduction au langage Matlab et à la programmation fonctionnelle Dr. Mohamed Mahdi Benmoussa (ENPC) 7 mars 20201/30.

Initiation au langage matlab

Instructions d’entrées et de sorties

ÉcritureAfin d’afficher des messages ou des résultats, on utilise la commandedisp(t) où t est une chaîne de caractères ou un tableau. Cette fonctionaffiche la valeur de cette variable sans faire référence au nom de la variable.Elle sera souvent utilisée avec num2str (conversion des nombresnumériques en chaînes de caractères).

7 mars 2020 27 / 30

Page 28: Introduction au langage Matlab et à la programmation ...€¦ · Introduction au langage Matlab et à la programmation fonctionnelle Dr. Mohamed Mahdi Benmoussa (ENPC) 7 mars 20201/30.

Initiation au langage matlab

Instructions d’entrées et de sorties

ÉcritureLa commande standard d’écriture est sprintf qui a la structure généralesuivante :sprintf(format, variablesoù

variables est le nom des variables à imprimer suivant le modèled’édition spécifié dans formatformat d’édition, une chaîne de caractères contenant les modèlesd’éditions des variables à imprimer

7 mars 2020 28 / 30

Page 29: Introduction au langage Matlab et à la programmation ...€¦ · Introduction au langage Matlab et à la programmation fonctionnelle Dr. Mohamed Mahdi Benmoussa (ENPC) 7 mars 20201/30.

Initiation au langage matlab

Instructions d’entrées et de sorties

ÉcritureLe modèle d’édition de caractères est la forme %Ls où % est lesymbole de début de format et "s" le symbole précisant que la donnée estde type chaîne de caractères. L est un entier donnant la longueur totale duchamp (en nombre de caractères, plus de détails en tapant help sprintf.Par exemple :

7 mars 2020 29 / 30

Page 30: Introduction au langage Matlab et à la programmation ...€¦ · Introduction au langage Matlab et à la programmation fonctionnelle Dr. Mohamed Mahdi Benmoussa (ENPC) 7 mars 20201/30.

Graphisme

Références

Initiation à Matlab, Docteur Samira Bouzoubia, Université Mentouri 1Introduction à Matlab, John Chaussard, Université Paris 13

7 mars 2020 30 / 30