Vous êtes sur la page 1sur 70

Université Euro Méditerranéenne Fès

Ecole d'Ingénierie Digitale et d'Intelligence Artificielle (EIDIA)

Module: Logiciel de Simulation

Chapitre 1:
Introduction à MATLAB/OCTAVE

Pr : A. SLIMANI
2022/2023
1
MATLAB /OCTAVE A.U: 2022/2023
Plan
1. Introduction

2. Commandes de base en Matlab

3. Vecteurs et matrices

4. Polynômes

5. Fonction et Script

6. Gestion d’espace

7. Exercices d’application
2
MATLAB /OCTAVE A.U: 2022/2023
1. Introduction OCTAVE

MATLAB ( MATrix LABoratory) et Octave sont des environnements intégrés pour le


calcul scientifique et la visualisation.

MATLAB/OCTAVE est un langage de programmation de haute performance très utilisé,


dans le domaine de la recherche scientifique et d’industrie, destiné aux ingénieurs et aux
chercheurs scientifiques pour résoudre beaucoup de problèmes techniques liés au calcul
numérique et aussi la phase de développement des projets.

Il nous permet d’afficher des résultats sous forme des courbes et des données, de mettre
en œuvre des algorithmes, de créer des interfaces utilisateurs, et peut s’interfacer avec
d’autres langages comme le C, C++, Java, Fortran …

MATLAB /OCTAVE A.U: 2022/2023 3


MATLAB/OCTAVE disposent de nombreuses boite à outils (Frameworks ou Toolboxes) qui
sont des collections complètes des fonctions MATLAB spécifiques à un domaine
d’applications donné :

▪ Robotiques
▪ Systèmes embarqués
▪ Aérospatial
▪ Télécommunications
▪ Traitement du signal et d’image
▪ Systèmes électrique et mécanique: mécatronique
▪ …

4
MATLAB /OCTAVE A.U: 2022/2023
▪ Aussi on peut les utiliser pour les tests et mesures :
Contrôler et acquérir des données à partir de :
✓ Cartes d'acquisition de données enfichables,
✓ Instruments de test,
✓ Caméras Web et de capteurs de page-écran,
✓ Envoyer et recevoir des messages via des bus CAN.

Remarque:

Dans la suite, nous utiliserons souvent l’expression “ MATLAB ” : dans ce contexte,


MATLAB doit être compris comme le langage utilisé par les deux logiciels MATLAB et
Octave.

5
MATLAB /OCTAVE A.U: 2022/2023
Il existe deux modes de fonctionnement:

1. Mode interactif :
MATLAB exécute les instructions au fur et à mesure qu'elles sont données par
l’utilisateur.

Exemple: opérations mathématiques (somme, soustraction, multiplication, …)

2. Mode exécutif :
MATLAB exécute ligne par ligne un fichier (programme en langage MATLAB).
Exemple: créer une fonction, algorithme d’optimisation, …

6
MATLAB /OCTAVE A.U: 2022/2023
L’interface Matlab se compose de plusieurs zones :

L’apparence de la fenêtre principale peut être changée en utilisant la commande « Layout » de la barre de menu.
7
MATLAB /OCTAVE A.U: 2022/2023
Chaque zone sur l’interface de Matlab est dédiée à des objectifs :

▪ Le menu regroupe des commandes de base de Matlab comme: créer, ouvrir, enregistrer,
afficher des fichiers, …
▪ La zone de commandes permet de rédiger des commandes et afficher leurs résultats.
▪ La zone des variables permet de visualiser toutes les variables créées en mémoire à
l’instant (le nom et le contenu).
▪ L’explorateur de fichiers permet de visualiser tous les fichiers crées et les ouvrir pour
les éditer.
▪ La zone d’historique permet de visualiser l’historique de toutes les commandes
exécutées précédemment.

8
MATLAB /OCTAVE A.U: 2022/2023
Plan
1. Introduction

2. Commandes de base en Matlab


3. Vecteurs et matrices

4. Polynômes

5. Fonction et Script

6. Gestion d’espace

7. Exercices d’application

MATLAB /OCTAVE A.U: 2022/2023 9


2. Commandes de base en Matlab
Les opérations de base:

On peut saisir des commandes dans la zone de commande (comme les opérations de:
soustraction, addition, multiplication,…), et Matlab les exécute comme le ferait une
calculatrice.

▪ Il faut savoir que Matlab est un langage interprété : toute commande tapée dans la zone
de commande est immédiatement exécutée (après la frappe de return). Il n’est pas
nécessaire de compiler un programme avant de l’exécuter.

10
MATLAB /OCTAVE A.U: 2022/2023
❑ Les Opérateurs
Le tableau suivant représente quelques opérateurs usuels utilisés par Matlab pour manipuler les
expressions :

Opérateur Définition
+, -, *, ^, Addition , Soustraction, Multiplication, Puissance,

/, \ Division, Division à gauche

' , .' Transposée conjuguée, Transposée

<= , >= Inférieur ou égal, Supérieur ou égal

Égal, Différent
== , ~=
& , | et logique, ou

~ , xor complément logique (not), ou exclusif

11
MATLAB /OCTAVE A.U: 2022/2023
❑ Les Fonctions
MATLAB fournit un nombre élevé de fonctions mathématiques élémentaires standard et
avancé. Pour obtenir une liste des fonctions mathématiques élémentaires (avancées) , tapez sur
la zone de commande: help elfun (help specfun).

Fonction Définition
pi 3,141592653589793

i, j Nombre imaginaire

exp, log, log10 Exponentielle, logarithme népérien, logarithme en base 10

sqrt , abs Racine carrée , valeur absolue

Égale à 1 si 𝐱 > 𝟎 , 0 si 𝒙 = 𝟎 et -1 si 𝐱 < 𝟎


sign(x)
sin, asin, cos, tan Sinus, sinus inverse, cosinus, tangent

sinh, asinh Sinus hyperbolique, sinus hyperbolique inverse

12
MATLAB /OCTAVE A.U: 2022/2023
Si on travaille avec des nombres complexes (𝒛 = 𝒂 + 𝒋𝒃), on pourra utiliser les
fonctions suivantes pour trouver:

o conj(z) : conjugué de z

o abs(z) : module de z

o angle(z) : argument de z (en radian)

o real(z) : partie réelle de z

o imag(z) : partie imaginaire de z

13
MATLAB /OCTAVE A.U: 2022/2023
❑ Les variables
▪ Dans Matlab, il n'est pas nécessaire de déclarer le type (entier, réelle, complexe, …) ou la
dimension (scalaire, matrice) de la variable que l'on manipule.

▪ Lorsque MATLAB rencontre un nouveau nom de variable, il crée automatiquement la


variable et alloue la capacité appropriée de stockage. Si la variable existe déjà, MATLAB
modifie juste son contenu.

▪ Les noms des variables sont composés d'une lettre, ou d'une lettre suivie d'un nombre
quelconque de lettres, chiffres ou de sous-tirets.

▪ Le nom d’une variable peut contenir au maximum 31 caractères et il y a une distinction


entre les majuscules et les minuscules : D et d ne sont pas la même variable.

14
MATLAB /OCTAVE A.U: 2022/2023
Par exemple,
Crée une variable nommée num_machine et stocké la valeur 14 dans le seul élément, après
on a crée une variable nommée y et stocké la valeur num_machine +1 dans cette variable.

Autre exemple,
assigne à la variable A la valeur pi/2.

15
MATLAB /OCTAVE A.U: 2022/2023
Remarque :
Essayez la commande suivante :

et comparez à la commande :

ans (answer) est une variable qui contient toujours le résultat de la dernière opération
exécutée,
Si vous ne spécifiez pas une variable de sortie, MATLAB utilise la variable ans pour stocker
les résultats de cette dernière opération.
16
MATLAB /OCTAVE A.U: 2022/2023
Remarque :
▪ Si vous mettez un point virgule « ; » à la fin d’une instruction, on peut éviter
l’affichage des résultats de l’instruction.
Ceci est très utile lorsqu’on exécute des programmes très longs, car l’affichage des
résultats des instructions dans la fenêtre de commande retarde l’exécution des
programmes.

▪ On peut taper plusieurs commandes par ligne, séparées par une virgule ou un point
virgule.

▪ On peut aussi mettre des commentaires dans une ligne de commande à l’aide du
signe " % ".

17
MATLAB /OCTAVE A.U: 2022/2023
Plan
1. Introduction

2. Commandes de base en Matlab

3. Vecteurs et matrices
4. Polynômes

5. Fonction et Script

6. Gestion d’espace

7. Exercices d’application

MATLAB /OCTAVE A.U: 2022/2023 18


3. Vecteurs et matrices dans Matlab
❑ Les vecteurs
▪ Un vecteur sous Matlab est un regroupement de plusieurs éléments de même type.
▪ La méthode la plus simples pour définir un vecteur est de donner sa description explicite à
l’aide de la commande [ ], comme: [ 1 2 3 4 ], [ a b c ], …

Exemple:

19
MATLAB /OCTAVE A.U: 2022/2023
Vecteur colonne :
Pour définir un vecteur colonne, il suffit de mettre un point virgule entre les
éléments de vecteur.

Exemple: v1 = [2 ; 5 ; 4 ; 1]

20
MATLAB /OCTAVE A.U: 2022/2023
On peut également prendre la transposée d’un vecteur pour passer d’une ligne à une
colonne ou réciproquement on ajoutant une apostrophe ( ′ ) à la fin de notre vecteur.

Exemple: Soit le vecteur ligne v1 = [2 5 4 1] :


vec = v1 ′ 𝐯𝒆𝒄 est un vecteur colonne,

Sous Matlab:

21
MATLAB /OCTAVE A.U: 2022/2023
On peut concaténer deux vecteurs ou plus pour créer un nouveau vecteur.
Par exemple, à partir de 𝐯𝟏 et 𝐯𝟐 on peut déduire 𝐯𝟑:

v1 = [2 5 4 1] et v2 = [3 6 9]

v3 = [v1 v2] v3 = [2 5 4 1 3 6 9]

Sous Matlab:

22
MATLAB /OCTAVE A.U: 2022/2023
Il existe des vecteurs spéciaux prédéfinis dans Matlab :

𝒐𝒏𝒆𝒔(𝟏, 𝒏) : vecteur ligne de longueur 𝒏 dont tous les éléments valent 𝟏,


𝒛𝒆𝒓𝒐𝒔(𝟏, 𝒏) : vecteur ligne de longueur 𝒏 dont tous les éléments valent 0,
𝒓𝒂𝒏𝒅(𝟏, 𝒏) : vecteur ligne de longueur 𝒏 dont les éléments sont générés de manière
aléatoire entre 0 et 𝟏.

𝒐𝒏𝒆𝒔(𝒎, 𝟏) sera donc vecteur colonne de longueur 𝒎 dont tous les éléments valent
𝟏 (de même pour 𝒛𝒆𝒓𝒐𝒔 et 𝒓𝒂𝒏𝒅).

On peut avoir des informations sur la longueur d’un vecteur à l’aide de commande 𝒍𝒆𝒏𝒈𝒕𝒉( ) .
23
MATLAB /OCTAVE A.U: 2022/2023
Remarque:

- On peut utiliser la fonction linspace pour générer un vecteur dans Matlab.


- La commande 𝒍𝒊𝒏𝒔𝒑𝒂𝒄𝒆(𝒙, 𝒚, 𝒏) génère un vecteur ligne de 𝒏 éléments
espacés linéairement entre 𝒙 et 𝒚.

Si vous mettez 𝒍𝒊𝒏𝒔𝒑𝒂𝒄𝒆 𝒙, 𝒚 , par défaut 𝒏 = 𝟏𝟎𝟎.

Exemple,

▪ Créez un vecteur nommé V1 de 5 éléments linéairement espacés entre 3 et 10.

24
MATLAB /OCTAVE A.U: 2022/2023
❑ Opérations vectorielles:

Sur la zone de commande,

▪ Créer les vecteurs 𝑨 = [𝟏𝟎 𝟐𝟎 𝟑𝟎 𝟒𝟎], B= 𝟏 𝟐 𝟑 𝟒 et 𝑪 = [𝟏 𝟎 𝟎 𝟎 𝟏] .

▪ Calculer la somme et la soustraction des deux vecteurs 𝑨 et 𝑩.

▪ Calculer le produit de 𝑨 et 𝑩,
▪ Calculer la somme et la soustraction des deux vecteurs 𝑨 et 𝑪.

Qu’est ce que vous remarquez ?

25
MATLAB /OCTAVE A.U: 2022/2023
Remarque:

Pour les vecteurs, les opérations algébriques +, −, ∗, / doivent être prises avec
précautions :
▪ La somme et la différence sont des opérations termes à termes, et nécessitent
donc des vecteurs de même dimension.
▪ Le produit ∗ est le produit matriciel.
▪ Pour utiliser la multiplication termes à termes, on doit remplacer ∗ par . ∗ , la
même chose pour la division.

26
MATLAB /OCTAVE A.U: 2022/2023
On peut trouver dans Matlab des commandes qui sont propres aux vecteurs :

o 𝒔𝒖𝒎(𝒙) : somme des éléments du vecteur 𝒙


o 𝒑𝒓𝒐𝒅(𝒙) : produit des éléments du vecteur 𝒙
o 𝒎𝒂𝒙(𝒙) : plus grand élément du vecteur 𝒙
o 𝒎𝒊𝒏(𝒙) : plus petit élément du vecteur 𝒙
o 𝒎𝒆𝒂𝒏(𝒙) : moyenne des éléments du vecteur 𝒙
o 𝒔𝒐𝒓𝒕(𝒙) : ordonne les éléments du vecteur x par ordre croissant 𝒙
o 𝒇𝒍𝒊𝒑𝒍𝒓(𝒙) : renverse l’ordre des éléments du vecteur 𝒙
o 𝒇𝒍𝒐𝒐𝒓(𝒙) : arrondit chaque élément de 𝒙 à l'entier le plus proche ≤ à cet élément
o 𝒄𝒆𝒊𝒍(𝒙) : arrondit chaque élément de 𝒙 à l'entier le plus proche ≥ à cet élément
o 𝒇𝒊𝒙(𝒙) : arrondit chaque élément de 𝒙 à l'entier le plus proche vers zéro
27
MATLAB /OCTAVE A.U: 2022/2023
Remarque:
L'opérateur « : »
▪ On peut utiliser cet opérateur de différentes manières dans Matlab (voir help
colon).
▪ Il nous permet de construire un vecteur dont les valeurs des éléments sont
incrémentées séquentiellement : 𝒅é𝒃𝒖𝒕 ∶ 𝒑𝒂𝒔 ∶ 𝒇𝒊𝒏

Tapez ces exemples sous Matlab:

▪ 𝟏𝟎: 𝟐: 𝟐𝟎
Qu’est ce que vous remarquez ?
▪ 𝟏𝟎: 𝟐𝟎
28
MATLAB /OCTAVE A.U: 2022/2023
▪ Si on a un vecteur 𝑉 = [ 𝑋1 𝑋2 … 𝑋𝑛 ] qui se compose de 𝑛 nombres, on peut
relever la valeur d’un nombre juste en indiquant sa position dans ce vecteur.

Exemple,
𝑽 = [𝟓 𝟕 𝟗 𝟑 𝟏 𝟒 𝟔 𝟖]

Si vous mettez dans la zone de commande 𝑉(1), il va afficher 5,

Si vous mettez dans la zone de commande 𝑉(4), il va afficher 3,

...
MATLAB /OCTAVE
... A.U: 2022/2023
29
Exercice:
Donnez le code Matlab qui permet de :

a. Créez un vecteur colonne vec1 de 4 éléments linéairement espacés entre 3 et 12.


b. Ajoutez deux lignes à la fin de ce vecteur avec la valeur 0.
c. Ajoutez 1 au deuxième et sixième éléments de ce vecteur.
d. Créez un second vecteur vec2 colonne de même dimension que vec1 contenant les
entiers pairs supérieurs ou égaux à 6.
e. Définir un vecteur sumvec comme la somme des deux vecteurs vec1 et vec2.
f. Définir un vecteur prodvec comme le produit termes à termes des deux vecteurs vec1 et
vec2.

30
MATLAB /OCTAVE A.U: 2022/2023
❑ Les matrices

Une matrice est composée de m lignes et n colonnes. Pour créer une matrice dans
MATLAB, on doit suivre les conventions de base suivantes :

o Séparer les éléments d'une ligne avec des espaces.

o Utilisez un point-virgule « ; » pour indiquer la fin de chaque ligne.

o Entourez l'intégralité de la liste des éléments avec des crochets [ ].

31
MATLAB /OCTAVE A.U: 2022/2023
Exercice :
1. Créer dans la zone de commande MATLAB, la matrice suivante :
6 5 1
𝑀= 2 7 6
4 8 9
2. Utiliser la commande 𝐦, 𝐧 = 𝒔𝒊𝒛𝒆 𝑴 . Qu’est ce que vous remarquez ?
3. Utiliser la commande 𝒏𝒖𝒎𝒆𝒍(𝑴). Qu’est ce que vous remarquez ?

4. Créer la matrice suivante : 𝑃 = [1 0 1; 3 2 ; 4 5 6]


Qu’est ce que vous remarquez ?

Il y a une erreur de syntaxe au niveau de la matrice P, car il n y a pas le même


nombre d’éléments (colonnes) à chaque ligne.
32
MATLAB /OCTAVE A.U: 2022/2023
Remarque:

▪ Pour extraire un élément d’une matrice 𝑀 on indique la ligne et la colonne de


celui-ci 𝑀(𝑖, 𝑗).
▪ Pour extraire une colonne ou une ligne entière on utilise le symbole (:) .
▪ La commande 𝒅𝒊𝒂𝒈(𝑴) permet d’extraire la diagonale de la matrice,
𝒅𝒊𝒂𝒈(𝑴, 𝒊) permet d’extraire la 𝑖 𝑖è𝑚𝑒 sur-diagonale de la matrice,
𝒅𝒊𝒂𝒈(𝑴, −𝒊) permet d’extraire la 𝑖 𝑖è𝑚𝑒 sous-diagonale de la matrice.

Comme pour les vecteurs il est possible d’obtenir la transposée d’une matrice avec
la commande « ’ » (une apostrophe à coté de la matrice).
33
MATLAB /OCTAVE A.U: 2022/2023
▪ On peut aussi extraire un élément de la matrice 𝑀 on indique son unique
numéro qui est son ordre dans la matrice: 𝑀(… )
▪ Le premier élément d’une matrice est celui à la 1ère ligne et la 1ère colonne, le
seconde élément est celui à la 2ème ligne et la 1ère colonne, etc …

Exemple d’une matrice avec la position des ses éléments en couleur rouge:
1 4 7 10
1 5 0 3
2 5 8 11
𝑀= 3 14 5 1
3 6 9 12
12 8 19 6

✓ 𝑀 3 = 12, 𝑀 7 = 0, …
34
MATLAB /OCTAVE A.U: 2022/2023
Exercice:
On considère la matrice précédente :
6 5 1
𝑀= 2 7 6
4 8 9
1. Extraire les éléments de la matrice : 𝑀 2,3 ; 𝑀 3,2 ; 𝑀 1,3
2. Extraire les éléments de la matrice : 𝑀 2, : ; 𝑀 : , 2 ; 𝑀 3, :
3. Extraire sous forme de vecteurs la diagonale, la 1ère sur-diagonale et la 1ère
sous-diagonale de la matrice 𝑀,
4. Calculer la transposée 𝑇 de 𝑀 .

Noter qu’en Matlab, on commence la numérotation des lignes/colonnes de la matrice à 1.


35
MATLAB /OCTAVE A.U: 2022/2023
❑ Opérations matricielles:
Sur la zone de commande,

𝟏 𝟑 𝟐
𝟏𝟎 𝟖 𝟓 𝟐
▪ Créer les matrices suivantes: 𝑨 = ,𝑩= et 𝐂 = 𝟒 𝟎 𝟐
𝟗 𝟐𝟒 𝟑 𝟒
𝟏 𝟓 𝟔
▪ Calculer la somme et la soustraction des deux matrices 𝐴 et 𝐵.

▪ Calculer la somme et la soustraction des deux matrices 𝐴 et 𝐶. Qu’est ce que vous


remarquez ?

▪ Calculer le produit: 𝐴.∗ 𝐵 et 𝐴 ∗ 𝐵 , et la division de 𝐴./𝐵 et 𝐴/𝐵 . Qu’est ce que


vous remarquez ?
36
MATLAB /OCTAVE A.U: 2022/2023
Remarque:

Aussi pour les matrices les opérations algébriques +, -, *, / doivent être prises avec
précautions :
▪ La somme et la différence sont des opérations termes à termes, et nécessitent
donc des matrices de même dimension.
▪ Le produit * est le produit matriciel.
▪ Pour utiliser la multiplication ou la division termes à termes, on doit remplacer
* par .* et / par . / comme le cas des vecteurs.

37
MATLAB /OCTAVE A.U: 2022/2023
Comme les vecteurs, il existe des matrices prédéfinies :
𝒆𝒚𝒆(𝒏) : la matrice identité (carrée de taille 𝒏),
𝒐𝒏𝒆𝒔(𝒎, 𝒏) : matrice de 𝒎 ligne et 𝒏 colonnes dont tous les éléments valent 𝟏,
𝒛𝒆𝒓𝒐𝒔(𝒎, 𝒏) : matrice de 𝒎 ligne et 𝒏 colonnes dont tous les éléments valent 0,
𝒓𝒂𝒏𝒅(𝒎, 𝒏) : matrice de 𝒎 ligne et 𝒏 colonnes dont les éléments sont génères de
manière aléatoire entre 0 et 𝟏.
𝒎𝒂𝒈𝒊𝒄(𝒏) : une matrice magique de dimension 𝒏 ( somme des éléments d’une ligne
= somme des éléments d’une colonne )
𝒅𝒆𝒕(𝑨) : calcule le déterminant de 𝑨 (s’il existe),
𝒊𝒏𝒗(𝑨) : calcul l’inverse de la matrice 𝑨 (s’il existe).
Rappel:
Lorsque le déterminant d’une matrice est nul, cette matrice est dite singulière et elle n’admet pas de matrice
inverse.
38
MATLAB /OCTAVE A.U: 2022/2023
❑ Filtrage d’une matrice:
La fonction 𝒇𝒊𝒏𝒅 permet de trouver les éléments d’une matrice qui respectent
certaine conditions. Cette fonction génère un vecteur colonne contenant les numéros
d’ordre des éléments recherchés.

Par exemple: 6 5 2 3
𝑀= 1 9 5 13
12 8 19 6
o 𝒇𝒊𝒏𝒅(𝑴 < 𝟒): renvoie les numéros d’ordre de tous les éléments de 𝑀 inférieur à 4 :
𝟐
𝟕
𝟏𝟎
39
MATLAB /OCTAVE A.U: 2022/2023
On peut ensuite utiliser ces numéros d’ordre pour indexer directement la matrice M
et influencer sur ses éléments.

Par exemple, on peut mettre à 0 tous les éléments de 𝑀 qui sont inférieur à 5.

6 5 2 3
𝑀= 1 9 5 13
12 8 19 6

≫ 𝑧 = 𝑓𝑖𝑛𝑑 𝑀 < 5
6 5 0 0
𝑀= 0 9 5 13
≫ 𝑀(𝑧) = 0 12 8 19 6

40
MATLAB /OCTAVE A.U: 2022/2023
Aussi, on peut ajouter un nombre sur les éléments d’une matrice qui respectent une
condition.

Par exemple, on peut ajouter un 1 à tous les éléments de 𝐴 qui sont inférieur à 1.

0 5 2 3
𝐴= 4 0 5 0
12 8 0 6

≫ k = 𝑓𝑖𝑛𝑑 𝐴 < 1
1 5 2 3
𝐴= 4 1 5 1
≫𝐴 𝑘 =𝐴 𝑘 +1 12 8 1 6

41
MATLAB /OCTAVE A.U: 2022/2023
Exercice:
On considère la matrice suivante:

−1 2 −2 3
𝐴= 4 1 −3 1
2 −3 −1 1

❑ Réaliser les commandes suivantes: 𝐬𝐮𝐦(𝑨, 𝟏) et 𝐬𝐮𝐦(𝑨, 𝟐), qu’est ce que vous
remarquez ? Même pour 𝐩𝐫𝐨𝐝(𝑨, 𝟏) et 𝐩𝐫𝐨𝐝(𝑨, 𝟐),

❑ Réaliser l’opération de la valeur absolue sur la matrice à l’aide du mot clef 𝒇𝒊𝒏𝒅.

42
MATLAB /OCTAVE A.U: 2022/2023
Remarque:

❑ 𝐬𝐮𝐦(𝑨, 𝟏) : calcul la somme des éléments de A le long des colonnes.

❑ 𝐬𝐮𝐦(𝑨, 𝟐) : calcul la somme des éléments de A le long des lignes.

❑ 𝐩𝐫𝐨𝐝(𝑨, 𝟏) : calcul le produit des éléments de A le long des colonnes.

❑ 𝐩𝐫𝐨𝐝(𝑨, 𝟐) : calcul le produit des éléments de A le long des lignes.

43
MATLAB /OCTAVE A.U: 2022/2023
❑ Concaténation de matrices:
On peut créer une nouvelle matrice à partir d’anciennes matrices.

Par exemple: 𝟏 𝟒 𝟓 𝟑 𝟎
𝟐 𝟎 𝟏
𝑨= 𝟓 , 𝐁 = 𝟏 −𝟏 𝟎 et C =
𝟑 𝟔 𝟐 𝟓
𝟏 𝟓 𝟎

On peut créer deux matrices 𝐷 et 𝐸 tel que:

𝟏 𝟒
≫ 𝐷 = [𝐵 𝐴] 𝟓 𝟑 𝟎 𝟏 𝟒 𝟐 𝟓
𝑫 = 𝟏 −𝟏 𝟎 𝟐 𝟓 et 𝑬= 𝟑 𝟔
≫ 𝐸 = [𝐴; 𝐶] 𝟏 𝟓 𝟎 𝟑 𝟔 𝟎 𝟏
𝟐 𝟓
44
MATLAB /OCTAVE A.U: 2022/2023
Plan
1. Introduction

2. Commandes de base en Matlab

3. Vecteurs et matrices

4. Polynômes
5. Fonction et Script

6. Gestion d’espace

7. Exercices d’application

MATLAB /OCTAVE A.U: 2022/2023 45


4. Polynômes
Les polynômes, dans MATLAB, sont représentés sous forme de vecteurs lignes dont les
composantes sont données par ordre des puissances décroissantes. Un polynôme de degré
𝑛 est représenté par un vecteur de taille (𝑛 + 1).

Exemple: 𝑃 𝑥 = 2𝑥 3 + 5𝑥 2 − 3𝑥 + 4

Dans la zone de commande de Matlab, on peut représenter le polynôme 𝑃 𝑥 de degré 3,


par ses coefficients sous forme d’un vecteur ligne:

≫ 𝑃 = [2 5 − 3 4]

MATLAB /OCTAVE A.U: 2022/2023 46


❑ Produit des polynômes
Le produit de deux polynômes sous Matlab se fait à l’aide de la commande (𝒄𝒐𝒏𝒗) .
𝒄𝒐𝒏𝒗 est une fonction qui fait le produit de convolution.

Exemple:
Soient les deux polynômes 𝑃 𝑥 = 2𝑥 3 − 𝑥 2 + 3𝑥 + 2 et H 𝑥 = 𝑥 2 + 2𝑥 + 1.

Leur produit 𝒈 𝒙 est sous forme: ≫ 𝒈 = 𝒄𝒐𝒏𝒗 𝑷, 𝑯


𝒈
2 3 3 7 7 2

Ainsi, le polynôme 𝒈 𝒙 obtenu est :


𝒈 𝒙 = 𝟐𝒙𝟓 + 𝟑𝒙𝟒 + 𝟑𝒙𝟑 + 𝟕𝒙𝟐 + 𝟕𝒙 + 𝟐
MATLAB /OCTAVE A.U: 2022/2023 47
❑ Division des polynômes
𝐝𝐞𝒄𝒐𝒏𝒗 est une fonction qui fait la division entre deux polynômes, elle affiche le quotient
sans donner le reste s’il existe.

Exemple:
On considère les deux polynômes précédents 𝑃 𝑥 et H 𝑥 .

𝑫 𝒙 est la division de 𝑃 𝑥 par H 𝑥 :


≫ 𝑫 = 𝒅𝒆𝒄𝒐𝒏𝒗 𝑷, 𝑯
𝑫=
2 -5
Ainsi, le polynôme 𝑫 𝒙 obtenu est :
𝑫 𝒙 = 𝟐𝒙 − 𝟓
48
MATLAB /OCTAVE A.U: 2022/2023
❑ Racines des polynômes
Soit le polynôme 𝑷 𝒙 d’ordre 𝑛.

𝑷 𝒙 = 𝒂𝒏 𝒙𝒏 + 𝒂𝒏−𝟏 𝒙𝒏−𝟏 + 𝒂𝒏−𝟐 𝒙𝒏−𝟐 + ⋯ + 𝒂𝟏 𝒙𝟏 + 𝒂𝟎

Le polynôme 𝑷 𝒙 peut s’écrire sous forme factorisée:

𝑷 𝒙 = 𝒂𝒏 𝒙 − 𝒓𝟏 𝒙 − 𝒓𝟐 𝒙 − 𝒓𝟑 … (𝒙 − 𝒓𝒏 )

Où, 𝒓𝟏 , 𝒓𝟐 , …, 𝒓𝒏 sont les racines du polynômes 𝑷 𝒙 .

Un polynôme d’ordre 𝑛 possède 𝑛 racines qui peuvent être réelles ou complexes.

MATLAB /OCTAVE A.U: 2022/2023 49


Remarque 1:
Pour trouver les racines d’un polynôme en Matlab, on peut utiliser la commande (𝒓𝒐𝒐𝒕𝒔).

Exemple: Soit le polynôme 𝑃 𝑥 = 𝑥 3 − 7𝑥 + 6


Les racines 𝑟 de 𝑃 𝑥 sous Matlab sont: ≫ 𝑟 = 𝑟𝑜𝑜𝑡𝑠 𝑃
𝑟=
−3.0000
2.0000
1.0000
Ainsi, le polynôme 𝑷 𝒙 peut s’écrire sous forme factorisée:

𝑃 𝑥 = 𝑥 − −3 𝑥 − 2 (𝑥 − 1)

MATLAB /OCTAVE A.U: 2022/2023 50


Remarque 2:
On peut déduire un polynôme à partir de ses racines avec la commande (𝐩𝐨𝐥𝐲).

Exemple: Si on prend l’exemple précèdent, à partir des racines 𝑟 :

On déduit 𝑃 𝑥 :

≫ 𝑃 = 𝑝𝑜𝑙𝑦 𝑟
𝑃=
1.0000 0.0000 − 7.0000 6.0000

À partir de ces coefficients, on peut déduire le polynôme 𝑷 𝒙 :

𝑃 𝑥 = 𝑥 3 − 7𝑥 + 6
MATLAB /OCTAVE A.U: 2022/2023 51
Remarque 3:
La commande (𝐩𝐨𝐥𝐲) peut accepter une matrice comme argument dont elle retourne le
polynôme caractéristique.

Exemple:
À partir de la matrice : 𝑀 =
1 2
4 3
On déduit les coefficients de son polynôme 𝑃 𝑥 : ≫ 𝑀 = [1 2 ; 4 3]
≫ 𝑃 = 𝑝𝑜𝑙𝑦(𝑀)
𝑃=
1 −4 −5
À partir de ces coefficients on déduit le polynôme 𝑷 𝒙 :
𝑃 𝑥 = 𝑥 2 − 4𝑥 − 5
MATLAB /OCTAVE A.U: 2022/2023 52
❑ Evaluation des polynômes
La commande 𝐩𝐨𝐥𝐲𝐯𝐚𝐥 est utilisée pour évaluer un polynôme en un point 𝑥 donné.

Exemple: Soit le polynôme 𝑃 𝑥 = 𝑥 3 − 7𝑥 + 6


On peut évaluer 𝑃 en 𝑥 = 3 par : 𝒑𝒐𝒍𝒚𝒗𝒂𝒍(𝑷, 𝟑)

Syntaxe: ≫ 𝑃 = [1 0 − 7 6]
≫ 𝑝𝑜𝑙𝑦𝑣𝑎𝑙(𝑃, 3)
𝑎𝑛𝑠 =
12

𝑃 3 = 33 − 7 × 3 + 6 = 12 …
53
MATLAB /OCTAVE A.U: 2022/2023
Exercice d’application:
Soient les deux polynômes suivants:

1 1
𝑃 𝑥 = 𝑥4 − 5𝑥 3 + 5𝑥 2 + 5𝑥 − 6 𝐺 𝑥 = 𝑥2 + 𝑥−
4 8

1. Calculer le produit des deux polynômes.


2. Calculer le quotient obtenu de la division de 𝑃 par 𝐺.
3. Calculer 𝑃(1), 𝑃(2) et 𝑃(3)
4. Calculer les racines de 𝑃.
1 1
5. Déduire le polynôme qui possède les deux racines suivantes: − et
2 4

MATLAB /OCTAVE A.U: 2022/2023 54


Plan
1. Introduction

2. Commandes de base en Matlab

3. Vecteurs et matrices

4. Polynômes

5. Fonction et Script
6. Gestion d’espace

7. Exercices d’application

MATLAB /OCTAVE A.U: 2022/2023 55


5. Fonction et Script

Les programmes Matlab peuvent êtres des scripts ou des fonctions.

Une fonction est simplement une collection de commandes Matlab, placée dans
un 𝒎 − 𝒇𝒊𝒄𝒉𝒊𝒆𝒓, qui peut recevoir des entrées et retourner des sorties.

Un script est aussi stocké dans un 𝒎 − 𝒇𝒊𝒄𝒉𝒊𝒆𝒓, qui n’accepte pas des entrées,
et ne retourne aucune sortie.

56
MATLAB /OCTAVE A.U: 2022/2023
❑ Fonction
Une fonction qui est définie dans un 𝑚 − 𝑓𝑖𝑐ℎ𝑖𝑒𝑟, commence par une ligne de
la forme :
𝒇𝒖𝒏𝒄𝒕𝒊𝒐𝒏 [𝑦1, … , 𝑦𝑛] = 𝑵𝒐𝒎_𝒅𝒆_𝒍𝒂_𝒇𝒐𝒏𝒄𝒕𝒊𝒐𝒏 (𝑥1 , … , 𝑥𝑚)
Ou :
▪ 𝑥1 , … , 𝑥𝑚 sont les variables d’entrée, qui sont nécessaires à la fonction pour
accomplir ses calculs.
▪ 𝑦1, … , 𝑦𝑛 sont les variables de sortie sur lesquels les résultats de la fonction
sont retournés ;

Rq: il faut enregistrer le fichier avec le même nom de la fonction.


57
MATLAB /OCTAVE A.U: 2022/2023
Exemple d’application:
Par exemple, si on souhaite créer une fonction 𝒓𝒂𝒄𝒊𝒏𝟐, qui calcule et renvoie en
sortie la racine de deux scalaires passés en paramètre, on écrira dans le fichier
racin2.m :
function [y] = racin2(a,b)
y = sqrt(a+b);
end

Pour tester cette fonction, placez-vous dans le répertoire qui contient le fichier
racin2.m et on écrira dans la fenêtre de commande (par exemple 𝒓𝒂𝒄𝒊𝒏𝟐(𝟒, 𝟓). Le
résultat affiché est 𝑦 = 3 :

racin2(4,5)
y=3
58
MATLAB /OCTAVE A.U: 2022/2023
❑ Script
Le script est un 𝑚 − 𝑓𝑖𝑐ℎ𝑖𝑒𝑟 simple. Il s’agit simplement d’une liste de
commandes mises bout à bout et sauvegardée dans un fichier.
Par exemple, si on souhaite faire un script 𝒔𝒐𝒎𝒎𝒆, qui calcule et renvoie en sortie
la somme de deux scalaires passés en paramètre, on écrira dans le fichier
somme.m : a=3;
b=5;
y = a+b
Pour le lancer, on écrit simplement l’instruction 𝒔𝒐𝒎𝒎𝒆 dans la fenêtre de
commande Matlab. Le résultat affiché est 𝑦 = 8 : somme
y=
8
59
MATLAB /OCTAVE A.U: 2022/2023
Plan
1. Introduction

2. Commandes de base en Matlab

3. Vecteurs et matrices

4. Polynômes

5. Fonction et Script

6. Gestion d’espace
7. Exercices d’application

MATLAB /OCTAVE A.U: 2022/2023 60


6. Gestion d’espace
❑ Sauvegarder un fichier
Pour sauvegarder les résultats d’un projet sous format Matlab (.mat) avant de
quitter le logiciel, il suffit d’écrire à la fin de votre script la commande suivante:

save ( ' Nomdefichier . mat ' )

Si on désire de sauvegarder le projet sous un autre format avec des variables bien
précises, il suffit de les indiquer dans votre commande save :

save (' Nomdefichier.format','variable1','variable2', … )


61
MATLAB /OCTAVE A.U: 2022/2023
❑ Charger un fichier

Pour charger le résultat d’un projet déjà sauvegardé, il suffit de taper la commande
suivante :
load ( ' Nomdefichier . format ' )

Remarque:

Lorsqu'on reviendra dans Matlab pour charger un fichier, il faut vérifier qu'on est dans le
même dossier de travail où on a sauvegardé ce fichier.
62
MATLAB /OCTAVE A.U: 2022/2023
❑ Supprimer un fichier

Pour supprimer un fichier de résultats d’un projet déjà sauvegardé, il suffit de taper
la commande suivante :

delete ( ' Nomdefichier . format ' )

Remarque:
Pour supprimer à la fois, tous les fichiers qui sont sous format Matlab dans le dossier de
travail, il suffit de taper la commande:
delete *. mat
63
MATLAB /OCTAVE A.U: 2022/2023
Exemple d’application:
Créer ces 2 vecteurs dans un même script :

𝑃1 = 𝑙𝑖𝑛𝑠𝑝𝑎𝑐𝑒(1,5,5) et 𝑃2 = 10: 2: 20

1. Enregistrer le résultat dans un fichier nommé Result1 sous format: .mat


2. Enregistrer le résultat dans un fichier nommé Result2 sous format: .txt
3. Enregistrer le résultat dans un fichier nommé Result3 sous format: .txt contenant
que les valeurs de P2 .
Dans la zone de commande:
1. Essayer de charger le résultat du fichier Result3
2. Essayer de supprimer le fichier Result1

MATLAB /OCTAVE A.U: 2022/2023 64


Plan
1. Introduction

2. Commandes de base en Matlab

3. Vecteurs et matrices

4. Polynômes

5. Fonction et Script

6. Gestion d’espace

7. Exercices d’application
MATLAB /OCTAVE A.U: 2022/2023 65
7. Exercices d’application
Exercice 1:
Soit la matrice carrée 𝑀1 suivante:
1 5 7 0
𝑀1 = 0 2 6 4
7 8 3 3
9 6 2 4

❑ A partir de 𝑀1, construire une matrice diagonale 𝑀2 ayant la même


diagonale que 𝑀1.

66
MATLAB /OCTAVE A.U: 2022/2023
Exercice 2:
On considère le système suivant:
𝟐𝒙 + 𝟑𝒚 − 𝒛 = 𝟒

−𝒙 + 𝒚 + 𝟓𝒛 = 𝟏

𝟒𝒙 + 𝟐𝒚 + 𝟐𝒛 = −𝟐

❑ Donnez la forme matricielle de ce système.

❑ Résolvez ce système en utilisant l’inversion matricielle puis en utilisant la


division à gauche.
67
MATLAB /OCTAVE A.U: 2022/2023
Exercice 3:
L’équation ci-dessous représente la relation entre l’échelle de la température en Celsius
et en Fahrenheit.
𝑻 °𝑪 = 𝒂𝑻(°𝑭) + 𝒃

À partir de la température de fusion de l’eau, 𝑻 °𝑭 = 𝟑𝟐 et 𝑻 °𝑪 = 𝟎 et sa


température d’ébullition 𝑻 °𝑭 = 𝟐𝟏𝟐 et 𝑻 °𝑪 = 𝟏𝟎𝟎 , on peut déduire les
coefficients 𝒂 et 𝒃.

1) Donnez le système d’équation qui permet d’obtenir 𝒂 et 𝒃.


2) Donnez la forme matricielle de ce système.
3) Résolvez ce système.

68
MATLAB /OCTAVE A.U: 2022/2023
Exercice 4:
Soit le circuit suivant en régime alternatif :
𝑹𝟏 𝑹𝟐
✓ 𝑹𝟏 = 𝟏𝟓𝟎𝛀 𝒆𝒕 𝑹𝟐 = 𝟎. 𝟓 𝑲𝛀 𝐼1 𝐼2 𝐼3

✓ 𝑪 = 𝟏𝑭 𝒆𝒕 𝑳 = 𝟗𝟎𝒎𝑯 𝑼𝟎 C L
✓ 𝑼𝟎 = 𝟓 𝑽 𝒆𝒕 𝒇 = 𝟓𝟎𝐇𝐳

1) Relever le système qui relie les courants 𝐼1 , 𝐼2 et 𝐼3 (en notation complexe).


2) Donnez la forme matricielle de ce système.
3) Calculer les valeurs efficaces et phases des courants 𝐼1 , 𝐼2 et 𝐼3 .

69
MATLAB /OCTAVE A.U: 2022/2023
FIN

MATLAB /OCTAVE A.U: 2022/2023 70

Vous aimerez peut-être aussi