Cours Sur Matlab 09 - 10
Cours Sur Matlab 09 - 10
Cours Sur Matlab 09 - 10
INITIATION A MATLAB
FILIERE G.I.
QUATRIEME ANNEE
ANNEE UNIVERSITAIRE 2024-2025
1
Table des matières
1 Introduction…………………………………………………...
5 3
2 Présentation générale………………….……………….……. 3
3 Utilisation de Matlab……………………………….….……. 4
3.1 Démarrage et arrêt de Matlab………….…...…………….…… 4
3.2 Utilisation de l’aide ………………………………………….…. 4
2
1. Introduction
MATLAB (MATrix LABoratory) a été développé en C par la société Mathworks
(http://www.mathworks.com/) pour faire du calcul matriciel élémentaire. Au fil du temps,
MATLAB s’est développé pour devenir un outil puissant pour la programmation et la
visualisation numérique. Il présente l’avantage :
- d’être simple à utiliser : ne nécessite pas une compilation et les variables utilisées sont
déclarées implicitement,
- de contenir une très riche bibliothèque de fonctions dans divers domaines (analyse
numérique, statistique, représentation graphique, …),
- de posséder une interface graphique maniable.
Actuellement, MATLAB est utilisé dans beaucoup de domaines tels que :
- l’algèbre matricielle : résolution numérique des systèmes linéaires et non linéaires ; le
calcul numérique des valeurs et des vecteurs propres des matrices ; …,
- la résolution numérique des équations aux dérivées partielles,
- le traitement du signal et de l’image.
MATLAB peut être utilisé soit en mode en ligne en exécutant des commandes dans une
fenêtre dite d’exécution, soit en mode programmation en utilisant un éditeur pour écrire dans des
fichiers (appelés scripts) un ensemble de commandes. Le mode en ligne permet d’obtenir des
résultats simples et le mode programmation permet de développer des applications très
complexes.
2. Présentation générale
MATLAB est composé de plusieurs modules. Parmi eux on cite :
- matlab : le module de base,
- image : le module de traitement d’images,
- signal : le module de traitement des signaux,
- …..
3
- la bibliothèque de fonctions mathématiques :
1. elmat : matrices élémentaires et manipulation de matrices,
2. matfun : fonctions matricielles, algèbre numérique linéaire,
3. elfun : fonctions mathématiques élémentaires,
4. spcfun : fonctions mathématiques spécialisées,
5. ….
3. Utilisation de Matlab
3.1 Démarrage et arrêt de Matlab
Pour démarrer Matlab il suffit de cliquer deux fois sur la commande Matlab, ainsi la fenêtre
d’exécution s’ouvre (la présence au début de la ligne du symbole >> indique qu’on est dans
l’environnement Matlab (voir figure 1).
Figure1
Pour quitter Matlab, il suffit de sélectionner dans le menu file la commande Exit Matlab ou tout
simplement taper la commande quit ou exit dans la fenêtre d’exécution (>>quit ou >>exit). On peut aussi
quitter Matlab en cliquant sur la croix se trouvant en haut à droite de la fenêtre.
3.2 Utilisation de l’aide
On peut obtenir de l’aide de plusieurs manières.
- help : permet d’obtenir de l’information sur une commande. Pour cela, il suffit de taper
help suivit du nom de la commande. En tapant par exemple >>help exp nous obtenons
toutes les informations sur la fonction exponentielle comme indiqué ci-dessous :
>> help exp
EXP Exponential.
EXP(X) is the exponential of the elements of X, e to the X.
For complex Z=X+i*Y, EXP(Z) = EXP(X)*(COS(Y)+i*SIN(Y)).
See also expm1, log, log10, expm, expint.
4
Overloaded functions or methods (ones with the same name in other
directories)
help fints/exp.m
help xregcovariance/exp.m
help sym/exp.m
Reference page in Help browser
doc exp
- lookfor : si au lieu du nom de la commande on ne dispose que d’un mot-clé, on tape
lookfor suivit du mot-clé pour obtenir toute information ayant un lien avec ce mot-clé.
Ainsi, si on exécute la commande >>lookfor Newton, on obtient toutes les informations
ayant un lien avec le mot Newton comme illustré ci-dessous :
>> lookfor Newton
GNNEW Computes The Gauss-Newton search direction
gnnew_f.m: %GNNEW Computes The Gauss-Newton search direction
gnnew_fp.m: %GNNEW Computes The Gauss-Newton search direction
PREDOPT Executes the Predictive Controller Approximation based on Gauss
Newton.
TRAINBFGC BFGS quasi-Newton backpropagation for use with the NN model
reference adaptive controller.
NND9NM Newton's method demonstration.
TRAINBFG BFGS quasi-Newton backpropagation.
- helpwin : en tapant cette commande une fenêtre regroupant la liste de toutes les
commandes s’ouvre (voir figure 2).
Figure 2
- helpdesk : cette commande permet d’ouvrir un browser où l’on peut rechercher des
informations (moteur de recherche, guide, index, …).
5
4. Variables, constantes et leurs formats
4.1 Variables sous Matlab
Il n’existe sous Matlab qu’un seul type de données qui est le type matrice (matrix). Ainsi, un
nombre est une matrice 11 et une courbe 2D sera tracée à l’aide de deux vecteurs de même
dimension. Il n’est donc pas utile de déclarer le type des variables qu’on manipule. Les noms de
variables sont composés de lettres et de chiffres. Matlab fait la distinction entre minuscules et
majuscules.
Exemples : les instructions suivantes déclarent les variables lors de leur affectation.
6
4.3 Format de représentation des nombres
Sous Matlab un nombre peut avoir plusieurs formats d’affichage. Les différents formats
utilisés sont :
- short : un réel est représenté avec 4 chiffres après la virgule (c’est le format par défaut).
- long : un réel est représenté avec 14 chiffres après la virgule.
- short e : un réel est représenté en notation scientifique avec 4 chiffres après la virgule.
- long e : un réel est représenté en notation scientifique avec 14 chiffres après la virgule.
- rat : un réel est représenté sous forme rationnel (a/b).
Exemples : on donne les différentes représentations du nombre . Pour cela il suffit comme le
monte les exemples ci-dessous de taper format suivit du nom du format désiré puis de taper pi.
>> pi
ans =
3.1416 % par défaut le format est short.
>> pi
ans =
3.141592653589793e+000
>> pi
ans =
355/113
Remarque : Matlab met à la disposition de ses utilisateurs des fonctions permettant d’avoir des
informations sur les variables utilisées. En effet, la commande
- who : renvoie le nom des variables en cours.
- whos : affiche le nom des variables en cours avec des informations sur leur taille, leur
classe et le nombre de bytes occupées.
- clear var : permet d’effacer la variable var de la mémoire.
- clear all : efface toutes les variables de la mémoire.
- clc : nettoie la fenêtre d’exécution.
7
5. Matrices sous Matlab
5.1 Création en ligne de matrices
Les matrices sont crées sans déclaration de leur type ou de leur dimension. En effet, pour
créer une matrice il suffit de :
- ouvrir par ‘[‘,
- séparer les coefficients d’une ligne par une virgule ou un espace,
- séparer deux lignes par un point virgule ou en exécutant la commande entrée,
- fermer par ‘]’.
Exemple : dans l’exemple ci-dessous on va créer la même matrice de plusieurs manières :
>> A=[1 2 3;4 5 6]
A=
1 2 3
4 5 6
>> A=[1, 2, 3;4, 5, 6]
A=
1 2 3
4 5 6
>> A=[1 2 3
4 5 6]
A=
1 2 3
4 5 6
>> A=[1, 2, 3
4, 5, 6]
A=
1 2 3
4 5 6
De même, un vecteur ligne ou colonne peut être créé de plusieurs manières.
>> b=[5 6 7]
b=
5 6 7
>> b=[5, 6, 7]
b=
5 6 7
>> c=[8;9]
c=
8
9
>> c=[8
9]
c=
8
9
8
5.2 Concaténation de matrices
Sous Matlab, il est possible de concaténer (rassembler) deux matrices pour avoir une seule
matrice à condition de respecter les dimensions. En effet, il est possible de concaténer dans
l’exemple précédent le vecteur b avec la matrice A en tant que ligne mais pas en tant que
colonne.
>> [A ;b]
ans =
1 2 3
4 5 6
5 6 7
>> [A, b]
??? Error using ==> horzcat
All matrices on a row in the bracketed expression must have the same number of rows.
Alors qu’il est possible de concaténer le vecteur c avec la matrice A en tant que colonne mais pas
en tant que ligne.
>> [A c]
ans =
1 2 3 8
4 5 6 9
>> [A ; c]
??? Error using ==> vertcat
All rows in the bracketed expression must have the same number of columns.
Exemple :
>> d=[1:2:10]
d=
1 3 5 7 9
>> g=[1:2:10;-2:3:12]
g=
1 3 5 7 9
-2 1 4 7 10
>> f=[-4:1]
f=
-4 -3 -2 -1 0 1
9
- Des matrices particulières peuvent être crées à l’aide des instructions suivantes :
eye(n) = crée la matrice identité de taille n.
zeros(n,m) = crée la matrice de taille nm dont les éléments sont tous égaux à 0.
Si n=m alors on peut se limiter à la déclaration zeros(n).
ones(n,m) = crée la matrice de taille nm dont les éléments sont tous égaux à 1.
Si n=m alors on peut se limiter à la déclaration ones(n).
Exemple :
>> A=eye(3)
A=
1 0 0
0 1 0
0 0 1
>> B=zeros(2,3)
B=
0 0 0
0 0 0
>> C=zeros(2)
C=
0 0
0 0
>> E=ones(3,2)
E=
1 1
1 1
1 1
>> F=ones(3)
F=
1 1 1
1 1 1
1 1 1
5.4 Accès aux matrices
On peut accéder à des informations sur une matrice A en utilisant l’une des instructions
suivantes :
- A(i,j) = renvoie le coefficient Aij de la ième ligne et la jème colonne de A.
- A(i1:i2, j1 :j2) = renvoie le sous bloc de A formé par les lignes entre i1 et i2 et les
colonnes entre j1 et j2.
- A(i1:i2, :) = renvoie les lignes entre i1 et i2 de A. Si i1 = i2 alors on peut se limiter à la
déclaration de A(i1, : ).
- A( : ,j1 :j2) = renvoie les colonnes entre j1 et j2 de A. Si j1 = j2 alors on peut se limiter
à la déclaration de A ( :,j1).
- A(k) = renvoie le kème élément de A. Il est à noter que Matlab ordonne les coefficients
d’une matrice de haut en bat et de gauche à droite.
11
Exemple :
>> A=[1 2 3;4 5 6;7 8 9;10 11 12]
A=
1 2 3
4 5 6
7 8 9
10 11 12
>> A(2,3)
ans =
6
>>A(2:4,2:3)
ans =
5 6
8 9
11 12
>> A(2:3,:)
ans =
4 5 6
7 8 9
>> A(:,1:2)
ans =
1 2
4 5
7 8
10 11
>> A(:,2)
ans =
2
5
8
11
>> A(8)
ans =
11
5.5 Opérations algébriques sur les matrices
Etant donné deux matrices A et B, les opérations algébriques ci-dessous peuvent être
appliquées sur ces matrices dès que leur tailles le permettent.
- C = A+B : est la matrice somme de A et B (Cij = Aij+ Bij).
- D = A*B : est la matrice produit de A et B ( C ij Aik Bkj ).
k
11
- H = A./B : est la matrice quotient élément par élément (Hij = Aij /Bij).
- J = A^n : est la matrice puissance An.
- K = A.^n : est la matrice puissance élément par élément (Kij = Aijn).
Exemple :
>> A1=[1,2;3,4]
A1 =
1 2
3 4
>> A2=[-1 0;1 2]
A2 =
-1 0
1 2
>> B1=[1,0,3;-1,1,1]
B1 =
1 0 3
-1 1 1
>> B2=[0;-1]
B2 =
0
-1
>> C=A1+A2
C=
0 2
4 6
>> D=A1*B1
D=
-1 2 5
-1 4 13
>> E=A1.*A2
E=
-1 0
3 8
>> F=A1\B2
F=
-1.0000
0.5000
>> G=A1/A2
G=
0 1
-1 2
12
>> H=A1./A2
Warning: Divide by zero.
H=
-1 Inf
3 2
>> J=A1^2
J=
7 10
15 22
>> K=A1.^2
K=
1 4
9 16
5.6 Autres opérations sur les matrices
Nous donnons ci-dessous les principales opérations qu’on peut effectuer sur les matrices.
Etant donnée une matrice A, un vecteur v et une fonction f (telle que la fonction cosinus,
tangente ou exponentielle), on a :
- size(A) = la taille de la matrice A.
- length(A) = le maximum entre le nombre de colonnes et le nombre de lignes de la
matrice A.
- A’ = la matrice conjuguée de A ( c’est la matrice transposée de A si A est réelle).
- det(A) = le déterminant de la matrice A.
- trace(A) = la trace de la matrice A.
- rank(A) = le rang de la matrice A.
- inv(A) = la matrice inverse de A. On peut aussi déclarer A^-1.
- poly(A) = la liste des coefficients du polynôme caractéristique de A.
- V=eig(A) : V est le vecteur formé des valeurs propres de la matrice A.
- [U,V]=eig(A) : V est la matrice diagonale dont les éléments de la diagonale sont les
valeurs propres de la matrice A, et U est la matrice dont les colonnes sont les vecteurs
propres associés.
- norm(A) = la norme euclidienne de la matrice A.
- diag(A) = extrait la diagonale de la matrice A.
- diag(v) = renvoie la matrice diagonale dont les éléments de la diagonale sont ceux du
vecteur v.
- diag(v,1) = renvoie la matrice dont les éléments de la diagonale secondaire au dessus de
la diagonale principale sont ceux du vecteur v.
- diag(v,-1) = renvoie la matrice dont les éléments de la diagonale secondaire au dessous de
la diagonale principale sont ceux du vecteur v.
- triu(A) = renvoie la partie supérieure de la matrice A.
- tril(A) = renvoie la partie inférieure de la matrice A.
13
- sum(A) = le vecteur formé par la somme des éléments de chaque colonne de A.
- prod(A) = le vecteur formé par le produit des éléments de chaque colonne de A.
- max(A) = le vecteur formé par la valeur maximale de chaque colonne de A.
- min(A) = le vecteur formé par la valeur minimale de chaque colonne de A.
- f(A) = la matrice formée par les f(Aij).
Exemple :
>> size(A)
ans =
2 2
>> length(A)
ans =
2
>> A'
ans =
1 2
0 2
>> det(A)
ans =
2
>> trace(A)
ans =
3
>> rank(A)
ans =
2
>> inv(A)
ans =
1.0000 0
-1.0000 0.5000
>> A^-1
ans =
1.0000 0
-1.0000 0.5000
14
>> poly(A)
ans =
1 -3 2 % ainsi PA(x) = x2-3x+2
>> eig(A)
ans =
2
1
>> [U,V]=eig(A)
U=
0 0.4472
1.0000 -0.8944
V=
2 0
0 1
>> norm(A)
ans =
2.9208
>> diag(A)
ans =
1
2
>> diag(v)
ans =
1 0
0 -4
>> diag(v,1)
ans =
0 1 0
0 0 -4
0 0 0
>> diag(v,-1)
ans =
0 0 0
1 0 0
0 -4 0
>> triu(A)
ans =
1 0
15
0 2
>> tril(A)
ans =
1 0
2 2
>> sum(A)
ans =
3 2
>> prod(A)
ans =
2 0
>> max(A)
ans =
2 2
>> min(A)
ans =
1 0
>> exp(A)
ans =
2.7183 1.0000
7.3891 7.3891
>> sin(A)
ans =
0.8415 0
0.9093 0.9093
6 Polynômes
Les polynômes sont traités comme des vecteurs de coefficients dans Matlab. Ainsi
l’expression polynomiale y(x)=2x3 +6x2+12 sera représentée par le vecteur y = [2 6 0 12].
16
Exemple :
>> p=[1 -2 -1 2]
p=
1 -2 -1 2
>> roots(p)
ans =
-1.0000
2.0000
1.0000
>> poly(A)
ans =
1.0000 -5.0000 10.0000 -44.0000 % ainsi pA(x) =x3-5x2+10x-44
>> A=[-1 2 1]
A=
-1 2 1
>> poly(A)
ans =
1 -2 -1 2
6.2 Evaluation
Pour évaluer la valeur d’un polynôme en plusieurs points, on utilise les
commandes suivantes :
polyval(p,a) : évalue la valeur du polynôme p en chaque coefficient de a.
polyvalm(p,A) : calcule pour la matrice carrée A la valeur du polynôme matricielle.
Exemple :
>> p=[-1 2 -4 3]
p=
-1 2 -4 3
>> polyval(p,0)
ans =
3
>> polyval(p,1)
ans =
0
17
>> A=[1 2 3;-1 0 5;2 -2 4]
A=
1 2 3
-1 0 5
2 -2 4
>> polyvalm(p,A)
ans =
-50 24 -57
-33 -5 -21
-24 0 -53
Exemple :
>> p=[-1 2 -4 3]
p=
-1 2 -4 3
>> q=[1 0 2]
q=
1 0 2
>> conv(p,q)
ans =
-1 2 -6 7 -8 6
>> deconv(p,q)
ans =
-1 2
>> [h,r]=deconv(p,q)
h=
-1 2
r=
0 0 -2 -1
>> polyder(p)
ans =
-3 4 -4
18
7 Programmation sous Matlab
Comme pour la plus part des logiciels de programmation, Matlab utilise une syntaxe dont
nous allons donner les éléments les plus utilisés.
>> a=1;b=1;c=-2;
>> delta=b^2-4*a*c;
>> if (delta < 0)
('pas de solutions réelles')
elseif (delta==0)
('une solution réelle double')
else
('deux solutions réelles distinctes')
end
19
ans =
deux solutions distinctes
>> a=1;b=1;c=2;
>> delta=b^2-4*a*c;
>> ans =
pas de solutions réelles
La boucle for : permet de répéter un certain nombre de fois fixé à l’avance une
instruction structurée. Sa syntaxe est la suivante :
for variable = valeur de début : pas : valeur de fin
instructions ;
end
Exemple : Etant donné les trente premiers entiers placés d’une manière aléatoire dans un
vecteur v, on chercher la position du nombre 10 dans ce vecteur.
>> x=randperm(30) % génère une permutation aléatoire des 30 premiers
entiers
x = 5 30 24 14 18 3 26 28 1 22 11 20 2 25 6
4 17 12 29 7 21 10 9 13 27 19 16 15 23 8
>> i=length(x); while x(i)~=10 % i est la taille du vecteur x
i=i-1;
end; i
i=
22
21
7.3 Lecture et écriture
En mode programmation, toute instruction non terminée par un `;` génère l’affichage
d’un résultat lors de l’exécution du programme dans la fenêtre d’exécution. L’affichage d’un
résultat ne doit se faire que pour les résultats finaux ou pour détecter des erreurs. Ainsi, il faut
prendre garde de taper le `;` à la fin de chaque instruction.
7.3.1 Lecture
Il est possible de lire de deux manières les données nécessaires pour l’exécution. Soit en
demandant à l’utilisateur de fournir les données pendant l’exécution en utilisant la commande
input, soit en lisant ces données dans un fichier de données en utilisant la commande fscanf. La
syntaxe de la commande input est la suivante :
data=input(‘donner la valeurde data’) ;
En ce qui concerne la commande fscanf, vous pouvez exécuter dans la fenêtre
d’exécution la commande help fscanf pour avoir les informations concernant son utilisation.
7.3.2 Ecriture
La commande standard d’écriture dans la fenêtre d’exécution est fprintf . Elle a la
syntaxe suivante :
fprintf(format,var1,var2,…)
où format est une chaîne de caractères décrivant le format d’écriture des variables var1, vra2, …
qu’on voudrait afficher. Les types de formats les plus utilisés sont :
- %d : entier %3d : entier de taille 3, par exemple 854
- %f : réel %3.2f : réel de taille 3 avec 2 chiffres après la
virgule, par exemple 21.22
- %e : exponentiel %10.3e : nombre de la forme 1.231e+04
- %s : chaîne de caractères
21
7.4.1 Fonctions
Une fonction est une suite de commandes dont la syntaxe de la première commande a la
forme suivante :
function [S1,S2,…] = nom_fonction (E1,E2,..)
Le reste des instructions constituent celles qui seront exécutées lors de l’appel de la fonction dans
la fenêtre d’exécution. Les variables S1, S2, … sont les arguments de sortie et les variables E1,
E2, .. sont les arguments d’entrée. Pour exécuter cette fonction, il suffit de taper dans la fenêtre
d’exécution son nom suivit des valeurs des entrées E1, E2,…. La touche % permet d’ajouter des
commentaires et les instructions se trouvant sur la même ligne après cette touche sont ignorées
pendant l’exécution.
Exemple : Nous donnons ci-dessous une fonction qui calcule le carré d’une matrice de taille n et
dont tous les coefficients sont égaux à 1.
function [B] = carre_un(n)
B=ones(n) ; % crée la martice des 1 de taille n
B=B^2 ; % calcule le carrée de B
Si on sauve cette fonction sous le nom carre_un, alors en tapant dans la fenêtre
d’exécution l’instruction suivante :
>> carre_un(3)
on obtient
ans =
3 3 3
3 3 3
3 3 3
On peut écrire cette fonction d’une manière différente. En effet, la fonction ci-dessous permet de
calculer ces matrices.
function [B] = carre_un
n=input(‘donner la valeur de n :’)
B=ones(n) ; % crée la martice des 1 de taille n
B=B^2 ; % calcule le carrée de B
7.4.2 Scripts
Un script est une suite de commandes qui peuvent faire appel à des fonctions définies
précédemment. Il permet d’écrire des programmes d’une manière lisible en les découpant en des
parties indépendantes sous formes de fonctions puis réunir ces fonctions dans un script.
22
% Cette fonction permet de lire les valeurs des coefficients a, b et c.
function [a,b,c] = lire
fprintf('entrer les valeurs des coefficients a, b et c \n');
a=input('a= ');
b=input('b= ');
c=input('c= ');
% Cette fonction donne le nombre de solutions de l’équation et leur valeur à partir des
% coefficients a, b et c.
function [nbre_solu,x]=resoudre(a,b,c)
if (a==0)
if(b==0)
if(c==0)
nbre_solu=100; % tout réel est solution
x=[];
else
nbre_solu=-1;
x=[]; % pas de solution
end
else
nbre_solu=1; % une solution unique
x=-c/b;
end
else
delta=b^2-4*a*c;
if (delta > 0)
nbre_solu=2; % deux solutions distinctes
x(1)=(-b-sqrt(delta))/2*a;
x(2)=(-b+sqrt(delta))/2*a;
elseif (delta == 0)
nbre_solu=1;
x(1)=-b/2*a;
x(2)=x(1); % une solution double
else
nbre_solu=0;
x=[]; % pas de solution réelle
end
end
23
% Cette fonction permet d’afficher les résultats selon les différents cas.
function ecrire=ercrire(nbre_solu,x)
if (nbre_solu==-1)
fprintf('pas de solution \n')
elseif (nbre_solu==0)
fprintf('pas de solution réelle \n')
elseif (nbre_solu==100)
fprintf('tout réel est solution \n')
elseif (nbre_solu==1)
fprintf('une seule solution réelle : ')
fprintf('x = %f \n' , x(1))
elseif (nbre_solu==2)
fprintf('deux solutions réelles distinctes : \n')
fprintf('x(1) = %f \n' , x(1))
fprintf('x(2) = %f \n' , x(2))
end
% Ce script permet de donner les solutions à partir des coefficients a, b et c
% en utilisant les fonctions définies ci-dessus.
[a,b,c]=lire;
[nbre_solu,x]=resoudre(a,b,c) ;
ercrire(nbre_solu,x)
En sauvant ces fonctions et ce script respectivement sous les noms ecrire, resoudre, lire
et principal, puis en tapant le nom du script principal dans la fenêtre d’exécution, on obtient :
>> principal
entrer les valeurs des coefficients a, b et c
a= 2
b= 1
c= 1
pas de solution réelle
>> principal
entrer les valeurs des coefficients a, b et c
a= 1
b= -2
c= 1
une seule solution réelle : x = 1.000000
>> principal
24
deux solutions réelles distinctes :
x1 = -4.561553
x2 = -0.438447
8.1 Graphes 2D
- plot : cette commande permet de donner les graphes des fonctions en deux
dimensions. Sa syntaxe est :
plot(x,y)
où x est le vecteur des abscisses et y est le vecteur des ordonnés (donc y(i) est l’image de
x(i)). Naturellement, les vecteurs x et y sont de même taille.
Il faut signaler que Matlab attribut par défaut aux graphes la couleur bleu. Si on désire
changer la couleur de la courbe, il suffit de spécifier la couleur désirée entre deux quottes. De
même, on peut modifier le style des points ou celui du trait en précisant entre deux quottes les
choix désirés. Dans le tableau ci-dessous, nous donnons les principaux codes relatifs aux choix
des couleurs, des styles de points et ceux des traits.
Exemple : On désire tracer la courbe de la fonction xcos(x) sur l’intervalle [0,20] en utilisant 101
points uniformément répartis sur [0,20]. Alors en exécutant les instructions suivantes :
x=0 : 20/100 : 20 ; % partition de l’intervalle [0,20] en 101 points.
y=x.*cos(x);
plot(x,y,’k :’);
title(‘Graphe de la fonction xcos(x) sur l’intervalle [0,20]’).
25
On obtient la figure suivante :
Graphe de la fonction xcos(x) sur l’intervalle [0,20]
20
15
10
-5
-10
-15
-20
0 2 4 6 8 10 12 14 16 18 20
- hold on : cette commande permet de superposer les courbes de plusieurs fonctions sur
le même graphe. Pour désactiver ce mode, il faut taper l’instruction hold off. Sa
syntaxe est la suivante :
plot(x,y)
hold on
plot(x,z)
hold on
…
hold off
On peut superposer plusieurs figures sur le même graphe sans utiliser l’instruction
hold on. En effet, l’instruction
plot(x,y,x,z,x,t) ;
permet de tracer les courbes des fonctions y(x), z(x) et t(x) sur le même graphe.
- legend : elle est utile pour distinguer les différentes figures superposées sur le même
graphe. Pour cela, il faut indiquer une chaîne de caractères associée à chaque fonction
comme le montre la syntaxe suivante :
legend(‘'la fonction y','la fonction z','la fonction t');
Cette instruction va donner lieu à l’affichage d’un cadre spécifiant le style de chacune
des trois fonctions y, z et t.
- xlabel : permet d’afficher un titre pour l’axe des x.
- ylabel : permet d’afficher un titre pour l’axe des y.
Exemple : On désire superposer les graphes des fonctions y(x)=xcos(x), z(x)=x et t(x) = -x sur
l’intervalle [0,20]. Pour cela, nous allons utiliser une partition uniforme de l’intervalle [0,20]
formée par 101 points. Ainsi, en exécutant l’un des deux scripts équivalents suivants :
26
x=0:0.2:20;
y=x.*cos(x);
plot(x,y,x,-x,x,x);
legend('y=xcos(x)','y=-x','y=x');
title('graphes des fonctions y(x)=xsin(x), z(x)=x etty(x)=-x');
xlabel('axe des x');
ylabel('axe des y');
ou bien
x=0:0.2:20;
y=x.*cos(x);
plot(x,y);
hold on;
plot(x,x,':');
hold on;
plot(x,-x,'-.');
hold on
legend('y=xcos(x)','y=x','y=-x');
title('graphes des fonctions y(x)=xsin(x), z(x)=x et t(x)=-x');
xlabel('axe des x');
ylabel('axe des y');
5
axe des y
-5
-10
-15
-20
0 2 4 6 8 10 12 14 16 18 20
axe des x
27
8.2 Graphes 3D
- meshgrid : génère à partir de deux subdivisions x et y une grille rectangulaire dont les
sommets sont les points (xi,yj) où x=(xi)i et y(yj)j.
- surf : cette commande permet de donner les graphes des fonctions en dimension 3D.
Sa syntaxe est :
surf(x,y,z)
où (x,y) est la subdivision et z est la matrice formée des images des points (xi,yj).
Exemple : On désire tracer la surface définie par la fonction z(x,y)=xcos(xy) sur le domaine
rectangulaire I= [-2,1][0,3]. Pour cela, nous allons utiliser une partition rectangulaire du
domaine I avec un pas égal à 0.05 pour l’axe des x et égal à 0.1 pour l’axe des y. Ainsi, en
exécutant le script suivant :
[x,y]=meshgrid(-2:0.05:2,0:0.1:4);
z=x.*cos(x.*y);
surf(x,y,z)
title('graphe de la fonction z(x,y)=xcos(xy)');
xlabel('axe des x');
ylabel('axe des y');
zlabel('axe des z');
1
axe des z
-1
-2
4
3 2
2 1
0
1 -1
0 -2
axe des y axe des x
28