Sunteți pe pagina 1din 14

Matl

C
t
he

Herms
lanc

Introduction a Matlab

e TNS
sd
B

, extra
ab arbit it
h

Le terme Matlab (Matrix Laboratory) designe dans la suite :


le programme invoque lorsqu'on tape la commande Matlab dans les environnements DOS ou Unix, ou bien en cliquant sur son ic^one dans un
environnement Xwindows, Windows ou MacOS,
ou le langage de ni par un vocabulaire et des regles syntaxiques.
Matlab est un interpreteur, c'est-a-dire un programme qui, une fois appele,
reste en memoire. Matlab ache une fen^etre de commande dans laquelle on
peut taper les commandes a interpreter. S'il les juge correctes, Matlab les
execute. Cette execution donne, elle aussi, lieu a des veri cations.

Exemple 1

Taper a=2*log10(5) puis <retour-chariot>.


obtenu est reporte gure 1 dans un environnement PC.
File Edit

Le resultat

MATLAB Command Window


Options Windows Help

a=2*log10(5)

Ligne de commande

a =

Rsultat

1.3979

Invite

Figure 1

La fen^etre de commande de Matlab sous MS-Windows.

Les commandes peuvent ^etre regroupees en des chiers texte que l'on designe
par programmes Matlab. L'utilisateur leur a ecte un nom qui peut ^etre appele a

18 Signaux et images sous Matlab


partir de la ligne de commande. La documentation de Matlab indique comment
utiliser un editeur pour creer de tels chiers. Cet editeur peut ^etre integre
au logiciel Matlab ou externe (l'editeur prefere de l'utilisateur). Les noms
de chiers programmes possedent l'extension .m. Ainsi, si un programme est
appele prog1.m, il sura de taper prog1 dans la fen^etre de commande de
Matlab pour que ce dernier l'execute. Matlab e ectue une recherche de ce
chier dont il faut parfois indiquer le chemin d'acces en executant la commande
path (voir la documentation fournie avec Matlab ou taper help path).
Il existe aujourd'hui de nombreux clones de Matlab. Certains sont du domaine public. Il existe aussi un compilateur qui permet la realisation de programmes plus rapides. L'execution de ces derniers n'exige pas la possession de
l'interpreteur.

1 Les variables
Le langage Matlab est dedie au calcul matriciel et a ete optimise dans ce but.
Les variables manipulees sont en priorite des matrices a elements reels ou complexes et qu'il est preferable d'eviter l'usage de boucles de calcul (for ...
end). Un scalaire est un matrice 1  1, un vecteur colonne une matrice comportant une seule colonne et un vecteur ligne une seule ligne.
Dans la suite, la notation (`  c) indique que la variable consideree possede
` lignes et c colonnes.

Exemple 2 Taper a=[1

2 3 ; 4 5 6] a l'invite de Matlab dans la fen^etre de


commande. La reponse obtenue est visualisee gure 2 .
Command
a=[1 2 3;4 5 6]

Dfinition de la matrice a

a =
1
4

2
5

3
6

Figure 2

Rsultat
(2 lignes, 3 colonnes)

De nition d'une matrice.

Les crochets permettent d'a ecter des valeurs aux elements d'une matrice.
L'espace (on peut aussi utiliser la virgule) est un separateur qui fait passer a
la colonne suivante, et le point virgule a la ligne suivante. Les elements sont

Introduction a Matlab 19

indices a partir de 1. Le premier indice est le numero de ligne, le second le

numero de colonne. Dans notre exemple a(1,1)=1 et a(2,1)=4. Evidemment,


l'a ectation a=[1 2;3 4 5] entra^ne un message d'erreur puisque le nombre
de colonnes est di erent dans les lignes 1 et 2.
Lorsque les composantes d'un vecteur forment une suite de valeurs
regulierement espacees, il est plus simple d'utiliser une boucle dite \implicite"
de la forme (indD:pas:indF). Cette expression designe la liste des valeurs
partant de la valeur indD et allant au plus jusqu'a la valeur indF avec un pas
d'incrementation egal a pas. La valeur indF ne peut pas ^etre depassee. La
valeur pas peut ^etre omise si elle est egale a 1.

Exemple 3
a =

0 1 2 3 4 5 6 7 8 9 10

Exemple 4
a =

Taper a=(0:1:10) ou a=(0:10). Matlab repond :

Taper a=(0:4:10). Matlab repond :

0 4 8

Il est possible d'etendre la taille d'une matrice. L'interpreteur se charge de


gerer l'espace disponible en allouant dynamiquement un espace memoire lors
de l'analyse de l'expression tapee.

Exemple 5

Taper successivement les commandes suivantes :

>>a=[1 2 3
a =
1
4
>>a=[a a]
a =
1
4
>>a=[1 2 3
>>a=[a;a]
a =
1
4
1
4

; 4 5 6]
2
5

3
6

2
3
5
6
; 4 5 6];
2
5
2
5

1
4

2
5

3
6

3
6
3
6

Remarques :

Il faut respecter les minuscules et les majuscules dans l'appellation des


variables et autres objets de nis dans le langage ;
Le \;" a la n de la ligne de commande inhibe l'achage du resultat d'une
operation ;

20 Signaux et images sous Matlab


Il faut avoir conscience que Matlab reserve de la place en memoire des
qu'on utilise pour la premiere fois une variable. Toutes les variables
utilisees pendant une session de travail restent en memoire et il est
necessaire de liberer de la place de temps a autre si l'on ne veut pas
avoir le message d'erreur OUT OF MEMORY (voir la commande clear dans
la documentation ou taper help clear).

2 Operations et fonctions

2.1 Operations matricielles


Les principales operations matricielles sont les suivantes :
Les operations (+; ) d'addition et de multiplication de deux matrices.

Exemple 6 Taper les commandes suivantes :


>>a=[1 2 ; 3 4] * [5;6]
a =
17
39
>>size(a)
ans =
2
1

La commande size(a) retourne un vecteur (1  2) donnant les nombres


de lignes et de colonnes de a.

L'operateur n fournit la solution du systeme lineaire Ax = b sous la


forme x=Anb. Dans le cas ou A est carree de rang plein, cela revient
a multiplier a gauche par la matrice inverse. Si ce n'est pas le cas, la
solution est fournie au sens des moindres carres1.

Exemple 7 Taper les commandes:


>>A=[1 2;2 3]; b=[1;1]; % Matrice carree de rang plein
>>x=inv(A)*b
% Solution utilisant l'inverse
x =
-1
1
>>x=A\b
% Solution utilisant la resolution du systeme
x =
-1
1

L'operation A/B revient a e ectuer l'operation B'nA'.


1 Le probleme de la resolution d'un systeme lineaire au sens des moindres carres joue un

r^ole central en traitement du signal. Il sera aborde plus precisement dans le chapitre 11.

Introduction a Matlab 21
L'operation ^ e ectue l'exponentiation. L'exposant peut ^etre un scalaire
fractionnaire, positif ou negatif, ou une matrice.
L'apostrophe ' designe le transpose-conjugue ou transconjugue. On rappelle que la matrice A (N  N ) est la transpose-conjugue de B, et on
note A = BH , si [aij ] = [bji] pour 1  i; j  N .
Taper les commandes:
3];

, extra
ab arbit it
h

Matl
tC
e
h

0
9
0
1.7321

0
1
2
3

0
2
4
6

e TNS
sd
B

>>a=[2 0;1
>>a^2
ans =
4
5
>>a^.5
ans =
1.4142
0.3178
>>a=(0:3);
>>b=(0:3);
>>c=b*a'
c =
14
>>d=b'*a
d =
0
0
0
0

Herms
lanc

Exemple 8

0
3
6
9

Les vecteurs a et b sont des vecteurs ligne (4  1) de reels. Le scalaire c est


donc egal au produit scalaire des vecteurs a et b. Par contre d est une matrice
(4  4) de la forme \table de multiplication".

2.2 Operations terme a terme

Les operations \.", \./" et \.^" agissent terme a terme. Ainsi, si A = [aij ] et
B = [bij ] sont deux matrices de m^emes dimensions, A .* B donne la matrice
[aij bij ].

Exemple 9

Taper les commandes suivantes et observer le resultat :

>>clear % Liberation de l'espace memoire donnees


>>a=(1:3)' * (1:4); b=(5:7)' * (1:2:7);
>>c = a.* b;
>>d=a ./ b;
>>e = a .^(.5);
>>a,b,c,d,e

Dans cette suite de commandes:

22 Signaux et images sous Matlab


a et b sont deux matrices a 3 lignes et 4 colonnes. Elles sont obtenues

par multiplication d'un vecteur colonne de dimension 3 avec un vecteur


ligne de dimension 4.
c est une matrice dont l'element generique est ci = ai  bi .
d est une matrice dont l'element di = ai =bi .
e est une matrice dont l'element ei =

pa .
i

Exemple 10 (-1).^[0:9] donne une suite de 1 et 1 alternes.


Attention : dans les operations terme a terme les matrices doivent avoir
m^eme dimension.

Si l'operation ' (apostrophe) e ectue la transconjugaison, l'operation .'


(point-apostrophe) realise quant a elle la transposition sans conjugaison.

Exemple 11 Taper les commandes:


>>a=[1+j 2;3 4]
a =
1.0000 + 1.0000i
3.0000
>>a'
ans =
1.0000 - 1.0000i
2.0000
>>a.'
ans =
1.0000 + 1.0000i
2.0000

2.0000
4.0000
3.0000
4.0000
3.0000
4.0000

2.3 Constantes et initialisations


Les constantes pi, i (ou j) sont prede nies dans Matlab : i = j =
pi=3.14159265358979.

Exemple 12 Taper le programme:


T=1024; temps=(0:T-1);
%===== Trois frequences
fq =[.01 .013 .014];
%===== Signal complexe
sig = exp(2*j*pi*temps'*fq);
%===== Trace de la partie reelle de l'exp. complexe
%
pour fq=0,01 soit cos(2*pi*0,01*n)
plot(temps, real(sig(:,1)))

1 et

Introduction a Matlab 23
temps est un vecteur ligne (1  1024) et donc temps'*fq est une matrice
(1024  3). Vous pouvez le veri er en tapant la commande whos :
>>whos
Name
T
fq
sig
temps

Size
1 by
1 by
1024 by
1 by

1
3
3
1024

Elements
1
3
3072
1024

Bytes
8
24
49152
8192

Density
Full
Full
Full
Full

Complex
No
No
Yes
No

Dans la derniere instruction plot(temps,real(sig(:,1))), sig(:,1)


designe la premiere colonne de la matrice sig.

2.4 Matrices prede nies


Les commandes suivantes permettent d'obtenir des matrices particulieres :
ones(L,C) donne une matrice de L lignes et C colonnes ne contenant que
des 1. Ainsi ones(1,N) donne un vecteur ligne constitue de N \1".
zeros(L,C) donne une matrice de

que des 0.

L lignes et C colonnes ne contenant

eye(N) donne la matrice identite de taille N (des \1" sur la diagonale et

des zeros ailleurs).

eye(L,C) donne la matrice identite IN de taille N , o


u N designe le plus

petit des nombres L et C , completee par une matrice contenant des 0 de


maniere a obtenir une matrice de L lignes et C colonnes. Ainsi eye(1,N)
fournit un vecteur ligne avec un \1" suivi de N 1 \0".
randn(L,C) donne une matrice de L lignes et C colonnes contenant un
echantillon dont la distribution est gaussienne, centree, de variance 1.
rand(L,C) donne une matrice de L lignes et C colonnes contenant un
echantillon dont la distribution est uniforme sur l'intervalle (0; 1).

Matl
C
t
he

% Remplissage colonne par colonne

Herms
lanc

c(:)=a;

e TNS
sd
B

La fonction reshape permet de redimensionner une matrice, par exemple


de passer d'une matrice (2  6) a une matrice (3  4) (voir documentation ou
taper help). Ce redimensionnement peut aussi ^etre fait directement comme
illustre par l'exemple suivant :
, extra
ab arbit it
a=[(1:6);(7:12)]; % Matrice 2 lignes, 6 colonnes
h
c=zeros(3,4);
% Pre-dimensionnement

24 Signaux et images sous Matlab


qui est equivalent a c=reshape(a,3,4). La commande zeros(3,4) permet
d'initialiser le dimensionnement de la matrice c. L'instruction suivante c(:)=a
remplit colonne par colonne la matrice c avec la suite des douze valeurs de a
lues colonne par colonne. a et c doivent contenir exactement le m^eme nombre
d'elements.

Exemple 13 Les instructions :


x=[ones(1,5);-ones(1,5)];
y=zeros(1,10);
y(:)=x

donnent un vecteur ligne de 10 valeurs 1 et 1 alternees. Nous avons vu qu'il


est possible de l'obtenir avec (-1) .^ [0:9].
Certaines fonctions sont ecrites en langage Matlab, d'autres sont au contraire ecrites en langage machine pour des raisons evidentes de rapidite
d'execution.

Exemple 14 Taper type

ifft. Matlab ache le texte de la fonction ifft,


texte qui se trouve dans l'un des repertoires (directories) de votre disque dur.
Par contre, si on fait type fft, Matlab repond :
??? Built-in function

ce qui signi e que cette fonction est ecrite en langage machine.


Cela depend en fait de la version de Matlab. Dans les versions les plus
recentes, nombre de fonctions qui etaient ecrites sous forme de programmes
\.m" (voir paragraphe 6) ont ete reecrites et apparaissent maintenant sous
forme \built-in".

2.5 Fonctions de matrice


Nous avons vu que la commande exp(a) calcule l'exponentielle de chaque
element de la matrice a. Cette operation ne doit pas ^etre confondue avec
l'exponentielle de la matrice a. Le suxe \m" dans les fonctions expm(A),
logm(A), sqrtm(A) indique que l'on a a aire a des fonctions de matrice. Par
exemple la matrice eA est de nie par :

Ak +   
A
eA = I + +    +
1!
k!
et est obtenue a l'aide de la fonction expm(A).
Il existe une fonction plus generale funm qui calcule une fonction quelconque
de matrice. Faire help funm.

Introduction a Matlab 25

2.6 Fonctions utiles


La fonction eig permet d'obtenir valeurs propres et vecteurs propres d'une
matrice.
poly donne le polyn^ome caracteristique associe a une matrice ou les
polyn^omes ayant pour racines un vecteur donne.
roots fournit les racines d'un polyn^ome.
>>a=[1 1 1];
>>rr=roots(a)
rr =
-0.5000 + 0.8660i
-0.5000 - 0.8660i
>>poly(rr)
ans =
1.0000
1.0000
polyn^ome x2 + x + 1 a

roots(a).

Exemple 16

1.0000

pour racines les valeurs complexes fournies par

Taper :

-1.0000

, extra
ab arbit it
h

e TNS
sd
B

>>a=[1 2;1 1];


>>poly(a)
ans =
1.0000 -2.0000
>>[vp,md]=eig(a)
vp =
0.8165 -0.8165
0.5774
0.5774
md =
2.4142
0
0 -0.4142
>>roots(poly(a))
ans =
2.4142
-0.4142

Matl
C
t
he

Le

Taper :

Herms
lanc

Exemple 15

Dans cet exemple, on a une matrice a(22) dont le polyn^ome caracteristique


est poly(a) egal a det(I a) = 2 2 1. Les vecteurs propres de a sont
donnes par vp. md est la matrice portant sur sa diagonale les valeurs propres
qui sont aussi les racines du polyn^ome caracteristique.

2.7 Operateurs logiques sur des booleens


Les operateurs & (ET logique), | (OU logique) et ~ (NON logique) operent sur
des quantites booleennes. La valeur booleenne \faux" est codee 0 et la valeur
\vrai" est codee par une valeur non nulle. La structure if ... elseif ...
else ... end permet d'exploiter ces quantites.

26 Signaux et images sous Matlab

Exemple 17 Taper :
>>x=1;
>>if x==0,
A=[1 2];
else
A=[2 1];
end
>>A
A =
2
1

2.8 Boucles de programme


Il est possible de de nir des boucles de calcul. Comme dans tous les interpreteurs, pour lesquels les performances sont tres degradees en cas de boucle,
il est conseille d'eviter celles-ci lorsque c'est possible.

Exemple 18 Taper :
>>A=[1 .5; .5 .25];
>>M=eye(2,2); % Matrice unite
>>for k=1:5
M = M * A;
% Calcul des puissances successives de A
end

3 L'achage de resultats sous forme graphique


Le choix d'une fen^etre d'achage se fait a l'aide de la commande figure(n) ou
n est un numero de fen^etre. A l'interieur de la fen^etre courante la commande
plot permet l'achage graphique de resultats :
Si x et y sont deux vecteurs de nombres reels de m^eme longueur, la
commande plot(x,y) ache le graphe des ordonnees y en fonction des
abscisses x.
Si x et y sont deux matrices de nombres reels de m^eme dimension, la
commande plot(x,y) ache la premiere colonne de y en fonction de
la premiere colonne de x, la deuxieme colonne de y en fonction de la
deuxieme colonne de x, et ainsi de suite jusqu'a epuisement des colonnes.
Une couleur di erente est a ectee a chacun des traces.
Si x est un vecteur de nombres reels de longueur N et y une matrice de
nombres reels de dimension (N  K ), la commande plot(x,y) ache les
K graphes correspondant aux K colonnes de y en fonction de x.
Si x est un vecteur de nombres complexes, la commande plot(x) ache
la courbe donnant la partie imaginaire de x en ordonnee en fonction de
sa partie reelle en abscisse. L'exemple qui suit illustre ce comportement.

Introduction a Matlab 27

Exemple 19 (Trace d'un cercle)


Taper la sequence suivante :

clear;
z=exp(2*pi*j*[0:100]/100);
figure(1); plot(z); axis('square');
figure(2); plot(z); axis([-1.2 1.2 -1.2 1.2]);
figure(3); plot(z); axis;

La commande axis('square') force l'achage a s'inscrire dans un carre.


Le second axis force les valeurs minima et maxima des abscisses et ordonnees.
Le troisieme repositionne en automatique le calcul des minima et maxima.
La commande zoom permet de \faire une loupe" sur une zone graphique.
Dans les versions recentes de Matlab, les fen^etres et les traces sont des
objets dont on peut consulter et modi er les proprietes a l'aide de get et set.
Ces proprietes sont aussi accessibles a partir de menus deroulants, ce qui evite
d'avoir a les programmer.

Exemple 20 (Trace d'une ellipse)

L'equation d'une ellipse a pour forme matricielle:


(X

X0)T E(X X0) = c


ou c est une constante positive et E une matrice 2  2 positive, ce qui signi e
que, pour tout vecteur Y, le nombre YT EY est positif. L'exposant T designe
dans YT l'operation de transposition. Pour obtenir une matrice positive, on
peut prendre une matrice G quelconque et calculer GT G.
En diagonalisant E, il vient E = PDPT , ou D est une matrice diagonale
a elements diagonaux positifs et P une matrice unitaire, c'est-a-dire telle que
PPT = PT P = I ou I designe la matrice identite.
Posons F = PD1=2PT . On note que F = FT et que FT F = E. On dit que
F est une racine carree de E. Partant de la on a : (X X0)T E(X X0) =
(X X0)T FT F(X X0 ). En posant Y = F(X X0 ),pon obtient YT Y = c
qui est l'equation d'un cercle de centre O et de rayon c. On en deduit une
procedure de calcul de N points de l'ellipse caracterisee par X0 , E et c :
p
1. Calculer Y = c[cos  sin ] pour  allant de 0 a 2 par pas de 1=N .
2. Faire le changement de variable X = X0 + F 1Y.
A partir de cette procedure, ecrivons une fonction ayant pour parametres
d'entree : le centre de l'ellipse de ni par un vecteur X0, la matrice positive
E, et la constante c.
Solution :

28 Signaux et images sous Matlab


function ellipse(X0, E, c)
%%==================================================%
%% Trace d'une ellipse
%
%% SYNOPSIS: ELLIPSE(X0, E, c)
%
%%
X0 = Coordonnees du centre de l'ellipse (2x1) %
%%
E = Matrice positive (2x2)
%
%%
c = Facteur d'echelle
%
%%==================================================%
N=100; theta = (0:N) * (2*pi) ./ N ;
Y = sqrt(c)*[cos(theta);sin(theta)];
Fm1=inv(sqrtm(E));
X = diag(X0)*ones(2,N+1)+Fm1*Y;
plot(X(1,:),X(2,:))
return

Tester cette fonction2 avec le programme suivant en choisissant plusieurs


valeurs de c et :

X0 = [0 0] et E =

1;3628 0;7566
0;7566 0;5166

>>X0=[0 0];
>>E=[1.3628 .7566;.7566 .5166];
>>c=1;
>>ellipse(X0, E,c)

Nous avons represente gure 3 le resultat obtenu pour c = f1; 2; 3; 4; 5g.


10
c=4
c=3
c=2

c=1
0

X0

Matl
tC
he

e TNS
sd
B

, extra
ab arbit it
h 10

c=5
4

2
Figure 3

Trace des ellipses.

Herms
lanc

2 Sauvegardez cette fonction sous le nom ellipse.m. Elle sera reutilisee dans la suite.

Introduction a Matlab 29

4 Conversion valeurs numeriques - cha^nes de caracteres


Considerons en exemple la commande text(x,y,'texte'). Celle-ci permet
d'ajouter a un graphique un texte au point de coordonnees (x; y). Pour introduire des valeurs numeriques dans la commande text il faut tout d'abord
convertir la valeur en cha^ne de caracteres. Cela peut ^etre obtenu gr^ace a la
commande num2str.

Exemple 21

Taper :

fe=10;
valfe=num2str(fe)

La commande sprintf('fe=%g',fe) peut aussi ^etre utilisee pour construire une cha^ne de caracteres. Elle est d'ailleurs utilisee par num2str. Ainsi, fe=
suivie de la cha^ne de caracteres obtenue par conversion de la valeur numerique
fe, en accord avec le format speci e par %g. Par exemple %4g convertit la valeur
donnee avec 4 chi res apres le point decimal. Pour plus d'informations il est
recommande de se reporter a la description de la fonction printf du langage
C. Comme l'indique l'exemple ci-apres, la commande sprintf('fe=%g',fe)
permet l'utilisation de plusieurs arguments.

Exemple 22

Taper :

fq=[10 20];
valf=sprintf('F1 = %g, F2 = %g',fq(1),fq(2))

On pourra regarder aussi les fonctions str2num et hex2num.

5 Les entrees-sorties
Matlab o re la possibilite d'e ectuer des operations d'entree-sortie a partir
du clavier, sur l'ecran (comme on l'a vu dans le paragraphe precedent avec
sprintf) ou sur des chiers. Les principales fonctions sont enumerees ci-apres :
input, ginput, ...

pour les acquisitions a partir du clavier,

disp, sprintf, ...

pour l'achage sur l'ecran,

gtext, plot, grid, title, ...

pour l'achage graphique,

load, save pour charger et sauvegarder tout ou partie des variables dans

un chier avec un format propre a Matlab. Les chiers ont, par defaut,
l'extension .mat,
fopen, fread, fwrite pour les entrees-sorties avec formattage sur des

chiers.

30 Signaux et images sous Matlab

Exemple 23 Taper :
clear; x=[1:100];
fid=fopen('essai.dat','w');
fwrite(fid,x,'short');
% Ecriture
fclose(fid)
%==========
fid=fopen('essai.dat','r');
y=fread(fid,'short')
% Relecture
fclose(fid);

Ce programme cree le chier essai.dat d'entiers 16 bits, puis relit son contenu
dans la variable y.

6 Structure des programmes


Nous avons vu qu'une suite de commandes pouvait ^etre regroupee dans un
chier programme que l'on execute en tapant son nom dans la fen^etre de commandes de Matlab. Un tel programme peut faire appel a des \fonctions" ecrites
en langage Matlab. Une bibliotheque de telles fonctions est fournie avec le logiciel Matlab. Ces programmes commencent par le mot reserve function. Ils
peuvent ^etre aches gr^ace a la commande type. On notera que le nom par
lequel on appelle un programme ou une fonction est celui du chier .m et non
celui declare par le mot reserve function ! Dans les versions les plus recentes
de Matlab il est possible de rassembler dans un m^eme chier .m plusieurs fonctions.
Les premieres lignes de commentaire (ligne precedee du symbole %) d'un
programme (ou d'une fonction) sont achees lorsqu'on execute la commande
help suivie du nom de ce programme.
Matlab autorise l'utilisation de procedures ecrites dans un langage evolue
tel que C, Pascal ou Fortran. Ces programmes sont dits de type MEX. Nous
nous contenterons dans la suite des fonctions prede nies et de celles que nous
construirons dans le langage Matlab.
Matlab permet en outre de creer des programmes avec interface graphique
combinant boutons, menus deroulants, fen^etres \scrollees", etc. L'utilisation
de ces possibilites est un bon moyen de construire des demonstrations ou des
travaux pratiques \presse-boutons" permettant de mettre en evidence certaines
proprietes. Les demonstrations fournies avec Matlab sont une excellente source
de documentation pour mettre en uvre de tels programmes.

S-ar putea să vă placă și