Académique Documents
Professionnel Documents
Culture Documents
ET DE LA RECHERCHE SCIENTIFIQUE
ISET — Nabeul
Département Génie mécanique
ATELIER MATHÉMATIQUE
INITIATION A MATLAB
Adnene TLILI
A.U. : /
SOMMAIRE
Pré requis :
Objectifs :
1. Généralités
1.1. Qu’est-ce que MATLAB ?
MATLAB est un langage à hautes performances pour le calcul scientifique et technique. Il
intègre la possibilité de calculs, de visualisation et de programmation dans un environnement
très simple d’emploi. Les résultats sont exprimés sous une forme mathématique standard.
L’utilisation typique est :
Calcul scientifique
Développement d’algorithmes
Acquisition de données
Modélisation et simulation
Analyse de données, exploration et visualisation
Graphisme scientifique
Développement d’applications, interface graphique (gui)
MATLAB est un système interactif dont la brique de base est un tableau dont la taille n’est
pas nécessairement connue. Ceci permet de résoudre des problèmes, en particulier ceux qui
ont une formulation matricielle, en un minimum de temps (contrairement aux langages de bas
niveau comme le C ou le fortran). Le nom de MATLAB est un résumé de ”Matrix
Laboratory”. MATLAB a été `à l’origine développé pour avoir un accès simple et rapide aux
projets EISPACK et LINPACK. Aujourd’hui, MATLAB intègre les librairies LAPACK et
BLAS, incorporant ainsi les dernières techniques pour le calcul matriciel.
Dans l’enseignement universitaire, MATLAB s’est imposé comme un standard pour
l’apprentissage de l’algorithmique scientifique. Dans l’industrie, il est l’outil de choix pour
une productivité accrue en recherche et développement. MATLAB peut aussi être enrichi à
l’aide de Toolbox (boites à outils) pour des problèmes spécifiques.
1.2. Le système MATLAB
Le système MATLAB consiste en cinq parties majeures :
Environnement de développement. C’est un ensemble d’outils pour l’utilisation des fonctions
MATLAB et des fichiers. La plupart de ces outils sont des interfaces graphiques. Ils
incluent le bureau MATLAB et la fenêtre de commande, un historique des
commandes, un éditeur et un débuggeur, et un navigateur pour voir l’aide, l’espace
de travail (workspace), les fichiers, et le chemin.
La librairie de fonctions MATLAB C’est une grande collection d’algorithmes de calcul allant
de fonctions élémentaires comme les sommes, les sinus et cosinus et l’arithmétique
complexe, jusqu’aux fonctions plus sophistiquées comme l’inverse de matrices, le
calcul de valeurs propres, les fonctions de Bessel et la transformée de Fourier.
Le langage MATLAB C’est un langage de haut niveau sous forme matrice/vecteur. Il
comporte des structures de contrôles, des fonctions, des structures de données, des
fonctions d’entrées-sorties et une programmation orientée objet. Il permet le
développement de petites applications avec un code simple ou de grandes
applications industrielles.
Graphisme MATLAB possède un grand choix de fonctions pour faire afficher les vecteurs et
les matrices comme graphes. Il permet aussi de compléter les graphiques avec des
TLILI A. pg. 2
TP 1 : INTRODUCTION A MATLAB
TLILI A. pg. 3
TP 1 : INTRODUCTION A MATLAB
TLILI A. pg. 4
TP 1 : INTRODUCTION A MATLAB
Pour plus d’aide, Il est possible d’obtenir directement de l’aide sur les fonctions en utilisant la
commande doc. Par exemple, la commande « doc format » va afficher la documentation pour
la fonction format dans le navigateur d’aide. Si l’on d´désire une information réduite, on peut
utiliser la fonction help. Dans ce cas, l’aide apparait dans la fenêtre de commande.
2.5. Le répertoire courant
Les Operations sur les fichiers utilisent le répertoire courant et les chemins d’accès (search
path) comme points de références. Tout fichier que l’on veut exécuter doit impérativement se
trouver dans le répertoire courant ou bien dans le « search path ». Une manière rapide de voir
ou de changer le répertoire courant est d’utiliser le champ « Current Directory » dans la
barre d’outils du bureau comme ci-dessous.
TLILI A. pg. 5
TP 1 : INTRODUCTION A MATLAB
Pour voire, ouvrir et faire des changements dans les répertoires ou sur des fichiers, utiliser le
navigateur « Current Directory » figure 6. On peut autrement utiliser les fonctions dir, cd et
delete.
MATLAB utilise un chemin de recherche (search path) pour trouver les M-fichiers et les
autres fichiers reliées, qui sont organisés dans des répertoires. Tout fichier que l’on peut
pouvoir exécuter en MATLAB doit résider dans le répertoire courant ou dans un répertoire
qui est dans le « search path ». Il faut donc ajouter les répertoires qui contiennent les fichiers
qu’on veut pouvoir exécuter au « search path ». Par d´défaut, les fichiers fournit par Matlab
sont inclus dans de « search path ».
Pour voir ou éditer les répertoires contenus dans le « search path », sélectionner « Set Path »
dans le menu « File » du bureau, et utiliser la boite de dialogue. On peut aussi utiliser les
fonctions path pour voir le « search path », addpath pour ajouter des répertoires au chemin
d’accès et rmpath pour ôter des répertoires.
2.6. Le navigateur Workspace
Ce navigateur (figure 7) permet de
visualiser l’ensemble des variables
(nommés arrays) utilisées durant une
session MATLAB et stockées dans la
mémoire. Les variables sont ajoutées
automatiquement dans le workspace
(espace de travail) lorsqu’on exécute une
commande, une fonction, un M-fichiers, et
Fig. 7 workspace
en chargeant des workspaces
préalablement sauvés.
Pour voir le workspace et les informations relatives à chaque variables, utiliser le navigateur
workspace, ou utiliser les fonctions who et whos. Pour effacer des variables de l’espace de
travail, sélectionner la variable et choisir Delete dans le menu d’édition comme on peut aussi
utiliser la commande clear. La commande clear all efface toutes les variables dans
Workspace.
Le workspace est effacé à la fin d’une session MATLAB. Pour sauver son état courant et ainsi
pouvoir repartir directement en l’état après un redémarrage de MATLAB, il faut utiliser soit
TLILI A. pg. 6
TP 1 : INTRODUCTION A MATLAB
”Save Workspace” du menu ”File”, soit la commande save. Ceci sauve toutes les variables
dans un fichier binaire appelé un fichier MAT, qui a une extension .mat. Pour relire ce type de
fichier, utiliser soit ”Import Data” du menu ”File”, soit la fonction load.
Exemple :
>> s1 = sin(pi/4)
>> s1 = sin(pi/4);
>> c1 = cos(pi/4); c2 = cos(pi/2);
>> str = ’hello world’; % C’e une c aine
>> save % sauve toutes les variables dans un fichier binaire nommé matlab.mat
>> save data % sauve toutes les variables dans un fichier binaire nommé data.mat
>> save numdata s1, c1 % sauve les variables s1 et c1 dans numdata.mat
>> save strdata str % sauve la variable str dans strdata.mat
>> save allcos.dat c* -ascii % sauve c1, c2 dans un format ascii dans allcos.dat
>> load % charge toutes les variables du fichier matlab.mat
>> load data s1 c1 % charge seulement les variables s1 et c1 de data.mat
>> load allcos.dat % charge toutes les données de allcos.dat dans la variable allcos
2.8. Editeur/Debuggeur
Utiliser l’Editeur/Débuggeur de MATLAB contenu d’un fichier dans la fenêtre des
(figure 9) pour créer ou débuguer un M- commandes.
fichier ou des fonctions.
L’Editeur/Débuggeur fournit une interface
graphique pour des éditions de textes
basiques mais aussi un outil de débuggage.
Il est indispensable d’utiliser cet outil pour
développer des fonctions Matlab. On peut
utiliser aussi un autre éditeur de fichier
puissant. Si l’on désire juste l’affichage
d’une fonction ou d’un M-fichier sans
nécessité d’édition, on peut simplement
Fig. 9 Editeur/Débuggeur de MATLAB
utiliser la commande type qui affiche le
TLILI A. pg. 7
TP 1 : INTRODUCTION A MATLAB
Pour une prise en main rapide de MATLAB, nous allons brièvement introduire quelques
fonctions de bases.
3. Démarrage de MATLAB
Pour lancer MATLAB sous Windows, double cliquer sur l’icône de MATLAB, le bureau
relatif à Matlab est alors affiché (figure 1). Vous pouvez quitter Matlab en choisissant « Exit
MATLAB » dans le menu « file » ou taper simplement l’une des deux commandes quit ou
exit dans la fenêtre « command window ».
NB : n’utiliser jamais la croix en haut à droite pour fermer Matlab car ça empêche
Matlab de se fermer correctement et parfois cela peut entrainer des problèmes à Windows
lui-même.
Remarque : garder l’affichage par défaut du bureau Matlab ça vous facilite beaucoup le
travail. Dans le cas où vous ne trouverez pas l’affichage par défaut, aller au menu
« Desktop » puis cliquer sur « desktop Layout » et choisissez « Default ».
4. Expressions
4.1. Les variables
Il n’est pas nécessaire de déclarer les variables ou bien encore leurs dimensions. Quand
Matlab rencontre un nouveau nom de variable, il créer automatiquement cette variable et
alloue la place mémoire nécessaire `a sons stockage. Si la variable existe déjà, Matlab change
son contenu et si nécessaire ré alloue une nouvelle place pour le stockage. Par exemple :
num_students = 25
Crée une matrice 1 × 1 de nom num_students et stocke la valeur 25 dans cet élément simple.
Les noms de variables doivent commencer par une lettre, suivie par un nombre quelconque de
lettres, de chiffres ou d’underscores. Matlab n’utilise que les 31 premiers caractères pour
identifier les variables. Attention, Matlab fait la distinction entre majuscules et minuscules.
Ainsi, A et a ne désigne pas la même variable. Pour voir le contenu d’une variable, il suffit
simplement de taper son nom dans command window suivi d’un retour chariot.
4.2. Les nombres
Matlab utilise par convention le point (.) comme notation décimale. On peut définir aussi les
nombres à l’aide de la notation scientifique. Elle utilise la lettre e pour spécifier le facteur de
puissance de 10. Voici quelques exemples de nombres
3 -99 0.0001
9.6397238 1.60210e-20 6.02252e23
1i -3.14159j 3e5i
TLILI A. pg. 8
TP 1 : INTRODUCTION A MATLAB
Tous les nombre sont stockés de manière interne en utilisant le format long défini par la
norme flottante IEEE. La précision est donc de 16 chiffres après la virgule et un intervalle de
nombre entre 10−308 et 10308.
Le nombre complexe i = sqrt(-1) est noté i ou j. Un nombre complexe est donc de la forme
z=a+bi ou a+bj, mais MATLAB dans ses réponses utilise toujours i.
Format des nombres et précision des calculs
MATLAB peut afficher les valeurs des variables dans différents formats :
- Flottant court: short
- Flottant long: long
- Flottant court et notation scientifique : short e
- Flottant court et notation scientifique : long e
- Format rationnel : fraction
Opérateurs arithmétiques
+ : addition Opérateurs logiques
- : Soustraction & : AND
* : Multiplication | : OR
/ : Division à droite < : Inférieur à
\ : Division à gauche (matrices) > : Supérieur à
^ : Élévation à la puissance <= : Inférieur ou égal
./ : Division à droite >= : Supérieur ou égal
.\ : Division à gauche == : Egal
.* : Multiplication ~= : Différent
.^ : Elévation à la puissance
sinh, par contre, sont mises en œuvre à l’aide de M-fichiers. On peut donc voir leur code et
même les modifier si l’on veut.
Plusieurs fonctions spéciales donnent les valeurs des constantes usuelles
pi 3.14159265...
i nombre imaginaire √− ,
j comme i
eps précision flottante relative, 2−52
realmin plus petit nombre flottant, 2−1022
realmax plus grand nombre flottant, (2 − ε)21023
Inf Infini
NaN Not-a-number
L’infini est généré en divisant une valeur quelconque par 0. Not-a-numbre est généré en
tentant d’évaluer des expressions comme 0/0 ou Inf-Inf. Les noms de fonctions ne sont pas
réservés. Il est possible de les écraser avec une nouvelle variable. Attention, ceci est une
source d’erreur. Si l’on utilise i comme indice d’une boucle par exemple, il n’aura plus le sens
d’un nombre complexe. Pour le ramener à son état initial, il faut utiliser clear i.
Les fonctions mathématiques de base sont données dans le tableau suivant :
Fonction Description Fonction Description
abs Valeur absolue. Module (nb.complexe) sin sinus
angle Argument (nb.complexe) cos cosinus
sqrt Racine carrée tan tangente
real Partie réelle asin Inverse sinus
imag Partie imaginaire acos Inverse cosinus
conj Conjuguée (nb.complexe) atan Inverse tangente
round Arrondir au plus proche entier sinh Sinus hyperbolique
fix arrondir (vers zéro) cosh Cosinus hyperbolique
floor Arrondir (vers -∞) tanh Tangente hyperbolique
ceil Arrondir (vers +∞) asinh Inverse sinus hyperbolique
sign signe acosh Inverse cosinus hyperbolique
rem Reste atanh Inverse tangente hyperbolique
exp Exponentiel and Opérateur logique et
log Logarithme base e or Opérateur logique ou
log10 Logarithme base 10 not Opérateur logique non
4.5. Exemples :
Les exemples suivants vont vous aider à bien comprendre les opérations de bases avec
Matlab. Taper les exemples suivants dans la fenêtre command window.
TLILI A. pg. 10
TP 1 : INTRODUCTION A MATLAB
Exemple 1:
>>a=2 >> a=0.2; >> x = -2+5i
a = >> round(a) x =
2 ans = -2.0000 +
>> a=5+6 0 5.0000i
a =
11 >> rem(5,3) >> a = real(x)
ans = a =
>> 4+5 2 -2
ans =
9 >> a=2; >> b = imag(x)
>> a^2 b =
>> a=-2; ans = 5
>> abs(a) 4
ans = >> c = abs(x)
2 >> a^3 c =
ans = 5.3852
>> a=sqrt(2) 8
a = >> alfa=angle(x)
1.4142 >> a^(5/2) alfa =
ans = 1.9513
>> a=1.56; 5.6569
>> round(a)
ans =
2
Exemple 2 :
>> w= 50 ;
>> t=0.5e-3 ;
>> y=25*exp(-4*t)*cos(w*t)
y =
24.9423
Exercice : choisir deux nombres complexes, par exemple -3 + 2i et 5 - 7i. Ajouter, soustraire,
multiplier et diviser ces deux nombres.
5. Programmation avec MATLAB
5.1. Structures de contrôles
5.1.1. Operateurs logiques et relationnels
Pour obtenir de l’aide sur les opérateurs relationnels, taper help relop. Les opérateurs <, <=,
>, >=, == et ~= sont utilisés pour comparer. Les opérateurs logiques &, | et ~ permettent les
combinaisons logiques, les négations ou les relations. En plus, ils existent trois fonctions
supplémentaires : xor, any et all.
TLILI A. pg. 11
TP 1 : INTRODUCTION A MATLAB
Exemple :
Commande Résultat
a = (b > c) a est 1 si b est plus grand que c. identique avec >=, < et <=
a = (b == c) a est 1 si b est égal à c
a = (b ~= c) a est 1 si b n’est pas égal à c
a = ~b complément logique : a est 1 si b est 0
a = (b & c) ET logique : a est 1 si b est vrai et c est vrai
a = (b | c) OU logique : a est 1 si b est vrai ou c est vrai
5.1.2. Structure conditionnelle if
La commande if évalue une expression logique et exécute un groupe d’instructions quand
l’expression est vraie. Les mots clés optionnels elseif et else donne la possibilité d’exécuter
d’autres groupes d’instructions si l’expression est fausse. Il faut rajouter à la fin le mot clé
end pour indiquer la fin du dernier groupe d’instructions.
Remarque : pour traiter les exemples relatifs à ce paragraphe, veuillez ouvrir l’éditeur de
MATLAB « Editor » (figure10), taper les lignes de l’exemple, enregistrer puis exécuter
(figure 11).
Exemple :
a=input('donner la valeur de a = ')
b=input('donner la valeur de b = ')
if a>b
disp('a est supérieur à b')
elseif a==b
disp('a est égal à b')
else
disp('a est inférieur à b')
end
TLILI A. pg. 12
TP 1 : INTRODUCTION A MATLAB
TLILI A. pg. 13
TP 1 : INTRODUCTION A MATLAB
a = x; fa = fx;
else
b = x; fb = fx;
end
end
x
TLILI A. pg. 14
Atelier : Atelier de mathématiques
Pré requis :
Objectifs :
A la fin de la séance de TP, l’étudiant doit être capable de :
Tracer des courbes 2D avec MATLAB
Tracer des courbes 3D avec MATLAB
TP 2 : LES GRAPHIQUES SOUS MATLAB
1. Introduction
La fonction de base pour tracer un graphique avec MATLAB est la commande plot qui prend comme arguments une
2 , ’ . ’
’ ’ à ’ . , il est
, ’ ’ , ô ’ ’
graphique.
Indiquons quelques fonctionnalités graphiques de MATLAB. Elles se séparent naturellement en deux catégories
principales : les représentations dans le plan regroupées dans MATLAB sous la terminologie graph2d et les
représentations 2D/3D regroupées sous la terminologie graph3d. En outre, les fonctions graphiques très spécialisées
(maillage par exemple) sont regroupées dans specgraph. Les représentations graphiques sont réalisées dans un
environnement figure que vous pouvez contrôler.
2. L'environnement figure
Par défaut, toute commande de représentation graphique déclenche la création d'une fenêtre figure nommée figure1
contenant la représentation. Ceci implique en particulier que toute nouvelle représentation écrase la précédente. Il est
possible de conserver les différentes représentations. Il suffit de faire précéder chaque nouvelle commande de
représentation graphique par la commande « figure » qui crée successivement i ure 2, i ure 3, …On peut spécifier
directement le numéro de la figure. On peut également superposer des représentations graphiques sur une même
figure en utilisant la commande « hold on » Pour désactiver le mode superposé faire « hold off »
3. Graphiques à 2 dimensions
3.1. Principales fonctions graphiques
Les fonctions graphiques 2D usuelles de Matlab sont
3.1.1. Graphiques 2D : principales fonctions
Mot clé Fonction
plot(x,y) Tracé en 2D de la courbe passant par les points (x,y) avec une échelle linéaire
plotyy(x,y,x,z) Graphe avec deux axes ’ différents à gauche et à droite
loglog(x,y) Idem à plot(x,y) mais avec une échelle logarithmique pour les deux axes
semilogx(x,y) Idem avec échelle logarithmique sur ’ X
Semilogy(x,y) Idem avec échelle logarithmique sur ’ Y
figure, close ’
subplot Tracer plusieurs graphes alignés sur une même figure
grid Ajouter une grille
hold on / hold off A / à ’
polar Tracer en coordonnées polaires
bar Diagramme en barres
stairs Graphe en escalier
hist Histogramme
l el(‘l el’) L ’
l el(‘l el’) L ’
title(‘l el’) Titre au-dessus du graphique
te t( , ,’l el’) Chaine de caractère à la position x,y
TLILI A. pg. 16
TP 2 : LES GRAPHIQUES SOUS MATLAB
Taper help plot pour voir la liste des options et la liste des styles et symboles.
Quelques exemples :
Style des lignes/couleur Option dans plot
Ligne continue rouge -r
Traits longs noirs --k
Pointillés mauves :m
Traits longs + pointillés bleus -.b
Cercles verts og
Ligne continue + cercles jaunes -yo
Carrés bleu foncé sb
Croix bleu clair xc
Losanges + pointillés .d
Étoiles h
Astérisques *
Exemple 2 :
’ .
Taper le programme suivant :
clear all
TLILI A. pg. 17
TP 2 : LES GRAPHIQUES SOUS MATLAB
clc
x=0:0.1:2*pi; % Définition de l'axe des X
figure (1) % Spécifier le numéro de la figure
plot(x,sin(x),'b-o',x,cos(x),'m--+'); % Le graphe du sinus et du cosinus
axis([0 2*pi -1.1 1.1]); % Définition des axes
title('Le titre du graphique'); % Titre du graphique
xlabel('L''axe des X'); % Label de l'axe X
ylabel('L''axe des Y'); % Label de l'axe Y
legend('sinus','cosinus'); % Affiche la légende du graphique
TLILI A. pg. 18
TP 2 : LES GRAPHIQUES SOUS MATLAB
Subplot(2,1,1)
Subplot(2,1,2)
Exemple 5 :
clear all
clc
w=logspace(0,3,1000);
s=j*w;
H=225./(s.*s+3*s+225);
Adb=20*log10(abs(H)) ;
phase=angle(H)*(180/pi);
subplot(2,1,1),semilogx (w,Adb),grid
title('Courbe de Gain en [db]')
xlabel('Fréquence');
ylabel('Gain en [db]');
subplot(2,1,2),semilogx(w,phase),grid
title('Courbe de Phase')
xlabel('Fréquence');
ylabel('Phase');
Subplot(4,1,4)
TLILI A. pg. 19
TP 2 : LES GRAPHIQUES SOUS MATLAB
4. Graphiques à 3 dimensions
4.1. Principales fonctions graphiques
Les fonctions graphiques 3D usuelles de Matlab sont
4.1.1. Graphiques 3D : principales fonctions
Mot clé Fonction
plot3 T ’ 3
contour Lignes de niveau
mesh T ’ 3 ,à matrice de maillage
meshgrid Définition de matrices de maillage à partir de deux vecteurs
surf T ’ ce 3D avec dégradé de couleur, à partir de matrice de maillage
surfc T ’ 3 ’ -valeurs
ezmesh, ezmeshc Tracé facile de surface (matrices de maillage définies par défaut)
ezsurf, ezsurfc Tracé facile de surface avec dégradé de couleur (matrices de maillage définie par défaut)
sphere ’ sphère
cylinder ’
TLILI A. pg. 20
TP 2 : LES GRAPHIQUES SOUS MATLAB
Exemple 2 :
L'hélice est une courbe ayant pour base �, le cercle et dont l'élévation est proportionnelle au paramètre de
description du cercle (l'angle �).
Taper le programme suivant :
clear all
clc
theta= [0 :0.1: 6*pi] ; % 3 spires d'hélice
radius = 3 ;
pas = 1 / (2*pi) ;
X = radius * sin(theta) ; % Calcul de x
Y = radius * cos(theta) ; % Calcul de y
Z = pas * theta ; % Calcul de z
plot3(X,Y,Z,'b') % Traçage de la courbe en 3D
grid on % Activation de la grille
TLILI A. pg. 21
TP 2 : LES GRAPHIQUES SOUS MATLAB
Exemple 3 :
Une surface est une application de x, y vers z de la forme = f x, y .
Exemple: le plan est décrit par l'équation z = a x + b y + z
La représentation est calculée pour un maillage des valeurs de l'espace de départ; le tracé de ce maillage forme une
grille rectangulaire ou carrée. Chaque point du maillage est caractérisé par le couple des coordonnées x, y .
Taper le programme suivant :
clear all
clc
a = 1.5 ; b = .7 ; z0 = 2 ;
X = [ -5 : .5 : 5 ]; Y = [ -7 : .3 : 7 ];
% génération de la grille X par produit extérieur
GrilleX = ones(length(Y),1)* X ;
GrilleY = Y' * ones(1, length(X));
Z = a *GrilleX + b * GrilleY + z0 * ones(length(Y), length(X));
surf(Z)
TLILI A. pg. 22
TP 2 : LES GRAPHIQUES SOUS MATLAB
5. Exercice d’application
TLILI A. pg. 23
Atelier : Atelier de mathématiques
Pré requis :
Objectifs :
TLILI A. pg. 24
TP 3 : CALCUL MATRICIEL
1. Rappel de cours
Soit A = (a ) une matrice de ℝn×n (ou ℂn×n ), A est inversible s’il existe B ∈ ℝn×n ou ℂn×n
telle qu AB = BA = I, notation B = A− .
Le rang de � est le nombre de vecteurs colonnes (ou lignes) indépendants ; notation � � .
Le rang est la dimension de la plus grande matrice carrée de déterminant non nul extraite de A.
Le noyau de � est l’ensemble des vecteurs X tels que �� = ; notation � .
Un réel ou un complexe � est une valeur propre de A et V ∈ ℝn ou ℂn , � non nul, un vecteur
propre associé si �� = ��. Les valeurs propres de A sont les racines du polynôme �−
�� = . L’ensemble des valeurs propres de A est le spectre de la matrice ; notation � � .
A ∈ ℂn×n est inverible à l’une des conditions nécessaires et suffisante suivantes : 0 n’est pas
valeur propre ou � ≠ ou � = { } ou � � = .
A est diagonalisable dans ℂ s’il existe une matrice inversible P ∈ ℂn×n et une matrice diagonale
D ∈ ℂn×n telles que �− �� = �. Dans ce cas les valeurs propres de � sont sur la diagonale de
�, les vecteurs propres sont les colonnes de �. � peut-être diagonalisable dans ℝ si � et � sont
dans ℝn×n . � est diagonalisable si et seulement si il existe une base { , … . . } de vecteurs
propres.
2. Introduction
Dans Matlab, une matrice est un tableau rectangulaire de nombres. Des significations
particulières sont liées aux matrices × , qui sont des scalaires, et aux matrices avec
seulement une ligne ou une colonne, qui sont vecteurs. Ainsi, toutes variables, à quelques
exceptions près, sont des matrices. Matlab possède d’autres méthodes de représentation de
l’information, à la fois numérique et non numérique, mais pour commencer, il est préférable de
penser que tout est une matrice. Les opérations en Matlab sont définies pour être les plus
naturelles possibles.
Avec Matlab, il est possible de manipuler et de travailler simplement avec des matrices
complètes, sans être obligé de coder les produits matrices-matrices ou matrices-vecteurs par
exemple comme c’est le cas en Fortran ou en C.
3. Vecteurs
Par défaut, le vecteur est une ligne à plusieurs colonnes. On peut le définir soit :
En donnant la liste de ces éléments
>> x = [0.5 1.2 -3.75 5.82 -0.735]
x =
x =
TLILI A. pg. 25
TP 3 : CALCUL MATRICIEL
>> x=linspace(1,10,6)
x =
y =
1.0e+03 *
Taper help logspace et help linspace pour plus d’information sur ces deux commandes.
Pour générer un vecteur colonne il suffit de placer l’apostrophe « ‘ » devant le nom du vecteur :
>> x = [0 : pi/10 : pi]
x =
Columns 1 through 8
Columns 9 through 11
>> x'
ans =
0
0.3142
0.6283
0.9425
1.2566
1.5708
1.8850
2.1991
2.5133
2.8274
3.1416
TLILI A. pg. 26
TP 3 : CALCUL MATRICIEL
ans =
0.6283
Pour extraire un bloc d’élément dans un vecteur, par exemple les valeurs allant du 2ème au 4ème
élément on écrit :
>> x(2 : 4) % un bloc de composantes
ans =
Pour extraire les valeurs d’un ensemble d’éléments spécifiques, par exemple les valeurs du
8ème , 3ème , 9ème et 5ème éléments on écrit :
>> x([8 3 9 5]) % une sélection de composantes (on les désigne
avec un autre vecteur!)
ans =
a =
1 2 3
>> b=[10:10:30]
b =
10 20 30
>> c = [a b]
c =
1 2 3 10 20 30
On peut faire plus compliqué :
TLILI A. pg. 27
TP 3 : CALCUL MATRICIEL
d =
2 1 10 20 30
4. Matrices
4.1. Création de matrices
Les matrices suivent la même syntaxe que les vecteurs. Les composantes des lignes sont
séparées par des
virgules et chaque ligne est séparée de l'autre par un point-virgule.
Par énumération des éléments
>> m1 = [ 1 2 3 ; 4 5 6 ; 7 8 9] % on sépare les lignes par des
points-virgules
m1 =
1 2 3
4 5 6
7 8 9
On peut étendre aux matrices les autres manières de définir des vecteurs.
Par exemple:
>> m2 = [1:1:3 ; 11:1:13]
m2 =
1 2 3
11 12 13
m3 =
4.2. Transposition
L’opérateur apostrophe (') utilisé pour créer un vecteur colonne est en fait l’opérateur
transposition :
>> m2'
ans =
1 11
2 12
3 13
TLILI A. pg. 28
TP 3 : CALCUL MATRICIEL
ans = ans =
10 110 -9 -8 -7
20 120 1 2 3
30 130
>> m2/4
>> 4*m2
ans =
ans =
0.2500 0.5000 0.7500
4 8 12 2.7500 3.0000 3.2500
44 48 52
Une exception:
>> m2^2
Error using ^
Inputs must be a scalar and a square matrix.
To compute elementwise POWER, use POWER (.^) instead.
Dans ce cas, Matlab veut calculer le produit matriciel × . La solution est l’usage du
point qui force l’opération sur chaque élément :
>> m2 .^ 2
ans =
1 4 9
121 144 169
m1 =
1 2 3
4 5 6
7 8 9
m2 =
1 2 3
11 12 13
TLILI A. pg. 29
TP 3 : CALCUL MATRICIEL
m3 =
ans =
14 74
32 182
50 290
Vous pouvez tester le produit suivant m × m et vous allez voir que ça génère une erreur :
>> m1 * m2
Error using *
Inner matrix dimensions must agree.
ans =
Divisions
>> m2/m3 % division matricielle à droite
ans =
1.0000 -0.0000
9.5406 -1.5960
ans =
TLILI A. pg. 30
TP 3 : CALCUL MATRICIEL
ans =
ans =
ans =
1 1 1
1 1 1
1 1 1
Taper help ones pour plus d’information sur la commande ones
>> zeros(2,5)
ans =
0 0 0 0 0
0 0 0 0 0
Taper help zeros pour plus d’information sur la commande zeros
>> eye(4) >> eye(3,4)
ans =
ans =
1 0 0 0
0 1 0 0 1 0 0 0
0 0 1 0 0 1 0 0
0 0 0 1 0 0 1 0
Taper help eye pour plus d’information sur la commande eye
>> diag([1 : 4])
ans =
1 0 0 0
0 2 0 0
0 0 3 0
0 0 0 4
TLILI A. pg. 31
TP 3 : CALCUL MATRICIEL
ans =
ans =
2 3
ans =
ans =
A =
1 2 3
4 5 6
7 8 9
ans =
7 8 9
4 5 6
1 2 3
ans =
3 2 1
TLILI A. pg. 32
TP 3 : CALCUL MATRICIEL
6 5 4
9 8 7
ans =
1 4 7 2 5 8 3 6 9
ans =
1
5
9
>> diag (ans) % diag travaille dans les 2 sens !
ans =
1 0 0
0 5 0
0 0 9
ans =
1 2 3
0 5 6
0 0 9
ans =
1 0 0
4 5 0
7 8 9
TLILI A. pg. 33
TP 3 : CALCUL MATRICIEL
FONCTION DESCRIPTION
ones(i,j) Crée un tableau de i lignes j colonnes contenant des 1
zeros(i,j) Crée un tableau de i lignes j colonnes contenant des 0
eye(i,j) Crée un tableau de i lignes j colonnes avec des 1 sur la diagonale
principale et 0 ailleurs
toeplitz(u) Crée une matrice de Toeplitz symétrique dont la première ligne est
le vecteur u
diag(u) Crée une matrice carrée avec le vecteur u sur la diagonale et 0
ailleurs
diag(U) Extrait la diagonale de la matrice U
triu(A) Renvoie la partie supérieure de A
tril(A) Renvoie la partie inférieure de A
linspace(a,b,n) Crée un vecteur de n composantes uniformément reparties de a à b
A\b Résolution du système linéaire Ax=b
cond(A) Conditionnement d'une matrice (norme euclidienne)
det(A) Déterminant d'une matrice
rank(A) Rang d'une matrice
inv(A) Inverse d'une matrice
pinv(A) Pseudo inverse d'une matrice
svd(A) Valeurs singulières d'une matrice
norm(A) Norme matricielle ou vectorielle
u' Prend le transposé de u
u*v Multiplication matricielle
u+v Addition matricielle
u-v Soustraction matricielle
u.* v Multiplication des tableaux u et v terme à terme
u./v Division du tableau u par le tableau v terme à terme
find(C(A)) Indices des composantes du tableau A vérifiant la condition C(A)
4.9. Exercices
Exercice 1 :
On note , et les vecteurs suivants :
� � �
= − , = − , = − .
a- Calculer
- ,
- ‖ ‖,
- − + ,
- ‖ − + ‖,
- ‖ − ‖
b- Déterminer l’angle formé par le deux vecteurs et
Exercice 2 :
On note A, B, C les matrices suivantes :
− − −
�= , = , = .
− −
−
5. Exercice d’application
5 7 1 4
8 2 1 3
Soit la matrice � =
11 3 9 7
4 5 6 2
TLILI A. pg. 35
TP 3 : CALCUL MATRICIEL
= � ≤
c. Calculer la matrice B telle que : {
= ( ) � >
TLILI A. pg. 36
Thème : Atelier Mathématique
Pré requis :
Objectifs :
1. Rappels
1.1. Systèmes d’équations linéaires (SEL)
+ + + =
={ … } Eq. 1
+ + + =
Exemple 1.1
+ − =
={ }
+ =
Exemple 1.2
+ =
={ }
− =
Exemple 1.3
+ =
={ }
+ =
Exemple 1.4
+ =
={ }
− =
TLILI A. pg. 38
TP 4 : Résolution des systèmes d’équations linaires
Exemple 1.5
+ − =−
={ }
+ =
Un système d’équation linéaire peut s’écrire sous une forme matricielle suivante :
� = Eq. 2
Avec :
…
�=[ ⋱ ]
…
� � = , , = … , = …
Ainsi, la résolution de ne dépend plus que du rang de � et de celui de [� ], selon le tableau
récapitulatif suivant :
SELN : � = SELH � =
Les SELH ont toujours
� � [� ] ≠ � � � n’a pas de solution
une solution
� � [� ] = � � � = � à une solution :
� = Solution unique Solution unique (triviale)
� < Infinité de solutions Infinité de solutions
La résolution du SEL donné par l’équation générale (Eq.1) ou (Eq.2) est effectué avec
l’opérateur « \ » :
= �\ Eq. 3
Dans (Eq. 2), la matrice � peut-être rectangulaire ( ≠ ) comme elle peut être carrée =
. L’opérateur « \ » emploie différentes méthodes de résolution de l’équation (Eq. 2), selon le
type de la matrice �. La solution ainsi obtenue n’est pas nécessairement la solution du système
et peut représenter juste une solution particulière. Le tableau I.1 (théorème de Kronecker-
TLILI A. pg. 39
TP 4 : Résolution des systèmes d’équations linaires
Capelli) nous indique si le système à une solution ou pas et si cette solution (si elle existe) est
unique. Selon la dimension de �, Matlab distingue les trois cas suivants :
�� � Matlab
= Solution exacte (si elle existe)
> Solution des moindres carrés
Exemple 2.1
−
�=[ ] =[ ]
= � � ∙
= �\
TLILI A. pg. 40
TP 4 : Résolution des systèmes d’équations linaires
On parle de système surdéterminé quand le nombre des équations est supérieur au nombre
des inconnues . Cette situation est souvent confrontée lors de l’approximation des résultats de
mesures expérimentales par une équation linéaire.
Exemple 2.4
On suppose : ≈ + − ,
est approximé par une combinaison linéaire de deux vecteurs, dont l’un est le vecteur unité
et l’autre le vecteur avec les composantes égales à − . Les inconnues et sont les
paramètres de l’approximation. Elles sont obtenues en minimisant l’erreur quadratique, qui
représente le carré de la déviation des données réellement mesurées de celles du modèle.
>> t=[0 0.3 0.8 1.1 1.6 2.3] ;
>> y=[0.82 0.72 0.63 0.6 0.55 0.5] ;
>> A = [ones(size(t)), exp(-t)] ;
>> x=A'\y'
x =
0.4760
0.3413
Finalement on peut écrire comme suit :
� = . + . � � −�
Exemple 2.5
2 x1 x 2 2
x1 x 2 5
6 x1 x 2 5
On parle de système sous déterminé lorsque le nombre d’équations est inférieur au nombre
d’inconnues . La solution n’est jamais unique. L’opérateur « \ » de Matlab fournis une
solution particulière du système, avec au maximum composantes non nulles.
TLILI A. pg. 41
TP 4 : Résolution des systèmes d’équations linaires
Exemple 2.6
2 x1 3x 2 4 x3 4
x1 x 2 x3 5
Un SEL est dit mal conditionné lorsque de très petites variations des composantes de la Matrice
� ou du vecteur provoquent de très grandes variations de la solution du système. Ceci est
souvent le cas quand les valeurs de � ou de sont obtenues par des mesures expérimentales,
sujettes en général à des incertitudes, des erreurs de mesure, etc…
Exemple 3.1
TLILI A. pg. 42
TP 4 : Résolution des systèmes d’équations linaires
4. Applications
Exercice 1
Résoudre les exemples 1.1 à 1.5 à l’aide de l’opérateur \. Vérifier toujours la validité des
solutions par le théorème de Kronecker-Capelli.
Exercice 2
Résoudre les systèmes suivants avec Matlab. Vérifier la validité des solutions par le théorème
Kronecker-Capelli.
2ix1 3x 2 (1 i) x3 1 3i
x 2 4 x3 x 4 0 x 2 3x3 2 x 4 4
2 x1 4 x 2 6 x3 2 x 4 10
x3 2 x 4 9 3x1 9 x 2 3x3 12
5 x 4 20
x1 2 x 2 3x3 2
x1 2 x 2 1
2 x1 7 x 2 4 x3 8
4 x1 3x 2 2 x3 5 x1 2 x 2 2
Exercice 3
2 1 1 1 4 3
3 1
A = 2 3 4 A = 0 1 2 A=
1 1 2 0 0 1 2 1
Exercice 4
2 1 2
A = 1 2 2
2 2 5
Exercice 5
0 6 1
= ��
, avec � = 6 2 16 et = �
condition initiale.
5 20 10
TLILI A. pg. 43
TP 4 : Résolution des systèmes d’équations linaires
��
Calculer = [ ] pour = : . : .
Faire un graphique en 3D avec les trois premières colonnes de .
0 ... 0 x
� carré, � et matrices triangulaires supérieure
L,U]=lu(A)
et inférieure : � = �
Norme de �, A
m n 1
2 2
norm(A) aij
i 1 j 1
etA= A k
Sqrtm(A)
tk
Expm(A)
k 0 k!
A^p � ∙ � ∙ … ∙ � : p fois
A^(-p) �− ∙ �− ∙ … ∙ �− : p fois
A.^p Elévation à la puissance des composantes de �
TLILI A. pg. 44