Institut Supérieur des Etudes Technologiques Atelier : Mathématiques Appliquées
de Mahdia Classes : TI2
Département Technologies de l’Informatique A.U: 2020-2021
Travaux Pratiques n°2
Scripts et représentation graphique sous MATLAB
Objectifs
• Apprendre à écrire et exécuter des scripts.
• Apprendre à faire des représentations graphiques 2D et 3D.
I. Les scripts
Un Script est un fichier de commandes MATLAB portant une extension '.m'.
Ce type de fichier est un simple fichier texte, qui comporte des commandes MATLAB, identiques à
celles que l'on peut employer directement dans la fenêtre de commandes de MATLAB.
L'avantage évident est que ces commandes sont stockées dans un fichier, il est donc aisé de les
rappeler pour les réexécuter, même dans une nouvelle session de MATLAB (c'est-à-dire après
fermeture et réouverture de MATLAB).
1. Création d'un script
Pour créer un nouveau script, on choisit l'option M-File à partir du menu File -> New.
Page 1 sur 13
2. Enregistrement d'un script
Le sauvegarde d'un nouveau script se fait à travers le menu File -> Save As.
Remarques :
• Le script doit avoir une extension « .m ».
• Dans l’appellation des scripts, il faut éviter :
D’utiliser les caractères désignant un opérateur spécifique à MATLAB tels que :
« - », « ; », « * », …
D’utiliser le nom d’une fonction MATLAB tels que : sqrt, sin, cos, …
D’utiliser deux mots séparés (par exemple : program st, program 1).
3. Exécution d’un script
Pour exécuter un script, on tape tout simplement son nom dans la fenêtre de commandes puis on tape sur
la touche Entrer.
Si le script contient une (des) erreur(s), la ligne contenant l’erreur ainsi le type d’erreurs seront affichés
dans la fenêtre des commandes.
Exemple :
Reproduire l'exercice 6 du premier TP dans un script et tester.
Rappel de l'exercice 6 :
Soit M la matrice définie par :
12 24 36 58
= 2 6 8 10
7 9 11 13
Sous-matrice M1
Page 2 sur 13
Ecrire le programme MATLAB qui permet d’extraire :
1. L’élément situé dans la troisième ligne et la quatrième colonne.
2. Le vecteur L3 contenant tous les éléments de la troisième ligne.
3. Le vecteur C4 contenant tous les éléments de la quatrième colonne.
4. La sous-matrice M1 de la matrice M, constituée à partir de l’intersection de la deuxième et la
troisième colonne avec la deuxième et la troisième ligne.
5. La matrice M2 dont ses lignes sont celles de la matrice M mais affichées en sens inverse.
7 9 11 13
= 2 6 8 10
12 24 36 58
6. Mettre tous les éléments de la deuxième ligne de la matrice M égaux à deux.
Remarque : seule la matrice M qui est déclarée manuellement dans la fenêtre de commandes.
II. Représentation graphique sous MATLAB
1. Importance de la représentation graphique
On a vu que des tableaux (1D ou 2D) pouvaient contenir des données numériques, et qu'il est
possible de manipuler ces données, effectuer des opérations arithmétiques, ou extraire ces données.
Bien souvent, il est nécessaire (ou utile) de représenter ces données, et ce pour différentes raisons :
• Analyser la cohérence des données ;
• Vérifier ou déterminer la tendance de celles-ci ;
• Observer l'évolution des données selon un axe (représentant le temps ou une autre grandeur) ;
• Visualiser l'existence de points particuliers (singularités, asymptotes, etc.).
En amont d'une analyse de données, ou d'un calcul numérique spécifique, il faut donc être capable
de représenter graphiquement les données dont on dispose.
Page 3 sur 13
120
100
une variation importante
80
60
40
20
0
0 5 10 15 20 25 30 35 40 45 50
2. Représentation graphique 2D
Une représentation graphique 2D est une courbe 2D composé d'un ensemble de points dont chacun est
défini par une abscisse et une ordonnée. Ces points peuvent être reliés ou non par des segments de
droite, pour donner l'illusion d'une courbe continue.
Pour tracer un graphique en 2D sous MATALAB, on utilise à la fonction « plot ».
2.1.Traçage d'un graphique
Pour tracer la fonction y définie par : = sin 0.3
Définir ensuite la formule de y. [c.à.d.: = sin 0.3 ∗ ∗ ]
• Il faut tout d’abord déclarer le vecteur t.
•
• Finalement tracer le graphique de y(t) en utilisant la fonction « plot ».
Soit le script suivant :
t=[0 : pi/100 :2* pi] ;
y=(0.3*pi*t) ;
plot(t, y)
Page 4 sur 13
A l'exécution de ce programme, on obtient la fenêtre contenant le graphique suivant :
La courbe 2D de y(t)
L’axe
des ordonnées (y(t)
L’axe des abscisses (t)
2.2. Décoration et attributs d'une courbe
Quadrillage
Lorsque l'on veut faciliter la lecture des valeurs des points d'un tracé, il peut être utile d'ajouter un
quadrillage avec l'instruction grid. Un second appel à l'instruction grid fait disparaître le quadrillage.
Ajouter la commande grid au programme précédent et tester.
Titres
Titre du graphique
L'instruction title, à laquelle il faut fournir une chaîne de caractères, permet de spécifier le titre du
graphique. Le titre apparaît simplement en haut de la fenêtre graphique.
Ajouter au programme précédent la commande suivante : title('le graphique de la
fonction y(t)') puis sauvegarder les modifications et tester.
Labels des axes
Il s'agit d'afficher du texte sous les abscisses (xlabel) et à côté de l'axe des ordonnées (ylabel), afin
de spécifier de quoi il s'agit.
Page 5 sur 13
Ajouter au programme précédent les deux commandes suivantes ci-dessous et tester.
xlabel('le temps t')
ylabel('la fonction y')
Couleurs
On peut remarquer que MATLAB attribue des couleurs par défaut aux courbes. Il est possible de
modifier ces couleurs en ajoutant la lettre de la couleur désirée à l'instruction plot.
Exemples des couleurs :
Remplacer l’instruction plot(t,y) par l’instruction plot(t,y,'r') et tester.
Trait
Pour modifier le style du trait d'une courbe, on ajoute de même le style désiré à l'instruction plot.
Exemples des styles des traits :
Remplacer l’instruction plot(t,y,'r') par l’instruction plot(t,y,'r+') et tester.
Remarque :
Pour savoir plus sur les différents types de trait et des couleurs, taper : help plot;
Marqueurs
Pour modifier le style des marqueurs des points, on ajoute de même le style désiré à l'instruction plot.
Page 6 sur 13
Exemples des styles des marqueurs :
Remplacer l’instruction plot(t,y,'r+') par l’instruction plot(t,y,'r+s') et tester.
2.3.Traçage multiple
Traçage de deux graphiques dans deux fenêtres séparées
Pour tracer deux graphiques dans deux fenêtres graphiques séparées, on utilise la
commande fenêtre(n) où n représente le numéro de la fenêtre graphique.
Exemple :
t= [0 : pi/100 : 2*pi] ;
y=sin(0.3*pi*t) ;
y1=cos(0.3*pi*t);
figure(1)
plot(t, y)
grid
title('le graphe de la fonction y(t)')
xlabel('le temps t')
ylabel('la fonction y')
figure(2)
plot(t, y1)
grid
title('le graphe de la fonction y1(t)')
xlabel('le temps t')
ylabel('la fonction y1')
Traçage de deux graphiques dans la même fenêtre
En utilisant la fonction « hold »
On peut tracer deux ou plusieurs graphes dans la même fenêtre graphique en utilisant la fonction hold.
Page 7 sur 13
Exemple :
t= [0 : pi/100 : 2*pi] ;
y=sin(0.3*pi*t) ;
y1=cos(0.3*pi*t);
plot(t, y)
grid
hold
plot(t, y1,’r’)
Conseil
Lorsqu’on trace deux graphes dans une même fenêtre, il est conseillé d’utiliser deux couleurs
différentes ou bien deux types de trait différents.
En utilisant la fonction « subplot »
La deuxième méthode pour tracer plusieurs graphiques dans une même fenêtre consiste à utiliser la
fonction subplot. Cette fonction permet de subdiviser la fenêtre graphique en plusieurs sous-fenêtres.
Chacune de ces sous -fenêtres se comporte comme une fenêtre à part.
La syntaxe de cette commande est la suivante :
subplot(n,m,k)
Sachant que : n est le nombre de lignes, m est le nombre de colonnes et k est la position du graphique.
1 3 5
2 4 6
Page 8 sur 13
Exemple :
t=[0: pi/100: 2*pi];
y=sin(0.3*pi*t) ;
y1=cos(0.3*pi*t);
y2=sin(0.3*pi*t)+cos(0.3*pi*t);
y3=sin(0.3*pi*t)-cos(0.3*pi*t);
subplot(2,2,1);plot(t, y)
grid
subplot(2,2,2);plot(t, y1)
grid
subplot(2,2,3);plot(t, y2)
grid
subplot(2,2,4);plot(t, y3)
grid
3. Représentation graphique 3D
3.1.En utilisant la fonction « plot3 »
La commande plot3 est similaire à la commande plot sauf qu’on ajoute un troisième axe Z.
Exemple :
t = 0:0.1:10*pi;
x = exp(-t/20).*cos(t);
y = exp(-t/20).*sin(t);
z = t;
plot3(x,y,z)
xlabel('x')
ylabel('y')
zlabel('z')
grid
Une fois le tracé apparait, on peut modifier l'orientation des axes. Ceci est possible soit en utilisant la
flèche de rotation (voir figure) soit en tapant la commande view dans le programme.
Flèche de rotation
Page 9 sur 13
Exemple :
t = 0:0.1:10*pi;
x = exp(-t/20).*cos(t);
y = exp(-t/20).*sin(t);
z = t;
subplot(2,2,1);
plot3(x,y,z);
xlabel('x');
ylabel('y');
zlabel('z');
view(-10,10);
title('Default plot3');
grid
subplot(2,2,2);
plot3(x,y,z,'og');
xlabel('x');
ylabel('y');
zlabel('z');
view(-9,56);
title('Az=-10, El=10');
grid
subplot(2,2,3);
plot3(x,y,z,'xb');
xlabel('x');
ylabel('y');
zlabel('z');
view(0,90);
title('Az=0, El=90');
grid
subplot(2,2,4);
plot3(x,y,z,'dr');
xlabel('x');
ylabel('y');
zlabel('z');
view(90,0);
title('Az=90, El=0');
grid
3.2.En utilisant la fonction « mesh »
Pour tracer une fonction à deux variables ; c-à-d une fonction de la forme z=f(x, y) ; on suit les étapes
suivantes:
• On définit un maillage régulier, c-à-d on construit deux matrices X et Y sachant que chaque
ligne de X est équivalent à x et chaque colonne de Y est équivalente à y. Ceci est possible en
utilisant la commande « meshgrid ». Pour mieux comprendre, cette notion du maillage tester
l’exemple suivant.
Page 10 sur 13
Exemple :
x = [-1 0 1];
y = [9 10 11 12];
[X,Y] = meshgrid(x,y)
• On donne la formule permettant de définir la matrice Z: Z= f(X,Y)
• On utilise la commande mesh pour tracer le graphe 3D.
Exemple :
, → "#
$# $
On veut tracer la fonction f définie : définie sur les intervalles [-2,2] et [-2,2].
x=[-2:0.2:2];
y=[-2:0.2:2];
[X,Y]=meshgrid(x,y);
Z=X.* exp(-X.^2-Y.^2);
mesh(X, Y, Z)
3.3. En utilisant la fonction « surf »
La commande surf permet de tracer une surface paramétrée définie par les équations suivantes :
& = '( ), *
% = ' ), *
+ = ', ), *
On suit les mêmes étapes que la commande mesh.
Exemple :
On veut tracer le graphique du système d’équations ci-dessous défini sur les intervalles [0,2 ] et [0,2].
& = * ./0 )
- = * sin )
+ = 2)
v=[0:0.2:2*pi];
u=[0:0.2:2];
[U,V] = meshgrid(v, u);
X = V.*cos(U);
Y = V.*sin(U);
Z = 2*U;
surf(X,Y,Z)
Remarques :
• Ils existent d’autres commandes pour faire une représentation 3D telles que meshz,
waterfall, …
• Utiliser la commande « help » pour avoir l’aide sur ces commandes.
Page 11 sur 13
4. Représentations spécifiques
Tester les exemples suivants et commenter :
Exemple 1 : la commande « bar »
a = [1 2 3 4 5 6 7];
b = [85 93 87 91 95 71 98];
bar(a,b);
xlabel('a')
ylabel('b')
Exemple 2 : la commande « hist »
y = -2*log(rand(1,5000));
x = 0.2:0.4:10;
hist(y,x);
Exemple 3 : la commande « pie »
pourcentage = [31 36 18 8 7];
h = pie(pourcentage);
Remplacer la commande pie par pie3, que ce passe t- il ?
III. Travail demandé
Exercice 1
Reproduire les commandes suivantes dans l'éditeur des commandes et expliquer le résultat obtenu.
x=linspace(0, 2* pi, 100)
y=sin(x)
z=cos(x)
plot(x, y)
plot(x, z)
plot(x, y, x, z)
clf
hold on
plot(x, y)
plot(x, z)
clf
hold on
plot(x, z)
plot(x, y, 'r')
clf
plot(x, y, 'b - - ' ,x ,z , '*')
1. Quel est l’intérêt de la commande hold on ? Comment annuler son effet ?
2. Comment faire apparaître une grille ?
3. Comment faire apparaître une légende sur les axes et un titre du graphique ?
Page 12 sur 13
Exercice 2
Pour gérer la liste des options et éviter de tout recopier à chaque fois en ligne de commande, on va se
servir de scripts. Soit la fonction :
1. Supposons le vecteur des abscisses de taille 3 (i.e. x=[x1, x2, x3]) : exprimer alors en fonction de
x1, x2, x3 le vecteur des ordonnées permettant de tracer f .
2. Créer un script exercice2.m dans le répertoire TP2 qui permet de tracer dans deux figures
séparées :
- La fonction f pour x ∈ [-1; 1] ;
- La fonction f pour x ∈ [-0,05; 0,05] ainsi que les deux droites y = x et y = -x.
Faire varier le nombre de points et commenter le résultat observé.
Exercice 3
Représenter sur une même figure comportant toutes les informations (légendes, labels, …) les
fonctions f (x) = sin(x2 ), g(x) = exp(-x) et h(x) = f (x) * g(x) pour x∈[0,5] , avec des couleurs et des
symboles différents 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 4
Reprendre le vecteur x= [0 pi/10 2pi/10 … 2pi], définir y1 = sin(x) et y2=cos(x), puis utiliser
subplot(2,1,1) et subplot(2,1,2) pour tracer sur une même figure les deux graphes des fonctions sinus et
cosinus, l’un en dessous de l’autre.
Exercice 5
On veut vérifier graphiquement la définition de la fonction sinh(x) :
2 3 4 2 #3
sinh & =
2
Produire un code MATLAB qui trace deux courbes sur un même graphique.
La première, en utilisant directement la fonction sinh(x) de MATLAB et la deuxième en utilisant la
définition avec les exponentielles donnée ci-dessus. Utiliser un vecteur x de -2 à 2 par incrément de 0.1.
Page 13 sur 13