TP - Matlab - 02 (3) Adel Yousfi
TP - Matlab - 02 (3) Adel Yousfi
TP - Matlab - 02 (3) Adel Yousfi
1. Objectifs
apprendre à écrire des scripts.
savoir faire une représentation 2D et 3D.
2. Les scripts.
Un script est une suite de commande Matlab. Autrement dit, un script est un ensemble des instructions
(commandes) Matlab qui joue le rôle de programme principal.
Exercice 1
a=2 ;
b=5 ;
c=(a+b)/2 ;
disp (c)
Unefois, vous écrivez le programme vous devez le sauvegarder et lui donner un nom (dans notre exemple, on va
le nommé : programme).
Remarques importantes :
Pour exécuter un script, on écrit tout simplement son nom dansla fenêtre de commandes puis on clique sur entrer.
Le nom du script.
Si le script contient une (des) erreur(s), la ligne contenant l’erreur ainsi le type d’erreurs sont affichées dans la
fenêtre des commande.
Exercice :
12 24 36 58
2 6 8 10 ¿
7 9 11 13
La sous matrice M1
7 9 11 13
M 2= 2 6 8 10
12 24 36 58
Comme il est indiqué dans le TP No 1, MATLABest un logiciel conçu pour les calculs scientifiques. Ceci signifie
que Matlab va aider l’utilisateur (ingénieur, étudiant, comptable,…) à résoudre un problèmelié à un phénomène
naturel ou bien physique. Autrement dit, les observations (données) d’un expert ou bien d’un utilisateur sont
enregistrées souvent sous forme des chiffres. Représenter ses observations sous forme d’un tableau ne permet pas
à l’utilisateur de mieux voir la variation de ces données. Tandis que, si ces données sont représentées
graphiquement, l’utilisateur peut non seulement voir la variation mais il peut aussi sélectionner les régions
d’intérêt et les régions ou les événements pertinents se produisent.
120
100
80
60
40
20
0
0 5 10 15 20 25 30 35 40 45 50
Pour représenter graphiquement le vecteur F, on peut taper tout simplement : plot (F).
y yellow s square
k black d diamond
^ triangle (up)
p pentagram
h hexagram
0.5
0
y
-0.5
-1
0 1 2 3 4 5 6 7
temps
y(x)
1 Max
sin
0.8
0.6
0.4
0.2
0
y
-0.2
-0.4
-0.6
-0.8
-1
0 1 2 3 4 5 6 7
temps
y(x) y(x)
1 Max 1
sin cos
0.5 0.5
0 0
y
-0.5 -0.5
-1 -1
0 5 10 0 5 10
temps temps
clear all;
clc;
t= [0 : pi/100 :2* pi] ;
y= (0.3*pi*t) ;
plot(t, y)
Une fois, vous exécutez votre programme, une fenêtre contenant le graphe de la fonction mathématique apparait.
Le graphe de y(t)
L’axe
des cordonnées
a) quadrillage :
b) titres :
1- le titre principal.
c) les couleurs
Que remarquez-vous ?
d) le type de trait
Que remarquez-vous ?
Remarques importantes
1. Pour qu’on puisse écrire plot(t,y), il faut que les vecteurs t et y soient de la même taille.
2. Il faut écrire correctement les commandes.
3. La représentation graphique doit permettre de visualiser les détails de la fonction tracée.
4. On peut faire un ZOOM pour agrandir une région du graphe.
5. Pour savoir plus sur les différents types de trait et de couleurs tapez : help plot
Pour tracer deux graphes dans deux fenêtres graphiques séparées, on peut taper : fenêtre(n) ou n représente le
numéro de la fenêtre graphique
Exemple
clear all;
clc
t= [0 : pi/100 : 2*pi] ;
y=sin (0.3*pi*t) ;
y1=cos(0.3*pi*t);
figure(1)
plot(t, y)
grid
TP préparé par : Beji Mohamed Page 8
TP : outils logiciel 2eme année CIP
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')
clear all;
clc
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.
La deuxième méthode pour tracer plusieurs graphes dans une même fenêtre consiste à utiliser la fonction
« subplot ». Cette fonction permet de subdiviser la fenêtre graphique utilisée en plusieurs sous -fenêtres.
Subplot(n,m,k) avec
1 3 5
2 4 6
Exemple
clear all;
clc
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
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;
Une fois le tacé apparait, vous pouvez modifier la rotation des axes. Ceci est possible soit en utilisant la flèche
(figure) soit en tapant la commande « view » dans le programme.
Fléché de rotation
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);
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 va construire deux matrice X et Y dont leurs colonnes sont
identiques et prennent la valeur des deux vecteurs x et y. ceci est possible en utilisant la commande
« meshgrid ».Pour mieux comprendre cette notion du maillage essayer l’exemple suivant.
Exemple :
x = [-1 0 1];
y = [9 10 11 12];
[X,Y] = meshgrid(x,y)
Z= f(X,Y)
on utilise la commande « mesh » pour tracer le graphe 3D.
Exemple
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)
y(x)
1 Max
sin
0.8
0.5
0.6
0.4
0.3
0.4
0.2
0.2 0.1
0 -0.1
y
-0.2
-0.2 -0.3
-0.4
-0.4
-0.5
2
1.5
-0.6 1 2
0.5
1
0
-0.8 -0.5 0
-1
-1
-1.5
-2 -2
-1
0 2 4 6 8
temps
{ y=g2 (u , v )
z=g3 (u , v )
Exemple
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 »,…
etc.
Utiliser la commande « help » pour avoir l’aide sur ces commandes.
a = [1 2 3 4 5 6 7];
b = [85 93 87 91 95 71 98];
bar(a,b);
xlabel('a')
ylabel('b')
y = -2*log(rand(1,5000));
x = 0.2:0.4:10;
hist(y,x);