Vous êtes sur la page 1sur 37

Initiation MATLAB

Intervenants:

Laurent David Sarah Delcourte Florence Denis Xavier Escriva Patrice Linel Sverine Millet Fabienne Oudin-Dardun Jean-Pierre Puaux

Objectifs de ce module denseignement

Prise en main de lenvironnement Apprentissage du langage Matlab Mise en uvre rapide de mthodes numriques dans un
environnement informatique possdant un grand nombre doutils intgrs (graphique par exemple)
non exhaustif sur le langage Matlab approche pragmatique

Fiche synoptique n1

Gnralits

MATLAB est un environnement de programmation pour


le calcul scientifique

Outil pour le calcul numrique, la visualisation de


graphiques techniques: langage de programmation intuitif pour les applications d'ingnierie et les applications scientifiques

Permet dlaborer trs rapidement des schmas de


solution numrique.

Description rapide de MATLAB

MATLAB: contraction de MATRIX LABORATORY Premire version cre en 1970 par Cleve Moler 500 000 utilisateurs rpartis dans l'industrie, les
administrations et les tablissements scolaires (utilis dans plus de 3500 universits) MATLAB est utilis dans de nombreux domaines dapplication:
traitement du signal, traitement d' images, conception de systmes de contrle, sciences de la terre et de la vie, Instrumentation, finances, l'conomie

Architecture ouverte qui facilite l'utilisation de MATLAB et


de ses produits compagnons pour explorer des donnes et crer des outils personnaliss
4

Quelques fonctionnalits
Du calcul numrique pour des rsultats rapides Des graphiques pour visualiser et analyser les donnes
Un

langage interprt et un environnement de programmation interactif

(incluant diteur de texte, dbogueur/optimiseur, gestionnaire de mmoire, explorateur de fichier, documentation) Des outils pour concevoir des interfaces utilisateur graphiques (GUI) personnalises Des interfaces avec des langages de programmation externes comme C, C++, Fortran et Java La prise en charge de l'importation de donnes partir de fichiers et de priphriques externes et l'utilisation d'E/S fichiers de bas niveau (plus l'accs d'autres bases de donnes et d'autres matriels grce des produits complmentaires) La conversion d'applications MATLAB en C et C++ avec la suite Compiler Suite
5

Applications

Calcul Scientifique

MATLAB et les boites outils (toolboxes) de calcul numrique (FEMLAB) , mathmatiques appliques, analyse, visualisation, et dveloppement d'algorithmes
Simulink, MATLAB et des outils de modlisation pour la conception de systme de contrle, des produits couvrant l'analyse d'algorithme, la modlisation, la simulation et la gnration de code pour les systmes embarqus. Simulink, MATLAB et des outils de conception systme pour le traitement du signal (DSP) et les communications qui couvrent le dveloppement d'algorithmes, la simulation, le prototypage rapide et le test

Automatique

Signal et Communications

Tests et Mesure

outils MATLAB pour communiquer et changer des donnes avec du matriel externe.
outils MATLAB pour le traitement d'image, de l'import des donnes l'analyse, la restauration d'image et au dveloppement d'application.

Traitement dimage

Biologie

Outils pour lanalyse, la visualisation de donnes et la simulation de systmes biologiques


Outils pour l'analyse, la modlisation, la simulation, et l'optimisation de donnes financires
6

Finance

Lenvironnement MATLAB
Menu Barre doutils Workspace

Fentres graphiques MATLAB


Command Window Current directory Command history Workspace Help

Barres menus et barres outils


Menus
File Edit View Web Windows Help

Outils: icnes fichiers, copier/coller, Simulink, Help

Current directory Command history

Help

Command Window

Lenvironnement MATLAB
Menu Barre doutils Launch pad Workspace

Fentres graphiques MATLAB


Command Window Current directory Command history Launch pad Workspace Help

Barres menus et barres outils


Menus
File Undock window Edit View Web Windows Help

Outils: icnes fichiers, copier/coller, Simulink, Help

Current directory

Command Window

Prise en main de MATLAB

Utilisation de MATLAB en calculette (ligne de commande)


permet toutes les oprations arithmtiques, classiques
Exemple : 6+5 ans = 11

Le rsultat est affich et stock dans une variable ans qui apparat dans la fentre workspace
4/7 ans = 0.5714 format long ans ans = 0.57142857142857 format short ans*3 ans = 1.7143
9

Prise en main de MATLAB


4/5 4/7; Aucun rsultat nest affich mais le calcul est effectu et mmoris dans 4/5;3/4 ans = 0.7500 4/5,3/4 ans = 0.8000 ans = 0.7500

ans

10

lments de langage

Donnes
4 types de base

Rels
Reprsents par des nombres flottants ; Pas de diffrence entre entier, entiers longs , rels, rels longs Notation dcimale (+1234.5678, -1234.5678) ou scientifique ( 1234e 5678)
Exemple : >> 4/7 La fentre workspace indique : >> format short e >> ans ans = 5.7143e-001 >> format long e >> ans ans = 5.714285714285714e-001
11

lments de langage
Complexes (complex)
Constante dsignant limaginaire i (i2 =-1) : i ou j (Attention aux noms des indices de boucles) ; Ecriture : 3+2i , 3+i*2 , 4*exp(5i) , 4*exp(j*5)
Exemple

>> 3+i

Caractres (char)
>> 'a'

Logiques (logical)
0 pour FAUX / 1 pour VRAI ; >> 1>2
12

lments de langage

Variables spciales et constantes (help elmat)


ans : rsultat le plus rcent pi = 3.1415926535897 i (ou j ) : unit imaginaire eps : prcision numrique relative realmin : plus petit nombre flottant realmax : plus grand nombre flottant inf : infini, obtenu pour les expressions excdant realmax NaN : Not A Number, obtenu dans les oprations d indtermination

Attention !
le nom des constantes nest pas rserv

Exemple
>> format long e >> realmax ans = 1.797693134862316e+308
13

lments de langage Oprateurs (help ops)


Oprations arithmtiques : + , - , * , / , ^
Exemple >> 36*pi ans = 113.0973 >> 7^4 ans = 2401

Oprateurs relationnels : == , ~= , < , > , <= , >=


Exemple >> 'a'<'A' ans = 0 >> 'a'<'b' ans = 1

Oprateurs logiques : & , | , ~ , xor


Exemple >> (1<2)&&(4>=3) ans = 1 >> xor(1<2,4>=3) ans = 0
14

lments de langage

Fonctions oprant sur des Scalaires (help elfun ) :


entiers
rem : division entire lcm : plus petit multiple commun gcd :plus grand multiple commun factor :dcomposition en facteurs premiers conj :conjugu abs : module angle : phase real : partie relle imag : partie imaginaire

complexes

15

lments de langage

Fonctions mathmatiques
log, log10, exp, sqrt, abs, sign, cos, cosd, sin, sind, acos, cosh, acosh,

Fonctions d arrondi
round : arrondi lentier le plus proche floor : arrondi par dfaut ceil : arrondi par excs fix : arrondi par dfaut (resp. excs) pour un rel positif (resp. ngatif)

16

Fiche synoptique n2a

Quelques outils

Utilisation de laide de Matlab


Navigateur

F1, >> doc >> helpwin


Aide dans la fentre de commande

>> help >> help cos >> lookfor cos

17

Quelques outils

Conserver un journal de la session


diary, diary on, diary off diary('session_matlab_8_sept')

Commenter ses instructions


% prcde le commentaire : toute la fin de la ligne est ignore par linterprteur
>>% calcul de laire ...

>> realmax % plus grand rel

18

lments de langage (suite)

Utilisation de Matlab en ligne de commande


Variable
Emplacement mmoire pour stocker une ou plusieurs valeurs

Nom :
chaine de 63 caractres au maximum pouvant contenir des lettres non accentues, des chiffres et des caractres de soulignement ( les caractres spciaux : + - * / , & | ~ $ % . ; , espace, etc. sont interdits) dbute par une lettre diffrence entre Majuscules et minuscules : b et B ne dsignent pas la mme variable

Pas de noms de variables rservs prudence ! PAS de dclaration de type ou de taille des variables utilises : le type (rel, complexes, caractre, logique) est tabli automatiquement partir des valeurs affectes la variable
19

lments de langage
Affectation :

Variable = valeur
Exemple >> clear; >> a=5.1;b=1+i;car= 'y';

Remarque
Les constantes Matlab sont modifiables (pas de noms rservs) prudence !
>> pi ans = 3.1416 >> pi=12 pi = 12 >> pi pi = 12
20

lments de langage

Espace mmoire
Workspace

Nouvelle variable

Sauver

Ouvri r

Imprimer

Dans la fentre de commande


>> who Your variables are: a b car Name a b car Size 1x1 1x1 1x1 Bytes Class 8 double array 16 double array (complex) 2 char array
21

>> whos

lments de langage
>> clear a >> clear >> >> Ou >> Ou >> a=5.1;b=1+i;car= 'y'; save mes_variables fichier mes_variables.mat save (mes_variables) save ('mes_variables','a','b')

>> clear >> load mes_variables a >> load mes_variables

22

Fiche synoptique n2b

Elments de langage
Vecteurs et matrices
En ralit, Matlab manipule des matrices : un scalaire est une matrice de dimension 1x1 Exemple :
>> a=5 >> whos Name a

Size 1x1

Bytes Class 8 double array

Dfinition dune matrice :


Liste des lments entre crochets ([] ) Sparation des lments dune mme ligne par , ou espace Sparation des lignes par ; ou retour chariot Exemple :
>> a=[5 4;3 2] a = 5 4 3 2

ou

>> a=[5,4 3,2]

23

lments de langage
Vecteur
Matrice ne contenant quune ligne ou quune colonne

Cration de vecteurs particuliers


a:h:b : vecteur de composantes a, a+h, a+2h, ,a+Kh avec a+Khb exemple
>> V=1:0.5:3 V = 1.0000

1.5000

2.0000

2.5000

3.0000

linspace(a,b,N) : cre un vecteur de taille N, de composantes a+(k-1)(b-a)/(N-1) exemple


>> V=linspace(1,3,5) V = 1.0000 1.5000

2.0000

2.5000

3.0000
24

Elments de langage
Extraction de sous-matrices :
A(i,j) : lment de la ime ligne et de la jme colonne de A Le premier lment de la matrice est A(1,1), le dernier A(end,end) Entre parenthses : indices ou vecteurs dindices de ligne et de colonne A(:,j) : jime colonne de A

Tous les lments


A(i,:) : ime ligne A(idbut:ifin,j) : lments des lignes idbut ifin de la jme colonne diag(A) : lments de la diagonale de A

Extraction de sous-vecteurs
v(k) : kme lment du vecteur v

25

lments de langage
Oprateurs
Oprations matricielles : + , - , * , / , ^, ', \ ( division gauche (x=a\b est la solution de ax=b)

Oprations terme terme sur les tableaux : .* , ./ , .^


Exemple
>> a=[5 4;3 2] a = 5 4 3 2 >> a*a ans = 37 21 a.*a ans = 25 9

28 16

16 4

Oprateurs relationnels : == , ~= , < , > , <= , >= Oprateurs logiques : & , | , ~ , xor

26

lments de langage
Fonctions oprant sur des matrices (help matfun )
inv : inverse de la matrice det : dterminant de la matrice rank : rang de la matrice norm : norme euclidienne de la matrice eig : valeurs propres et vecteurs propres de la matrice size : taille de la matrice A poly : polynme caractristique d une matrice trace : trace expm : exponentielle de matrice any : 1 si au moins un des lments de la matrice est non nul, et 0 sinon all : 1 si tous les lments de la matice sont non nuls, et 0 sinon

27

lments de langage
Fonctions oprant sur des vecteurs
length : taille du vecteur cross : produit vectoriel dot : produit scalaire sum , prod , max , min , mean : somme, produit, maximum, minimum et moyenne des lments sort : tri par ordre croissant find : recherche dlments any : 1 si au moins un des lments du vecteur est non nul, et 0 sinon all : 1 si tous les lments du vecteur sont non nuls, et 0 sinon

28

lments de langage
Cration de matrices particulires
eye(n) : matrice identit de taille n Voir aussi eye(n,m) ones(n,m) : matrice de taille (n,m), de composantes 1 zeros(n,m) : matrice de taille (n,m), de composantes 0 rand(n,m) : matrice de taille (n,m), de composantes alatoires (entre 0 et 1) diag(v) : matrice diagonale, de diagonale gale au vecteur v Voir aussi diag(v,n)

29

Exercices
a. Crer les vecteurs suivants :
V1=[2.0 -1.0 4.0], V2=[1.0 2.0 3.0 4.0], V3=[1.0 2.0 3.0 4.0]T . le vecteur V4 de dimension 10 qui contient aux indices p pairs, le carr du p-ime entier ; aux indices p impairs, le cube du p-ime entier.

b. Crer la matrice :

2 3

1 4

0 3

En extraire la 1re ligne, puis la seconde colonne. En extraire le bloc carr (Aij)ij, pour i, j=1,2. c. Crer la matrice identit de dimension 4 ; Crer la matrice nulle de dimension 5x2.
30

d. Crer les matrices suivantes :


M1 2 0 0 3 0 0 0 1 0 0 0 ; 4 0 0 0 0 ; 2 0 M2 0 1 0 0 0 2 0 0 0 2 1 0 3 3 2 0 4 ; 4

M3

M4

e. Crer la matrice suivante :


S

2 1 0 0

1 2 1 0

0 1 2 1

0 0 ; 1 2

Calculer son dterminant, sa trace et son inverse Calculer son polynme caractristique, et ses valeurs propres (de 2 manires diffrentes)
31

f.

Soient les matrices :


A

0 2 3

1 0 ; 4

1 2 3 4 ; 6 7

1 0 0 0 0 1 0 0 ; 0 0 1 0

Calculer la matrice D dfinie successivement par :

Dij=Aij+Bij ; Dij=Aij-Bij ; Dij=Aij*Bij ; Dij=Aij/Bij ; Dij=AijBij .


Calculer la matrice E forme par E
A C B

g. Pour un vecteur ligne x donn de dimension n, crer :


La matrice E n lignes dont toutes les lignes sont gales x ; La matrice F n colonnes dont toutes les colonnes sont gales x ; Construire la matrice G contenant les lignes paires de F de la dernire la premire
32

Construire une matrice random alatoire 10 lignes et 10 colonnes ; Extraire la matrice c forme des lments situs dans les lignes 3 8 aux colonnes 7, 1 et 3 de random ; Mettre zro les lignes impaires de random ; mettre 0.8 les lments suprieurs 0.7 restants.

33

Fiche synoptique n2c

Les polynmes
Un polynme de degr n, p(x) = anxn+ an-1xn-1++ a1x + a0 est dfini par le vecteur : p = [an,an-1,,a1,a0 ]

Fonctions utiles
polyval : valuation du polynme p en des points donns poly : calcul des coefficients du polynme partir de ses racines roots : racines dun polynme Voir aussi conv, deconv, polyint, polyder,

Interpolation polynomiale :
polyfit : calcule le polynme optimal au sens des moindres carrs pour approcher une srie de points

34

Exemples
f=[1 -6 10 0 -11 6] polyval(f,0) x=linspace(-1,3,100) y=polyval(f,x) % ici x est un vecteur plot(x,y) r=roots(f) hold on,plot(r,0,'or') ----------------------------------------x=[1:5]; y=[3.5 4 5 4 4]; a1=polyfit(x,y,4) a2=polyfit(x,y,3) figure x_int=1:0.02:5; plot(x,y,*,... x_int,polyval(a1,x_int),r,... x_int,polyval(a2,x_int),g)

35

Chanes de caractres

Une chane de caractres est un vecteur de caractres


(code ASCII)
Exemple : prenom='paul' Fonctions utiles disp : affiche une chane de caractres input : affiche un texte et attend une saisie clavier ischar, isletter, isspace : indiquent si largument est un caractre, une lettre, un espace num2str, str2num : conversions entre chaine de caractre et valeur numrique

36

Exercices :
Crer les chanes de caractre correspondant aux mots Jean, - et Paul Crer une variable prenom , utilisant les variables prcdentes, et gale Jean-Paul ; Quelle est la taille de cette variable ? Extraire la coordonne 9, puis 3 de cette variable. Afficher tous les caractres de codes 32 126. Que signifie la suite de nombres renvoye par la commande abs('zorro') ? Compter le nombre d'occurences d'une lettre donne dans une chane ? Tester sur les chanes 'caracteres' et 'invitation'.

37