Initiation au logiciel Matlab (1).doc

46
Aide au Matlab Mr : M. KIOUS Première partie Initiation au logiciel " Matlab " Le logiciel Matlab est ouvert dans la fenêtre de commande Matlab Mcw ( Matlab command window). 1. L’AIDE EN LIGNE. On obtient les informations sur une fonction (contenue dans Matlab ou dans un des toolbox) en tapant help suivi du nom de cette fonction. On peut aussi utiliser un mot clé avec la fonction lookfor, le mot clé n’étant pas nécessairement le nom d’une fonction de Matlab. exemples : help diag, help clear, lookfor complex... 2. TABLEAUX ET MATRICES. 2.1 Définir une matrice. A = [1 2 3 4] définit la matrice ligne comportant les 4 éléments 1, 2, 3 et 4. A = [1,2,3,4] donne le même résultat. C = [‘a’ ‘b’ ‘c’] définit la matrice ligne comportant les caractères a, b et c. B = [1;2;3;4] définit la matrice colonne comportant les mêmes valeurs que A. Si on remarque que B est la transposée de A, on peut aussi écrire B = A' l'apostrophe à droite signifiant la transposition. C = [1 2 3;4 5 6;7 8 9] définit la matrice carrée 3x3, dont la première ligne est 1 2 3, la seconde ligne 4 5 6, etc... On obtient sa transposée en écrivant C'. C(i,:) est sa i ème ligne et C(:,j) est sa j ème colonne. x= 0:0.5:10 définit un vecteur ligne en partant du premier élément 0 et en incrémentant de 0.5 en 0.5 jusqu’au dernier élément 10. x' est alors un vecteur colonne. linspace(1 ère valeur , dernière valeur , nb d’éléments) permet d’obtenir le même résultat en écrivant linspace(0, 10, 21). L’utilisation de logspace( ) permet d’avoir un espacement logarithmique des valeurs. Matlab permet de créer des matrices particulières. Voir zeros, ones, rand, eye. 2.2 Addition et multiplication matricielles. 1

Transcript of Initiation au logiciel Matlab (1).doc

Page 1: Initiation au logiciel Matlab (1).doc

Aide au Matlab Mr : M. KIOUS

Première partie Initiation au logiciel

" Matlab "

Le logiciel Matlab est ouvert dans la fenêtre de commande Matlab Mcw ( Matlab command window).

1. L’AIDE EN LIGNE.

On obtient les informations sur une fonction (contenue dans Matlab ou dans un des toolbox) en tapant help suivi du nom de cette fonction. On peut aussi utiliser un mot clé avec la fonction lookfor, le mot clé n’étant pas nécessairement le nom d’une fonction de Matlab. exemples : help diag, help clear, lookfor complex...

2. TABLEAUX ET MATRICES.

2.1 Définir une matrice.

A = [1 2 3 4] définit la matrice ligne comportant les 4 éléments 1, 2, 3 et 4. A = [1,2,3,4] donne le même résultat. C = [‘a’ ‘b’ ‘c’] définit la matrice ligne comportant les caractères a, b et c. B = [1;2;3;4] définit la matrice colonne comportant les mêmes valeurs que A. Si on remarque que B est la transposée de A, on peut aussi écrire B = A' l'apostrophe à droite signifiant la transposition. C = [1 2 3;4 5 6;7 8 9] définit la matrice carrée 3x3, dont la première ligne est 1 2 3, la seconde ligne 4 5 6, etc... On obtient sa transposée en écrivant C'. C(i,:) est sa ième ligne et C(:,j) est sa jème colonne. x= 0:0.5:10 définit un vecteur ligne en partant du premier élément 0 et en incrémentant de 0.5 en 0.5 jusqu’au dernier élément 10. x' est alors un vecteur colonne. linspace(1ère valeur , dernière valeur , nb d’éléments) permet d’obtenir le même résultat en écrivant linspace(0, 10, 21). L’utilisation de logspace( ) permet d’avoir un espacement logarithmique des valeurs. Matlab permet de créer des matrices particulières. Voir zeros, ones, rand, eye.

2.2 Addition et multiplication matricielles.

On peut additionner ou multiplier des matrices de même type comme on le ferait avec des nombres. B = C*D multiplie C par D, et le résultat est évidemment différent de D*C. B = C+D additionne les deux matrices. Le résultat du produit A*B (ligne*colonne) est un scalaire, alors que le produit B*A (colonne*ligne) donne une matrice.

2.3 Inversion d'une matrice.

Soit la matrice carrée A dont on veut calculer l'inverse Ai. A = [10 10 0; 0 10 10; 10 19.9 10] Ai = inv(A) calcule Ai, inverse de A si celle-ci n'est pas singulière. On le vérifiera en calculant D = A*Ai qui donne la matrice unité. Si le déterminant det(A) est nul (matrice singulière), Matlab envoie un message d'erreur. Remplacer dans A ci-dessus 19.9 par 20 et essayer de calculer l'inverse. Il est évident que A est singulière dans ce cas, pourquoi?

1

Page 2: Initiation au logiciel Matlab (1).doc

Aide au Matlab Mr : M. KIOUS

X = A\B calcule X = A-1.B, solution de AX=B. X = A/B calcule A.B-1.

2.4 Opérations élément par élément.

Il est possible de faire le produit de deux tableaux a et b élément par élément, c’est à dire d’obtenir le tableau c tel que c(i) = a(i) * b(i) en écrivant c = a .* b y = a.^n donnera y qui contiendra les éléments de a à la puissance n. Pour la division élémentaire, essayer a./b et a.\b. Pour la somme, quelles sont vos conclusions?

2.5 Fonctions utiles pour la manipulation des matrices.

Utiliser help pour voir size, length, poly, rank.

3. PROGRAMMATION ET M-FILE FUNCTIONS.

Matlab est aussi un langage de programmation qui dispose de structures de boucles for ou while ainsi que de la structure if elseif else end. Un exemple est donné ci-dessous pour chaque cas. Noter que le point-virgule permet de gérer l'affichage ou le non affichage des valeurs manipulées.

3.1 Boucles for.

for i=1:2:10 x(i)=i*i end

3.2 Boucles while.

i=0;x=1; while(1+x)>1 x=x/2; i=i+1; end

i x=2*x x-eps

Essayez de comprendre ce que représente eps.

3.3 Structure if else end.

x=1; for i= 1:1000 x=x/2;

if (1+x)<=1 x=2*x break end

end i x-eps

Conclusion?

3.4 Les fonctions.

2

Page 3: Initiation au logiciel Matlab (1).doc

Aide au Matlab Mr : M. KIOUS

Matlab fournit de nombreuses fonctions et permet à l’utilisateur d’écrire les fonctions spécifiques dont il a besoin, à condition de respecter la syntaxe. Par exemple la fonction truc(t,a) contenue dans le fichier truc.m ci-dessous function y = truc(t,a); %function doit toujours être écrit en première ligne y = 2*t.^2 + a; est utilisée par le programme xf.m ci-dessous. t = linspace(0,10,6); a = 1.5; z = feval(‘truc’,t,a); plot(t,z,'r');pause;plot(t,z,'y+');pause;plot(t,z,'r',t,z,'b+'); Certaines fonctions de Matlab ne sont pas prévues pour le passage de paramètres. On utilise dans ce cas une variable globale. Voir global.

4. ANALYSE DE DONNEES.

Les données seront par convention stockées sous forme de matrice colonne. max(x) renvoie le maximum de chaque colonne du tableau x. min(x) renvoie le minimum de chaque colonne du tableau x. mean(x) donne la valeur moyenne de chaque colonne du tableau x. Voir aussi hist, sort....

5. LES POLYNOMES.

Matlab représente un polynôme comme un vecteur ligne qui contient les coefficients des termes rangés selon les puissances décroissantes. p = [ 1 -12 0 5 0] représente x4 -12x3 + 5x.

5.1 Racines d’un polynôme.

r=roots(p) fournit les racines du polynôme donné ci-dessus. p=poly(r) est l'opération inverse qui redonne les coefficients rangés selon les puissances décroissantes.

5.2 Addition.

On additionne les polynômes a et b en écrivant d = a+b s’ils sont de même degré. Sinon il faut compléter celui qui a le degré le plus faible avec des zéros.

5.3 Multiplication.

La fonction conv(a,b) réalise le produit des polynômes a et b. On renvoie le résultat dans c en écrivant c = conv(a,b). Ce produit est obtenu par convolution des vecteurs a et b.

5.4 Division.

La fonction deconv( ) permet la division. [q,r] = deconv(c,b) divise c par b. q est le quotient et r le reste.

5.5 Dérivation.

3

Page 4: Initiation au logiciel Matlab (1).doc

Aide au Matlab Mr : M. KIOUS

La fonction polyder( ) fournit la dérivée d’un polynôme. h = polyder(g) donne h dérivée de g.

5.6 Evaluation.

La valeur prise par le polynôme pour une valeur de la variable est fournie par la fonction polyval( ) exemple : x = linspace(-1,3,5); p = [1 4 -7 -10]; v=polyval(p,x), pause, plot(x,v) Que fait ce programme?

6. ANALYSE NUMERIQUE.

Il n’est pas toujours possible de déterminer analytiquement les extréma d’une fonction, de l’intégrer ou de la dériver, etc...Matlab propose un certain nombre de fonctions qui peuvent résoudre numériquement ces problèmes.

6.1 Tracé graphique.

On utilise la fonction fplot qui assure une représentation plus fine que plot qui sera vue plus loin. ex: g = ‘2*exp(-x).*sin(x)’; fplot(g,[0 8])

6.2 Minimum d’une fonction.

On utilise la fonction fmin. Si on cherche un maximum, on utilise aussi fmin sur la fonction changée de signe. ex: g = ‘2*exp(-x).*sin(x)’ ; xmin = fmin(g,2,5) % on cherche sur 2 < x < 5 x = xmin; ymin = eval(g) % calcule g pour x = xmin

6.3 Zéro d’une fonction.

On utilise la fonction fzero qui renvoie la valeur de x qui annule la fonction g que l'on aura préalablement définie dans un fichier g.m contenant : function y=g(x); % function doit toujours être écrit en première ligne

y=2*exp(-x).*sin(x) Ensuite, taper dans la fenêtre MCW: xz = fzero('g',3.2) % cherche au voisinage de 3.2 et renvoie dans xz

6.4 Intégration.

Les fonctions trapz, quad et quad8 calculent l’aire comprise entre la courbe et l’axe horizontal. Définir le fichier g1.m :

function y=g1(x); y=x.*x;

puis écrire le programme: clear all

4

Page 5: Initiation au logiciel Matlab (1).doc

Aide au Matlab Mr : M. KIOUS

x=0:0.1:1; y=g1(x); aire1=trapz(x,y)

aire2=quad('g1',0,1)

6.5 Dérivation.

On évitera autant que possible la fonction diff qui dérive en faisant la différence entre éléments voisins dans le tableau des valeurs expérimentales, toujours faussées par le bruit. Il est plus astucieux de remplacer la courbe par une bonne approximation polynomiale avec polyfit et de dériver celle-ci avec polyder.

6.6 Equations différentielles.

De nombreux systèmes physiques sont décrits par des équations différentielles, linéaires ou non. Pour intégrer une équation différentielle d’ordre n, on se ramène à un système de n équations du premier ordre, ce qui permettra d’utiliser les fonctions ode23 ou ode45 (ordinary differential equations) qui fourniront la solution cherchée. Exemple : on veut résoudre l'équation de Van der Pol d2x/dt2 - m(1-x2)dx/dt + x = 0. Elle représente un système du second degré dont l'amortissement est non linéaire. On pose y1 = x et y2 = dx/dt, d’où le système équivalent: dy1/dt = y2

dy2/dt = m(1-y12)y2 - y1

Pour m = 2, on programme : function yprime =vdpol(t,y);

m = 2; yprime = [y(2); m*(1-y(1).^2)*y(2) - y(1)]; On remarque que yprime est un vecteur colonne à deux éléments qui décrit complètement l’équation différentielle. Le programme suivant calcule la solution :

[t,y] = ode23(‘vdpol’,[0,30],[0;0.01]); %utiliser help pour les arguments y1 = y(:,1) % y(:,n) récupère la nème colonne de y, donc x plot(t,y1) % trace x en fonction du temps

7. LE GRAPHISME A DEUX DIMENSIONS.

Matlab propose de nombreuses fonctions graphiques. Nous donnons ici les plus utilisées avec un minimum d’explications. Utilisez help pour en savoir plus.

7.1 La fonction plot.

plot permet de tracer une ou plusieurs courbes sur le même graphe, en choisissant le style du trait et sa couleur et en marquant les points du tableau des valeurs si on le désire. ex : x = linspace(0,2*pi,30); y = sin(x); z = cos(x); plot(x,y,’g:’,x,z,’r--’,x,y,’mo’,x,z,’c+’);

7.2 Les commandes grid, xlabel, ylabel et text.

grid on met la grille sur le graphe tracé par plot. grid off efface la grille. xlabel et ylabel écrivent du texte le long de l’axe correspondant.

5

Page 6: Initiation au logiciel Matlab (1).doc

Aide au Matlab Mr : M. KIOUS

text(x,y,’string’) écrit la chaîne de caractères string aux coordonnées x,y du graphe. gtext(‘string’) donne un curseur qu’on amène à l’endroit où on désire placer le texte. Celui ci s’écrit quand on clique la souris.

7.3 La commande axis.

axis([xmin,xmax,ymin,ymax]) impose les échelles en x et y. axis(’square’) présente le graphe dans un carré au lieu du rectangle habituel.

7.4 Les commandes figure, hold, close....

La commande figure est très riche en possibilités. Elle permet de créer une figure. La commande set permet d’agir sur tous les paramètres. Voici un exemple d’utilisation :

t=linspace(0,10,100) close figure(1); set(1,'position',[0 0 300 300]); plot(t,sin(t),'y');grid; title('commande'); figure(2); set(2,'position',[320 0 300 300]); plot(t,(sin(t)).^2,'c');grid; title('sortie processus');

hold on permet de tracer plusieurs courbes sur la figure courante, jusqu’à la commande hold off qui permettra de changer. close(n) permet de fermer la fenêtre graphique n.

8. EXERCICES D’APPLICATION.

Pour chaque exercice, on écrira un programme Matlab intitulé x0_i.m pour l’exercice i et on utilisera help autant que nécessaire.

Exercice 1 (fichier x0_1.m) Résoudre avec Matlab le système : x + y + z = 2 2x + y + z = 0 7x - 5y - z = -6

Exercice 2 (fichier x0_2.m) Résoudre graphiquement le système y = 2x - 4 y = -x + 5 On utilisera ginput(...).

Exercice 3 (fichier x0_3.m) Résoudre x exp(-x2) = 0.1/ x2 en utilisant la méthode de l'exercice 2. Combien y a-t-il de solutions?

Exercice 4 (fichiers x0_4.m et f0_4.m) Ecrire le fichier f0_4.m qui crée la fonction y = f0_4(x) = x exp(-x2) - 0.1/ x2

Ecrire x0_4.m qui trace le graphe de f0_4(x) et donne les valeurs de x pour lesquelles f0_4(x) = 0. voir eval (ou feval) et fzero.

Exercice 5 (fichier x0_5.m) On donne les polynômes p1 = x3 - 2x2 - x + 2 p2 = -x2 + 4x - 2 p3 = x2 -1 Utiliser Matlab pour :

6

Page 7: Initiation au logiciel Matlab (1).doc

Aide au Matlab Mr : M. KIOUS

a/ Calculer leurs dérivées respectives dp1, dp2, dp3. b/ Calculer le produit p12 = p1*p2. c/ Calculer dp = p1 - p2 et en déduire les solutions de p1 = p2. d/ Diviser p1 par p3. e/ Calculer la valeur de p1 pour x = 0, 1, 2 et 3. f/ Vérifier graphiquement les solutions trouvées au c/ et e/ voir polyder, conv, roots, deconv, polyval.

Exercice 6 (fichiers x0_6.m et f0_6.m) On considère la fonction y = 1 - exp(-z.w.t).((z/m).sin(wp.t) + cos(wp.t)) avec m = (1-z²)1/2 et wp = m.w pour w = 6.28 rad/s. Ecrire le fichier f0_6.m qui contiendra la fonction f0_6(t,z). Ecrire ensuite x0_6.m utilisant f0_6 pour représenter sur le même graphique les courbes représentatives de cette fonction pour les valeurs de z suivantes : 0.1, 0.3, 0.45 et 0.8 pour t variant de 0 à 5s. Indiquer la valeur de z à côté de chaque courbe, prendre une couleur différente pour chaque courbe et mettre comme titre « Réponse indicielle d’un second ordre ». voir figure, hold on, hold off, feval, num2str, xlabel, ylabel, title, gtext, grid.

Exercice 7 (fichier x0_7.m) Modifier le programme précédent afin de pouvoir rentrer au clavier les valeurs de z. voir input.

Exercice 8 (fichier x0_8.m) Modifier le programme de l’exercice 6 pour mesurer le temps de réponse à 5% de chaque courbe, temps à partir duquel la valeur de y sera toujours comprise entre 0.95 et 1.05. voir ginput.

Exercice 9 (fichiers x0_9.m et f0_9.m) On considère le système décrit par l’équation différentielle suivante, x étant la sortie et u l’entrée du système d2x/dt2 + 2z w dx/dt + w2 x = w2 u(t) On considère le cas où u(t) est constante et égale à 1 et où w=6.28 rad/s. Ecrire la fonction yprime = f0_9(t,y) qui décrit l’équation ci-dessus puis écrire x0_9.m qui intègre l’équation avec ode23 et donne une représentation graphique de la solution. Modifier ensuite ce programme pour tracer sur le même graphe les solutions correspondant à z = 0.25, 0.50, 0.75 et 1 avec une couleur différente pour chaque courbe. voir global, ode23.

Exercice 10 (fichier x0_10.m) On considère l’équation différentielle du 3ème ordre suivante, qui décrit la sortie x d’un système attaqué en entrée par le signal sin wt. d3x/dt3 + 4d2x/dt2 + 5 dx/dt + 2 x = sin wt Résoudre cette équation avec ode23 et représenter sur le même graphe la sortie du système pour w = 3.14, 6.28 et 12.57 rad/s (une couleur différente pour chaque courbe), avec des conditions initiales nulles, puis avec x(0) =0, x’(0) = -1 et x’’(0) =0.

9.1 OPERATORS AND SPECIAL CHARACTERS.

Help + Plus arith - Minus arith * Matrix multiplication arith .* Array multiplication arith ^ Matrix power arith .^ Array power arith

7

Page 8: Initiation au logiciel Matlab (1).doc

Aide au Matlab Mr : M. KIOUS

\ Backslash or left division slash / Slash or right division slash ./ Array division slash kron Kronecker tensor product kron : Colon colon ( ) Parentheses paren [ ] Brackets paren . Decimal point punct .. Parent directory punct ... Continuation punct , Comma punct ; Semicolon punct % Comment punct ! Exclamation point punct ' Transpose and quote punct = Assignment punct == Equality relop < > Relational operators relop & Logical AND relop | Logical OR relop ~ Logical NOT relop xor Logical EXCLUSIVE OR xor

9.2 LOGICAL CHARACTERISTICS.

exist: Check if variables or functions are defined. any: True if any element of vector is true. all : True if all elements of vector are true. find: Find indices of non-zero elements. isnan: True for Not-A-Number. isinf: True for infinite elements. finite: True for finite elements. isempty: True for empty matrix. issparse: True for sparse matrix. isstr: True for text string. isglobal: True for global variables.

9.3 ELEMENTARY MATH FUNCTIONS.

9.3.1 Trigonometric.

sin : Sine. sinh: Hyperbolic sine. asin: Inverse sine. asinh: Inverse hyperbolic sine. cos: Cosine. cosh: Hyperbolic cosine. acos: Inverse cosine. acosh: Inverse hyperbolic cosine. tan: Tangent.

8

Page 9: Initiation au logiciel Matlab (1).doc

Aide au Matlab Mr : M. KIOUS

tanh: Hyperbolic tangent. atan: Inverse tangent.atan2: Four quadrant inverse tangent. atanh : Inverse hyperbolic tangent. sec : Secant. sech : Hyperbolic secant. asec : Inverse secant. asech : Inverse hyperbolic secant. csc : Cosecant. csch: Hyperbolic cosecant. acsc: Inverse cosecant. acsch: Inverse hyperbolic cosecant. cot: Cotangent. coth: Hyperbolic cotangent. acot : Inverse cotangent. acoth: Inverse hyperbolic cotangent.

9.3.2 Exponential.

exp: Exponential. log: Natural logarithm. log10: Common logarithm. sqrt: Square root.

9.3.3 Complex.

abs: Absolute value. angle : Phase angle. conj: Complex conjugate. imag: Complex imaginary part. real : Complex real part.

9.3.4 Numeric.

fix: Round towards zero. floor: Round towards minus infinity. ceil : Round towards plus infinity. round: Round towards nearest integer. rem: Remainder after division. sign : Signum function.

9.4 NONLINEAR NUMERICAL METHODS.

ode23 : Solve differential equations, low order method. ode23p: Solve and plot solutions. ode45: Solve differential equations, high order method. quad : Numerically evaluate integral, low order method. quad8 : Numerically evaluate integral, high order method. fmin : Minimize function of one variable. fmins : Minimize function of several variables.

9

Page 10: Initiation au logiciel Matlab (1).doc

Aide au Matlab Mr : M. KIOUS

fzero : Find zero of function of one variable. fplot : Plot function.

See also The Optimization Toolbox, which has a comprehensive and function functions for optimizing and minimizing functions.

9.5 ELEMENTARY MATRICES AND MATRIX MANIPULATION.

9.5.1 Elementary matrices.

zeros : Zeros matrix. ones : Ones matrix. eye : Identity matrix. rand : Uniformly distributed random numbers. randn : Normally distributed random numbers. linspace : Linearly spaced vector. logspace : Logarithmically spaced vector. meshgrid : X and Y arrays for 3-D plots. : Regularly spaced vector.

9.5.2 Special variables and constants.

ans : Most recent answer.eps : Floating point relative accuracy. realmax : Largest floating point number. realmin : Smallest positive floating point number. pi: 3.1415926535897.... i, j : Imaginary unit. inf : Infinity. NaN : Not-a-Number. flops: Count of floating point operations. nargin : Number of function input arguments. nargout : Number of function output arguments. computer: Computer type. isieee : True for computers with IEEE arithmetic. isstudent : True for the Student Edition. why : Succinct answer. version MATLAB version number.

9.5.3 Time and dates.

clock: Wall clock. cputime : Elapsed CPU time. date : Calendar. etime : Elapsed time function. tic, toc: Stopwatch timer functions.

9.5.4 Matrix manipulation.

diag : Create or extract diagonals.

10

Page 11: Initiation au logiciel Matlab (1).doc

Aide au Matlab Mr : M. KIOUS

fliplr : Flip matrix in the left/right direction. flipud: Flip matrix in the up/down direction. reshape: Change size. rot90 : Rotate matrix 90 degrees. tril : Extract lower triangular part. triu: Extract upper triangular part. : Index into matrix, rearrange matrix.

9.6 SPECIALIZED MATRICES.

compan : Companion matrix. gallery : Several small test matrices. hadamard : Hadamard matrix. hankel : Hankel matrix. hilb : Hilbert matrix. invhilb : Inverse Hilbert matrix. kron: Kronecker tensor product. magic : Magic square. pascal : Pascal matrix. rosser : Classic symmetric eigenvalue test problem. toeplitz : Toeplitz matrix. vander: Vandermonde matrix. wilkinson : Wilkinson's eigenvalue test matrix.

9.7 GENERAL PURPOSE GRAPHICS FUNCTIONS.

9.7.1 Figure window creation and control.

figure : Create Figure (graph window). gcf: Get handle to current figure. clf : Clear current figure. close : Close figure.

9.7.2 Axis creation and control.

subplot: Create axes in tiled positions. axes : Create axes in arbitrary positions. gca : Get handle to current axes. cla : Clear current axes. axis: Control axis scaling and appearance. caxis : Control pseudocolor axis scaling. hold: Hold current graph.

9.7.3 Handle Graphics objects.

figure : Create figure window. axes : Create axes. line : Create line. text: Create text. patch : Create patch. surface: Create surface.

11

Page 12: Initiation au logiciel Matlab (1).doc

Aide au Matlab Mr : M. KIOUS

image : Create image. uicontrol : Create user interface control. uimenu : Create user interface menu.

9.7.4 Handle Graphics operations.

set: Set object properties. get : Get object properties. reset : Reset object properties. delete: Delete object. gco: Get handle to current object. drawnow: Flush pending graphics events. newplot : M-file preamble for NextPlot property. findobj: Find objects with specified property values.

9.7.5 Hardcopy and storage.

print : Print graph or save graph to file. printopt: Configure local printer defaults. orient : Set paper orientation. capture: Screen capture of current figure.

9.7.6 Movies and animation.

moviein : Initialize movie frame memory. getframe: Get movie frame. movie : Play recorded movie frames.

9.7.7 Miscellaneous.

ginput: Graphical input from mouse. ishold : Return hold state. graymon: Set graphics window defaults for gray-scale monitors. rbbox : Rubberband box. rotate : Rotate an object about a specified direction. terminal: Set graphics terminal type. uiputfile: Put up dialog box for saving files. uigetfile : Put up dialog box which queries for file names. whitebg: Set graphics window defaults for white background. zoom : Zoom in and out on a 2-D plot. waitforbuttonpress : Wait for key/buttonpress over figure. See also PLOTXY, PLOTXYZ, COLOR.

9.8 TWO DIMENSIONAL GRAPHICS.

9.8.1 Elementary X-Y graphs.

plot : Linear plot. loglog : Log-log scale plot. semilogx: Semi-log scale plot.

12

Page 13: Initiation au logiciel Matlab (1).doc

Aide au Matlab Mr : M. KIOUS

semilogy : Semi-log scale plot. fill : Draw filled 2-D polygons.

9.8.2 Specialized X-Y graphs.

polar : Polar coordinate plot. bar : Bar graph. stem: Discrete sequence or "stem" plot. stairs : Stairstep plot.errorbar : Error bar plot. hist : Histogram plot. rose : Angle histogram plot. compass : Compass plot. feather: Feather plot. fplot : Plot function. comet : Comet-like trajectory.

9.8.3 Graph annotation.

title : Graph title. xlabel : X-axis label. ylabel : Y-axis label. text : Text annotation. gtext: Mouse placement of text. grid: Grid lines.

See also PLOTXYZ, GRAPHICS.

9.9 THREE DIMENSIONAL GRAPHICS.

9.9.1 Line and area fill commands.

plot3: Plot lines and points in 3-D space. fill3: Draw filled 3-D polygons in 3-D space. comet3: 3-D comet-like trajectories.

9.9.2 Contour and other 2-D plots of 3-D data.

contour : Contour plot. contour3 : 3-D contour plot. clabel : Contour plot elevation labels. contourc : Contour plot computation (used by contour). pcolor: Pseudocolor (checkerboard) plot. quiver : Quiver plot.

9.9.3 Surface and mesh plots.

mesh: 3-D mesh surface. meshc: Combination mesh/contour plot. meshz: 3-D Mesh with zero plane.

13

Page 14: Initiation au logiciel Matlab (1).doc

Aide au Matlab Mr : M. KIOUS

surf : 3-D shaded surface. surfc : Combination surf/contour plot. surfl: 3-D shaded surface with lighting. waterfall: Waterfall plot.

9.9.4 Volume visualization.

slice : Volumetric visualization plots.

9.9.5 Graph appearance.

view : 3-D graph viewpoint specification. viewmtx : View transformation matrices. hidden : Mesh hidden line removal mode. shading: Color shading mode. axis : Axis scaling and appearance. caxis : Pseudocolor axis scaling. colormap: Color look-up table.

9.9.6 Graph annotation.

title Graph title. xlabel : X-axis label. ylabel : Y-axis label. zlabel: Z-axis label for 3-D plots. text: Text annotation. gtext: Mouse placement of text. grid : Grid lines.

9.9.7 3-D objects.

cylinder : Generate cylinder. sphere : Generate sphere. See also COLOR, PLOTXY, GRAPHICS.

9.10 MATRIX FUNCTIONS NUMERICAL LINEAR ALGEBRA.

9.10.1 Matrix analysis.

cond: Matrix condition number. norm: Matrix or vector norm. rcond: LINPACK reciprocal condition estimator. rank : Number of linearly independent rows or columns. det : Determinant. trace : Sum of diagonal elements. null : Null space. orth: Orthogonalization. rref : Reduced row echelon form.

14

Page 15: Initiation au logiciel Matlab (1).doc

Aide au Matlab Mr : M. KIOUS

9.10.2 Linear equations.

\ and / Linear equation solution; use "help slash". chol: Cholesky factorization. lu : Factors from Gaussian elimination. inv: Matrix inverse. qr : Orthogonal-triangular decomposition. qrdelete : Delete a column from the QR factorization. qrinsert: Insert a column in the QR factorization. nnls : Non-negative least-squares. pinv : Pseudoinverse. lscov: Least squares in the presence of known covariance.

9.10.3 Eigenvalues and singular values.

eig: Eigenvalues and eigenvectors. poly: Characteristic polynomial. polyeig : Polynomial eigenvalue problem. hess : Hessenberg form. qz : Generalized eigenvalues. rsf2csf : Real block diagonal form to complex diagonal form. cdf2rdf : Complex diagonal form to real block diagonal form. schur: Schur decomposition. balance : Diagonal scaling to improve eigenvalue accuracy. svd: Singular value decomposition.

9.10.4 Matrix functions.

expm : Matrix exponential. expm1: M-file implementation of expm. expm2 : Matrix exponential via Taylor series. expm3 : Matrix exponential via eigenvalues and eigenvectors. logm: Matrix logarithm. sqrtm: Matrix square root. funm : Evaluate general matrix function.

9.11 POLYNOMIAL AND INTERPOLATION FUNCTIONS.

9.11.1 Polynomials.

roots : Find polynomial roots. poly: Construct polynomial with specified roots. polyval : Evaluate polynomial. polyvalm : Evaluate polynomial with matrix argument.residue : Partial-fraction expansion (residues). polyfit : Fit polynomial to data. polyder : Differentiate polynomial. conv : Multiply polynomials. deconv : Divide polynomials.

15

Page 16: Initiation au logiciel Matlab (1).doc

Aide au Matlab Mr : M. KIOUS

9.11.2 Data interpolation.

interp1: 1-D interpolation (1-D table lookup). interp2: 2-D interpolation (2-D table lookup). interpft : 1-D interpolation using FFT method. griddata: Data gridding.

9.11.3 Spline interpolation.

spline: Cubic spline data interpolation. ppval : Evaluate piecewise polynomial.

9.12 DATA ANALYSIS AND FOURIER TRANSFORM FUNCTIONS.

9.12.1 Basic operations.

max: Largest component. min: Smallest component. mean: Average or mean value. median: Median value. std: Standard deviation. sort: Sort in ascending order. sum : Sum of elements. prod: Product of elements. cumsum: Cumulative sum of elements. cumprod: Cumulative product of elements. trapz : Numerical integration using trapezoidal method.

9.12.2 Finite differences.

diff: Difference function and approximate derivative. gradient: Approximate gradient. del2 : Five-point discrete Laplacian.

9.12.3 Vector operations.

cross : Vector cross product. dot: Vector dot product.

9.12.4 Correlation.

corrcoef: Correlation coefficients. cov: Covariance matrix. subspace : Angle between subspaces.

9.12.5 Filtering and convolution.

filter : One-dimensional digital filter. filter2 : Two-dimensional digital filter.

16

Page 17: Initiation au logiciel Matlab (1).doc

Aide au Matlab Mr : M. KIOUS

conv: Convolution and polynomial multiplication. conv2: Two-dimensional convolution. deconv : Deconvolution and polynomial division.

9.12.6 Fourier transforms.

fft : Discrete Fourier transform. fft2: Two-dimensional discrete Fourier transform. ifft: Inverse discrete Fourier transform. ifft2 : Two-dimensional inverse discrete Fourier transform. abs: Magnitude. angle: Phase angle. unwrap: Remove phase angle jumps across 360 degree boundaries.fftshift: Move zeroth lag to center of spectrum. cplxpair: Sort numbers into complex conjugate pairs. nextpow2: Next higher power of 2.

9.13 SOUND PROCESSING FUNCTIONS.

sound: Convert vector into sound. saxis: Sound axis scaling. Computer-specific sound functions. auwrite: Write mu-law encloded audio file. auread: Read mu-law encloded audio file. wavwrite: Write MS Windows .WAV audio file. wavread: Read MS Windows .WAV audio file. mu2lin : Mu-law to linear conversion. lin2mu: Linear to mu-law conversion.

9.14 CHARACTER STRING FUNCTIONS.

9.14.1 General.

strings: About character strings in Matlab. abs : Convert string to numeric values. setstr : Convert numeric values to string. isstr : True for string. blanks: String of blanks. deblank : Remove trailing blanks. str2mat: Form text matrix from individual strings. eval: Execute string with Matlab expression.

9.14.2 String comparison.

strcmp : Compare strings. findstr : Find one string within another. upper: Convert string to uppercase. lower: Convert string to lowercase. isletter : True for letters of the alphabet. isspace: True for white space characters.

17

Page 18: Initiation au logiciel Matlab (1).doc

Aide au Matlab Mr : M. KIOUS

strrep: Replace a string with another. strtok: Find a token in a string.

9.14.3 String to number conversion.

num2str: Convert number to string. int2str: Convert integer to string. str2num: Convert string to number. sprintf : Convert number to string under format control. sscanf : Convert string to number under format control.

9.14.4 Hexadecimal to number conversion.

hex2num: Convert hex string to IEEE floating point number. hex2dec: Convert hex string to decimal integer. dec2hex: Convert decimal integer to hex string.

9.15 SPECIALIZED MATH FUNCTIONS.

besselj: Bessel function of the first kind. bessely: Bessel function of the second kind. besseli: Modified Bessel function of the first kind. besselk: Modified Bessel function of the second kind. beta: Beta function. betainc: Incomplete beta function. betaln: Logarithm of beta function. ellipj: Jacobi elliptic functions. ellipke: Complete elliptic integral. erf: Error function. erfc: Complementary error function. erfcx: Scaled complementary error function. erfinv: Inverse error function. expint: Exponential integral function.gamma: Gamma function. gcd : Greatest common divisor. gammainc: Incomplete gamma function. lcm : Least common multiple. legendre: Associated Legendre function. gammaln: Logarithm of gamma function. log2 : Dissect floating point numbers. pow2: Scale floating point numbers. rat: Rational approximation. rats: Rational output. cart2sph: Transform from Cartesian to spherical cart2pol : Transform from Cartesian to polar pol2cart: Transform from polar to Cartesian sph2cart : Transform from spherical to Cartesian

9.16 SPARSE MATRIX FUNCTIONS.

18

Page 19: Initiation au logiciel Matlab (1).doc

Aide au Matlab Mr : M. KIOUS

9.16.1 Elementary sparse matrices.

speye : Sparse identity matrix. sprandn : Sparse random matrix. sprandsym : Sparse symmetric random matrix. spdiags : Sparse matrix formed from diagonals.

9.16.2 Full to sparse conversion.

sparse : Create sparse matrix from nonzeros and indices. full : Convert sparse matrix to full matrix. find : Find indices of nonzero entries. spconvert : Convert from sparse matrix external format.

9.16.3 Working with nonzero entries of sparse matrices.

nnz: Number of nonzero entries. nonzeros : Nonzero entries. nzmax: Amount of storage allocated for nonzero entries. spones : Replace nonzero entries with ones. spalloc: Allocate memory for nonzero entries. issparse: True if matrix is sparse. spfun: Apply function to nonzero entries.

9.16.4 Visualizing sparse matrices.

spy : Visualize sparsity structure. gplot: Plot graph, as in "graph theory".

9.16.5 Reordering algorithms.

colmmd: Column minimum degree. symmmd: Symmetric minimum degree. symrcm : Reverse Cuthill-McKee ordering. colperm : Order columns based on nonzero count. randperm : Random permutation vector. dmperm: Dulmage-Mendelsohn decomposition.

9.16.6 Norm, condition number, and rank.

normest: Estimate 2-norm. condest: Estimate 1-norm condition. sprank : Structural rank.

9.16.7 Operations on trees.

treelayout : Layout a tree or forest. treeplot : Plot a picture of a tree. etree : Elimination tree of a matrix.

19

Page 20: Initiation au logiciel Matlab (1).doc

Aide au Matlab Mr : M. KIOUS

etreeplot: Plot the elimination tree.

9.16.8 Micellanous

symbfact : Symbolic factorization analysis. spparms: Set parameters for sparse matrix routines. spaugment: Form least squares augmented system.

9.17 LANGUAGE CONSTRUCTS AND DEBUGGING.

9.17.1 Matlab as a programming language.

script: About Matlab scripts and M-files. function : Add new function. eval: Execute string with Matlab expression. feval : Execute function specified by string. global: Define global variable. nargchk : Validate number of input arguments. lasterr: Last error message.

9.17.2 Control flow.

if : Conditionally execute statements. else: Used with IF. elseif : Used with IF. end: Terminate the scope of FOR, WHILE and IF: statements. for: Repeat statements a specific number of times. while: Repeat statements an indefinite number of times. break: Terminate execution of loop. return: Return to invoking function. error : Display message and abort function.

9.17.3 Interactive input.

input: Prompt for user input. keyboard: Invoke keyboard as if it were a Script-file. menu: Generate menu of choices for user input. pause : Wait for user response. uimenu : Create user interface menu. uicontrol: Create user interface control.

9.17.4 Debugging commands.

dbstop: Set breakpoint. dbclear: Remove breakpoint. dbcont: Resume execution. dbdown: Change local workspace context. dbstack: List who called whom. dbstatus: List all breakpoints.

20

Page 21: Initiation au logiciel Matlab (1).doc

Aide au Matlab Mr : M. KIOUS

dbstep: Execute one or more lines. dbtype : List M-file with line numbers. dbup: Change local workspace context. dbquit: Quit debug mode. mexdebug : Debug MEX-files.

9.18 COLOR CONTROL AND LIGHTING MODEL FUNCTIONS.

9.18.1 Color controls.

colormap: Color look-up table. caxis: Pseudocolor axis scaling. shading: Color shading mode.

9.18.2 Color maps.

hsv: Hue-saturation-value color map. gray: Linear gray-scale color map. hot: Black-red-yellow-white color map. cool : Shades of cyan and magenta color map. bone: Gray-scale with a tinge of blue color map. copper: Linear copper-tone color map.pink : Pastel shades of pink color map. prism: Prism color map. jet: A variant of HSV. flag: Alternating red, white, blue, and black color map.

9.18.3 Color map related functions.

colorbar: Display color bar (color scale). hsv2rgb : Hue-saturation-value to red-green-blue conversion. rgb2hsv : Red-green-blue to hue-saturation-value conversion. contrast: Gray scale color map to enhance image contrast. brighten: Brighten or darken color map. spinmap : Spin color map. rgbplot: Plot color map.

9.18.4 Lighting models.

surfl 3-D : shaded surface with lighting. specular : Specular reflectance. diffuse : Diffuse reflectance. surfnorm: Surface normals.

9.19 LOW-LEVEL FILE I/O FUNCTIONS.

9.19.1 File opening and closing.

fopen: Open file. fclose: Close file.

21

Page 22: Initiation au logiciel Matlab (1).doc

Aide au Matlab Mr : M. KIOUS

9.19.2 Unformatted I/O.

fread : Read binary data from file. fwrite: Write binary data to file.

9.19.3 Formatted I/O.

fscanf : Read formatted data from file. fprintf: Write formatted data to file. fgetl: Read line from file, discard newline character. fgets: Read line from file, keep newline character.

9.19.4 File positioning.

ferror : Inquire file I/O error status. feof : Test for end-of-file. fseek: Set file position indicator. ftell: Get file position indicator. frewind : Rewind file.

9.19.5 String conversion.

sprintf: Write formatted data to string. sscanf : Read string under format control.

9.19.6 File Import/Export Routines.

9.19.7 WK1 Format.

wk1const: WK1 record definitions. wk1read : Read WK1 file/range. wk1write : Write out matrix in a WK1 formatted file. wk1wrec : Write a WK1 record HEADER.

9.19.8 CSV Format.

csvread : Read Comma Separated Value formatted file into a matrix. csvwrite : Write out matrix in a CSV formatted file.

9.19.9 ASCII Delimited Format.

dlmread : Read ASCII delimited file into a matrix. dlmwrite : Write out matrix in ASCII delimited file format.

9.20 GENERAL PURPOSE COMMANDS.

9.20.1 Managing commands and functions.

help: On-line documentation.

22

Page 23: Initiation au logiciel Matlab (1).doc

Aide au Matlab Mr : M. KIOUS

doc : Load hypertext documentation. what: Directory listing of M-, MAT- and MEX-files. type List M-file. lookfor : Keyword search through the HELP entries. which : Locate functions and files. demo : Run demos. path : Control Matlab's search path.

9.20.2 Managing variables and the workspace.

who: List current variables. whos: List current variables, long form. load: Retrieve variables from disk. save: Save workspace variables to disk. clear : Clear variables and functions from memory. pack: Consolidate workspace memory. size : Size of matrix. length : Length of vector. disp: Display matrix or text.

9.20.3 Working with files and the operating system.

cd : Change current working directory. dir: Directory listing. delete : Delete file. getenv: Get environment value. ! Execute operating system command. unix : Execute operating system command & return result. diary : Save text of Matlab session.

9.20.4 Controlling the command window.

cedit: Set command line edit/recall facility parameters. clc : Clear command window. home: Send cursor home. format: Set output format. echo: Echo commands inside script files. more : Control paged output in command window.

9.20.5 Starting and quitting from Matlab.

quit : Terminate Matlab. startup : M-file executed when Matlab is invoked. matlabrc : Master startup M-file.

9.20.6 General information.

info: Information about Matlab and The MathWorks, Inc. subscribe : Become subscribing user of Matlab. hostid: Matlab server host identification number.

23

Page 24: Initiation au logiciel Matlab (1).doc

Aide au Matlab Mr : M. KIOUS

whatsnew : Information about new features not yet documented. ver Matlab, Simulink, and TOOLBOX version

Deuxième partie : Les Toolboxes de Matlab

Les toolboxes sont réellement des caisses à outils comportant une collection de fonctions relatives à plusieurs domaines scientifiques et techniques.

Les toolboxes existant à partir de la version 5.3 sont :

Statistics Toolbox, Signal Processing Toolbox, Image Processing Toolbox, Fuzzy Logic Toolbox, Neural Networks Toolbox, Spline Toolbox, Wavelet Toolbox, Mapping Toolbox,

Control System Toolbox, Optimization Toolbox, Robust Control Toolbox, System Identification Toolbox, Higher-Order Spectral Analysis Toolbox, DSP Blockset, Frequency Domain, Mu Analysis and Synthesis Toolbox, Power System Blockset, Data Acquisition Toolbox,

Database Toolbox, Financial Toolbox, Communications Toolbox, MATLAB Web Server,

Symbolic Math Toolbox, Partial Differential Equations (PDE) Toolbox,

Attention : pour être accessibles, ces toolboxes ainsi que leur documentation "pdf" doivent être sélectionnés lors de l’installation de Matlab.

Nous allons essayer, dans ce qui suit, de survoler les toolboxes les plus couramment utilisées pour le calcul scientifique et la modélisation notamment dans le domaine de la géographie.

VII-1- Toolbox Statistiques

Les fonctions du toolbox statistique peuvent être classées comme suit :

- Les fonctions (lois) de densité de probabilité et fdp cumulatives : beta, binomial, Chi2, exponential, F, gamma, normal, Poisson, Rayleigh, T, Uniform, Weibull,…

- Les fonctions inverses de toutes ces fonctions sont aussi disponible : betainv, binoinv, chi2inv, gaminv, norminv, poissinv, raylinv, weibinv,…

- Les générateurs de nombres aléatoires distribués selon ces lois : betarnd, binornd, chi2rnd, frnd, gamrnd, lognrnd, normrnd, poissrnd, unifrnd, weibrnd,…

- Statistiques de toutes ces lois ( moyenne, variance, …) : betastat, binostat, chi2stat, gamstat, poisstat, weibstat, …

- Statistiques descriptives : mean, median, geomean, harmmean, std, var, skewness, kurtosis, Kurtosis, iqr (interquartile range), corrcoef , cov,…

- Les tests d’hypothese : ranksum, signrank, ztest, ttest, ttest2, anova1, anova2, …

24

Page 25: Initiation au logiciel Matlab (1).doc

Aide au Matlab Mr : M. KIOUS

- Modèles linéaires : polyfit, polyval, regress, …

- Classification : pdist, linkage, dendrogram, cluster, clusterdata, …

- Analyse en Composantes Principales : pcacov, pcares, princomp, …

Exemple 1 : Modélisation d'une loi de Probabilité

load fkta02.matload fkta08.matwhos%help stats%help betafitx=0.02:0.04:0.98;BETAFIT(kta02(1:350))y=betapdf(x,0.5,3.05);BETAFIT(kta08(1:350))z=betapdf(x, 2.63,0.5);subplot(121);hist(kta02,20),hold on,plot(x,(length(kta02)/20)*y,'r') subplot(122);hist(kta08,20),hold on,plot(x,(length(kta08)/20)*z,'r')

0 0.2 0.4 0.6 0.8 10

100

200

300

400

500

600

0 0.2 0.4 0.6 0.8 10

50

100

150

200

250

300

EX2 : Lissage polynomial et régression :

Polyfit : help polyfitX=[1 2 3 4 5 6 7 8 9];Y=[2 5 6 9 7 3 4 5 8];polytool(X,Y,3);a=polyfit(X,Y,5)

Regression : help regressb = regress(Y',[X' X'.^2])

Eemple3 : ACP aux données météorologiques

help princomp[PC, SCORE, LATENT, TSQUARE] = PRINCOMP(T);plot(SCORE)

25

1 2 3 4 5 6 7 8 9

-4

-2

0

2

4

6

8

10

12

14

16

Page 26: Initiation au logiciel Matlab (1).doc

Aide au Matlab Mr : M. KIOUS

plot(SCORE)S1= SCORE(:,1); S2= SCORE(:,2);figure;plot(S1,S2,'+')

-15 -10 -5 0 5 10 15 20 25-10

-5

0

5

10

15

20

25

premier axe principal

de

ux

iem

e a

xe

pri

nci

pal

Exemple 4 : Classification de stations météorologiques (dendrogramme)

Y = PDIST([S1 S1],METRIC);L=LINKAGE(Y, 'single') ;DENDROGRAM(Z);

0

0.5

1

1.5

2

2.5

6 1517182013222330252624272829 1 2 4 3 7 21 9 101112141916 5 8

VII-2- Toolbox traitement de signal

L’un des premiers principes du traitement du signal est la représentation du signal dans une base vectorielle de fonctions (signaux simples) dans le but d'une meilleur extraction et interprétation des propriétés de ce signal.

26

Page 27: Initiation au logiciel Matlab (1).doc

Aide au Matlab Mr : M. KIOUS

f(t) est le signal à analyser et gi(t) sont les fonctions de représentation auxquelles on exige de former une base vectorielle orthonormées.

Les fonctions sinus et cosinus sont les fonctions idéales pour cette représentation. En effet, Joseph Fourier a démontré que tout signal pouvait être représenté sous la forme d’une somme (souvent infinie) de signaux sinusoïdaux de fréquences et de phases différentes.Si le signal est périodique, on parle de série de Fourier. Pour un signal quelconque (cas général), c’est plutôt la transformée de Fourier qui est utilisée.Le signal et sa transformée de Fourier sont liés par les expressions suivantes.

et

Notons que cette somme est plus souvent représentée sous forme d’intégrale. Exemple : TF de signal carré

t = 0:0.01:5;y = square(2*pi*t);, plot(t,y)z=fft(y);y=abs(z(1))*cos(2*pi*t+angle(z(1)) + abs(z(2))*cos(2*pi*t+angle(z(2))+ …

Le traitement de signal comporte outre les techniques basées sur la représentation de Fourier, d’autres transformations qui ne sont que, comme la TF, des représentations dans des espaces de fonctions orthonormées. Le TS comporte aussi des techniques de traitement statistique du signal.

Le toolbox "signal processing" de Matlab comporte une collection très riche de fonctions de traitement du signal. On peut citer les sous familles suivantes : - Transformées : dct, fft, hilbert, idct, ifft, czt, …- Analyse et implémentation de filtres : FIR, IIR, …- Translation fréquentielle (modulation),- Traitement statistique du signal : corrcoef, cov, pcov, spectrum, tfe, xcorr, xcov, …- Modélisation paramétrique de série temporelle : ar, arima, arburg, arcov, aryule, ident, …

Eemple1 : Transformée de Fourier 1D

Analysons les séquences annuelles de mesures d’énergie de rayonnement solaire journalier.

27

0 100 200 300 400 500 600-1

0

1

0 100 200 300 400 500 600-1

0

1

0 100 200 300 400 500 600-1

0

1

0 100 200 300 400 500 600-1

0

1

0 100 200 300 400 500 600-1

0

1

0 100 200 300 400 500 600

-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

0 200 400 600 800 1000 12000

1

2

3

4

5

6

7

8

9

Page 28: Initiation au logiciel Matlab (1).doc

Aide au Matlab Mr : M. KIOUS

ghan91;ghan92;ghan93;GH=[gha91' gha92' gha93']/1000;plot(GH);pauseplot(GH(1:2*365));pause,plot(GH(1:365))

L’application de la TF à des séquences annuelles, bi-annuelles et tri-annuelles donne :

FGH1=fft(GH(1:365));FGH1= 1.54, -0.44-0.04i, 0.02-0.01i, 0.02+0.05i, -0.002-0.015i, 0.01+0.008i, …

FGH2=fft(GH(1:2*365));FGH2= 3.05, -0.01-0.03i, -0.87-0.08i, -0.02+0.02i, 0.025-0.04i, 0.003-0.01i, …

FGH3=fft(GH);FGH3= 4.52, -0.03-0.05i, -0.04-0.07i, -1.25-0.16i, 0.016+0.03i, -0.02+0.07i, …

subplot(131);plot(abs(FGH1(1:20)),'*b:');subplot(132);plot(abs(FGH2(1:20)),'*m:');subplot(133);plot(abs(FGH3(1:20)),'*r:');

0 10 200

500

1000

1500

2000

0 10 200

1000

2000

3000

4000

0 10 200

1000

2000

3000

4000

5000

Les harmoniques ont des contribution importantes pour les variations du signal correspondantes.

EX2 : Fonction d’autocorrélation du signal

subplot(131);plot(xcorr(GH(1:365)))subplot(132);plot(xcorr(GH(1:2*365)))subplot(133);plot(xcorr(GH(1:3*365)))

L’autocorrélation mesure la ressemblance entre le signal et des versions décalées de ce même signal. On peut voir que lorsque le décalage est multiple de 365 (nombre de jours/an), l’autocorrélation augmente indiquant une ressemblance (saison par saison) entre les séquences annuelles.

28

Page 29: Initiation au logiciel Matlab (1).doc

Aide au Matlab Mr : M. KIOUS

0 500 10000

2000

4000

6000

8000

10000

0 500 1000 15000

0.5

1

1.5

2x 10

4

0 1000 2000 30000

0.5

1

1.5

2

2.5x 10

4

VII-3- Toolbox Traitement d’images

Le toolbox "images" est une collection de fonction spécialisées dans le traitement des images appliqué à des domaines aussi variés que l’imagerie médicale, la télédétection et le contrôle non destructif. Ces outils sont groupés en sous-familles comme suit :

- Visualisation d’images : image, imshow, immovie, montage, colorbar, pixval - Écriture et lecture d’image : imread et imwrite ( pour les format image tels que tif, jpg, bmp,…) - Operations géometriques : imcrop, imresize, imrotate, … - Statistiques : mean2, std2, corr2, imhist, - Analyse d’image : edge, qtdecomp, imcontour, … - Réhaussement : histeq, imadjust, medfilt2, ordfilt2, …- Transformées : fft2, ifft2,…- Filtrage : fsamp2, ftrans2, fwind2, …- Palette des couleurs : brighten, colormap, …- Conversion de types : gray2ind, im2bw, im2double, im2uint8, im2uint16, ind2gray, ind2rgb, isbw, isgray, isind, isrgb, mat2gray, rgb2gray, rgb2ind

taper help topic pour plus de détails

Eemple1: diverses opérations

- lecture à partir d’un fichier binairefid=fopen(‘b4juin.raw’,'r'); IM = fread(fid,[3786,3424],’uint8’) ;fclose(fid);IM=IM';Image(IM);

- découpage et affichageIMTL=IM(1300:2200,200:1100);image(IMTL)

- redimensionnement size(IMTL)ans = 901 901

29

500 1000 1500 2000 2500 3000 3500

500

1000

1500

2000

2500

3000

100 200 300 400 500 600 700 800 900

100

200

300

400

500

600

700

800

900

20 40 60 80 100 120 140 160 180

20

40

60

80

100

120

140

160

180

Page 30: Initiation au logiciel Matlab (1).doc

Aide au Matlab Mr : M. KIOUS

IMTL2 = imresize(IMTL,0.2,'bilinear');IMTL2=round(IMTL2);size(IMTL2)ans = 180 180image(IMTL2)

- transformation de type :AMIN=min(min(IMTL2)) ; AMAX=max(max(IMTL2)) ;I = MAT2GRAY(IMTL2,[AMIN AMAX]);

- égalisation d'histogrammeJ = histeq(I);imshow(I), figure, imshow(J)

- histogrammesimhist(I), figure, imhist(J)

0 0.5 1

0

100

200

300

400

500

0 0.5 1

0

200

400

600

- Detection de contoursJE1 = edge(J,'prewitt');imshow(JE1);JE2 = edge(J,'canny');figure;imshow(JE2);subplot(121), imshow(JE1); subplot(122), imshow(JE2);

30

Page 31: Initiation au logiciel Matlab (1).doc

Aide au Matlab Mr : M. KIOUS

- transformée de Fourier fft2 :

Y=fft2(IMTL2);mesh(abs(Y))

Voir demo pour d’autres exemples (notamment ipss001 ).

VII-4- Toolbox Ondelettes

Principe :

La transformée de Fourier joue un rôle prépondérant dans l'analyse et le traitement des signaux. Elle permet en outre de réaliser des opérations de filtrage par simple multiplication dans le domaine fréquentiel (domaine de Fourier). Cependant, les signaux possédant des régimes transitoires ou des parties non-stationnaires (signal parole, signaux sismiques, …) sont mal décrits ou représentés par une transformée de Fourier.Pour pallier à cette déficience, on a eu l'idée d'introduire la représentation du signal en fonction, non pas d’ondes (sinus et cosinus), mais plutôt comme une somme d’ondelettes. Les ondelettes sont des petites ondes finies dans le temps, bien localisées dans le temps (facteur de translation) et de fréquences variables (facteur d’échelle, serrée ou étalée).

31

Page 32: Initiation au logiciel Matlab (1).doc

Aide au Matlab Mr : M. KIOUS

Ainsi, de la même façon que la transformée de Fourier qui peut se définir comme étant une projection sur la base des exponentielles complexes, on définirait la transformée en ondelettes comme la projection sur la base des fonctions ondelettes.

Les coefficients d'ondelettes (TO(a;b)) dépendent de deux paramètres a et b : a étant le facteur d'échelle et b le facteur de translation. Les fonctions a;b(t) sont obtenues à partir de la dilatation et de la translation de la fonction mère (t). Les fonctions a;b(t) sont par conséquent parfois appelées les ondelettes filles. Ces fonctions forment une base orthonormée. Tout comme la transformée de Fourier, la transformée en ondelettes est inversible.

Le wavelet toolbox de Matlab (5.3 et plus) possède un nombre très important de fonctions spécialisées. Taper help wavelet pour voir toute la liste.

Exemples :

ghan91;ghan92;ghan93;GH=[gha91' gha92' gha93']/1000;l=length(GH);[ca1,cd1]=dwt(GH,'db1');a1=upcoef('a',ca1,'db1',1,l);d1=upcoef('d',cd1,'db1',1,l);subplot(311),plot(a1);subplot(312),plot(d1);subplot(313),plot(a1+b1);

0 200 400 600 800 1000 12000

5

10

0 200 400 600 800 1000 1200-5

0

5

0 200 400 600 800 1000 12000

5

10

32

Page 33: Initiation au logiciel Matlab (1).doc

Aide au Matlab Mr : M. KIOUS

Le toolbox wavelet possède également une interface graphique qui permet d’effectuer une analyse en ondelettes à un signal sauvegardé dans un fichier *.mat. Pour activer ce GUI, taper wavemenu.

VII-5- Mapping Toolbox

Ce Toolbox regroupe des fonctions relatives à la cartographie et à la géographie en général. Taper help map pour voir la liste complète des fonctions disponible dans la version de Matlab utilisée ou consulter le fichier map_ug.pdf pour un cours complet sur le mapping toolbox.

Exemple 1 : distance entre deux points

help distance,distance(46,-73,37,3) ans = 55.45017803314318deg2km(55.45)ans = 6.165758682440783e+003deg2nm(55.45)ans = 3.329243349050099e+003

Exemple 2 : surface d’un territoire

- aire délimitée par latmin-lonmin et latmax-lonmax

area=areaquad(15,0,45,30)area = 0.01867

- aire délimitée par un polygone

load usaloplot(statelon,statelat),hold on,plot(uslon,uslat,'r'),hold on, plot(gtlakelon,gtlakelat,'g')

areaint(uslat,uslon)

ans = 0.01553842116460 0.00000677438424 0.00000070866308

33

-130 -120 -110 -100 -90 -80 -70 -6025

30

35

40

45

50

Page 34: Initiation au logiciel Matlab (1).doc

Aide au Matlab Mr : M. KIOUS

VII-6- Toolbox de Maths Symboliques

Les fonctions du symbolic toolbox permettent de faire des opérations mathématiques sur des variables ou des fonctions symboliques (i.e. non numériques). On peut citer les sous-familles suivantes :

- Calcul : diff, int, limit, taylor, symsum,…- Algèbre linéaire : diag, triu, inv, det, eig, …- Simplification : simplify, simple, numden, …- Solution d’équations : solve, dsolve, finverse, compose, …- Transformées : fourier, laplace, ztrans, ifourier, ilaplace, iztrans,- Demonstrations : symintro, symcalcdemo, symlindemo, symvpademo, symrotdemo, … Exemple 1 : intégration et différentiation

syms x

int(x^2+3*x^3-2*x)ans = 1/3*x^3+3/4*x^4-x^2

diff(log(x^2)-exp(x^3)+2*x)ans = 2/x-3*x^2*exp(x^3)+2

Exemple 2 : résolution d’un système d’équation

syms x y[x,y] = solve('x^2 + x*y + y = 3','x^2 - 4*x + 3 = 0')

x =[ 1][ 3]

y =[ 1][ -3/2]

VII-7- Toolbox Réseaux de Neurones

Principe :

Les réseaux de neurones artificiels ont été conçus à la base du modèle du neurone naturel. Ce dernier étant excité par un stimuli, il y répond selon sa fonction de transfert par une sortie (réponse) qui peut être une atténuation ou une amplification de l'entrée (stimuli).

34

Page 35: Initiation au logiciel Matlab (1).doc

Aide au Matlab Mr : M. KIOUS

Neurone Simple :

Le poids w sert à amplifier ou à atténuer l'effet du stimuli sur la réponse.

Fonctions de transfert : on peut trouver différentes formes de fonctions de transfert

Une couche de neurones multi-entrées multi-sorties :

Dans un réseau de neurones, les sorties sont donc reliées aux entrées via des fonctions et des poids.

Réseau de neurones multi-couches

35

Matrice des poids

Page 36: Initiation au logiciel Matlab (1).doc

Aide au Matlab Mr : M. KIOUS

Afin de pouvoir détecter ou reproduire d'éventuelles relations complexes entre les sorties et les entrées, il est possible de devoir recourir à un réseau à plusieurs couches. Plus on multiplie la complexité du réseau, plus on le dote "d'intelligence" et de "mémoire".

Utilisation dans la modélisation :

Pour concevoir un modèle à base de réseaux de neurones, on doit d'abord choisir une structure (nombre d'entrées, nombre de sorties et nombre de couches), sélectionner des fonctions de transfert et enfin calculer les poids w qui lient les différents neurones. Les poids sont calculés grâce à une procédure (algorithmes) d'entraînement du réseau à partir d'entrées et de sorties déjà existantes. Une fois ces poids calculée, le réseau pourra être utilisé pour simuler des réponses à d'autres stimuli.

NNET de Matlab

Taper help nnet pour voir les possibilités qu'offre Matlab pour cette technique. Consulter également le fichier nnet.pdf pour un cours simple et détaillé avec des exemples d'application. Voir aussi demo - toolbox - neural network pour des exemples illustrés.

VII-8- Toolbox Logique Floue

Principe :

La logique floue est un concept introduit par Lotfi Zadeh en 1965 et qui utilise la notion de variables linguistiques (le problème est donc posé en langage humain). Le concept du floue viole le principe du tiers exclu d'aristote.

Exemple :

36

Page 37: Initiation au logiciel Matlab (1).doc

Aide au Matlab Mr : M. KIOUS

On parlera dans cet exemple de variable linguistique taille et de valeurs linguistiques grand et petit.

Variables floues :Une variable floue est décrite donc par une fonction d'appartenance à un domaine de sa gamme dynamique et non pas des valeurs numériques ou des attributs fixes.

Règles "if then entre" variables floues :Les relations entre les variables floues se font par des règles Si Alors (If Then ). Par exemple deux variables x et y sont reliées par la règle :

if x is A then y is B

ou encore si on a d'autres autre variable en jeu.

if (x1 is A1 and x2 is A2) or x3 is A3 then y is B

La logique floue sous MatlabLe "fuzzy toolbox" de Matlab possède des fonctions qui peuvent être utilisées de façon classique comme les autres fonctions ou via une interface graphique activée par l'instruction fuzzy. L'utilisation du fuzzy-GUI de Matlab pour la modélisation de variables floues est organisées en plusieurs étapes. D'abord le choix des fonctions d'appartenance, ensuite l'écriture des règles et enfin la visualisation des résultats.

37

Page 38: Initiation au logiciel Matlab (1).doc

Aide au Matlab Mr : M. KIOUS

Le fichier fuzzy_tb.pdf contient une introduction à la théorie des ensembles floues ainsi qu'un exemple complet sur l'utilisation du GUI pour résoudre un problème de modélisation avec cette technique. Le demo - toolbox -fuzzy contient également des exemples d'utilisation de cette technique.

CONCLUSION

Matlab est un langage de programmation, un logiciel, un monde de fonctions et de techniques. Matlab est un outil très simple, très puissant, très complet et qui ne nécessite pas une formation spéciale pour le maîtriser, juste de ne pas hésiter à utilise help, à naviguer dans demo et à consulter les fichiers de documentation pdf.

38