Vous êtes sur la page 1sur 46

MINISTÈRE DE L’ENSEIGNEMENT SUPÉRIEUR

ET DE LA RECHERCHE SCIENTIFIQUE
ISET — Nabeul
Département Génie mécanique

ATELIER MATHÉMATIQUE
INITIATION A MATLAB

Adnene TLILI

A.U. : /
SOMMAIRE

T.P : N° 1 INTRODUCTION A MATLAB 1

T.P : N° 2 LES GRAPHIQUES SOUS MATLAB 15

T.P : N° 3 CALCUL MATRICIEL 24

T.P : N° 4 RESOLUTION DES SYSTEMES D’EQUATIONS LINEAIRES 37


Thème : Atelier de mathématiques

Clientèle : L1 génie mécanique

Temps alloué : 6 heures

Pré requis :

 Connaissances mathématiques de base


 Connaissances informatiques de base

Objectifs :

 Avoir une idée générale sur les fonctions MATLAB


 Se familiariser avec l’environnement MATLAB
 Savoir utiliser les structures itératives et conditionnelles
TP 1 : INTRODUCTION A MATLAB

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

légendes. Il inclue des fonctions de visualisation 2D et 3D de haut niveau. Il est


même possible de fabriquer de petites IHM (interfaces hommes machines)
L’API MATLAB L’API (Application Program Interface) est une librairie qui permet de
développer ses propres programmes optimisés en C et en Fortran et de les faire
interagir avec MATLAB. Elle inclut des fonctions pour l’appel de routines à partir de
MATLAB (liaison dynamique) ou l’appel de MATLAB comme moteur de calcul.
1.3. La Documentation MATLAB
MATLAB fournit une documentation détaillée à la fois en ligne et sous forme de fichiers
PDF. L’aide en ligne est la plus simple à manipuler. Il suffit de sélectionner l’aide MATLAB
dans le menu d’aide (Help menu) directement dans MATLAB. L’aide MATLAB est
organisée en
– Environnement de développement fourni l’aide sur le bureau MATLAB ;
– Mathématique décrit comment utiliser les capacités mathématiques et statistiques de
MATLAB ;
– Programmation et types de données Décrit la manière de créer des scripts et des
fonctions en utilisant le langage MATLAB ;
– Graphisme Décrit comment tracer des données ;
– Visualisation Introduit comment on utilise les vues, les lumières, la transparence pour
réaliser des effets graphiques complets ;
– GUI Création d’interfaces IHM ;
– Interfaces externes/API interface avec des programmes C et Fortran, classes Java,
COM objets, fichiers de données, liaison séries.
2. Desktop Tools
Il est possible de changer l’apparence du bureau (figure 1) en ouvrant, fermant, déplaçant et
réduisant/augmentant la taille des fenêtres. Utiliser le menu « View » pour ouvrir ou fermer
des outils. Il est aussi possible de bouger des outils en dehors du bureau ou les ramener
(propriété de docking). Tous les outils ont des propriétés communes telles que les menus
contextuels et les raccourcis claviers. Il est possible de changer quelques caractéristiques pour
les outils en sélectionnant « Preferences » dans le menu « File ». Par exemple, on peut
changer la caractéristique « Font » pour le texte de la fenêtre de commande (Command
Window).

TLILI A. pg. 3
TP 1 : INTRODUCTION A MATLAB

Fig. 1 Bureau MATLAB

2.1. Fenêtre de commande


La fenêtre de commande « Command
Window » (figure 2) est principalement
utilisé pour écrire et exécuter des
commandes tels qu’entrer des variables,
faire un calcul, visualiser des résultats,
exécuter des fonctions et des M-fichiers.
C’est la fenêtre principale avec laquelle
l’utilisateur de MATLAB interagie.

Fig. 2 Command Window

2.2. Historique de commandes


Les lignes tapées dans la fenêtre Command
Window sont automatiquement
sauvegardées dans la fenêtre « Command
History » (figure 3). On y voit donc les
lignes précédemment tapées et il est
possible de les copier ou d’en sélectionner
un groupe afin de l’exécuter.

Fig. 3 Command History

2.3. Le bouton Start et le Launch Pad


Le bouton Start fournit un accès simplifié aux outils, démonstration et à la documentation. Il
suffit juste de cliquer dessus pour voir les options. Le « Launch Pad » donne un accès
similaire dans la vue arborescente.

TLILI A. pg. 4
TP 1 : INTRODUCTION A MATLAB

Fig. 4 Le bouton Start et le Launch Pad


2.4. Le navigateur d’aide
On utilise le navigateur d’aide pour chercher et voir la documentation et les démonstrations
pour tous les produits MATLAB. Le navigateur d’aide est un navigateur internet intégré au
bureau MATLAB qui affiche des documents HTML. Pour ouvrir le navigateur d’aide, il suffit
de cliquer sur le bouton d’aide dans la barre d’outils, ou de taper « helpbrowser » ou encore
« helpdesk » dans la fenêtre de commande.
Le navigateur d’aide consiste en deux parties, le « Help Navigator » (partie gauche), qui sert à
la recherche de l’information, et la partie affichage où l’on voit l’information.

Fig. 5 Le navigateur d’aide

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.

Fig. 6 Current Directory

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.7. Array Editor


Double-cliquer une variable dans le
navigateur workspace pour la voir dans
l’éditeur de variables « Array Editor » (figure
8). Il est alors possible de l’éditer sous une
représentation visuelle dans un format de
tableau uni ou bidimensionnel, d’une chaîne
ou d’un tableau de cellules de chaînes.

Fig. 8 Array Editor

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

4.3. Les operateurs


Les expressions utilisent les opérateurs arithmétiques classiques ainsi que leurs règles
usuelles.

 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

4.4. Les fonctions


Matlab fournit un grand nombre de fonctions mathématiques standards, incluant par exemple
abs, sqrt, sin et exp. La racine carrée ou le logarithme d’un nombre négatif ne donne pas
d’erreur ; Le résultat approprié en complexe est renvoyé. Matlab met aussi à disposition des
fonctions mathématiques plus avancées incluant les fonctions de Bessel ou gamma. La
plupart de ces fonctions acceptent les arguments complexes. Pour une liste des fonctions
mathématiques élémentaires, taper
help elfun
Pour une liste de fonctions mathématiques plus avancées ou sur les matrices, taper
help specfun
help elmat
Quelques fonctions, comme sqrt et sin sont des fonctions (built-in). Ceci signifie qu’elles
font parties intégrantes du noyau Matlab et qu’elles sont ainsi très efficaces, mais les règles et
les détails de calcul ne sont pas accessibles en lecture. D’autres fonctions, comme gamma et
TLILI A. pg. 9
TP 1 : INTRODUCTION A MATLAB

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).

Cliquer ici pour enregistrer Cliquer ici pour exécuter

Fig. 10 Comment lancer l’éditeur

Fig. 11 Editor window

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

La commande input sert à lire une valeur à partir du clavier.


La commande disp sert à afficher un message à l’écran.

TLILI A. pg. 12
TP 1 : INTRODUCTION A MATLAB

5.1.3. switch et case


La commande switch exécute un groupe d’instructions suivant la valeur d’une variable ou
d’une expression. Les mots clés case et otherwise délimite le groupe. Seulement le premier
cas vrai est exécuté. Il doit obligatoirement y avoir un end à la fin.
Exemple :
a=input('Donner le case 5
numéro du mois '); disp('Mai') disp('Octobre')
switch a case 6 case 11
case 1 disp('Juin')
case 7 disp('Novembre')
disp('Janvier') case 12
case 2 disp('Juillet')
case 8 disp('Décembre')
disp('février') disp('Août') otherwise
case 3 case 9 disp('C''est
disp('Mars') impossible')
case 4 Disp('Septembre') end
case 10
disp('Avril')

5.1.4. Boucle for


On peut créer une boucle en utilisant for….end. On peut aussi réaliser des boucles for
imbriquées.
Exemple :
1- Boucle for simple : 2- Deux boucles for :
clear all clear all
clc clc
Y=0:0.1:2*pi; for i=1:3
for i=1:63 for j=1:3
X(i)=cos(Y(i)); A(i,j)=i+j;
end end
plot(Y,X) end
A
5.1.5. Boucle While
La boucle while répète un groupe d’instructions un nombre de fois indéterminé sous le
contrôle d’une expression logique. Un end termine l’instruction.
Voici un programme complet qui illustre while, if et else. C’est l’algorithme de la bissection
pour la recherche de zéros d’une fonction.
Exemple:
clear all
clc
a = 0; fa = -Inf;
b = 3; fb = Inf;
while b-a > eps*b
x = (a+b)/2;
fx = x^3-2*x-5;
if sign(fx) == sign(fa)

TLILI A. pg. 13
TP 1 : INTRODUCTION A MATLAB

a = x; fa = fx;
else
b = x; fb = fx;
end
end
x

Le résultat est une racine du polynôme � − � − 5 =


6. Applications :
Pour chaque application, proposer un algorithme, corriger le avec votre enseignant puis passer
à la programmation avec l’éditeur MATLAB. Une fois votre programme tourne correctement
appeler votre enseignant pour l’évaluation.
6.1. Application 1
Ecrire un programme qui lit les trois coefficients a, b et c d’une équation de second degré de
la forme :
ax + bx + c =
Puis calcule et affiche le/les solutions éventuelles
6.2. Application 2
Ecrire un programme qui lit un nombre entier n tel que ≤ n ≤ , puis calcule et affiche
sont factoriel.

TLILI A. pg. 14
Atelier : Atelier de mathématiques

Clientèle : L1 génie mécanique

Temps alloué : 3heures

Pré requis :

 Les fonctions mathématiques élémentaires


 Les opérateurs mathématiques

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

Spécification des types de ligne avec plot

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 *

3.2. Traçage des courbes


Supposons que l'on veuille représenter graphiquement en mode superposé les courbes � � et � � sur
l'intervalle [ , �] avec 201 points. On exécute alors le programme suivant :
Exemple 1 :
clear all
clc
x=0:0.1:2*pi; % Définition de l'axe des X
y=sin(x);z=cos(x);
figure
plot(x,y) % Traçage de la fonction sinus
hold on % mode superposé
plot(x,z); % Traçage de la fonction cosinus
axis([0 2*pi -1 1]); % Définition des axes

Sur cette figure on arrive mal à distinguer la


. ’
a pas de titre, pas de légende, pas de labels pour
les axes.

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

La lisibilité du graphique est nettement


’ , tre du graphique,
la légende, le label des axes, les couleurs et les
marqueurs différents des tracés des courbes
sinus et cosinus

Exemple 3 : tracé d'une gaussienne


Taper le programme suivant :
clear all
clc
X=[ 0:0.1:10];
sigma=1; mu=5;
Gauss=exp(-(X-mu).*(X-
mu)/(2*sigma^2))...
/(sqrt(2*pi) * sigma);
plot(X,Gauss,'r')
grid on
title('Tracé d''une gaussienne');
xlabel('X');
ylabel('f(x)=Gauss(x)');

Exemple 4 : Tracé d'une courbe paramétrique


Chacun des points d'une courbe paramétrique est décrit par un couple de valeurs � , représentant l'abscisse et
l'ordonnée du point. L'abscisse et l'ordonnée sont fonction d'un paramètre qui parcourt un ensemble de valeurs.
Exemple : le cercle est décrit par � = � et = � avec = [ , �]
Taper le programme suivant :

clear all grid on


clc axis([-5 5 -5 5],'equal')
t = [0 :0.1: 2*pi]; radius = 3 ; title('Tracé d''une courbe
X = radius * sin(t); Y= radius * paramétrique');
cos(t); xlabel('X');
plot (X , Y , 'b') ylabel('Y');

TLILI A. pg. 18
TP 2 : LES GRAPHIQUES SOUS MATLAB

3.2.1. Graphiques multiples


’ subplot pour diviser la fenêtre en
plusieurs parties.
3.2.1.1. Diviser la fenêtre en deux parties

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');

Autres exemples de subdivisions :


Subplot(1,2,2)
Subplot(1,2,1)

Subplot(4,1,1) Subplot(2,2,1) Subplot(2,2,2)


Subplot(4,1,2)
Subplot(2,2,3) Subplot(2,2,4)
Subplot(4,1,3)

Subplot(4,1,4)

TLILI A. pg. 19
TP 2 : LES GRAPHIQUES SOUS MATLAB

Exercice 1 : styles de courbe


Utilisant le vecteur � = : . : ∗ � pour tracer sur un même graphique les trois courbes = � � , =
� � − . et = � � − .5 , de telle sorte que la courbe_1 soit une ligne continue rouge, la courbe_2 des
cercles bleus, et la courbe_3 des pointillés noirs.

Exercice 2 : graphique multiple


Reprendre le vecteur x = : . : ∗ pi, définir = � � et = � �− . , puis utiliser subplot pour
, ’ ’ .

Exercice 3 : labellisation des axes et titre


Reprendre le vecteur x = : . : ∗ pi, définir = � � .

Tracer = � avec un label « temps » 24 ’ « signal » 24 ’


Ajouter le titre « Tension en Volts » en police 36, en format helvetica et en gras

NB : appeler votre enseignant pour évaluer les résultats des exercices.

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 ’

1.1. Traçage des courbes 3D


L , , à ’ ’ de la commande plot
T ’ 1 suivant :
clear all
clc
t=0:0.05:25; % définition de l'axe temps
x=exp(-0.05*t).*sin(t); % Calcul de x
y=exp(-0.05*t).*cos(t); % Calcul de y
z=t; % Calcul de z
plot3(x,y,z) % Traçage de la courbe en 3D
grid on % Activation de la grille

TLILI A. pg. 20
TP 2 : LES GRAPHIQUES SOUS MATLAB

Ce qui donne le graphique suivant :

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

Ce qui donne le graphique suivant :

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)

Ce qui donne le graphique suivant :

TLILI A. pg. 22
TP 2 : LES GRAPHIQUES SOUS MATLAB

5. Exercice d’application

Soit le tableau de mesures suivant :

t 0 0.5 1 1.5 2 2.5 3 3.5 4


s 0 0.25 1 2.25 4 6.25 9 12.25 16
q 0 -1.5 -3 -4.5 -6 -7.5 -9 -10.5 -12

1) Tracer et donner un titre au graphique.


2) Tracer et nommer les axes.
3) Tracer et sur un même graphique mais sur deux courbes séparées.

Soient le vecteur � et les trois fonctions suivants


�= : :
� = � � ;
� = �� � ;
ℎ � = × � � ;
4) Tracer les fonctions et dans un même graphique.
5) Tracer les fonctions et ℎ sur un même graphique mais dans des zones séparées.

TLILI A. pg. 23
Atelier : Atelier de mathématiques

Clientèle : L1 génie mécanique

Temps alloué : 3 heures

Pré requis :

 Notions sur les matrices.


 Structures conditionnelles et itératives.

Objectifs :

A la fin de ce TP, l’étudiant sera capable de :

 Connaître la syntaxe Matlab.


 Résoudre des problèmes de calcul matriciel en utilisant la programmation
Matlab.
 Résoudre des équations polynomiales avec Matlab.

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 =

0.5000 1.2000 -3.7500 5.8200 -0.7350


 En donnant la suite qui forme le vecteur
>> x = 2 : 0.6 : 5

x =

2.0000 2.6000 3.2000 3.8000 4.4000 5.0000


 En utilisant une fonction qui génère un vecteur : « génération de vecteurs
métriques »

TLILI A. pg. 25
TP 3 : CALCUL MATRICIEL

>> x=linspace(1,10,6)

x =

1.0000 2.8000 4.6000 6.4000 8.2000 10.0000


Ou :
>> y=logspace(1,3,7)

y =

1.0e+03 *

0.0100 0.0215 0.0464 0.1000 0.2154 0.4642


1.0000

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

0 0.3142 0.6283 0.9425 1.2566 1.5708


1.8850 2.1991

Columns 9 through 11

2.5133 2.8274 3.1416

>> 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

3.1. Adressages et indexages


Pour manipuler le ième élément dans un vecteur, placer son indice i entre parenthèse, (i), devant
le nom du vecteur :
>> x(3) % 3ème élément du vecteur x

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 =

0.3142 0.6283 0.9425

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 =

2.1991 0.6283 2.5133 1.2566

3.2. Combinaison de vecteurs


3.2.1. Accolage de deux vecteurs:
>> a = [1:3]

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=[a(2:-1:1) b] % on accole b avec une portion de a dans


l’ordre renversé

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 = [1:1:3 ; logspace(0, 1, 3)]

m3 =

1.0000 2.0000 3.0000


1.0000 3.1623 10.0000

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

4.3. Opérations scalaires-matrices


Une telle opération agit sur chaque élément de la matrice :
>> m2' * 10 >> m2-10

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

4.4. Opérations entre matrices


 Multiplications
>> m1 = [ 1 2 3 ; 4 5 6 ; 7 8 9] % rappelons la définition de
m1

m1 =

1 2 3
4 5 6
7 8 9

>> m2 = [1:1:3 ; 11:1:13] % rappelons la définition de m2

m2 =

1 2 3
11 12 13

TLILI A. pg. 29
TP 3 : CALCUL MATRICIEL

>> m3 = [1:1:3 ; logspace(0, 1, 3)] % rappelons la définition


de m3

m3 =

1.0000 2.0000 3.0000


1.0000 3.1623 10.0000
Le produit des deux matrices m × m ne peut avoir lieu que si les dimensions des deux
matrices sont cohérentes :
>> m1 * m2' % le produit matriciel n’est possible que lorsque
les dimensions sont cohérentes

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.

 Multiplication élément par élément:


>> m2 .* m3 % (m2 et m3 ont les mêmes dimensions)

ans =

1.0000 4.0000 9.0000


11.0000 37.9473 130.0000

 Divisions
>> m2/m3 % division matricielle à droite

ans =

1.0000 -0.0000
9.5406 -1.5960

>> m2\m3 % division matricielle à gauche

ans =

-0.5000 -0.8257 -0.4500


0 0 0
0.5000 0.9419 1.1500

TLILI A. pg. 30
TP 3 : CALCUL MATRICIEL

 Division élément par élément


>> m2./m3 % chaque élément de m2 est divisé par l’élément
équivalent de m3

ans =

1.0000 1.0000 1.0000


11.0000 3.7947 1.3000

>> m2.\m3 % chaque élément de m3 est divisé par l’élément


équivalent m2

ans =

1.0000 1.0000 1.0000


0.0909 0.2635 0.7692

4.5. Matrices particulières


>> ones(3)

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

Taper help diag pour plus d’information sur la commande diag


>> rand(1,7) % nombres aléatoires entre 0 et 1

ans =

0.8147 0.9058 0.1270 0.9134 0.6324 0.0975


0.2785

4.6. Caractéristiques des matrices


>> size(m3) % renvois les dimensions de m3 nbr de lignes et nbr
de colonnes

ans =

2 3

>> length(m3) % équivalent à max(size(m3)) : dimension maximum

ans =

>> rank (m3) % nombre de colonnes ou lignes linéairement


indépendantes

ans =

4.7. Fonctions de manipulation des matrices:


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

A =
1 2 3
4 5 6
7 8 9

>> flipud(A) % renverse la matrice du bas en haut

ans =

7 8 9
4 5 6
1 2 3

>> fliplr(A) % retourne la matrice du gauche à droite

ans =

3 2 1

TLILI A. pg. 32
TP 3 : CALCUL MATRICIEL

6 5 4
9 8 7

>> rot90(A,1) % une rotations >> rot90(A,2) % deux


de 90 degrés (sens trigo) rotations de 90 degrés (sens
trigo)
ans =
ans =
3 6 9
2 5 8 8 9 7
1 4 7 5 6 4
2 3 1
>> reshape(A,1,9) % change la forme de la matrice (1 ligne, 9
colonnes)

ans =

1 4 7 2 5 8 3 6 9

>> diag(A) % extrait la diagonale de A

ans =

1
5
9
>> diag (ans) % diag travaille dans les 2 sens !

ans =

1 0 0
0 5 0
0 0 9

>> triu(A) % extrait le triangle supérieur de A

ans =

1 2 3
0 5 6
0 0 9

>> tril(A) % extrait le triangle inférieur de A

ans =

1 0 0
4 5 0
7 8 9

TLILI A. pg. 33
TP 3 : CALCUL MATRICIEL

Le tableau 1 suivant résume les principales opérations sur les matrices :

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.8. Exercices de manipulations avec les notions vues jusqu’ici

- Définissez A une matrice × ;� =[ ]

- Mettez à zéro l’élément ,


- Changez la valeur de l’élément dans la 2ème ligne, 6ème colonne, que se passe-t-il ?
- Mettez tous les éléments de la 4ème colonne à 4
- Créez B en prenant les lignes de A en sens inverse
- Créer C en accolant toutes les lignes de la première et troisième colonne de B à la droite
de A.
- Créer D × , sous-matrice de A × , faite des deux premières lignes et les deux
dernières colonnes de A. Trouvez aussi une manière de faire qui ne dépende pas de la
taille de A.
Note: chacun de ces exercices se fait en une seule instruction, sans boucles itératives.
TLILI A. pg. 34
TP 3 : CALCUL MATRICIEL

4.9. Exercices
Exercice 1 :
On note , et les vecteurs suivants :
� � �
= − , = − , = − .
a- Calculer
- ,
- ‖ ‖,
- − + ,
- ‖ − + ‖,
- ‖ − ‖
b- Déterminer l’angle formé par le deux vecteurs et

Penser à utiliser les fonctions norm et acos

Exercice 2 :
On note A, B, C les matrices suivantes :

− − −
�= , = , = .
− −

a. Calculer les matrices AB, BA et ABT.



b. Calculer la matrice � = � − .
c. Calculer les déterminants des matrices �, , , � et = ��� .
d. Calculer les inverses des matrices �, , , � et .
e. Calculer les valeurs propres de la matrice E.
f. Déterminer les vecteurs propres de la matrice A.

Penser à utiliser les fonctions : eye, det, inv et eig

5. Exercice d’application

 5 7 1 4 
 8  2 1  3
Soit la matrice � =  
 11  3 9  7
 
  4 5 6  2

a. En utilisant une boucle for, calculer les vecteurs � et �� contenant respectivement la


moyenne et la somme des vectrices lignes de �.
b. Refaire la même chose pour les vecteurs colonnes de �.

TLILI A. pg. 35
TP 3 : CALCUL MATRICIEL

= � ≤
c. Calculer la matrice B telle que : {
= ( ) � >

d. Calculer la matrice telle que = en utilisant une boucle for.


ère
e. Calculer la matrice D dont la 1 colonne contient les valeurs maximales des vecteurs
colonnes de � et la 2ème colonne contient les indices de ces valeurs maximales.
f. Calculer les vecteurs et les valeurs propres de �
g. Calculer la matrice � contenant les racines des polynômes dont les coefficients sont
donnés par les colonnes de .

Penser à utiliser les fonctions : Sum, mean, max, roots, eig,


polyval et size.

TLILI A. pg. 36
Thème : Atelier Mathématique

Clientèle : L1 génie mécanique

Temps alloué : 4.5 heures

Pré requis :

 Caractéristiques des matrices


 Méthodes directes de résolution des systèmes linéaires

Objectifs :

 Résoudre les systèmes linéaires avec inversions des matrices.


 Résoudre les systèmes linéaires.
 Conditionner un système linéaire.
TP 4 : Résolution des systèmes d’équations linaires

1. Rappels
1.1. Systèmes d’équations linéaires (SEL)

+ + + =
={ … } Eq. 1
+ + + =

est un système d’équations linéaires (SEL) avec équations et inconnues …


= Est un SEL homogène (SELH)
≠ Est un SEL nom homogène (SELN)
Tout = … satisfaisant les équations de est solution de
Les (SLEH) possèdent toujours une solution, notamment la solution triviale =

Exemple 1.1

+ − =
={ }
+ =

L’ensemble des solutions de (S1) est infini : � = {� , − , , � Є �}

Exemple 1.2

+ =
={ }
− =

L’ensemble des solutions contient uniquement la solution triviale.

Exemple 1.3

+ =
={ }
+ =

Le SELN n’a pas de solution

Exemple 1.4

+ =
={ }
− =

a une solution unique : � = { , − }.

TLILI A. pg. 38
TP 4 : Résolution des systèmes d’équations linaires

Exemple 1.5

+ − =−
={ }
+ =

L’ensemble des solutions de (S5) est infini : � = { − , , + � ,− , ,� Є � }

Est le SELH associé à . L’ensemble des solutions de est obtenu à partir de


l’ensemble des solutions de auquel on a additionné ce qu’on appelle une solution
particulière de .

1.2. Formulation matricielle des SEL

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

2. Résolution des SEL avec Matlab

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

< Solution particulière avec au maximum


m composantes non nulles

2.1. Résolution des SEL avec =

Une solution de l’équation 2 peut être obtenue par :


= �− ∙ , = � � ∙
�− Existe ssi � ≠ , dans ce cas la solution est unique. Or si � est une matrice singulière
�− n’existe pas .Ceci n’implique pourtant pas que le système n’a pas de solution !
Matlab résout le système également par la commande = �\

Exemple 2.1


�=[ ] =[ ]

Vérifier le théorème de Kronecker Capelli, puis :

= � � ∙

= �\

De même pour les exemples suivants :


Exemple 2.2
Exemple 2.3
− − −
�=[ ] =[ ] �=[ − − ] =[ ]
− −
Remarque :
La méthode de résolution avec Matlab par inversion de � n’est pas efficace d’un point de vue
numérique, surtout lorsque est très grand à cause du lourd calcul de � � et pour des
problèmes de précision des calculs. La méthode = �\ est souvent désignée par la méthode
par élimination de Gauss.

TLILI A. pg. 40
TP 4 : Résolution des systèmes d’équations linaires

2.2. Résolution des SEL avec >

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

Une grandeur physique, notée est mesurée à différents instants � :

� 0 0.3 0.8 1.1 1.6 2.3


0.82 0.72 0.63 0.6 0.55 0.5

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

2.3. Résolution des SEL avec <

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

3. Systèmes mal conditionnés

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

Soit le SEL suivant :[ ]∙[ ]=[ ]


. .
En format short on obtient la bonne solution :
>> A=[1 1; 1 1.01];
>> b=[2 2.01];
>> format short; x=A\b'
x=
1.0000
1.0000
En format long une très petite erreur est présente :
>> format long; x=A\b'
x=
1.000000000000022
0.999999999999978
.
En changeant une des composantes de A comme suit [ ] , on obtient :
.
>> A=[1 1.005; 1 1.01];
>> format long; x=A\b'
x=
-0.009999999999911
1.999999999999911
La modification de � , de . % a induit une modification de d’environ %.
Ceci est dû au fait que � est presque singulière.

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

Donner le polynôme caractéristique, ainsi que les valeurs et vecteurs propres de A.

Exercice 4

 2 1 2 
A =  1 2  2
 2  2 5 

a) Trouver les matrices � et � tel que = ��� − .


b) Trouver la matrice � tel que � = � � �.

Exercice 5

Soit le système décrit par :

 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 .

Quelques commandes utiles pour le calcul matriciel avec Matlab :

Commande Matlab Opération


det(A) Déterminant
rank(A) Rang de �
inv(A) Inverse de �
eig(A) Vecteur dont les composantes sont les valeurs propres de �,
� : matrice diagonale des valeurs propre de �
[V,D]=eig(A) � : matrice dont les vecteurs colonnes sont les vecteurs propres de �
�� = �� � = ��� −
Vecteur colonne dont les + éléments sont les coefficients du
poly(A)
polynôme caractéristique de �
� symétrique définie positive, � = � � �
 x ... x x 
 0 x x x
� matrice triangulaire supérieure :  
... 0 ... x 
R=chol(A)

 
 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

trace(A) Somme des valeurs propres de �


sqrt(A)=A.^(1/2) Matrice des racines carrées des composantes de �
exp(A) Matrice d valeurs exponentielles des composantes de �
≡ �^ /

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

Vous aimerez peut-être aussi