0% ont trouvé ce document utile (0 vote)
3 vues11 pages

Debut Matlab 2

Le document présente un guide d'introduction à Matlab, un système de calcul numérique basé sur des matrices. Il couvre les modes de fonctionnement, les opérations sur les scalaires, la manipulation des matrices, et les instructions de contrôle. Des conseils pratiques et des exemples illustrent l'utilisation des fonctions et des commandes de Matlab.

Transféré par

robinsonnomenjanahary
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
3 vues11 pages

Debut Matlab 2

Le document présente un guide d'introduction à Matlab, un système de calcul numérique basé sur des matrices. Il couvre les modes de fonctionnement, les opérations sur les scalaires, la manipulation des matrices, et les instructions de contrôle. Des conseils pratiques et des exemples illustrent l'utilisation des fonctions et des commandes de Matlab.

Transféré par

robinsonnomenjanahary
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Débuter en Matlab

Licence de mathématiques et Applications


Université Paris-Sud
Bernard Héron - Frédéric Pascal
version 02.0 : septembre 2003

Table des matières


1 Fonctionnement 1
1.1 Lancement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Les modes de travail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3 Accès à l'aide en ligne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.4 Les noms de variables et de fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2 Machine à calculer : opérations sur les scalaires 3
2.1 Fonctionnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2 Achage des nombres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.3 Nombres complexes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3 Les matrices 4
3.1 Construction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3.2 Accès aux éléments d'une matrice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.3 Opérations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
4 Instructions de contrôle 7
4.1 Boucles inconditionnelles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
4.2 Boucles conditionnelles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
4.3 Branchements conditionnels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
5 Fonctions dénies par l'utilisateur 9
6 Tracé de courbes 10

Introduction
Matlab (matrix laboratory) est un système interactif de calcul numérique utilisable
comme une calculette et qui dispose d'un grand nombre de fonctions, d'un langage de
programmation et d'outils de visualisation graphique.
La structure de base sur laquelle travaille Matlab est la matrice. Cela se fait sans
déclarations de type et les allocations de mémoire ou les redimensionnements sont eectués
sans intervention de l'utilisateur, d'où une grande souplesse d'emploi.

1 Fonctionnement
1.1 Lancement
Pour lancer une session Matlab, on peut au choix :
 cliquer UNE SEULE FOIS sur l'icône Matlab6. Le répertoire de travail est alors
le répertoire d'accueil de l'utilisateur.
1
 lancer en tâche de fond : matlab6 & . Dans ce cas, le répertoire de travail est le
répertoire courant.
La commande pwd ache le nom du répertoire de travail et la commande cd permet
de le changer. Il existe aussi un signet current directory pour eectuer ces opérations.

1.2 Les modes de travail


Matlab fonctionne suivant deux modes. Dans les deux cas, l'utilisateur peut dénir
ses propres fonctions et les utiliser.

 le mode interactif : les instructions sont tapées successivement dans l'ordre d'exé-
cution dans la fenêtre de commande. Chaque ligne d'instructions est terminée par
un retour-chariot (touche Entrée ) qui valide la ligne. La ligne d'instructions est alors
interprétée et les instructions qu'elle contient sont immédiatement exécutées. Le ré-
sultat (respectivement un message d'erreur) est aché en cas de bon fonctionnement
(respectivement en cas d'erreur). L'achage du résultat d'une instruction est parfois
indésirable : pour le supprimer, il sut de terminer l'instruction par un point-virgule.
Conseil : Ecrire une seule instruction par ligne.
Conseil : Utiliser la touche " pour rappeler une commande antérieure, puis, après
éventuelle modication, la relancer par un retour-chariot.
 le mode programmation : les instructions sont tapées successivement dans l'ordre
d'exécution dans un chier dont l'extension (n du nom du chier) est .m, par
exemple essai.m, et cela se fait en utilisant un éditeur de texte. Pour faire exécuter
les instructions, il sut alors de taper le nom du chier sans l'extension (essai
dans le cas de l'exemple) dans la fenêtre de commandes. L'avantage de cette façon
de travailler est qu'en cas d'erreur dans l'une des instructions, il n'est pas nécessaire
de tout retaper : il sut de corriger l'erreur dans le chier, de sauvegarder le chier
et de relancer la commande. On désigne un tel chier du nom de script.
Remarque: Quand on lance la commande essai, Matlab cherche le chier essai.m
dans le repertoire de travail. Si Matlab ne parvient pas à exécuter un script, il faut
d'abord s'assurer que le chier .m correspondant existe bien dans le répertoire de
travail (Utiliser la commande pwd).
Conseil : Eviter de donner à un script le nom d'une fonction Matlab. Sinon, ce
chier d'instructions remplacera la fonction Matlab pour la suite de la session de
travail.
Conseil : Mettre des commentaires et sauter des lignes blanches pour faire bien
ressortir la structure du programme. Les lignes de commentaires commencent par
le caractère %.
Remarque: Une instruction trop longue pour tenir sur une seule ligne peut se conti-
nuer sur une nouvelle ligne (ou plusieurs) : il sut de taper    (trois points consécu-
tifs sans rien derrière) à la n d'une ligne pour indiquer que l'instruction se poursuit
sur la ligne suivante.
2
1.3 Accès à l'aide en ligne
Deux possibilités :
 Taper help nom_de_la_commande (exemple : help pwd)
 Taper helpdesk ou doc et une aide en ligne interactive apparaît dans une fenêtre
netscape.

1.4 Les noms de variables et de fonctions


Les noms de variables et de fonctions sont constitués d'une lettre suivie d'au plus
30 autres caractères, chacun pouvant être un chire, une lettre ou le caractère souligné
(
underscore en anglais). Matlab fait la distinction entre minuscules et majuscules.
Conseil : Donner des noms signicatifs aux variables et aux fonctions.
Conseil : Commencer toute nouvelle page d'instructions Matlab par clear all. Cette
instruction détruit toutes les variables personnelles créées auparavant dans l'espace de
travail.
Conseil : La commande whos liste les variables actives (en indiquant leur taille, ce qui
est très utile pour débugger).

2 Machine à calculer : opérations sur les scalaires


2.1 Fonctionnement
Même fonctionnement et même ordre de priorité que sur toutes les machines à calculer
standard : d'abord l'élévation à une puissance (b), puis la multiplication et la division (
et =) et enn l'addition et la soustraction (+ et ?). Pour modier l'ordre des opérations
ou encore pour le mettre en évidence, on utilise des parenthèses.
Fonctions : sin,
cos, tan, cot, asin, acos, atan, acot, cosh, sinh, tanh, coth,
acosh, asinh, atanh, acoth, exp, log, log10, sqrt, abs, sign, mod, rem,
round, floor, ceil, fix .
Exemples:
x=3/2+1.9
y=1+3^4/2*5
z=(1+3)^4/2*5
a=abs(sin(x))+log(y)+exp(-z)
Les instructions ci-dessus donnent à x; y; z les valeurs 3:4; :;
203 5 .
640

2.2 Achage des nombres


Matlab ore au moins quatre types d'achage (court ou long, scientique ou non)
que l'on sélectionne avec les commandes
 format short (qui est le format par défaut)
 format short e
 format long

3
 format long e
Pour le nombre x = 1=700, ces formats donnent respectivement les achages
0.0014
1.4286e-03
0.00142857142857
1.428571428571429e-03
mais (heureusement!) le changement de format n'aecte pas la valeur de x.
Le format sélectionné reste actif jusqu'au lancement d'une nouvelle commande format.
Remarque: Pour présenter des tableaux de valeurs numériques, on préfère généralement
dénir des formats et on utilise alors la commande fprintf avec une description
ad hoc

du format d'achage inspirée du langage C.

2.3 Nombres complexes


p
Les variables i et j désignent le nombre complexe ?1 sauf si d'autres valeurs numé-
riques leur ont été aectées par l'utilisateur (on évitera donc dans ce cas d'utiliser i ou j
comme indice de boucle).
Exemples:
z1=1+2i
z2=(1+sqrt(3)*j)/2
Fonctions complexes: real, imag, conj, abs, angle .

3 Les matrices
3.1 Construction
 In extenso à la main :
- Vecteur-ligne (matrice à 1 seule ligne) : u=[10 -7 3 8] ou bien u=[10,-7,3,8]
- Vecteur-colonne (matrice à 1 seule colonne) : v=[2;0;-5] ou bien v=[2 0 5] 0

- Tableau à 2 indices : A=[10 7 ; 2 4 ; -5 0] ou encore, terme à terme


A(1,1)=10; A(1,2)=7; A(2,1)=2; A(2,2)=4; A(3,1)=-5;
A(1,1)=10; A(1,2)=7; A(2,1)=2; A(2,2)=4; A(3,1)=-5;

Remarque: Si A est une matrice (à coecients complexes), alors A désigne sa trans-


0

conjuguée et A: sa transposée. Les deux coïncident si A est à coecients réels.


0

Remarque: Si on omet de donner une valeur à certains coecients d'une matrice


que l'on crée (ou que l'on complète), alors Matlab leur aecte la valeur 0.
 Formes prédénies :
Matlab dispose de fonctions dénissant des matrices comme eye, ones, zeros,
rand, magic, hilb...

Par exemple eye(3) est la matrice identité d'ordre 3, zeros(2,4) est la matrice
nulle à deux lignes et 4 colonnes, ones(1,5) est le vecteur ligne [1 1 1 1 1].
Attendu que si A est un tableau à deux indices, l'instruction [nl,nc]=size(A)

4
aecte à la variable nl (resp. nc) le nombre de lignes (resp. de colonnes) de A, l'ins-
truction B=rand(size(A)) crée une matrice B de même dimensions que A et à
coecients aléatoiresdans [0; 1].
 Vecteurs-lignes à coecients régulièrement espacés :
u=debut:pas:fin ou u=[debut:pas:fin] et plus simplement
v=debut:fin ou v=[debut:fin] lorsque pas vaut 1.

Exemples: u=-10:4:2 équivaut à u=[10 -6 -2 2]


v=2:5 équivaut à v=2:1:5 c'est-à-dire à v=[2 3 4 5]
w=5:2 équivaut à w=5:1:2 c'est-à-dire à w=[]

 Par concaténation de matrices de tailles compatibles :


Les instructions u=[1 7 9] puis u=[u 3] équivalent à u=[1 7 9 3].
L'instruction M=[ 5*ones(2,3) -eye(2) ; 1:3 zeros(1,2) ] crée la matrice
0 1
5 5 5 ?1 0
M =B @ 5 5 5 0 ?1 CA
1 2 3 0 0

3.2 Accès aux éléments d'une matrice


 Accès à un élément à l'aide des parenthèses et des numéros d'indices :
u(2), A(1,3), v(end)

 Accès à une section d'une matrice à l'aide de vecteurs d'indices :


si L et C sont des vecteurs d'entiers (lignes ou colonnes peu importe), A(L,C) est
la matrice composée des éléments A(i; j ) avec i 2 L et j 2 C. Par exemple pour la
matrice M dénie précédemment M([1 3],[2:4]) est la matrice
!
5 5 ?1
2 3 0

Si x est un vecteur, le sous-vecteur formé des composantes d'indice impair de x est


x(1:2:end) tandis que x(end:-1:1) est le vecteur déduit de x en renversant l'ordre
des composantes. On utilise le deux-points comme abréviation de [1:end]. Ainsi,
A(:,k) (resp. A(k,:)) désigne la colonne (resp. la ligne) d'indice k de la matrice A.
De même, si C est un vecteur d'entiers, alors A(:,C) est la matrice A(1:end,C).

3.3 Opérations
 Opérations matricielles:
A+B, A*B, A-B désignent les opérations matricielles au sens mathématique lorsque
ces opérations ont un sens, c'est-à-dire quand les dimensions des matrices ou vec-
teurs A et B sont compatibles.
 Puissance de matrice carrée :
Si A est une matrice carrée alors
A^n avec n 2 N est le produit répété n fois de la matrice A,
A^(-n) avec n 2 N est égale à inv(A)^n,
= Z est égale à V*D^s*inv(V) où [V,D]=eig(A).
A^s avec s 2

5
 Division matricielle:
- A\B est la solution X (éventuellement au sens des moindres carrés) de AX=B si les
dimensions sont compatibles.
- B/A est la solution X (éventuellement au sens des moindres carrés) de XA=B si les
dimensions sont compatibles.
Remarque: Si A est une matrice carrée de dimension [n; n], inversible et si B est un
vecteur colonne de dimension [n; 1] alors A\B et inv(A)*B sont identiques mais le
calcul n'est pas eectué de la même façon.
Remarque: Si A est une matrice carrée de dimension [n; n], inversible et si B est un
vecteur ligne de dimension [1; n] alors B/A et B*inv(A) sont identiques mais le calcul
n'est pas eectué de la même façon.
 Opérations terme à terme:
Soit A et B deux matrices de mêmes dimensions
- si op est l'un des opérateurs ^, *, / alors le résultat de [Link] B est la matrice
de même dimension que A ou B et dont les éléments sont les A(i; j ) op B(i; j ) (règle
analogue si A et B sont des vecteurs de mêmes dimensions).
- le résultat de A.\B est la matrice de même dimension que A dont les éléments sont
les B(i; j ) /A(i; j ) (règle analogue si A et B sont des vecteurs de mêmes dimensions).
 Opérations matrice (ou vecteur) - scalaire :
Si A est une matrice, si b est un scalaire
- et si op est l'un des opérateurs +, -, * alors A op b ou b op A est la matrice
de même dimension que A dont les éléments sont les A(i; j ) op b (règle analogue si
A est un vecteur).
- alors A/b  A./(b*ones(size(A)))
- alors A.\b  b./A  (b*ones(size(A))./A
- alors A.^b  A.^(b*ones(size(A)))
- alors b.^A  (b*ones(size(A)).^A
Remarque: Dans le cas de * et /, l'opération correspond à l'opération mathématique.
Remarque: Si A est carrée, b^A est la matrice V*b.^D*inv(V) où [V,D]=eig(A).
 Fonction de matrices
On peut appliquer les fonctions numériques internes (sin, sqrt, exp, abs, ...)
énumérées en 2.1 et 2.3 à des vecteurs et des matrices. Elles opèrent alors élément par
élément. Les fonctions numériques dénies par l'utilisateur (cf. section 5) opèrent
de même.
 Fonction de manipulations de matrices
Matlab dispose d'un grand nombre de fonctions intrinsèques sur les matrices : sum,
prod, max, min, det, cond, inv, eig, svd, lu, spy, diag, triu, tril, mean, std...

Exemple 1 : Si a <b sont deux réels, les composantes du vecteur a+[0:10]/10*(b-a)


constituent une subdivision régulière de l'intervalle [a,b] de pas (b-a)/10 . Une dénition
équivalente de ce vecteur est [a:(b-a)/10:b].
6
Exemple 2 :
Si on pose u=[1 4 2 5] et v=[3 -1 0 2] alors
u+v vaut [4 3 2 7]
u*v' vaut [9]
u'*v vaut la matrice carrée 4  4 [v ; 4*v ; 2*v ;5*v]
u*v, u^v, u^2, 2^u provoquent une erreur
u.*v vaut [3 -4 0 10]
u.^v vaut [1 0.25 1 25]
u./v vaut [0.3333 -4.0000 Inf 2.5000] avec un warning
u.\v vaut [3.0000 -0.2500 0 0.4000]
u+2 vaut [3 6 4 7]
u/2 vaut [0.5 2 1 2.5]
u.\2 et 2./u valent [2 0.5 1 0.4]
u.^2 vaut [1 16 4 25]
2.^u vaut [2 16 4 32]
sqrt(u) vaut [1.0000 2.0000 1.4142 2.2361]
u\2 vaut [0 ; 0 ; 0; 0.4] (solution au sens des moindres carrés de u*x=2)
0 0 0 0 0 1
BB 0 0 0 0 CC
u\v vaut B
@ 0 0 0 0 CA (solution au sens des moindres carrés de u*x=v)
0:6 ?0:2 0 0:4

Exemple 3 : Si A=[0 2 ; -1 0] alors l'opération matricielle A*A (ou A^2) et l'opération


terme à terme A.^2 donnent respectivement les matrices
! !
?2 0 ; 0 4
:
0 ?2 1 0

4 Instructions de contrôle
Ce sont les boucles et les branchements. Les boucles permettent de répéter commodé-
ment une suite d'instructions ; le nombre de fois est soit connu d'avance (boucles incon-
ditionnelles), soit déterminé au cours de l'exécution (boucles conditionnelles). Les bran-
chements conditionnels (ou tests) permettent de choisir un traitement parmi plusieurs
possibles en fonction de critères évalués lors de l'exécution.

4.1 Boucles inconditionnelles


Leur forme générale est
for k = val

liste d'instructions

end
où est une variable et est un vecteur-ligne.
k val

La est exécutée m fois en donnant successivement à la variable les


liste d'instructions k

valeurs (1); : : : ; (m) où m(=length(val)) désigne la taille du vecteur .


val val val

Exemple: si (xn) est la suite récurrente dénie par x0 = 1 et xn+1 = sin(xn) pour n  0,
on calcule x10 en écrivant

7
x=1;
for n=1:10
x=sin(x);
end
x

Boucles imbriquées: ces boucles peuvent être imbriquées comme dans l'exemple ci-dessous
(calcul des 6 premières lignes du triangle de Pascal)
A=zeros(6);
for i=1:6
A(i,1)=1;
for j=2:i
A(i,j)=A(i-1,j-1)+A(i-1,j);
end
end

4.2 Boucles conditionnelles


Elles s'écrivent
while condition

liste d'instructions

end
où la condition s'exprime à l'aide des opérateurs arithmétiques
< (strictement inférieur à) <= (inférieur ou égal à)
> (strictement supérieur à) >= (supérieur ou égal à)
~= (diérent de) == (égale)

et des opérateurs logiques


& et
| ou
~ non
A l'exécution, la liste d'instructions est répétée aussi longtemps que la condition est
satisfaite. Par exemple,
n=0;
x=0;
while ( x <= 0.99 ) & ( x >= -0.99 )
n=n+1;
x=sin(n);
end;
calcule le plus petit entier positif n tel que j sin(n)j > 0:99 et la valeur de sin(n). On peut
acher ces deux nombres avec l'instruction [n,x] ou disp([n,x]) .
Remarque: Pour écarter le risque de boucle innie, mieux vaut écrire
iter=0;
while condition & ( iter < 1000 )
liste d'instructions

iter=iter+1;
end
Noter que si besoin, on peut interrompre un calcul de Matlab en maintenant la touche

8
Ctrl enfoncée et en tapant la touche C.
Remarque: Les opérandes des opérateurs arithmétiques doivent être un couple de sca-
laires ou de matrices de mêmes dimensions. Si est l'un des 6 opérateurs arithmétiques
op

et si A et B sont deux matrices de mêmes dimensions, alors A B est une matrice C de


op

mêmes dimensions que A et B dont les coecients sont dénis un à un par C(i; j ) = 1 ou 0
selon que la relation A(i; j ) B(i; j ) est vraie ou non.
Pour Matlab la condition A B est vraie si et seulement si aucun coecient de C n'est
op

op

nul, c'est-à-dire ssi toutes les relations A(i; j ) B(i; j ) sont vraies.
op

Les opérateurs logiques permettent de combiner plusieurs conditions.

4.3 Branchements conditionnels


Leur forme générale est
if condition_1

liste_1 d'instructions

elseif condition_2
liste_2 d'instructions
...
else
liste d'instructions

end
Le nombre de blocs elseif , est quelconque (éventuellement
condition liste d'instructions

nul). De même, la présence d'un bloc else à la n est optionnelle.


liste d'instructions

Seule la qui suit la première


liste d'instructions évaluée vraie est exécutée (il se
condition

peut très bien qu'il n'y en ait aucune). Ensuite, l'exécution se poursuit par l'instruction
qui vient immédiatement après le end.
Exemple: si a; b; c et d sont des
! variables ayant reçu des valeurs réelles, le rayon spec-
tral rho de la matrice ac db peut se calculer comme suit
delta= (a-d)^2 + 4*b*c;
if delta <= 0
rho=sqrt(a*d-b*c)
else
rho=( abs(a+d) + sqrt(delta) )/2
end

5 Fonctions dénies par l'utilisateur


Si un même traitement doit être appliqué à divers jeux de paramètres, on a la pos-
sibilité de créer une fonction, c'est-à-dire un programme qui explicite ce traitement sur
des arguments virtuels (= des noms de variables) et que l'on peut faire exécuter sur tout
ensemble convenable d'arguments eectifs (= des nombres, des matrices ...).
Attention: Les lignes d'instructions d'une fonction de nom truc doivent impérativement
être enregistrées dans un chier de nom truc.m
Nous nous contenterons de montrer le principe des fonctions sur un exemple simple.

9
Supposons qu'on ait créé un chier moyenne.m contenant les lignes
function y=moyenne(x)
% x (argument virtuel) est suppose etre un vecteur
% y (argument de sortie) doit etre affecte d'une valeur dans le corps
% de la fonction
y=sum(x)/length(x);
Alors, l'instruction mean=moyenne([1 3 -5 2 0]) aecte à mean la valeur 0:2.
Une fonction peut avoir plusieurs arguments de sortie. Pour illustrer ce point, modions
comme suit le chier moyenne.m
function [moy,etyp]=moyenne(x)
% x (argument virtuel) est suppose etre un vecteur
% moy et etyp (arguments de sortie) doivent etre affectes d'une valeur
% dans le corps de la fonction
m=length(x);
% m est une variable locale donc inconnue a l'exterieur de cette fonction
moy=sum(x)/m;
etyp=sqrt( sum(x.^2)/m - moy^2 );
L'instruction [m e]=moyenne([1 3 -5 2 0]) aecte alors simultanément à m la valeur
moyenne 0:2 et à e l'écart-type 2:7856 : : : des nombres 1; 3; ?5; 2; 0. Il est à noter que
l'instruction mean=moyenne([1 3 -5 2 0]) aecte comme précédemment la valeur 0:2
( le premier argument de sortie) à mean.
i.e.

Remarque: On a couramment besoin de fonctions qui s'expriment comme composées


de fonctions internes (sin, sqrt, exp, etc.) et de polynômes. Pour de telles fonctions,
plutôt que de créer des chiers .m mieux vaut utiliser la commande inline.
Exemple: si f est l'application t 7! sin(t) , les valeurs de f aux points 0; 1=20; : : : ; 19=20; 1
t +1
2
peuvent s'obtenir en écrivant
x=[0:20]/20;
y=sin(pi*x)./(x.^2+1);
ou encore
f=inline( ' abs(sin(pi*t)) ./ (t.^2+1) ' );
x=[0:20]/20;
y=f(x);
Observer qu'en utilisant les opérateurs ./ et .^ au lieu des opérateurs / et ^ on permet
que f s'applique indiéremment à un scalaire ou un tableau (cf. opérations terme à terme).

6 Tracé de courbes
 Principe
Il s'agit plus exactement de tracés de lignes brisées. Si x; y sont deux vecteurs-
lignes (ou deux vecteurs-colonnes) de même taille n, la commande plot(x,y) réa-
lise le tracé de la ligne brisée qui relie les points de coordonnées (x(j ); y(j )) pour
j = 1; : : : ; n dans une fenêtre graphique séparée. On peut choisir la couleur et le
type du trait (trait plein, tirets, pointillés ou points isolés) et placer des marqueurs
(cercles, croix, triangles, etc.) aux sommets de la ligne brisée (pour lister les possi-
bilités, faire help plot).

10
Exemple: Pour tracer le graphe d'une fonction f dénie dans un chier f.m ou
simplement avec une instruction inline(' ... ') il sut en général (pour des
fonctions lisses) de 50 à 100 points d'abscisses équiréparties pour un rendu satis-
faisant.
f=inline('5*sin(x)-exp(2*x.^2)');
x=-1+2*[0:100]/100;
plot(x,f(x),'r')

 Tracé de plusieurs lignes brisées


Chaque nouvelle commande plot ouvre a priori un nouvel espace graphique dans
la fenêtre graphique et eace donc le précédent tracé. Pour tracer plusieurs lignes
brisées dans un même espace, on dispose de 2 possibilités.
 1) les lignes brisées sont tracées simultanément :
par exemple plot(x,f(x),'ro', x,5*sin(x),'k--', x,0*x,'b') trace la
ligne brisée dénie par x et 0  x en trait plein bleu, celle dénie par x et
5  sin(x) en pointillés noirs et trace seulement un cercle rouge à l'emplacement
des points dénis par x et f (x).
 2) les lignes brisées sont tracées successivement en maintenant le tracé précé-
dent, pour cela on dispose de la commande hold on qui permet de conserver
le tracé tant que hold off ou clf n'est pas appelée. Reprenons l'exemple
précédent
plot(x,f(x),'ro')
hold on
plot(x,5*sin(x),'k--')
plot(x,0*x,'b')
hold off

Les fenêtres graphiques sont appelées Figure No 1 (fenêtre par défaut), Figure No
2, etc. La commande figure(n) permet d'ouvrir (ou de préciser si elle est déjà
ouverte) la fenêtre graphique Figure No n dans laquelle on souhaite travailler.
La commande subplot permet d'ouvrir plusieurs espaces graphiques dans une même
fenêtre.
 Options
Les commandes title, gtext, legend, xlabel permettent de documenter les tracés
(pour acher les règles d'emploi de ces options, faire help title, help gtext, etc).
La commande axis s'emploie après la commande plot pour recadrer le tracé. En
particulier, la commande axis equal retrace la gure en axes orthonormés et la
commande axis([xmin xmax ymin ymax]) reconstruit la partie du graphique li-
mitée au rectangle [xmin, xmax][ymin, ymax].
Signalons que Matlab dispose d'autres commandes de tracé, par exemple loglog,
, , ,
semilogx semilogy polar plot3d ,...

11

Vous aimerez peut-être aussi