Vous êtes sur la page 1sur 18

Travaux Pratiques

Initiation à MATLAB®
Filière SMP-S6

Année Universitaire : 2021/2022

1
Sommaire
I Introduction : ..........................................................................................................................3

II Système MATLAB :...............................................................................................................4

II.1 Format d’affichage .............................................................................................................5

II.2 Aide en ligne ......................................................................................................................5

II.3 Expressions .......................................................................................................................6

II.4 Fonctions graphiques ........................................................................................................ 11

II.5 Scripts et fonctions Matlab ............................................................................................... 17

II.6 Commandes structurées .................................................................................................... 18

2
I Introduction :

Ce document est une introduction à MATLAB, acronyme de ‘MATrixLABoratory’,


est un programme informatique conçue pour fournir un environnement de calcul numérique et
de développement intégré pour la programmation d’applications. Il intègre le calcul, la
visualisation (graphique) et la programmation facile à utiliser où les problèmes et les solutions
sont exprimées en notation mathématique familière. Son fonctionnement repose sur un
langage de programmation interprété dont les variables ou les éléments de la base de données
ne nécessite pas de dimensionnement. Il permet de travailler soit en mode commande soit en
mode programmation, avec la possibilité de faire des visualisations graphiques. L’utilisateur
peut exécuter en mode commande n’importe quelle fonction mathématique se trouve dans la
bibliothèque des fonctions sans savoir à recourir à la programmation, qui consiste à écrire des
scripts de commande Matlab à exécuter dans la fenêtre d’exécution.

Matlab est un logiciel de calcul numérique et scientifique commercialisé par la société


MathWorks. Il a été initialement développé à la fin des années 70 par Cleve Moler, professeur
de mathématique à l’université du Nouveau-Mexique puis à Stanford, pour permettre aux
étudiants de travailler à partir d’un outil de programmation de haut niveau et sans apprendre le
Fortran ou le C.

MATLAB dispose de nombreuses «Toolboxes» (Boîtes à outils) qui sont des


collections compètes des fonctions Matlab «M-files» (programme en langage MATLAB)
spécifiques aux applications dans de nombreuses disciplines; Modélisation, Optimisation,
Identification, Conception, Statistiques, Mécanique, Automatique, Traitement du signal,
Traitement d’images, Télécommunications, Contrôle de systèmes, … .
Ci-dessous une liste montrant la diversité des fonctionnalités de Matlab :

Control System Toolbox Symbolic Math Toolbox Signal Processing Toolbox


Neural Network Toolbox Optimization Toolbox ParallelComputing Toolbox
Statistics Toolbox Fuzzy Logic Toolbox Image Processing Toolbox
Aerospace Toolbox Data Acquisition Toolbox Bioinformatics Toolbox
MATLAB Compiler Vehicle Network Toolbox Model-Based Calibration Toolbox
Financial Toolbox RF Toolbox System Identification Toolbox

Il existe deux modes de fonctionnement :

- exécutif : Matlab exécute ligne par ligne un M-file,


- interactif : Matlab exécute les instructions au fur et à mesure qu’elles sont données par
l’usager.

NB : Ce document a pour objectif de préparer l’étudiant aux travaux pratiques de


Mécanique Milieux Continus et Ondes Mécaniques et Méthodes Numériques. Il va vous
initier à Matlab et de vous montrer l’intérêt et la facilité de son utilisation pour la mise en
application et la simulation des principes théoriques présentés en cours. On s’intéresse
uniquement à l’environnement propre de Matlab, les commandes et syntaxes de base
d’instructions. Pour plus de d’informations veuillez consulter la documentation disponible en
ligne au site web :

3
http://www.mathworks.com/access/helpdesk/help/techdoc/matlab.shtml

Matlab, ses boîtes à outils et Simulink sont des produits développés par la société The
MathWorks,Inc.. Matlab® et Simulink® sont des marques déposées par cettesociété!

II Système MATLAB :

Le système MATLAB se compose de cinq parties principales :

- Environnement développement :L’ensemble d’outils qui vous aident à utiliser les


fonctions et les fichiers MATLAB sous forme d’interfaces graphiques ; la fenêtre de
commande (Command window), un historique des commandes (Commande History), un
éditeur et un débogueur et les navigateurs pour visualiser l’aide, l’espace de travail, des
fichiers et le chemin de recherche (Searchpath).

-Bibliothèque des fonctions mathématiques MATLAB : est une vaste collection


d’algorithme de calcul allant des fonctions élémentaires comme la somme (sum), sinus (sin),
cosinus (cos), …, à des fonctions plus sophistiquées comme l’inversion des matrices (inv), le
calcul des valeurs propre et des vecteurs propres d’une matrice (eig), fonctions de bassel
(bessel), transformées de Fouries rapides (fft), …

Par exemple :

>> x=4 ; y=10 ; >> abs (x-y)

>> cos (x) >> ans=

>>ans= 6

-0.6536

4
-Langage MATLAB : est un langage matriciel avec des déclarations de contrôle de boucles,
des fonctions, des structures de données, des entrées/sorties et des fonctionnalités de
programmation orientée objet. Et le plus important est que Matlab est un langage interprété :
toute commande tapée dans la fenêtre de commande est immédiatement exécutée (après la
frappe de return).

-Graphiques : MATLAB possède une facilité extensive permettant d'afficher des vecteurs et
des matrices sous forme de graphique. Il comprend des fonctions de haut-niveau pour la
visualisation bidimensionnelles et tridimensionnelles de données, d'images, d’animations. Il
comprend également des fonctions de bas niveau, ce qui vous permet de personnaliser
entièrement l'apparence des graphiques ainsi que de construire des interfaces graphiques
complètes pour vos applications MATLAB.

II.1 Format d’affichage

Matlab affiche des nombres de 4 chiffres après la virgule, tandis que la présentation
interne est faite à 16 chiffres. La commande format permet de modifier l’affichage du format
des différentes variables.

Exemple : Suivant le format, le nombre 4/3 s’écrira

format short ( format par défaut) 1.3333

format short e (1.3333e+00)

format long (1.333333333333333)

format long e (1.333333333333333 e+00)

II.2 Aide en ligne

Matlab offre une aide en ligne très complète. Elle peut être obtenue directement dans
la session en tapant à l’invite : help non de la commande.

Exemple :

>> help sin

helpfunc : affiche l’aide concernant la fonction func. Voir help help...

helpdesk : version graphique et navigable (html) de l’aide

5
lookforkeyword : lance une recherche sur toutes les fonctions Matlab, et retourne toutes les
fonctions dont l’aide contient le mot cl´e keyword

demo : Matlab contient de nombreuses démos. Taper demo, et naviguer...

II.3 Les expressions :

De même que la plupart des autres langages de programmation, Matlab fournit des
expressions mathématiques, mais il implique généralement que des matrices. Les éléments
constitutifs de ces expressions sont : Nombres, Opérateur, Fonctions, Variable.

Exemple :

1. Nombre

MATLAB utilise la notation décimale classique : un point pour séparer la partie


entière de la partie décimale et un signe moins pour les nombres négatifs. Il utilise la lettre e
pour spécifier une puissance de dix. Pour les nombres imaginaires MATLAB utilise
indifféremment les suffixes i ou j.

2. Opérateur

MATLAB utilise plusieurs opérateurs usuels et d’autre logique et relationnels pour


manipuler les expressions. On note ci-dessous les opérateurs les plus utilisé :

= affectation d’une valeur à une variable (ex. a = 2)

+,-,*,/ agissent indifféremment sur les réels, complexes, ou matrices (à


conditions que les dimensions de celles ci le permettent).

.* , ./ , .^ ,... (les opérateurs usuels précédés d’un point) opérations sur les matrices
effectuées terme à terme (ex. calculer A = [1 : 6]. ∗ [7 : 12])

i ou j nombre complexe : (1i)2 = −1

= =, >=, <=, <, > comparaison des éléments de deux matrices, terme à terme

abs, angle, real, imag opérations usuelles sur les nombres complexes

length Longueur d’un vecteur

size Dimension d’une matrice

sum, mean,... somme, moyenne,..., des éléments d’un vecteur

6
D’autre fonction : pour avoir plus d’informations tape help fun

3. Fonction

MATLAB fournit un grand nombre de fonctions mathématiques élémentaires


standard, y compris sin (sinus), cos (cosinus), tan (tangente), abs (valeur absolue ou module),
sqrt (racine carrée), exp (exponentiel), …. La plupart de ces fonctions acceptent des
arguments complexes. Pour obtenir une liste des fonctions mathématiques élémentaires,
tapez :

>> help elfun

4. Variable :

Le nom de variable est désigne par un identificateur qui est formé d’une combinaison
de lettres et de chiffres. Le premier caractère de l’identificateur doit nécessairement être une
lettre. Une variable peut être de type réel, complexe, chaîne de caractère ou logique.

Matlab considère toute variable comme une matrice (de dimension NxM). Une matrice
1×1 est interprétée comme un scalaire, celle ayant une seule ligne (1xN) ou une seule colonne
(Nx1) comme un vecteur. Ainsi, dans Matlab, il n'est pas nécessaire de déclarer le type
(réelle, complexe, …) ou la dimension (scalaire, matrice) de la variable que l'on manipule, y
compris les tableaux. MATLAB différencie entre les variables majuscules et minuscules.

NB :

-Un point virgule « ; » à la fin de la ligne permet de ne pas afficher le résultat. Ceci est très
utile surtout lorsqu’on exécutera des programmes importants : l’affichage des résultats des
instructions dans la fenêtre de commande retarde l’exécution des programmes.
- On peut taper plusieurs commandes par ligne, séparées par une virgule ou un point virgule.

7
- Lorsqu’une ligne de commande est trop longue on peut l’interrompre par trois points « ... »
et la poursuivre à la ligne suivante.
- On peut aussi mettre des commentaires dans une ligne de commande à l’aide du signe " % ".

a. Variables scalaires :

Les variables scalaires se déclarent directement et on distingue deux catégories : réels et


complexes.

Les scalaires réels peuvent présenter comme suivant : >> gamma = 2 ; x=pi/4 ;

Et pour les scalaires complexes >> k = 3 + 2*i ; r = abs (k) r = 3.6056

b. Vecteurs

 Vecteur ligne

Il peut être crée de manière suivant:

>>vl = [3 1.2 4 0 2] % on utilise un espace ou un virgule

>>n = length (vl) % la commande length renvoie le nombre de composantes d’un vecteur

n=5

 Vecteur par description

C’est un vecteur qui utilise un opérateur d’énumération, dont le premier élément est début
puis début+ pas jusqu’à début+n*pas tel que 𝑑é𝑏𝑢𝑡 + 𝑛 ∗ 𝑝𝑎𝑠 ≤ 𝑓𝑖𝑛 ≤ (𝑛 + 1) ∗ 𝑝𝑎𝑠

Variable = début : pas : fin

 Vecteur colonnes

Il peut être crée comme suivant :

>> x=[1 ; 3 ; 4] ; ou bien >> x = [1 3 4]’ % L’opérateur ‘ commande un transposé

 Fonction portant sur les vecteurs

sum(x) : somme des éléments du vecteur x

prod(x) : produit des éléments du vecteur x

max(x) : plus grand des éléments du vecteur x

min(x) : plus petit des éléments du vecteur x

mean(x) : moyenne des éléments du vecteur x

sort(x) : ordonne les éléments du vecteur x par ordre croissant

8
Cumsum(x) : somme cumulée

median(x) : valeur médiane

c. Matrices

Pour créer une matrice dans Matlab, on doit suivre la construction suivante :
𝑎11 𝑎12 … 𝑎1𝑚
𝑀 = ( 𝑎𝑖1 𝑎𝑖2 … 𝑎𝑖𝑚 )
𝑎𝑛1 𝑎𝑛2 … 𝑎𝑛𝑚

>>M= [a11……a1m ; …… ; an1……anm]

 Opérateurs sur les matrices

Matlab permet d’effectuer les opérations arithmétiques traditionnelles de façon


naturelle sans avoir à les programmer. Les opérateurs standards sont donc directement
applicables aux matrices. Si la commande entrée ne respecte pas les règles de calcul matriciel,
le logiciel renverra une erreur.

Calcule matriciel

Si l’on souhaite effectuer une opération,


non pas matricielle, mais éléments par
éléments, l’opérateur doit être précédé d’un
point « . » : .*./.^ .\

Exemple :

9
Exercice : Créer sur l’espace de commande les Matrice M et N suivants :

16 4 6 1 0 2
𝑀= (5 1 0) 𝑁 = ( 8 2 3)
0 12 8 12 4 0
- Calculer la somme, la soustraction, la multiplication et la division matricielle entre M et N.

- Calculer le produit et la division droite des deux matrices élément par élément.

- Déterminer l’inverse de (M*N), le transposé de (M+N) et calculer (M ./N)^2 et N*N’.

 Extraction des éléments d’une matrice

M(i, j) élément de la matrice M situé sur la ligne i et la colonne j


M(1:2,3) les éléments de la matrice M situés de la ligne 1 à 2, et sur la colonne 3
M( : , j ) toutes les lignes de la matrice M, colonne j
M( i , : ) toutes les colonnes de la matrice M, ligne i

10
 Quelques fonctions matricielles:

det(M) : renvoie le déterminant de la matrice M

inv(M) : renvoie l’inverse de M

size(M) : permet d’obtenir la taille de la matrice

Transpose ou ‘ Transposer le vecteur ou la matrice

ctranspose Transposition conjuguée complexe

sqrtm Matrice exponentielle

logm Logarithme matriciel

mpower Matrice puissance

rang(M) : rang de M

trace(M) : renvoie la trace de la matrice

eig(M) : valeurs propre de M

norm(M) : renvoie de la norme 2 de la matrice M

 Construction d’une matrice

ones(n,m) Génère une matrice de taillenxm dont tous les éléments égaux à1

eye(n,m) Génère une matrice identité de taille nxm

zeros(n,m)) Génère une matrice de zéros de tailler nxm

Rand(n,m) Matrice n x m formée d’éléments aléatoires uniformément distribués

randn(n,m) Matrice n x m formée d’éléments aléatoires normalement distribués

Diag(V) Matrice diagonale avec v comme de diagonale

Exercice : - Appliquer les fonctions matricielles ci-dessous sur la matrice M.

Créer une matrice R= rand(3,2), calculer le déterminant, le diagonale et les valeurs propres de
R. Calculer C= 2*eye(3,2) – ( diag(R) + eig ( R ))

II.4 Fonctions graphiques

1. Graphisme

Matlab offre une grande variété de technique pour l’affichage des données sous forme
graphique doit en 2D ou bien en 3D. Le processus de visualisation des données implique une
série d’opérations.

11
a. Graphique 2D

Dans cette partie, nous avons s’intéressé à la commande plot et fplot. La différence
entre ces deux commande c’est que avec plot on doit toujours utiliser des vecteurs alors il faut
définir les vecteurs, la fonction et l’intervalle [XminXmax]. Par contre fplot nécessite la
définition de la fonction et de l’intervalle où il faut la tracer.
Les exemples suivant montrent la variation de la structure de commande pour chaque
cas pour l’équation 𝑓(𝑥 ) = 𝑥 3 − 2 sin(𝑥 ) + 1

% définir la fonction % définir la fonction

>> f =’ x.^ 3 – 2*sin(x) + 1’ ; >> F =’ x^ 3 – 2*sin(x) + 1’ ;

% définir un vecteur de points dans [-1, 1] % définir un vecteur de points dans [-1, 1]

>> x= [-1 : 0.1 : 1] ; >> x= [-1 : 0.1 : 1] ;

%evaluation de la fonction dans [-1, 1] %evaluation de la donction

>> y=eval(f) >>fplot (f, [-1, 1]);grid ;

>> plot(x,y) ; grid ; % grid dessine une grille de On peut aussi utiliser
repère
>>fplot (‘polyval([-1 ,0, 1],x)’,[-3 , 3])

 Définir le style des courbes :


On, peut pour chaque courbe, imposer un style de lignes, un style de points et un couleur.
 Type de lignes : - trait plein, : pointillés courts, --pointillés long, -.pointillés mixtes
 quelques couleurs : y jaune, b bleu, g vert, w blanc, k noir, …
 style de points : + plus, * étoile, s square (carré), d diamant (losange), v triangle …

12
 superposer plusieurs courbes

A chaque nouvelle commande plot, la figure est remplacée. Pour garder plusieurs
courbes, il faut autoriser la superposition de graphique. Ceci est générer à l’aide de la
commande hold on qui superposé les plots jusqu'à la désactivation par hold off, ou bien avec
l’utilisation de la commande plot en spécifiant autant de couples (abscisses, ordonnées) qu’il
y a de courbe à tracer.

Exemple :

13
 Fonction graphique plus recommandé :

figure Crée une nouvelle figure

subplot Découper la fenêtre graphique en pavés. Ex pour 2 pavés subplot (2 1 1)

title, xlabel, titre général, titre sur les axes et légende d’une figure
ylabel, legend
sélection manuelle de l’´echelle d’un graphique.
axis >> axis([xmin,xmax,ymin,ymax)]
permet de superposer des graphiques sur une même figure, on peut
hold on /off utliser aussi >> plot(x1,y1,’-g’,x2,y2,’ :rx’)

hold on et pause Permet de crée une animation graphique

movie et getfarme >> M( :,i)=getfarme ; >>movie (M) % Crée une animation

b. Graphique 3D

De même que le graphisme en 2D, Matlab utilise différent fonction pour tracer un
graphe en trois dimensions. Nous montrons ici les possibilités de Matlab en graphisme 3D sur
quelques exemples.
 Courbe dans l’espace (ligne dans l’espace)

Instruction plot3 :elle est identique à plot, elle ne fait appel qu’à une coordonnée
supplémentaire. Sa syntaxe de pase est plot3(x,y,z).

Exemple :

14
 Tracé des surfaces

Matlab permet de représenter des surfaces données à partir de plusieurs fonctions,


parmi lesquelles mesh et surf. Elle ont le même format d’appel : mesh(X,Y,Z) et surf (X,Y,Z).

La fonction mesh trace un maillage (séries de lignes entre les points) tandis que la
fonction surf trace une surface. Ces fonctions prennent en argument 2 matrices générées à
partir de 2 vecteurs (x et y, pas nécessairement de même taille) et une matrice Z de dimension
(length(y),length(x)). Pou chaque point du plan (x(i),y(j)), elles affichent la valeur (ou niveau)
Z(j,i). Les 2 premières matrices obtenues à l’aide de la fonction meshgrid définissent tous les
points du quadrillage. En fait, le niveau Z(j,i) de chaque point du maillage est calculé à partir
des couples (X(j,i),Y(j,i)).,Une quatrième matrice peut être précisée pour définir une échelle
de couleur associée au niveau du maillage. Cette échelle est basée sur une palette de couleurs
prédéfinie par la valeur courante de la variable colormap.

Exemple :

15
NB : Nous pouvons utiliser différents commandes complétant le graphisme en 3D

Afficher plusieurs graphique (sub-plot)

Pour présenter sur une figure plusieurs graphiques, on utilise la commande subplot.
La fonction subplot(m,n,p) ou subplot(mnp) subdivise la fenêtre graphique en m x n (m lignes
et n colonnes) cadres séparés. Le pème cadre est choisi de telle sorte que p=1 correspond à
(m=1, n=1), p=2 → (m=1, n=2), ….

16
II.5 Scripts et fonctions Matlab

Les commandes ci-dessus peuvent être tapées directement dans l’environnement


Matlab, qui l’exécute immédiatement et retourne le résultat (s’il est demandé) quand son
calcul est terminé. Parfois, Il est préférable de regrouper ces commandes dans un fichier
”texte” comportant un ensemble de commandes à effectuer. Ce fichier doit être enregistré
avec l’extension ”.m” (ex. script.m), et peut être exécuté directement sous Matlab, si le
répertoire dans lequel il est enregistré est soit le répertoire courant (cf. cd, ou pwd), soit
présent dans la variable pathde Matlab. Un tel fichier peut-être créé en utilisant l’éditeur de
Matlab (commande edit), soit en utilisant un quelconque éditeur : vi, emacs, notepad,gedit, ...
On peut distinguer :
– les scripts, qui permettent simplement de regrouper un ensemble de commandes Matlab. A
l’appel du script, les commandes sont exécutées séquentiellement.
– les fonctions, qui permettent aussi de regrouper un ensemble de commandes effectuant une
tâche plus globale. Les fonctions prennent de plus éventuellement un ensemble d’arguments
en entrée et retournent un ensemble de valeurs de sortie.
Par défaut, dans une fonction, toutes les variables sont locales, sauf celles explicite
mentretournées par la fonction.
La structure générale d’une fonction est la suivante :
function [y1 y2 ... yp]=nom_func(x1,x2,...,xn)
% Commentaires qui seront affichés lors
% de l’appel "help nom_func"
Corps de la fonction
où x1, x2, . . ., xn sont les variables, ou arguments, d’entrée, tandis que y1, y2, . . ., yp sont
les valeurs retournées par la fonction.
Une telle fonction s’appelle ensuite par la commande : [y1,y2,...,yp]=nom_func(x1,x2,...,x4);
ou, si on ne souhaite pas affecter les variables de sortie : nom_func(x1,x2,x3,x4);
Exemple
La programmation de la fonction mathématique 𝑓 (𝑥) = 𝑥^2 peut se faire par le M-
file suivant :

17
II.6 Commandes structurées

Les structures usuelles sont bien sûr aussi disponible sous Matlab, par exemple :
for . . .end , if . . .else. . .end , while . . .end , switch . . .case. . .end , . . .
L’aide (par exemple help for) permet de retrouver facilement la syntaxe de ces structures.

Exercice 1:

1
1-Créer un fichier fonction dont en va étudier la fonction 𝑓 (𝑥, 𝑙 ) = sous le nom de
𝑥 2+𝑙
f1.m. Notant que la fonction f1 dépend de deux paramètre l et x.
2- Dans un fichier script, déterminer les valeurs de fonction f1. On considère l=1
(constant) et x varié dans un intervalle [0,1] de pas h.
 Définir un vecteur X d’abscisses x pour discrétiser l’intervalle [0,1] avec le pas
0 .1.(utiliser la boucle FOR)
 Définir un vecteur F qui présente les valeurs de la fonction f(x,l) (boucle FOR)
 Afficher les deux vecteurs
 Dessiner la variation de f en fonction de x.

Exercice 2 :
On considère l’approximation numérique de la dérivée d’une fonction par différences finies
de premier ordre avant
𝑓 (𝑥 + ℎ) − 𝑓(𝑥)
𝑓 ′ (𝑥 ) ≃

1. Définir un tableau d’abscisses pour discrétiser l’intervalle [0 ,1] avec le pas h=0.1

2. Calculer dans un tableau D la dérivée exacte de la fonction 𝑥 → sin(𝑥) aux points x et dans
un tableauD1 les valeurs approchées par la formule de l’équation (1).
3. Calculer l’erreur maximale commise en faisant cette approximation sur l’intervalle [0, л].
Diminuer h, que remarque-t-on ?

18

Vous aimerez peut-être aussi