IFT-1903 INFORMATIQUE POUR L’INGÉNIEUR Initiation à MATLAB MKHANNAT Mohamed MKHANNAT Mohamed Leçon #01 Introduction à MATLAB 1/34 IFT-1903 INFORMATIQUE POUR L’INGÉNIEUR Partie 1: 1. 2. 3. 4. Introduction Notions de base de MATLAB Vecteurs Matrices MKHANNAT Mohamed Leçon #01 Introduction à MATLAB 2/34 IFT-1903 INFORMATIQUE POUR L’INGÉNIEUR 1-Introduction Matlab est une abreviation de MATrix LABoratory) Développé par la société The MathWorks. MATLAB permet de manipuler des matrices, d'afficher des courbes et des données, de mettre en œuvre des algorithmes, de créer des interfaces utilisateurs…, MATLAB est conforté par des boîtes à outils (Toolboxes) spécifiques à des domaines variés Programmation graphique offertes par SIMULINK. Matlab possede l’outil GUIDE avec laquel on peut concevoir des interfaces graphiques MATLAB utilise son propre langage de programmation. MKHANNAT Mohamed Leçon #01 Introduction à MATLAB 3/34 IFT-1903 INFORMATIQUE POUR L’INGÉNIEUR 2-Notions de base de MATLAB 2.1.Lancement de MATLAB Historique des commandes Liste des fichiers Fenêtre de commandes de MATLAB Variables utilisées MKHANNAT Mohamed Leçon #01 Introduction à MATLAB 4/34 IFT-1903 INFORMATIQUE POUR L’INGÉNIEUR 2.2.Commandes utilles Il existe deux techniques pour afficher les variables en mémoire : soit dans l’onglet Workspace, soit par les commandes who et whos. >>who %permet d’afficher toutes les variables >>whos % permet d’afficher toutes les variables avec leurs taille >>clear var %pour effacer la variable var. >>clear (ou >> clear all) %pour effacer toutes les variables. >>clc % pour effacer la fenêtre de commande Matlab offre une aide en ligne très complète. Tapez: >> help commande %pour une explication de l’utilisation de la commande Matlab commande MKHANNAT Mohamed Leçon #01 Introduction à MATLAB 5/34 IFT-1903 INFORMATIQUE POUR L’INGÉNIEUR 2.3.Quelques fonctions trigonométriques : En MATLAB fonction En MATLAB sin Sinus sec sinh Sinus hyperbolique sech Sécante hyperbolique asin Arcsinus asec Arcsécante asinh Arcsinus hyperbolique asech Arcsécante hyperbolique cos Cosinus csc Cosécante cosh Cosinus hyperbolique csch Cosécante hyperbolique acos Arcosinus acsc Arcosécante tan Tangente acsch Inverse hyperbolic cosecant. tanh Tangent hyperbolique cot Cotangente atan Arctangente coth Cotangente hyperbolique MKHANNAT Mohamed Leçon #01 Introduction à MATLAB fonction Sécante 6/34 IFT-1903 INFORMATIQUE POUR L’INGÉNIEUR 2.4.Arrondi et reste Commandes en MATLAB Signification fix Arrondit vers zéro floor Arrondit vers moins l'infini ceil Arrondit vers plus l'infini round Arrondit à l'entier le plus près rem Reste de la division. MKHANNAT Mohamed Leçon #01 Introduction à MATLAB 7/34 IFT-1903 INFORMATIQUE POUR L’INGÉNIEUR Exemple: »fix(5.76) ans = 5 »fix(-5.76) %Arrondit vers zéro %Arrondit vers zéro ans = -5 »floor(5.76) ans = 5 »floor(-5.76) ans = -6 »ceil(5.76) ans = 6 »ceil(-5.76) ans = -5 %Arrondit vers moins l'infini %Arrondit vers moins l'infini %Arrondit vers plus l'infini »round(5.76) ans = 6 »round(-5.76) ans = ans = -6 »rem(9,2) ans = 1 »rem(-7,2) %Arrondit à l'entier le plus près %Arrondit à l'entier le plus près %Reste de la division. %Reste de la division. ans = -1 %Arrondit vers plus l'infini MKHANNAT Mohamed Leçon #01 Introduction à MATLAB 8/34 IFT-1903 INFORMATIQUE POUR L’INGÉNIEUR 2.5.Nombres complexes Commande sous MATLAB signification abs Valeur absolue ou module angle Angle de phase conj Conjugué d’un complexe imag Partie imaginaire real Partie réelle >> z=3+sqrt(-12) z= 3 + 3.4641i >> abs(z) ans = 4.5826 >> angle(z) ans = 0.85707 >> real(z) ans = 3 >> imag(z) ans = 3.4641 MKHANNAT Mohamed Leçon #01 Introduction à MATLAB 9/34 IFT-1903 INFORMATIQUE POUR L’INGÉNIEUR 2.6.Opérations arithmétiques de base dans MATLAB Symboles opérations Formes en MATLAB ^ * a^b Multiplication : ab a*b / a/b \ a\b + Addition : a+b a+b - Soustraction : a-b a-b MKHANNAT Mohamed Leçon #01 Introduction à MATLAB 10/34 IFT-1903 INFORMATIQUE POUR L’INGÉNIEUR 2.7.Quelques fonctions usuelles exp log log10 log2 sqrt >> exp(5) ans = 148.41 >> log(3) ans = 1.0986 MKHANNAT Mohamed Exponentielle Logarithme népérien (base e) Logarithme à base 10 Logarithme à base 2 Racine carrée >> log10(2) ans = 0.30103 Leçon #01 Introduction à MATLAB >> sqrt(44) ans = 6.6332 11/34 IFT-1903 INFORMATIQUE POUR L’INGÉNIEUR 3-Vecteurs 3.1.Introduction Un vecteur est un tableau à une dimension dont les entrées sont séparées soit par une virgule soit par un espace. On a deux sortes de vecteurs : vecteur ligne et et vecteur colonne. 3.2.Création de vecteurs >> V=[21 1 0 3] % vecteur ligne V= 21 1 0 3 V=[21 , 1 ,0 ,3] % vecteur ligne V= 21 1 0 >> Vcol=[21 ; 1 ;0 ;3] Vcol = 21 1 0 3 % vecteur colonne 3 Pour transformer une vecteur ligne en vecteur colonne ou vice versa ,on utilise la transposée du vecteur en utilisant le vecteur suivi de l’apostrophe (‘) MKHANNAT Mohamed Leçon #01 Introduction à MATLAB >> V' ans = 21 1 0 3 12/34 IFT-1903 INFORMATIQUE POUR L’INGÉNIEUR 3.2.Création de vecteurs - (suite) Remarque : si l’on omet n , le pas sera égale à 1 Exemple >> A=linspace(3,12,5) A= 3 5.25 MKHANNAT Mohamed 7.5 9.75 12 Leçon #01 Introduction à MATLAB 13/34 IFT-1903 INFORMATIQUE POUR L’INGÉNIEUR 3.2.Création de vecteurs - (suite) L’operateur(:) permet de créer un vecteur dont les données sont régulièrement espacées. >>x=a:p:b % crée un vecteur de données espace d’un pas p ; dont le premier élément est a et le dernier élément inferieure ou égal à b Si l’on omet le pas p ,dans ce cas le pas sera égal à 1 Exemple >> B=0:5:20 B= 0 5 10 >> C=0:5:19 C= 0 5 10 15 15 MKHANNAT Mohamed 20 >> K=4:-2:0 K= 4 2 0 >> D=14:18 D= 14 15 16 Leçon #01 Introduction à MATLAB 17 18 14/34 IFT-1903 INFORMATIQUE POUR L’INGÉNIEUR 3.2.Création de vecteurs - (suite) Les fonctions suivantes Matlab génerent des vecteurs contenant des zeros et des uns >>zeros(m,1) retourne un vecteur colonne de m zéros >>zeros(1,n) retourne un vecteur ligne de n zéros >>ones(m,1) retourne un vecteur colonne de m uns >>ones(1,n) retourne un vecteur ligne de n uns Exemple >> x=zeros(1,4) x= 0 0 0 0 MKHANNAT Mohamed >> y=ones(3,1) y= 1 1 1 Leçon #01 Introduction à MATLAB 15/34 IFT-1903 INFORMATIQUE POUR L’INGÉNIEUR 3.2.Création de vecteurs - (suite) Concaténation de vecteurs >> M=[2 4 3] , K=[8 0 1] M= 2 4 3 K= 8 0 1 >> V=[M K] V= 2 4 3 8 0 1 >> W=[M;K] W= 2 4 3 8 0 1 MKHANNAT Mohamed Leçon #01 Introduction à MATLAB 16/34 IFT-1903 INFORMATIQUE POUR L’INGÉNIEUR 3.3.Quelques fonctions utiles length (v) % taille du vecteur v >> A=[1 2 4 ] , B=[4 7 9] A= 1 2 4 B= 4 7 9 >> K=4:-2:0 K= 4 2 0 >> length(K) ans = 3 >> cross(A,B) ans = -10 7 -1 norm(v) % norme du vecteur v >> norm(K) ans = 4.4721 sum(V) : somme les composantes d’un vecteur V >> sum(K) ans = 6 MKHANNAT Mohamed >> dot(A,B) ans = % product vectoriel %produit scalaire 54 Leçon #01 Introduction à MATLAB 17/34 IFT-1903 INFORMATIQUE POUR L’INGÉNIEUR 3.4.Indexation Le premier indice d’un vecteur est égal 1 On peut afficher et modifier un e valeur d’un vecteur en utlisant l’indexation. V(i) %permet d’afficher le i éme élment du vecteur V V(i)=3 %permet de modifier le i éme élment du vecteur V et le remplacer par la valeur 3 >> M=2:4:18 M= 2 6 10 14 >> M(3)=122 M= 2 6 122 >> M(4) 18 % Modifier une valeur la troisième entrée 14 18 % Afficher la valeur de la quatrième entrée ans = 14 MKHANNAT Mohamed Leçon #01 Introduction à MATLAB 18/34 IFT-1903 INFORMATIQUE POUR L’INGÉNIEUR 3.5.Opérations sur les vecteurs >> M=[2 4 3] , K=[8 0 1] M= 2 4 3 K= 8 0 1 >> S=M+K S= 10 4 4 % Somme de deux vecteurs se fait élément par élément >> L=M-K L= -6 4 2 % la soustraction de deux vecteurs se fait élément par élément >> 5+K ans = 13 % l'addition d'un scalaire à un vecteur revient à ajouter ce scalaire à tous les entrées de ce vecteur 5 6 MKHANNAT Mohamed Leçon #01 Introduction à MATLAB 19/34 IFT-1903 INFORMATIQUE POUR L’INGÉNIEUR 3.5.Opérations sur les vecteurs – (suite) >> K-4 % la soustraction d'un scalaire à un vecteur revient à soustraire ce scalaire à tous les entrées de ce vecteur ans = 4 -4 >> 4*K ans = 32 -3 % la multiplication ou division dun vecteur par un scalire est réalisée sur tous les entrées de ce vecteur 0 >> K/7 ans = 1.1429 4 0 MKHANNAT Mohamed 0.14286 Leçon #01 Introduction à MATLAB 20/34 IFT-1903 INFORMATIQUE POUR L’INGÉNIEUR 3.5.Opérations sur les vecteurs – (suite) En précédant d’un point les operateurs *, / , \ ,et ^ en effectue dans ce cas ces opérations élément par élément >> K.*L % produit élément par élément ans = -48 0 2 >> K./L % division élément par élément ans = -1.3333 0 0.5 >> L.\K ans = -1.3333 >> K K= 8 0 0 0.5 1 >> K.^2 % élever chaque composante de vecteur K au carré ans = 64 0 1 MKHANNAT Mohamed Leçon #01 Introduction à MATLAB 21/34 IFT-1903 INFORMATIQUE POUR L’INGÉNIEUR 4.6.Elimination des entrées d’un vecteur Pur supprimer un ou plusieurs éléments d’un vecteur , il faut utiliser la formule suivante: >>M(i)=[] %on indique l’indexe , i dans notre cas,de l’élément puis on met des crochets au deuxieme membre de l’affectation >>M([i,j,k,….]=[] % on elimine une serie d’éléments Exemple: >> M=[1 3 2 5 7 9 21] M= 1 3 2 5 7 9 21 >> M(2)=[] % supprime le deuxième élément M= 1 2 5 7 9 21 >> M([1,2,5])=[] % supprime une suite d’éléments ;le premier,le deuxieme et le troisième élément M= 2 5 9 21 MKHANNAT Mohamed Leçon #01 Introduction à MATLAB 22/34 IFT-1903 INFORMATIQUE POUR L’INGÉNIEUR 4 - MATRICES 4.1.Introduction Une matrice est un tabeau à 2 dimensions.et un vecteur est une matrice à une ligne ou à une colonne 4.2.Saisie d’une matrice Les ligne sont separé par un point virgule ; >> M=[1 3 4;6 5 9;0 1 5] M= 1 3 4 6 5 9 0 1 5 MKHANNAT Mohamed Leçon #01 Introduction à MATLAB 23/34 IFT-1903 INFORMATIQUE POUR L’INGÉNIEUR 4.3.Fonctions de manipulation des matrices Soit M une matrice >>size(M) >>diag(M) >>det(M) >>inv(M) % donne la dimension de M % si M est une matrice carrée ,il retourne un vecteur à partir de la diagonale de M % si M est carrée , retourne le déterminant de M % retourne l’inverse de M >> M=[1 3 2 ;9 7 6;2 1 9;1 2 8] M= 1 9 2 1 3 7 1 2 2 6 9 8 MKHANNAT Mohamed >> inv(M) %on aura un message d’erreur car M n’est pas carrée ??? Error using ==> inv Matrix must be square. Leçon #01 Introduction à MATLAB 24/34 IFT-1903 INFORMATIQUE POUR L’INGÉNIEUR 4.4.Opérations sur les matrices 4.4.1.Addition et soustraction de deux matrice: Il faut que les deux matrices aient la même dimension >> A=[1 3 2 ;9 7 6;2 1 9] ,B=[2 1 4;2 9 1;4 9 8] A= 1 3 2 9 7 6 2 1 9 B= 2 1 4 2 9 1 4 9 8 >> size(A) , size(B) ans = 3 3 ans = 3 3 >> A+B ans = 3 4 6 11 16 7 6 10 17 4.4.2.Addition ou soustraction d’un matrice avec un scalaire : ceci ajoute resp.retranche le scalaire à chaque élément du matriceeffectue l’operation telle que chaque élément . >> A+3 %ajoute 3 à chaque élement de A ans = 4 6 5 12 10 9 5 4 12 MKHANNAT Mohamed >> A*2 %multiplie chaque élement par 2 ans = 2 6 4 18 14 12 4 2 18 Leçon #01 Introduction à MATLAB 25/34 IFT-1903 INFORMATIQUE POUR L’INGÉNIEUR 4.4.Opérations sur les matrices – (suite) 4.4.3.Produit de matrices : Si deux matrices A et B sont compatibles ,c’est-à-dire le nombre de colonnes de A est égale au nombre de lignes de Alors dans ce cas on peut faire le produit de de A par B ,noté A*B >> A=[1 3 2 ;9 7 6;2 1 9] , B=[2 1; 4 2 ;9 1] A= 1 3 2 >> A*B 9 7 6 ans = 2 1 9 32 9 100 29 B= 89 13 2 1 4 9 2 1 MKHANNAT Mohamed Leçon #01 Introduction à MATLAB 26/34 IFT-1903 INFORMATIQUE POUR L’INGÉNIEUR 4.4.Opérations sur les matrices – (suite) En précedant d’un point les operateurs *, / , \ ,et ^ en effectue dans ce cas ces operations élement par élement des matrices à conditions qu’elles aient même taille >> K=[1 3 2 ;9 7 6;2 1 9] ,L=[2 3 1;1 4 2 ;9 2 1] K= 1 3 2 9 7 6 2 1 9 L= 2 1 9 3 4 2 >> K.*L ans = 2 9 9 28 18 2 >> K./L ans = 0.5 9 0.22222 1 2 1 1 1.75 0.5 2 3 9 2 12 9 MKHANNAT Mohamed Leçon #01 Introduction à MATLAB 27/34 IFT-1903 INFORMATIQUE POUR L’INGÉNIEUR 4.5.Matrices particulieres >>eye(m,n) %matrice identité de dimension m x n >>ones(m,n) % matrice constituée de 1 de dimension m x n >>zeros(m,n) %matrice nulle de dimension m x n >>rand(m,n) %matrice à éléments aléatoires de dimension m x n exemple Si m=n on note simplement eye(m) , ones(m) ,zeros(m) et rend(m) >> I=eye(3,3) I= 1 0 0 0 1 0 0 0 1 MKHANNAT Mohamed >> M=ones(2,3) M = 1 1 1 1 1 1 >> Z=zeros(2) Z= 0 0 0 0 Leçon #01 Introduction à MATLAB >> R=rand(2,2) R= 0.95751 0.15761 0.96489 0.97059 28/34 IFT-1903 INFORMATIQUE POUR L’INGÉNIEUR 4.6.Indexation Soit M une matrice de dimension m x n M((i,j) est l’élément qui se trouve dans la i éme ligne et la j éme colonne >>M=[1 2 3;4 5 6;7 8 9] M= 1 2 3 4 5 6 7 8 9 >> M(4) ans = >> M(1) 2 ans = >> M(2,2) 1 ans = >> M(2) 5 ans = 4 MKHANNAT Mohamed Leçon #01 Introduction à MATLAB 29/34 IFT-1903 INFORMATIQUE POUR L’INGÉNIEUR 4.6.Indexation plus générale On peut extraire plusieurs élément en utilisant des vecteur au lieu des index i et j M(v1,v2) avec v1 et v2 deux vecteurs >> M=[1 2 3 ; 4 5 6 ; 7 8 9] M= 1 2 3 4 5 6 7 8 9 >> v1=[1,2]; v2=[2,3]; >> M(v1,v2) ans = 2 3 5 6 >> M(1:2,2:3) ans = 2 3 5 6 : indique qu’il s’agit d’abreviation d’une ligne ou d’une colonne >> M(1,:) ans = 1 2 3 MKHANNAT Mohamed >> M(:,3) ans = 3 6 9 >> M(1:2,2:3)=eye(2) M= 1 1 0 4 0 1 7 8 9 Leçon #01 Introduction à MATLAB 30/34 IFT-1903 INFORMATIQUE POUR L’INGÉNIEUR 4.7.Suppression des entrées d’une matrice Pour supprimer des éléments d’une matrices on utilise les crochets [] >> M=[1 2 3 ; 4 5 6 ; 7 8 9] M= 1 2 3 4 5 6 7 8 9 >> M(:,2)=[] M= 1 3 4 6 7 9 % suppression de la 2ieme colonne MKHANNAT Mohamed Leçon #01 Introduction à MATLAB 31/34