0% ont trouvé ce document utile (0 vote)
37 vues105 pages

Introduction à MATLAB pour ingénieurs

Le document présente MATLAB comme un outil puissant pour résoudre des problèmes d'ingénierie grâce à ses capacités de manipulation de matrices et de visualisation graphique. Il décrit les fonctionnalités de base de MATLAB, y compris la gestion des variables, les types de données, et les commandes essentielles pour l'utilisation du logiciel. Enfin, il aborde les opérateurs arithmétiques, logiques et relationnels, illustrant leur utilisation à travers des exemples pratiques.

Transféré par

jowadiray
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
37 vues105 pages

Introduction à MATLAB pour ingénieurs

Le document présente MATLAB comme un outil puissant pour résoudre des problèmes d'ingénierie grâce à ses capacités de manipulation de matrices et de visualisation graphique. Il décrit les fonctionnalités de base de MATLAB, y compris la gestion des variables, les types de données, et les commandes essentielles pour l'utilisation du logiciel. Enfin, il aborde les opérateurs arithmétiques, logiques et relationnels, illustrant leur utilisation à travers des exemples pratiques.

Transféré par

jowadiray
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Informatique 1 :

1
Introduction

MATLAB est utilisé pour résoudre un problème qui peut être idéalement représenté par des matrices,
par l’utilisation des opérations de l'algèbre matricielle linéaire et de la représentation relativement
simple des graphiques en deux et trois dimensions.
Le calcul de la solution d'équations linéaires, la présentation, la manipulation et l'affichage des
données d'ingénierie sont peut-être les meilleurs exemples de problèmes pour lesquels MATLAB est
idéalement adapté.

Non seulement le langage de programmation MATLAB est exceptionnellement simple à utiliser, le


code de programme MATLAB sera beaucoup plus court et plus simple dans la mise en œuvre d'un
programme équivalent en langage C, Fortran ou Java.
MATLAB est donc un langage idéal pour la création de prototypes de solutions logicielles à des
problèmes d’ingénierie.
MATLAB permet le travail interactif soit en mode commande, soit en mode programmation ;
avec la possibilité de faire des visualisations graphiques. Considéré comme l’un des meilleurs
langages de programmation, MATLAB possède les particularités suivantes par rapport à ces
langages :
• la programmation facile,
• la continuité parmi les valeurs entières, réelles et complexes,
• la gamme étendue des nombres et leur précision,
• la bibliothèque mathématique très compréhensive,
• l’outil graphique qui inclut les fonctions d’interface graphique et les utilitaires,
• la possibilité de liaison avec les autres langages classiques de programmation (C ou
Fortran).

• l’outil Simulink, pour modéliser et simuler des systèmes en utilisant des schémas-blocs,

3
I. Présentation et prise en main de Matlab
On clique sur l’icone Matlab pour le démarrer, la fenêtre de commandes (command Windows)
apparait.

Interface de Matlab

4
Sous fenêtre Fonctionnalités
Cette fenêtre représente le centre d’intérêt et le volet le plus
importante dans Matlab, permettant aux utilisateurs la saisie directe
Fenêtre de Commande et l’exécution des commandes (instructions) avec l’affichage des
(Command Window) résultats.
La présence d’un Curseur >> indique que Matlab est prêt pour
l’exécution d’une nouvelle Commande.
Cette partie de la fenêtre principale présente (affiche) l’ensemble
Espace de travail des variables en cous d’utilisation par Matlab :
(Workspace) - Une colonne « Name » indique le nom de la variable (identifiant).
- Une colonne « Value » indique sa valeur.
Permet l’affichage du dossier courant avec la liste des dossiers et
fichiers où doit se situer vos programmes (fichiers *.m).
Dossier en cours Il est possible de modifier le dossier en cours en navigant
(Current Folder) simplement a l’intérieur de cette fenêtre.
Astuce : modifier le dossier en cours a l’aide de la commande CD
dans la fenetre de Commande
5
Fonctionnalités basiques de MATLAB

Matlab offre différentes fenêtres dont une fenêtre principale « fenêtre de commande » (Command Window)
avec le prompt (symbole) >>

Cette fenêtre permet d’introduire les commandes a Matlab. Toutes les commandes sont en minuscules et en
Anglais, le résultat de chaque commande est affiché systématiquement après la validation (touche Entrée)
dans cette même fenêtre.

1. Démarrage de MATLAB : Pour l’exécution du logiciel Matlab sous Windows : Utilisez les raccourcis de
lancement MATLAB dans le bureau de Windows ou bien dans le menu Démarrer > Tous les
programmes...

2. Quitter Matlab : utilisez la commande “exit“ ou “quit“ dans la fenêtre de commande (>>) afin de fermer
et quitter Matlab.

6
Répertoire de travail de base

Il s’agit du répertoire (dossier) dans lequel Matlab se place directement lors du lancement. Il est
important de spécifier un répertoire propre à vos travaux pratiques (TP’s) afin d’effectuer des
sauvegardes à la fin de chaque séance. Pour cela, utilisez le gestionnaire de chemins dans la sous
fenêtre « Current Folder » et placez vous dans votre répertoire de travail.

7
Outils d'aide et d'information

Dans l’apprentissage de Matlab la commande « help » est importante afin d’avoir la syntaxe
exacte et la description des fonctions prédéfinies du langage Matlab. Le résultat de la commande
help est un aperçu des commandes disponibles :

8
La commande help section permet d’obtenir des informations sur une section particulières :

9
Pour avoir l’aide d’une commande particulière, entrez : help commande

10
Pour faire une recherche par mot-clé dans l'aide MATLAB, utilisez : lookfor mot

- Vous pouvez à tout moment accéder a l’aide via la fenêtre principale et les onglets index et recherche.
- Pour exécuter une commande il faut appuyer sur la touche clavier Entrée.
- Toutes les commandes Matlab sont en Minuscules et en Anglais. 11
II. Manipulation de variables

Introduction

Matlab propose une gestion transparente et typage dynamique des variables, aucune distinction entre
variable entière, réelle, complexe, chaîne de caractères. Ainsi les types de variables et dimension de
variables n’ont pas a être déclarés préalablement avant leur utilisation et manipulation, même pour
les tableaux et les matrices. Il suffit simplement d’affecter ( = ) une valeur au nom de la variable
depuis la fenêtre de command. Par la suite, Matlab crée automatiquement la variable correspondante
avec un espace mémoire nécessaire dans le Workspace. Dans le cas où la variable existe déjà,
Matlab modifie son contenu et, si nécessaire, effectue une allocation d’espace mémoire selon le
besoin (exemple : redimensionnement d’un tableau de variables). La création et la manipulation de
variables est basée sur des expressions.

12
Un nom (identifiant) de variable valide doit respecter les conditions suivantes :

• Un Identifiant de variable ne peut pas être un mot clé propre à Matlab


• Commencer par une lettre suivie de lettres, chiffres ou caractères souligné « _ »
• Un Identifiant de variable ne peut pas contenir le symbole " " (espace)
• Utilisation des lettres dans l’intervalle a-z et A-Z
• Les caractères spéciaux et accentués ne sont pas autorisés (@, #, é, è…)
• Contenir 63 caractères maximum.

Exemples valides : temp1 , Temp1, temp_1, y_min , mat_A1


Exemples non valides : 01XY (commence par un chiffre), temp-1 (considéré comme expression),
tempé_1 (contient un carctère accentué)

Remarque :
Matlab est sensible à la casse. Une distinction à faire entre les minuscules et les majuscules. La
variable MAX_A est différente de la variable max_A
13
Calculs élémentaires

Dans la sous-fenêtre commande de Matlab, on écrit le calcul désiré en mode commande, ci-
dessous un ensemble d’exercices corrigés sous forme de Commandes :

Commande 1
>> x = 2+1
→ Validez la commande avec la touche « Entrée » du clavier :
Résultat
x=3

La réponse de Matlab à une commande de ce type est le nom de la variable avec son contenue.
Toutes les variables utilisées restent présentes en mémoire et peuvent être réutilisées. Ces
variables sont affichées dans la sous-fenêtre espace de travail (Workspace).

14
Généralement, les commandes utilisées en Matlab affectent des valeurs à des variables. Dans le
cas contraire, le résultat de la commande est automatiquement affecté à la variable ans (answer) :

Commande 2
>> 3+7

→ Validez la commande avec la touche « Entrée » du clavier :

Résultat
ans = 10

Matlab affiche le résultat de l’opération d’addition en l’assignant à la variable ans (answer)


avec la création de cette nouvelle variable dans la sous-fenêtre Workspace (espace de travail).

15
Commande 3
>> (14+6)/4
Résultat
ans = 5
→ Ainsi, la nouvelle commande écrasera l’ancienne valeur (=10) de la variable ans par la
nouvelle valeur (= 5).

→ Pour ne pas afficher le résultat, mettez ; (point-virgule) à la fin de la commande :


Commande 4
>> y= 5-2*3 ;
>>

→ Pour connaître la valeur d'une variable, il suffit de taper son nom :


Commande 5
>> y
Résultat
y = -1
16
→ Matlab permet l’exécution de plusieurs commandes sur la même ligne, Il suffit de séparer
les commandes sur la même ligne à l'aide d'une (,) virgule ou (;) d'un pointvirgule :

Commande 6
>> a = 21; b = 8, c = 9

Résultat
b=8c=9

→ Matlab affiche les deux variables b et c seulement, la valeur de la variable « a » n’est pas
affichée en présence d’un (;) point-virgule après la commande. Mais on peut remarquer que
Matlab a exécuté l’opération en créant la nouvelle variable « a » qui vaut 21 dans la sous
fenêtre Worksapce.

17
Toutes les variables crées sont affichées dans la fenêtre Workspace de l’interface Matlab et
conservées en permanence en mémoire. La commande who permet d’afficher la liste de ces
variables en mode texte :

Commande 7
>> who

Your variables are:


a ans b c x y

18
La commande whos donne la liste des variables présente dans l’espace de travail ainsi que
leurs propriétés :

Commande 8
>> whos

19
La commande clear a permet de supprimer seulement la variable (a) du Workspace.

Commande 9

>> clear a

>> who
Your variables are:
ans b c x y

La commande clear all permet d’effacer toutes les variables du Workspace.

Remarque :
Avant chaque exercice (TP’s), commencez par nettoyer l’espace de travail (Workspace) a l’aide
de la Commande « clear ». La commande « clc » permet d’effacer l’écran (fenêtre de
commande) de Matlab.
20
Les types de variables

Une des caractéristiques de Matlab est que toute variable quelque soit son type est considérée
comme une matrice. Les scalaires sont des matrices (1 × 1), les vecteurs lignes sont des
matrices (1 × n), les vecteurs colonnes sont des matrices (n× 1).

Matlab permet la construction explicite des vecteurs et des matrices en entrant leurs
coefficients directement dans la fenêtre de commande :

• Les types relatifs aux nombres : Matlab stocke par défaut tous les nombres (entiers et réels)
en "double précision" (8 octets par nombre, donc 64 bits). La saisie des nombres réels en
notation décimale standard (si nécessaire en notation scientifique (e) avec affichage de la
puissance de 10).

21
Exemple (corrigés)

>> a=1 %le pourcentage permet d’introduire des commentaires !


a=1

>> b=1.02 %nombre réel


b = 1.0200

>> f=0.000145 %notation décimale


f = 1.4500e-04 %Avec résultat en notation scientifique (e)

>>c=2.16*10^(-6) %expression_1
c = 2.1600e-06

>>c=2.16e-06 %notation scientifique équivalente de l’expression_1


c= 2.1600e-06

22
• Le type complexe : dans Matlab, un nombre complexe est de la forme : z = a + bi . Stocké de
façon interne sur 2x 8 octets, respectivement pour la partie réelle et la partie imaginaire. Les
fonctions usuelles de manipulation des nombres complexes sont prédéfinies dans Matlab (real(z)
, imag(z), abs(z), arg(z) et conj(z)).

Exemple (corrigés)

>> z=1+2.4i % la constante i est le nombre imaginaire pré-déclaré


z = 1.0000 + 2.4000i
>> real(z) %Partie réelle de z
ans = 1
>> imag(z) %Partie imaginaire de z
ans = 2.4000
>> conj(z) %Calculer le conjugué de z
ans = 1.0000 - 2.4000i
>> abs(z) %Calculer le module de z
ans = 2.6000 23
• Le type Logique (Booléen) : peut avoir deux valeurs (true=1 ou false=0)

Exemple (corrigés):
>> x= true
x=1
>> y= false
y=0

• Le type chaine de caractères : ce type de variables se manipule comme des vecteurs lignes.
pour créer une chaîne de caractères il faut la déclarée avec des guillemets simples ( ’ ) au
début et à la fin.

Exemple (corrigés):
>> S='Matlab' %Créer une chaîne de caractères
S = Matlab

>> S(2) %Afficher le 2ième élément de la chaîne S


ans = a
24
• Vecteurs : un vecteur ligne se déclare entre crochets [..] en séparant les éléments avec des
espaces ou des (,) virgules. Pour un vecteur colonne, le séparateur est ( ;) le point- virgule.

Exemple (corrigés):
>> v = [1 2 3] % vecteur ligne avec des espaces au milieu
v=123

>> v = [1, 2, 3] % vecteur ligne avec des virgules au milieu


v=123

>> z = [4;5;6] % vecteur colonne avec des points-virgules au milieu


z=4
5
6

25
• Matrices : une matrice se déclare comme les vecteurs, en séparant les colonnes par espace et
les lignes par point- virgule.

Exemple (corrigés):

>> A = [1 2; 3 4] %Créer une matrice 2x2


A=1 2
3 4

Dans les chapitres suivants, nous allons voir en détails comment accéder aux valeurs des
matrices et vecteurs (en lecture et écriture) ainsi des commandes (fonctions Matlab) pour créer
des matrices et vecteurs de manière automatique.

26
Exercice (avec solution) :
Le type d'une variable est déterminé de manière automatique à partir de l'expression
mathématique ou de la valeur affectée à la variable.

La commande suivante :
>> a=45 ; b=‘Hello’ ; c=a+5i ; d=true;

Permet de crée 4 variables :


• a de type réel et vaut : 45
• b de type chaine de caractère et vaut : Hello
• c de type complexe et vaut : 45+5i
• d de type booléen (logique) et vaut : 1

27
Opérateurs et priorités

Il existe essentiellement 3 types d’opérateur :

• Les opérateurs arithmétiques : Avec Matlab, vous pouvez effectuer des opérations sur vos
variables en respectant les règles classiques de priorités. Il est possible de modifier cet ordre
de priorité en intégrant les parenthèses ( ).

28
Exercices :

Calculez l’expression :

Solution :

>> p = 3^2 * (2+5)/(5-2)


P = 21

Calculez l’expression :

Solution :

>>x=3 ; f= (4*x^2-2*x+3) / (x^3+1)


f= 1.1786
29
• Les opérateurs Logiques :

• Les opérateurs relationnels :

30
Exercices : Le but de cette démonstration est d’utiliser les opérateurs relationnels et logiques afin de
comprendre leurs fonctionnements. Nous considérons les deux variables A et B définies comme suit :

>> A=8; B=15; % Création des variables A et B

>> A<B % Si A est inférieur à B alors true=1


ans = 1

>> B<A % Si B est inférieur à A alors true=1 sinon false=0


ans = 0

>> ~(A<B) % Not (true) = 0


ans = 0

>> (A==B) % Si A est égal à B alors true(1) sinon false(0)


ans = 0

31
>> (A<10)&(B=2) %Erreur B=2 est une affectation et non pas relation
(A<10)&(B=2)

Error:

>> (A<10)&(B==2) % les deux relations sont fausses


ans = 0

>> (A<10)&(B==15) % les deux relations sont vraies


ans = 1

>> z = (A==6) % le résultat de comparaison (A==6) est affecté à z


z=0

32
Variables et Expressions sous Matlab

Objectifs
Le but principal : la manipulation des variables et la définition d’expressions de calculs simples. La
gestion des types d’affichage et les variables prédéfinies de Matlab et finalement la procédure de
sauvegarde des variables dans un fichier pour une utilisation ultérieure.

Format d’affichage
Matlab fonctionne toujours de façon interne en précision maximum (double précision). Par contre le
format d'affichage des nombres dans la fenêtre "Command Window" est configurable à l'aide de la
commande « format » :

33
Variables Spéciales (prédéfinies)
Matlab possède des variables prédéfinie (constantes), ces variables existent même si elles ne sont
pas présentes dans le Workspace :

Exemples avec solution :


>> pi
ans = 3.14
>> format long % Pour afficher davantage de décimales
>> pi
ans = 3.141592653589793
>> i %L’unité imaginaire pour définir les nombres complexes
ans = 0.0000 + 1.0000i
>>i^2
ans = -1
>> 0/0 %Not-A-Number : résultat numérique d’une opération non définie
ans = NaN

Remarque : si l’utilisateur déclare une variable « pi =4 » avec Matlab va utiliser cette nouvelle
valeur pour toutes utilisation de « pi » jusqu’au prochain redémarrage de Matlab. 34
Sauvegarde des variables

Dans Matlab toutes les variables du Workspace sont effacées à la fermeture du logiciel, ainsi toutes
les variables sont perdues. Afin de sauvegarder les variables dans un fichier avec l’extension «
.mat » il est nécessaire d’utiliser la commande « save ».

Exemples avec solution :


>> X=12 ; S=’Programme Matlab’ ; Y=true; Z = 25.3; %Création de variables
>> save(‘mes_variables’) %crée un fichier dans le dossier courant
>> save(‘variable_X’,’X’) %crée un fichier variable_X contenant la variable X

Le fichier crée : mes_variables.mat dans le dossier courant contient toutes les variables (X, S, Y,
Z). Par contre le fichier variables_X.mat contient seulement la variable spécifiée en paramètre
(X).

35
Lors du démarrage d’une nouvelle session de Matlab ou après une suppression en utilisant la
commande « clear », le Workspace est toujours vide et ne contient aucunes variables. La
commande « load » permet de charger des variables sauvegardées dans un fichier.

Exemple avec solution :


>> load(’mes_variables’) %le fichier chargé doit être dans le dossier courant

Il est aussi possible de charger qu’une seule variable depuis un fichier en indiquant le nom de la
variable après le nom du fichier : >> load(’mes_variables’,’X’)

36
III. Les Fonctions Prédéfinies
Introduction
Les bibliothèques et librairies Matlab sont très riches et diversifiées en matière de fonctions
mathématiques utilisées sur des vecteurs ou matrices. Matlab compte des milliers de fonctions,
dans les prochains chapitres nous allons voir les fonctions générales et opérateurs arithmétiques
relatifs au calcul matriciel et des fonctions pour la visualisation.

Les principales fonctions mathématiques disponibles sous MATLAB sont les suivantes :

Fonctions Description
sin(var), asin(var), cos(var), acos(var), Fonctions trigonométriques (angle en radian) : sinus,
tan(var) , atan(var), cot(var), acot(var) arc sinus, cosinus …
asin(var), asind(var), acos(var), Fonctions inverses des fonctions sin, sind, cos, cosd,
acosd(var), atan(var), atand(var) tan et tand respectivement
sqrt(var) Racine carrée de var.
log(var) Logarithme naturel de var (de base e), respectivement
log10(var) de base 10,
log2(var) et de base 2 37
exp(var) Exponentielle de var

fix(var) Troncature à l'entier, dans la direction de zéro


round(var) Arrondi à l'entier le plus proche de var
floor(var) Le plus grand entier qui est inférieur ou égal à var
ceil(var) Le plus petit entier plus grand ou égal à var

abs(var) Valeur absolue (positive) de var

real(nb_complexe) Partie réelle,

imag(nb_complexe) Partie imaginaire, du « nb_complexe »


conj(nb_complexe) Retourne le conjugué du « nb_complexe »

38
Exercices corrigés

>> sin(pi/2) % Calculer le sinus d’un angle donné en radian


ans = 1

>> cos(pi) % Calculer le cosinus d’un angle donné en radian


ans = -1

>> sind(90) % Calculer le sinus d’un angle donné en degré


ans = 1

>> cosd(180) % Calculer le cosinus d’un angle donné en degré


ans = -1

>> x=90;
>> acosd(cosd(x)) % Calculer l’inverse du cosinus
ans = 90

39
>> log(exp(1)) % Calculer Logarithme de base e
ans = 1

>> log10(1000) % Calculer Logarithme de base 10


ans =3

>> log2(8) % Calculer Logarithme de base 2


ans =3

>> fix(3.7) % troncature a l’entier en direction de zéro


ans =3

>> round(3.7) %Arrondi à l'entier le plus proche


ans =4

>> floor(3.7) %Le plus petit entier plus grand ou égal


ans =3

>> ceil(3.7) %Le plus grand entier qui est inférieur ou égal
ans =4
40
Fonctions générales relatives aux chaînes de caractères

Fonctions Description
length(string) Retourne le nombre de caractères de la
chaîne string

upper (string) Convertit la chaîne string en majuscules

lower (string) Convertit la chaîne string en minuscules

strcat(s1,s2…) Concatène horizontalement les chaînes s1,


s2...

41
Exercices corrigés

>> strcat(‘MAT’,’LAB’) %Concaténer deux chaînes de caractères


ans = MATLAB

>> strcat(‘TP’,’ Fnct’,’ Mat’,’lab’) %Concaténer plusieurs chaînes de caractères


ans=TP Fnct Matlab

>> upper(‘tpFNCTmatlab’) %Conversion en majuscules


ans = TPFNCTMATLAB

>> lower(‘tpFNCTmatlab’) %Conversion en minuscules

ans = tpfnctmatlab

>> x=‘abcde’; %Calculer le nombre de caractères de la chaîne


>> length(x)
ans = 5 42
Remarque :

Pour l’affectation d’une chaîne de caractères à une variable, la chaîne doit être délimitée par des
apostrophes (‘). Si la chaîne contient elle-même des apostrophes, le mécanisme d'échappement
consiste à dédoubler les apostrophes dans la chaîne.

Exemple :

>>ch1 = 'Sciences et ingénierie de l''environnement'


ch1 = Sciences et ingénierie de l'environnement

43
Matrices et Vecteurs sous Matlab

Introduction
En mathématique, une matrice est un ensemble de valeurs organisées dans un tableau de « n »
lignes et de « m » colonnes. Les coefficients de la matrice sont situés entre deux parenthèses. Une
matrice est caractérisée par sa Dimension= (n x m).

Dans le cas général, une matrice A (n x m) a pour coefficients aij


Avec : 1≤ i ≤ n et 1≤ j ≤ m, et ses coefficients sont les suivants :

Un élément de la matrice A est repéré par le couple d’indices (i,j) : (numéro de la ligne, numéro
de la colonne).
44
Propriétés et caractéristiques

- Les vecteurs (ligne ou colonnes) : Matlab ne fait pas vraiment de différence entre un scalaire, un
vecteur, une matrice ou un tableau à N-dimensions, ces objets pouvant être redimensionnés
dynamiquement. Ainsi, un vecteur n'est donc qu'une matrice (n x m) dégénérée d'une seule ligne
(1xm) ou une seule colonne (nx1).

• Une matrice ligne est une matrice d’ordre 1 appelée vecteur ligne.
Exemple de vecteur ligne (1x3) : M = (1.5 4 -3)

• Une matrice colonne est une matrice d’ordre 1 appelée vecteur colonne.
4
Exemple de vecteur colonne (3x1) : M = 9
11

45
- Les Matrices : Une matrice Matlab est un tableau à deux dimensions de (nxm) éléments de
types nombres réels ou complexes ou de caractères.

• Une matrice carrée est caractérisée par le fait d’avoir le même le nombre de lignes et le
nombre de colonnes (n=m).
Exemple de matrice carrée (4x4) :

• Matlab offre la possibilité de création de matrice (3D) multidimensionnelle: (n x m x p)

46
• Addition A+B de deux matrices de mêmes dimensions : le résultat est une matrice C de même
dimension.

Exemple :

• Soustraction A-B de deux matrices de mêmes dimensions : le résultat de la soustraction donne


une matrice C de même dimension.

Exemple :

• Multiplication A(NAxMA)*B(NBxMB) : cette opération est réalisable seulement si le nombre de


colonnes de la matrice A est égale au nombre de ligne de la matrice B c'est-à-dire : MA=NB.
Le résultat de la multiplication est une matrice de dimension NAxMB.

Exemple :

47
• Multiplication d’une matrice par un scalaire : il suffit de multiplier tous les éléments de la
matrice par le scalaire en question.

• Transposition : il s’agit d’une matrice notée 𝐴𝑇 de dimensions (MxN) obtenue en échangeant les
lignes et les colonnes d’une matrice initiale A de dimensions (NxM).

Exemple :

• La Diagonale d’une matrice : il s’agit de l’ensemble des éléments d’une matrice carrée qui se
situent du coins haut gauche vers le coin bas droit.

48
• Matrice Diagonale : il s’agit d’une matrice carrée où tous les éléments qui n’appartiennent pas la
diagonale sont nuls (=0) et les éléments de la diagonale peuvent être nuls.

Exemple :

• Trace d’une Matrice carée : c’est la somme des éléments de sa diagonale.

Exemple : Trace (A) = 2 + 8 +9 +21 = 40

• Matrice identité : il s’agit d’une matrice diagonale dont tous les éléments de la diagonale =1.

Exemple :

Remarque : Dans Matlab, les éléments d’un vecteur sont numérotés par des entiers débutant par la valeur 1.
Le même principe pour les matrices, les indices de ligne et de colonne sont des valeurs entières débutant par 1
(et non pas 0, comme dans la plupart des autres langages de programmation).
49
Manipulation de Matrices sous Matlab
Les descriptions suivantes résumant les principales commandes couramment utilisées (affectation
par l’usage des crochets [ ], adressage des éléments par les parenthèses ( ), fonctions d'initialisation
spéciales liées aux matrices…) :

Les vecteurs
Fonctions Description Exemples
Créer un vecteur ligne V contenant des valeurs >> v1 = [ 1 3 0 -1 5 ] %vecteur 1*5
V= [val1 val2 val3 ...] (val), des variables (var), ou expressions (expr)
spécifiées. Il faut délimitées les éléments par >> v2 = [ 2, 4, 8, -3, 7, -2, 1]
des espace, virgules (,) %vecteur ligne
V=[val ; var ; expr ...] Créer un vecteur colonne V. il faut délimitées >> v4 = [ 2 ;4 ;8 ;-3 ;7 ;-2 ;1]
les éléments par des points virgules ( ;) %vecteur colonne
V =[var val var val ...]' Une autre méthode, consiste à définir un vecteur
ligne et à le transposer lors de l’affectation a V.
V’ Permet de transposer un vecteur V. Vecteur
ligne devient un vecteur colonne et vice-versa
50
Fonctions Description Exemples
V(indices) Pour accéder aux éléments d'un vecteur avec v =10 9 8 7 6 5 4 3 2 1
la variable « indices » qui est un vecteur >> v(2) ans =9
(ligne ou colonne)
V = n:m Créer un vecteur ligne V suite (série) >> v = 1 : 5 % incrément 1 par défaut
d'indices allant de n à m par pas de 1 v =1 2 3 4 5
V = val0:p:val1 : Créer un vecteur ligne V (suite) dont le >> v = 1 : 0.5 : 4
premier élément est Val0 et le dernier v =1 1.5 2 2.5 3 3.5 4
élément Valf et le pas= p >> v = 10 : -1 : 1
v =10 9 8 7 6 5 4 3 2 1
v(i1:i2)=[] supprimer les coordonnées i1 à i2 de v >> v(3:6)=[]
v =10 9 4 3 2 1
length(V) Renvoie le nombre d’élément (taille) du >> length(v)
vecteur V (ligne ou colonne). ans =6

51
Fonctions Description Exemples
A = linspace(V0,Vf,n) Créer un vecteur de suite arithmétique en >> j=linspace(7,55,3)
précisant : le premier terme V0, le dernier j = 7 31 55
terme Vf et le nombre de termes n.
Matlab calcule automatiquement le pas (La
raison=(Vf-V0)/(n-1))
diag(Vecteur) A partir d’un Vecteur ligne ou colonne, la >> a=[1 2 3];
fonction retourne une matrice carrée dont la >> diag(a)
diagonale principale porte les éléments du ans =
vecteur et les autres éléments sont égaux à 1 0 0
"0" 0 2 0
0 0 3
[x,y] concaténer les vecteurs x et y >> x=[1 2 3];y=[4 5];
>> Z=[x -y] %Création de vecteurs à
partir d’autres vecteurs
Z = 1 2 3 -4 -5

52
Matrices
Fonctions Description Exemples
Créer une Matrice Mat de dimension (nxm) >> M=[1 2 3;4 5 6;7 8 9]
avec les éléments vij. Les éléments d'une M =
ligne sont séparés par des espace ou virgules, 1 2 3
les différentes lignes sont délimitées par des 4 5 6
(;) points virgules 7 8 9
Il est aussi possible de définir une matrice >> M1=[1 2 3]; M2=[4 5 6];
Mat=[Vco1 Vco2 ...] Mat par concaténation de vecteurs colonnes M4=[7;8;9]; M5=[-1;0;7];
Vcoi ou de vecteurs ligne Vlii . >> Ma=[M1;M2]
Mat=[Vli1 ; Vli2 ; ...] Ma =
Les séparateurs entre les vecteurs colonnes 1 2 3
est l'espace, et celui entre les vecteurs lignes 4 5 6
est le (;) points-virgules. >> Mb=[M4 M5]
Mb =
7 -1
8 0
9 7

53
Fonctions Description Exemples
ones(n,m) Créer une matrice numérique de n lignes et >> ones(3) >> zeros(3)
m colonnes dont tous les éléments sont mis à ans = ans =
zeros(n,m) la valeur 1 pour ones et à 0 pour zeros. 1 1 1 0 0 0
Si m n’est pas mentionner, la matrice crée 1 1 1 0 0 0
est une matrice carrée de dimension (n x n). 1 1 1 0 0 0
eye(n,m) Créer une matrice identité de dimension (n x >> eye(3,4)
m) avec la diagonale=1, et les autres ans =
éléments à 0. Si m n’est pas mentionner, la 1 0 0 0
matrice crée est une matrice carrée de 0 1 0 0
dimension (n x n). 0 0 1 0
diag(Matrice) Appliquée à une Matrice (carré ou pas), elle >> diag(M)
retourne un vecteur-colonne formé à partir ans =
des éléments de la diagonale de cette 1
matrice. 5
9
[n m]=size(Var) nombre de lignes et de colonnes de A >> [n m]=size(M)
n= 3
m=3
54
Fonctions Description Exemples
length(Mat) Calculer le nombre de lignes et le nombre de >> length(Ma)
colonnes de Mat puis renvoie le plus grand ans = 3
de ces deux valeurs.
numel(Mat) Retourne le nombre d'éléments de la matrice >> numel(M)
Mat ans = 9
M(i,j) élément ligne i et colonne j de M >> M(2,2)
ans = 5
M(i) coefficient d’ordre i dans l’indexation >> M(5)
linéaire ans = 5
M(i1:i2,:) =[] supprimer les lignes i1 à i2 de M >> M(1:2,:) =[]
M=
7 8 9
M(:,j1:j2)=[] supprimer les colonnes j1 à j2 de M >> M(:,1:2)=[]
M=
3
6
9
55
On peut créer des matrices à partir d’autres matrices.

>> v = [7 6; 2 3];w = [1 4];v = [v; w]

v=

7 6
2 3
1 4

Il faut faire attention à la taille des matrices afin de créer une matrice à partir d’autre matrice.

56
Manipulation de vecteurs sous Matlab (TP)

Objectifs

Matlab ne nécessite pas l’étape de déclaration des variables comme la plupart des langages de
programmation (C/C++,…), ainsi toutes les variables et les identifiants de variables n’ont pas a
être déclarés. Il suffit de définir la variable avec une valeur, ensuite Matlab va créer cette nouvelle
variable ou bien il modifie l’ancienne si la variable est déjà créée. Avec Matlab il n’y a aucune
différence entre variables ‘entière’, variables ‘réelle’ ou variables ‘complexe’, le système
d’allocation dynamique s’en charge de l’opération.

Le but est de maitriser la création de vecteurs et le calcul arithmétique sur les vecteurs.

57
Exercices corrigés

>> V1 = [ 5 -3 2] %Créer un vecteur ligne (1 x 3)


V1 = 5 -3 2

>> V2 = [1 ; 9 ; 15] %Créer un vecteur colonne (3 x 1)


V2 =
1
9
15

>> V3 = [V2 V1 -4] %Combiner un vecteur colonne avec un vecteur ligne

Error using horzcat


Dimensions of matrices being concatenated are not consistent.

>> V3 = [V2’ V1 -4] %Concaténation des vecteurs


V3 = 1 9 15 5 -3 2 -4
58
>> V4 = [-7 ; 5 ; 2*pi] %Créer un vecteur colonne contenant une expression
V4 =
-7.0000
5.0000
6.2832

>> V5 = V4’ %Définir le vecteur V5 à partir du vecteur V4


V5 = -7.0000 5.0000 6.2832

>> V = [Link] %Définir une suite de 0 à 10 avec un pas de 2


V= 0 2 4 6 8 10

>> V = 0:0.5:2 %Définir une suite de 0 à 2 avec un pas de 0.5


V= 0 0.5000 1.0000 1.5000 2.0000

>> A = linspace(0,200,5) %Définir vecteur de suite arithmétique de 0 à 200 et n=5


A = 0 50 100 150 200

59
>> A = 1:5 ; B= 6:10 ; ADD = A + B , SOUS = A – B %Opérations sur les vecteurs
ADD = 7.00 9.00 11.00 13.00 15.00
SOUS = -5.00 -5.00 -5.00 -5.00 -5.00

>> C = A + 1 %Commentez ce résultat ?


C=2 3 4 5 6

>> C = A * 3 %Commentez ce résultat ?


C=3 6 9 12 15

>> C= A – 1 %Commentez ce résultat ?


C=0 1 2 3 4

>> C = A ./ 2 %Division élément par élément


C = 0.50 1.00 1.50 2.00 2.50

>> C = A.^2 %Puissance élément par élément


C = 1.00 4.00 9.00 16.00 25.00
60
>> V=[-3 2 1 -4 5 -3] ; a= V(2) , b= V(2)*2 %Accès aux éléments d’un vecteur
a = 2.00 b = 4.00

>> V(3) = 0 ; V(4) = V(4)*2; V %Manipuler des éléments d’un vecteur


V = -3.00 2.00 0 -8.00 5.00 -3.00

>> A = V(1:3) , B = V(4:6) %Manipuler Plusieurs éléments consécutifs


A = -3.00 2.00 0 B = -8.00 5.00 -3.00

>> V (2:4)=1 %Remplacer les valeurs 2, 0 et -8 de V par la valeur 1


V = -3.00 1.00 1.00 1.00 5.00 -3.00

>> W= V([1 3 6]) %Manipuler Plusieurs éléments Non consécutifs d’un vecteur
W = -3.00 1.00 -3.00

>> W = V(V>0) %Manipuler Plusieurs éléments de vecteur selon une condition


W = 1.00 1.00 1.00 5.00

61
>> V(5) = []; %Suppression du 5ème élément du vecteur V
V = -3 1 1 1 -3

>> V (2:4) = [] %Suppression des éléments de positions 2,3,4 dans V


V = -3 -3

>> V (V< 0)=[] %Suppression de toutes les valeurs < 0 dans V


V=
1×0 empty double row vector

>> length(V) %Commentez le résultat ?


ans = 0

62
Manipulation de Matrices sous Matlab (TP)

Objectifs

Le calcul matriciel est le point fort de Matlab. La déclaration des matrices est très simple sous
Matlab des matrices. Une matrice est un tableau à deux dimensions avec (n) lignes et (m)
colonnes et contenant des éléments de même type.

L’objectif de maitriser la manipulation des matrices avec le langage Matlab.

63
Exercices corrigés

>> M=[-2:0 ; 4 sqrt(9) 3] %Créer une matrice (2 x 3)


M = -2 -1 0
4 3 3

>> M = [ 3 , 7 ; 1 , 0] %Virgules pour séparer les colonnes et points-virgules lignes


M=3 7
1 0

>> M = [ 0 1 4 1 ; 2 7 8 5 ; 9 6 8 3] %Espace pour séparer les colonnes


M=0 1 4 1
2 7 8 5
9 6 8 3

>> V1=[Link] ; V2=9:-1:7 ; M1=[V2 ; V1] %Commentez le résultat ?


M1 = 9 8 7
1 4 7
>> size(M1) %Commentez le résultat ?
64
ans = 2 3
>> C1 = eye(2) , C2 = 3*ones(2) , C=[C1 C2] %Agrégation de matrices
C1 = 1 0
0 1

C2 = 3 3
3 3

C=1 0 3 3
0 1 3 3

>> C= [C; 22 33 44 55] %Commentez le résultat ?


C=1 0 3 3
0 1 3 3
22 33 44 55

>> C ([2 3],[1 3]) %Extraction des éléments des lignes 2, 3 et les colonnes 1,3
ans = 0 3
22 44

65
>> C([2 3],1:2) %Commentez le résultat ?
ans = 0 1
22 33

>> C([2 3],:) %Extraction des éléments des lignes 2, 3 et toutes les colonnes
ans = 0 1 3 3
22 33 44 55

>> C([2 3],end) %Extraction des éléments des lignes 2, 3 de la dernière colonne
ans = 3
55

66
>> C(:) %Extraction des éléments de façon continue Colonne après Colonne
ans = 1
0
22
0
1
33
3
3
44
3
3
55

>> C(5) %Extraction du 5ieme élément de la matrice avec l’indexation linéaire


ans = 1

67
>> C( 2 , 1 ) = 11 %Modifier l’élément de la ligne 2 et colonne 1
C=1 0 3 3
11 1 3 3
22 33 44 55

>> C( 1 , : ) = [2 1 5 -3] %Modifier tous les éléments de la ligne 1


C=2 1 5 -3
11 1 3 3
22 33 44 55

>> C ([1,3] , [1,3] ) = [-2 -5 ; -22 -44] %Modifier les éléments (1,1), (1,3), (3,1) et (3,3)
C = -2 1 -5 -3
11 1 3 3
-22 33 -44 55

>> A = [3 :8] %Créer une suite de 3 à 8


A=3 4 5 6 7 8

68
>> A= reshape(A,[2,3]) %Créer une matrice à partir du vecteur
A=3 5 7
4 6 8

>> 2*A+1 %Opérations arithmétiques sur les matrices


ans = 7 11 15
9 13 17

>> A.^2 %Opérations éléments par éléments


ans = 9 25 49
16 36 64

>> A./2 %Opérations éléments par éléments


ans = 1.5000 2.5000 3.5000
2.0000 3.0000 4.0000

>> size(A) %Dimension de A est 2 linges et 3 colonnes


ans = 2 3
69
>> A’ , size(A’) %Dimension de l’inverse de A est 2 linges et 3 colonnes

ans = 3 4
5 6
7 8

ans = 3 2

>> [1 0; 0 1] * [1 2; 3 4] % la multiplication au sens des matrices


ans = 1 2
3 4

>> [1 0; 0 1] .* [1 2; 3 4] % la multiplication terme à terme


ans = 1 0
0 4

70
Opérations arithmétiques – Matrices

>> A=[1 2 3;4 5 6;7 8 9]


A=
1 2 3
4 5 6
7 8 9

L'addition et la soustraction Multiplication et division


>> A+3 >> A*2
ans = ans =
4 5 6 2 4 6
7 8 9 8 10 12
10 11 12 14 16 18

>> A-2 >> A/3


ans = ans =
-1 0 1 0.3333 0.6667 1.0000
2 3 4 1.3333 1.6667 2.0000
5 6 7 2.3333 2.6667 3.0000
71
Puissance

Pour mettre au carré chaque élément de A, utilisez l'opérateur élément par élément .^

>> A.^2
ans =
1 4 9
16 25 36
49 64 81

>> A^2
ans =
30 36 42
A^2 = A * A 66 81 96
102 126 150

72
Les opérations entre matrices
>> A=[1 2 3;4 5 6;7 8 9] >> B=[1 1 1;2 2 2;3 3 3]
A= B=
1 2 3 1 1 1
4 5 6 2 2 2
7 8 9 3 3 3

1 2 3 1 1 1  14 14 14 
 4 5 6  2 2 2 = 32 32 32
A*B      
7 8 9 3 3 3 50 50 50

 1x1 2x1 3x1  1 2 3


 4 x 2 5x 2 6 x 2  8 10 12 
A.*B  
=  
 7 x3 8x3 9x3 21 24 27

 1/ 1 2 / 1 3 / 1 1.0000 2.0000 3.0000 


A./B  4 / 2 5 / 2 6 / 2 = 2.0000 2.5000 3.0000 
   
7 / 3 8 / 3 9 / 3 2.3333 2.6667 3.0000 
73
??? Error using ==> ^
A^B At least one operand must be scalar

 11 21 31   1 2 3 
A.^B  2
4 5 2
62 =  16 25 36 
   
73 83 93  343 512 729 
 

74
Les Systèmes d’Equations Linéaires

Soit un système d’équations linéaires (n) avec (p) variables :

Un système d’équations linéaires a soit une seule solution, soit une infinité de solution soit aucune
solution. Dans Matlab, ce système d’équation s’écrit sous format matriciel :

75
𝑨∗𝑿=𝑩
Si la matrice A n’est pas inversible (Déterminant(A) = 0), alors le système a aucune solution soit
une infinité de solution ;

Si A est inversible (Déterminant(A) ≠ 0) alors la solution du système (A*X=B) est unique :

𝑿 = 𝑨−𝟏 𝑩

76
Exercices corrigés

Soit le système d’équations linéaires :

Format matriciel du système est :

77
Solution :

>> A = [3,-1,3 ; 1,4,-7 ; 9,-2,1]; %Définir la matrice A

>> B = [13 ; 45 ; 27] ; %Définir le vecteur B

>> det(A) %Vérifier si A est inversible ?


ans = -80

>> X = inv(A) * B % la solution du système X= 𝐴−1 B


X = 6.1250
15.8000
3.4750

De ce fait, la solution du système est le vecteur


78
Représentation graphique avec Matlab

Matlab est un logiciel très puissant pour les graphiques (2D et 3D) avec de nombreuses fonctions
pour gérer et personnaliser les axes en ajoutant des labels, légendes et titres.

Différents types de représentations sont possibles, dans ce chapitre nous présentons que les
graphiques de type courbes, mais il existe d’autres fonctions pour réaliser des histogrammes, des
barres ou des camemberts suivant le type de données que l'on désire représenter (statistiques,
proportionnelles…).

Les graphiques MATLAB sont affichés dans des fenêtres de graphiques spécifiques appelées
"figures", crée a l’aide des commandes figure ou subplot, ou automatiquement lors de toute
commande produisant un tracé (graphique 2D ou 3D).

79
Les principales fonctions pour représenter un ensemble de points (x(i), y(i)) sont :
Fonction Description
plot(x,y, ’s’) Représentation de points dans le plan. Tracé d’une courbe ou d’un
nuage de points.
Le paramètre ‘s’ est facultatif, constitué d’une chaîne de caractères
pour spécifie le type de tracé (couleur, pointillés, symboles…).
hold on La commande permet de superposer les prochains tracés à ceux
déjà affichés.
hold off Lors du prochain tracé, le contenu de la fenêtre graphique active
sera effacé.
clf Permet d’effacer le contenu de la fenêtre graphique active.
figure(n) Activer (afficher) la fenêtre graphique numéro « n ».
close Fermer la fenêtre graphique active.
close all Fermer toutes les fenêtres graphiques.
axis([xmin xmax ymin ymax]) Permet de définir les échelles des axes.
grid('on | off') Activation/désactivation de l'affichage du quadrillage (grid).80
Fonction Description
title(’titre’) Définir un titre de graphique qui est placé au-dessus de la zone
affichée.
xlabel(’titre_X’) Afficher une légende (étiquettes) pour l’axe des Abscisses.
ylabel(’titre_Y’) Afficher une légende (étiquettes) pour l’axe des ordonnées.
legend(’titre1’,’titre2’,...) Définir une légende pour chaque courbe du graphique.
text(x,y,’texte’) a la position (x, y) Placer une annotation (texte explicatif) dans le graphique à la
position (x, y) spécifiée.

Sous Matlab, il est possible de sauvegarder une figure (graphique) sous plusieurs formats. Le format
propre a Matlab avec l’extension « .fig ». Pour cela, il suffit d’utiliser le sous menu Save as du menu
File de la fenêtre graphique et par la suite donner un nom au fichier. Une visualisation ultérieure de
ce fichier est possible en utilisant la commande Open du même menu.

81
Exemple :

>> x=-4:.1:4;
>> y=x.*sin(x).*cos(x);
>> plot(x,y)

Graphe de la fonction y = x sin x cos x entre -4 et 4.


82
Couleur, symbole et style d’un tracé
Avec la possibilité de distinguer les tracés, on peut Couleur Symbole Style
utiliser la forme complète de la commande plot. y jaune . point - trait plein
On utilise alors la syntaxe m magenta o rond : pointillé court
c cyan x croix -. pointillé long
plot(x1,y1,s1,x2,y2,s2,...) r rouge + plus -- pointillé mixte
g vert * étoile
qui permet de tracer (dans le même figure) les courbes b bleu s carré
définies par les vecteurs de points (x1,y1), (x2,y2),... avec w blanc d losange
s1, s2,... les spécifications permettant de les distinguer. k noir v triangle (bas)
ˆ triangle (haut)
< triangle
(gauche)
> triangle (doit)
p pentagone
Exemple d’utilisation de la commande plot complète:
h hexagone
>> x=-4:0.1:4; t=-4:.5:4;
>> y1=x.*sin(x).*cos(x); y2=exp(-x.*x+sin(x)); z=exp(sin(t));
>> plot(x,y1,’k-’,x,y2,’r:’,t,z,’*’) 83
Pour le troisième tracé, i.e. (t,z), on a juste marqué les points (ti, zi) par le symbole *.
Si les différentes courbes doivent être tracées l’une après l’autre, il faut maintenir la fenêtre
précédente, avec la commande hold on. Sinon, la nouvelle fenêtre efface l’ancienne (et donc la
courbe précédente).

>> x=-4:0.1:4; t=-4:.5:4;


>> y1=x.*sin(x).*cos(x);
>> plot(x,y1,’k-’)
>> y2=exp(-x.*x+sin(x));
>> hold on
>> plot(x,y2,’r:’)
>> z=exp(sin(t));
>> plot(t,z,’*’)
>> hold off

Avec la commande hold off toute nouvelle figure efface la précédente. C’est le mode par défaut.
Lorsqu’on tape seulement hold on passe d’un mode à un autre, i.e. on passe de hold on à hold off et
vice versa. 84
Exercices corrigés
Tracez les courbes correspondant à la fonction Sinus et Cosinus : 𝑦1 = sin(𝑥) , 𝑦2 = cos(𝑥) 𝑎𝑣𝑒𝑐 𝑥 ∈ [0 ; 5𝜋]

Solution :
>> x=0:0.1:5*pi; %Définir le domaine de la variable x (Abscisses)
>> y1=sin(x); y2=cos(x); %Calculer les valeurs des Ordonnées
>> % Tracer les deux courbes avec motifs
>> %Sinus : ligne pointillée en bleu avec petit disque rempli
>> %Cosinus : ligne continue en rouge avec des cercles
>> plot(x,y1,’b :.’,x,y2, ‘r-o’);
>> grid('on'); %Afficher le quadrillage dans le graphique
>> axis([0 15 -1 1]); % Graphique selon les limites données des axes x et y

>> title('Fenêtre de graphique MATLAB'); %Donner un titre au graphique


>> xlabel('X'); ylabel('Y=fonction(X)'); % Titre a l’axe X et l’axe des Y
>> legend('sinus(x)','cosinus(x)'); %Définir une légende pour les courbes
85
Résultat Matlab après exécution des commandes, fenêtre graphique des courbes Sinus et Cosinus

86
Exemple :
tracer la fonction 𝑦 = 𝑠𝑖𝑛(𝑥) avec 𝑥 ∈ [0 … 2𝜋] avec un 𝑝𝑎𝑠 = 𝜋⁄6 . En changeant le marqueur
(Tableau )

>> x=0:pi/6:2*pi;
>> y=sin(x);

plot(x,y,'r:*') plot(x,y,'black -.^') plot(x,y,'pb-')

87
Exemple complet de courbes multiples légendées.
Les courbes représentent les polynômes de Tchebychev
Tn(x) = cos (n arccos x) , x ∈ [−1, 1], n = 0, 1, 2, 3.

>> x=-1:.01:1;
>> y0=ones(size(x)); y1=cos(acos(x));
>> y2=cos(2*acos(x)); y3=cos(3*acos(x));
>> plot(x,y0,’:’,x,y1,’-.’,x,y2,’--’,x,y3,’-’)
>> xlabel(’x’)
>> ylabel(’y=T_n(x)’)
>> title(’Polynomes de Tchebytchev’)
>> legend(’n=0’,’n=1’,’n=2’,’n=3’)

88
Décomposition de la fenêtre en sous-fenêtres

Il est possible de décomposer une fenêtre en plusieurs sous-fenêtres et d’afficher une


figure différente dans chacune de ces sous-fenêtres grâce à la commande subplot. La
syntaxe est

subplot(m,n,p)


m est le nombre de sous-fenêtres verticales;
n est le nombre de sous-fenêtres horizontales;
p est la position de la sous-fenêtre de la figure à tracer.

Les sous-fenêtres sont numérotées de gauche à droite, de haut en bas.

89
Exemple avec les polynômes de Tchebychev tracés dans des sous-fenêtres séparées.

>> x=-1:.01:1;
>> y1=cos(acos(x));
>> subplot(2,2,1) % 1ere sous-fenetre
>> plot(x,y1)
>> title(’Polyn\^ome de Tchebychev T_1(x)=cos(acos(x))’)
>> xlabel(’x’)
>> ylabel(’y=T_1(x)’)
>> subplot(2,2,2) % 2eme sous-fenetre
>> y2=cos(2*acos(x));
>> plot(x,y2)
>> title(’Polyn\^ome de Tchebychev T_2(x)=cos(2 acos(x))’)
>> ylabel(’y=T_2(x)’)
>> xlabel(’x’)
90
>> subplot(2,2,3) % 3eme sous-fenetre
>> y3=cos(3*acos(x));
>> plot(x,y3)
>> title(’Polyn\^ome de Tchebychev T_3(x)=cos(3acos(x))’)
>> xlabel(’x’)
>> ylabel(’y=T_3(x)’)
>> subplot(2,2,4) % 4eme sous-fenetre
>> y4=cos(4*acos(x));
>> plot(x,y4)
>> title(’Polyn\^ome de Tchebychev T_4(x)=cos(4acos(x))’)
>> ylabel(’y=T_4(x)’)
>> xlabel(’x’)

91
92
Visualisation 3D

Pour la visualisation 3D, il convient de distinguer les courbes 3D (plus faciles à tracer) des
surfaces. Et pour les surfaces, il convient de distinguer celles définies de manière analytique
(i.e. par une fonction) des surfaces définies par un ensemble de points de l’espace.

Courbes 3D
La commande plot3 permet de tracer une courbe 3D. La syntaxe est
plot3(x,y,z)

où x, y et z peuvent être des matrices ou des vecteurs de même taille. Dans le cas ou les
arguments x, y et z sont des vecteurs, la commande génère une ligne 3D qui passe par les points
(xi , yi , zi). Le bout de code suivant a permis de générer une courbe 3D

>> t=0:pi/50:10*pi;
>> x=(1+sin(t)).*cos(t);y=(1+sin(t)).*sin(t); z=t;
>> plot3(x,y,z)
>> xlabel(’x’),ylabel(’y’),zlabel(’z’)
93
Courbe 3D définie par ((1 + sin t) cost,(1 + sin t) sin t, t), pour t ∈ [0, 10π].

94
Exemple :

l'utilisation de la fonction de grid facilite la visualisation, comme le montre la Figure

>> x = 1:5;
>> y = [0 -2 4 11 3];
>> z = [Link];
>> plot3(x,y,z,'k*')
>> grid
>> xlabel('x')
>> ylabel('y')
>> zlabel('z')
>> title('3D Plot')

95
Pour la fonction bar3, les vecteurs y et z sont passés et la fonction affiche des barres 3D
comme illustré, dans l’exemple suivant et la Figure

Exemple :

y = 1:6;
z = [33 11 5 9 22 30];
bar3(y,z)
xlabel('x')
ylabel('y')
zlabel('z')
title('3D Bar')

96
D'autres types de courbes 3D intéressants incluent mesh et surf. La fonction mesh dessine un
maillage filaire de points 3D, tandis que la fonction surf crée un tracé de surface en utilisant la
couleur pour afficher les surfaces paramétriques définies par les points.
MATLAB a plusieurs fonctions qui créeront les matrices utilisées pour les coordonnées (x, y, z)
pour les formes spécifiées (par exemple, sphère (exemple 1 et 2) et cylindre).
Exemple 1 : Exemple 2:
[x,y,z] = sphere(15); [x,y,z] = sphere(15);
size(x) surf(x,y,z)
mesh(x,y,z) title('Surf of sphere')
title('Mesh of sphere') colorbar

97
Graphes spécifiques :
MATLAB dispose de plusieurs routines permettant de tracer des graphes spécifiques (Tableau)
Fonctions de graphes signification
bar barres
errorbar Barre d’erreur
hist Histogramme
polar Coordonnées polaires
rose Histogramme angulaire
stairs Marche d’escalier
Exemples x=linspace(0,1,1000); >> x=linspace(0,8*pi,1000);
>> polar(sin(8.*x.*pi), cos(12.*x.*pi),'oy') >> rose(x.*x,20)

98
>> x=linspace(0,4*pi,20); >> x=linspace(0,4*pi,20);
>> errorbar(x,sin(x),0.1*sin(x)) >> bar(x,sin(x))

>> x=linspace(0,4*pi,20); >> x=linspace(0,4*pi,20);


>> hist(sin(x)) >> stairs(x,sin(x))

99
- Si les arguments x, y et z sont des matrices de même dimension, plot3 trace une courbe 3D pour
chaque colonne des matrices. La surface de la figure (1) a été générée à l’aide du bout de code :

>> [x,y]=meshgrid(-2:.1:2); %Créez une grille 2D avec des coordonnées x et y espacées par dans
l'intervalle [-2,2].
>> z=x.*exp(-x.^2-y.^2);
>> plot3(x,y,z)

- Il suffit alors de tracer des courbes 3D suivant les lignes de x, y et z pour avoir la surface de la
figure (2) Pour cela, on rajoute les lignes de codes.

>> hold on
>> plot3(x’,y’,z’)

100
FIGURE 1: Commande plot3(x,y,z) avec x, y et FIGURE 2: Surface tracée avec plot3 sur les
z des matrices avec la fonction colonnes, puis sur les lignes avec la fonction
−𝑥 2 −𝑦 2 −𝑥 2 −𝑦 2
𝑧 = 𝑥𝑒 𝑧 = 𝑥𝑒

101
La surface avec mesh(x,y,z) (surface fil de fer) ou avec surf(x,y,z)

On suppose ici que la surface est définie sous la forme


z = f(x, y).
On commence d’abord par générer une grille avec meshgrid dont la syntaxe est

[x,y] = meshgrid(x_min:hx:x_max,y_min:hy:y_max)

où hx est la raison de la subdivision sur l’axe des x et hy celle sur l’axe des y. Les arguments
résultats x et y sont des matrices de même taille. Les lignes de x sont des copies du vecteur
x_min:hx:x_max et les colonnes de y sont des copies du vecteur x_min:hx:x_max. Si les
subdivisions en x et y sont identiques, on utilise la forme abrégée

[x,y] = meshgrid(x_min:h:x_max)

102
𝟐 −𝒚𝟐
Exemple de 𝒇 𝒙, 𝒚 = 𝒙𝒆−𝒙

Ensuite, il faut évaluer la fonction f aux noeuds de la grille pour avoir la troisième matrice z.
Finalement on trace la surface avec mesh(x,y,z) (surface fil de fer) ou avec surf(x,y,z) (surface à
facettes).

Les commandes suivantes permettent d’avoir la surface fil de fer de la figure

>> [x,y]=meshgrid(-2:.1:2);
>> z=x.*exp(-x.^2-y.^2);
>> mesh(x,y,z)

103
Pour pouvoir apprécier une surface, il faut pouvoir la voir sous tous les angles! Avec MATLAB
cela se fait soit avec la souris soit avec la commande view dont la syntaxe est

view(az,el)

où les arguments (en degrés) sont


az azimut, i.e. l’angle de rotation dans le plan horizontal
el élévation vertical, i.e. l’angle avec le plan horizontal

Les valeurs par défaut sont az=-37.5 et el=30. L’angle de vue par défaut s’obtient en tapant
simplement view(3). A noter que view(2) donne l’angle de vision par défaut en 2D, à savoir az=0 et
el=90. On regarde alors la surface à la verticale.

104
La figure représente la surface précédente avec view(30,60).

105

Vous aimerez peut-être aussi