Académique Documents
Professionnel Documents
Culture Documents
U :
2023/2024
Objectif :
Matlab est un logiciel et langage de programmation conçu pour fournir un environnement de calcul
numérique de haut niveau. Il est particulièrement performant pour le calcul matriciel, et dispose de
grandes capacités graphiques pour, par exemple, la visualisation d’objets mathématiques complexes.
Le nom MATLAB vient de la contraction MATrix LABoratory, ce qui signifie que toutes les variables
sont considérées comme des matrices. Une variable scalaire est vue par MATLAB comme une matrice
1x1 (une ligne, une colonne), comme le montre l’exemple suivant dans lequel on affecte à la variable
x la valeur 5 et on demande ensuite ses dimensions par la commande size
On remarque qu’après l’affectation de la variable, MATLAB affiche de suite la valeur affectée. Afin
d’éviter ceci, il suffit de suivre la commande par un point-virgule, ce qui permettra éventuellement des
programmes plus rapides (pas de perte de temps dû à l’affichage)
L’utilisateur peut affecter donc des valeurs à des variables et affecter des opérations à ces variables ( +
- / * …).
Ici, il faut noter que lorsque l'utilisateur ne fixe pas de variable de sortie, MATLAB place le résultat
d'une opération dans ans. Cette variable temporaire peut bien sûr être utilisée pour un calcul suivant
comme le montre l’exemple précédent.
Il est toujours possible de connaître les variables utilisées et leur type à l'aide de la fonction whos. Par
exemple, pour les manipulations précédentes : Ces variables sont aussi présentes dans l’onglet espace
de travail (Workspace).
La solution de x+y a donc été perdue. Il est donc préférable de toujours donner des noms aux variables
de sortie :
Le signe de pourcentage (%) permet de mettre ce qui suit sur une ligne en commentaire (MATLAB
n'en tiendra pas compte à l'exécution).
Un vecteur colonne de dimension n est une matrice nx1. Un vecteur ligne de dimension n est une
matrice 1xn.
Les opérations usuelles d'addition, de soustraction et de multiplication par scalaire sur les vecteurs
sont définies dans MATLAB :
Dans le cas de la multiplication et de la division, il faut faire attention aux dimensions des vecteurs en
cause. Pour la multiplication et la division élément par élément, on ajoute un point devant l'opérateur
(.* et ./). Par exemple :
Les matrices peuvent aussi être construites directement de deux façons différentes :
Exercice 1 :
1 -Ouvrir un nouveau script et taper le programme suivant :
a=2 ;
b=5 ;
c=(a+b)/2 ;
disp (c)
Pour exécuter un script, on écrit tout simplement son nom dansla fenêtre de commandes puis on clique
sur entrer.
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 commandes.
Exercice 2:
Soit M, la matrice définie par :
12 24 36 58
2 6 8 10 ¿La sous matrice M1
7 9 11 13
7 9 11 13
M 2= 2 6 8 10
12 24 36 58
Remarque : En se référant aux informations du tableau suivant après avoir tester les commandes à
coté:
A=[1 2 3 4; 12 13 14 15]
A(2,3)
A(2,:)
A([1 3 5 7])
A(:,4)
A([1 1 1])
A([1 3; 4 8])
A([2 3 5]) = [-1 -1 -1]
A(:,4)=[101 103]’
A(2,2)=999
Exemple :
Soit F, un vecteur défini par : F= [1 20 14 12 10 11 25 26 14 45 23 45 1 20 14 12 10 11 25]
Pour représenter graphiquement le vecteur F, on peut taper tout simplement : plot (F).
Pour tracer, la fonction y définie par : y ( t ) =sin ( 0.3 πt)
Il faut tout d’abord déclarer le vecteur t
Taper en suite la formule de y.
c.à.d : y=sin (0.3 πt)
Remarquez vous que nous avons écrit seulement y et non pas y(t) ?
Finalement tracer le graphe de y(t) en utilisant la fonction « plot ».
clear all;
clc;
t= [0 : pi/100 :2* pi] ;
y= sin(0.3*pi*t) ;
plot(t, y)
Quadrillage :
* Ajouter la commande suivante au programme précédant : grid
* Sauvegarder les modifications. ( file save)
* Exécutez votre programme.
Que remarquez-vous ? Quel est le rôle de la fonction « grid » ?
Titres :
- le titre principal.
* Ajouter au programme précédent la commande suivante : title(‘le graphe de la fonction y(t)’)
* Sauvegarder les modifications.
* Exécutez votre programme.
Quel est le rôle de la fonction « title » ?
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) où 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
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')
Exemple
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.
En utilisant la fonction « subplot »
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.
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) avec n : nombre de lignes.
m : nombre de colonnes.
k : la position du graphe.
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
2. Représentation graphique 3D
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, 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èche 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);
title('Az=90, El=0');
grid
3. Signaux particuliers
Quel est le type de signal généré par les scripts MatLab suivants :
Script 1 Script 2
t=-10:1:20; t = -1:1e-5:1 ;
stem(t,Imp); plot(t,x1) ;
ylabel(’Amplitude’); xabel(’Temps(sec)’);
ylabel(’Amplitude’);
Script 3 Script 4
t = -1:1e-5:1 ; fs = 10000 ;
x2 = tripuls(t,0.04); t = 0:1/fs:1.5;
plot(t,x2); y1 = sawtooth(2*pi*50*t);
ylabel(’Amplitude’);