Vous êtes sur la page 1sur 30

INITIATION A MATLAB

1
SOMMAIRE

• Aspects élémentaires
• Vecteurs et Matrices
• La Programmation Matlab
• Les Scripts
• Les Graphiques
• Les interfaces graphiques

2
Présentation générale Fonctionnement

MATLAB : MATrix LABoratory

Logiciel interactif de calcul scientifique:

- fonctions mathématiques usuelles


- calcul matriciel
- racines d’un polynôme
- équations différentielles
- intégration numérique
- graphiques 2D & 3D

Mode interactif :Les instructions sont exécutées au fur et à mesure qu ’elles


sont entrées par l ’utilisateur
Mode programme : MATLAB exécute, ligne par ligne, les instructions d ’un
fichier .M

Type de variables unique : la matrice


3
Présentation générale Espace de travail
Fenêtre de commande

4
Présentation générale Espace de travail

Déclaration des variables


>> x =1.5 ; y = [1 -2] ;

Informations sur les variables >> who affichage des variables dans l'espace de travail.

>> whos affichage détaillé des variables dans l'espace de travail.

Suppression des variables >> clear x


>> clear all

Entrer une valeur au clavier >> x = input(‘Valeur de x =‘)

Affichage du texte à l’écran >> disp(‘ Hello ’)

Aide sous Matlab >> helpdesk

>> help « nom de commande » : fournit de l ’aide sur l ’utilisation de la commande

>> lookfor « mot-clé » : fournit la liste des fonctions contenant le mot-clé.


5
Vecteurs et Matrices Scalaires

Le scalaire est une matrice 1x1

>> a = 2.5; b = 5, c = 0.4; >> size(a)


ans =
11
Les opérations arithmétiques
On respecte les règles classiques de priorités
>> a+b * c
: * et / prioritaires devant + et –
ans =
4.5000 divisions droite (/) et gauche (\)

>> (a+b) * c
ans = Quelques fonctions
3
>> d = a/b*c, e = (a/b)*c – fonctions trigo : cos acos cosh
– exponentielle : exp
d= – log népérien : log
0.2000 – log décimal : log10
e= – racine : sqrt
0.2000
– valeur absolue : abs
6
Vecteurs et Matrices Vecteurs

Le vecteur : une matrice 1xn

>> v1= [1 2] ;
Exemple ou
>> v1(1) =1; v1(2)

Taille d’un vecteur longueur d ’un vecteur


>> size(v1) >> longueur_v1 = length(v1)
ans = long_v1 =
12 2
Les vecteurs peuvent être générés de manière manuelle ou automatique:

Génération automatique Génération manuelle


syntaxe : v =début : pas : fin
les délimiteurs sont :
• `[' et `]' délimitent le début et la fin du
>> v=1:0.5:2
vecteur,
v= • un espace sépare 2 colonnes,
1.000 1.5000 2.000 • un point virgule `;' à l'intérieur de [ ] sépare 2
lignes
7
Vecteurs et Matrices Opérations vectorielles

Soit : v2=[1 2 -3 4]

Extraction Extraction selon un critère Tri ascendant

>> v2(3) >> i =find(v2 <0) >> sort(v2)

ans = ans = ans =


-3 3 -3 1 2 4
produit de vecteurs de même dimensions produit élément par élément

>> p = [2 1 -1] * [1 -3 5] ’ >> [2 1-1] .* [1 -3 5]


p= ans =
-6 2 -3 -5

Remarque : Sous MATLAB, le premier indice d ’un tableau est 1

8
Vecteurs et Matrices Opérations vectorielles

>> sum(v2)
somme des éléments d ’un vecteur
ans=
10
produit des éléments d ’un vecteur >> prod(v2)

Exercices d’application

Exercice1
Essayer
– moyenne : mean(v2)
– minimum : min(v2)
– maximum : max(v2)

Exercice 2 Créez le vecteur [ 9 7 5 3 1]

Créez le vecteur :
Exercice 3 10.0000
9.5000
9.0000
8.5000
8.0000
9
Vecteurs et Matrices Matrices

Pour créer une matrice il faut:


•Ouvrir par [ et fermer par ]
•Séparer les éléments d’une ligne par un espace ou une virgule
•Séparer les lignes par entrer ou par un point virgule

Exemple – lignes séparées par un point virgule


>> A=[1 2 3;4 5 6]
A=
123
456
– lignes séparées par un retour chariot
>> A=[1 2 3
4 5 6]
A=
123
456

>> size(M1)
ans =
23

10
Vecteurs et Matrices Opérations matricielles

Certaines matrices se construisent très simplement grâce à des commandes dédiées. Les plus utilisées sont:

Eye(n): la matrice identité dans Rn,n


Ones(m,n) : la matrice à m lignes et n colonnes dont tous les éléments valent 1
Zeros(m,n) : la matrice à m lignes et n colonnes dont tous les éléments valent 0

Application

Essayer: eye( 2,3)

eye( 2)

ones( 2,3)

ones( 3)

11
Vecteurs et Matrices Opérations matricielles
Soit >> A = [1 2 ; 3 4]

Produit classique : Le produit de A(mxn) par B(pxq) n ’est possible que si n = p et le


résultat est de dimension mxq
>> A *A
ans =
7 10
15 22

Produit de Hadamard : Produit élément par élément de deux matrices de mêmes


dimensions
>> A .*A
ans =
14
9 16

Fonctions diverses : – déterminant : – inverse (et pseudo-inverse)


>> det(A) >> inv(M)

12
Vecteurs et Matrices Opérations matricielles : Exercices
Exercice 1 Exercice 2
Calculer le volume suivant :  Calculer :  Pour x=2
avec R=4cm
Pour calculer V, on exécute les commandes suivantes :
>>R=4
R=
4
>>V=4/3*pi*R^3
V=
268.0826

Exercice 3
Soit A=[1 2 3;4 -5 6; 5 6 7]

Utiliser les commandes Matlab pour choisir


la première ligne de la matrice A ainsi que
ces deux premières lignes

Exercice 4
Générez la matrice A(3, 3) donnée
par :

Recherchez alors son déterminant, son inverse, son carré. Vérifiez que A*A-1 = I(3, 3).

Exercice 5 .

générez une matrice et comparez les résultats des multiplications et 13


Programmation Matlab Structures de contrôle

Les boucles permettent d’itérer les mêmes opérations plusieurs fois sans les écrire
plusieurs fois dans le programme

break termine l ’exécution d ’une boucle 14


Programmation Matlab Structures de contrôle: Exercices
Exercice 1

créer le vecteur [1 2 4 8 .... 2^10]

Exercice 2

calculer le plus petit entier n tel que


2^n soit inférieur à 2000.

15
Programmation Matlab Vecteurs et Valeurs propres

Soit la matrice: >> A = [5 1 ; 1 5]

On cherche le polynôme caractéristique: det(A-λI) = 0

>> poly(A)
ans =
1 -10 24
On cherche les vecteurs et valeurs propres:

>> [vec val] = eig(A)

vec =
0.7071 0.7071
-0.7071 0.7071
val =
4 0
0 6

16
Polynômes Définition sous MATLAB

Dans MATLAB, les polynômes sont représentés sous forme de vecteurs lignes
dont les composantes sont données par ordre des puissances décroissantes. Un
polynôme de degré n est représenté par un vecteur de taille (n+1).

Exemple Le polynôme est représenté par:

>>f=[8 0 2 -3 4 -2]
f =8 0 2 -3 4 -2

17
Polynômes Opérations polynomiales

Soient les deux polynômes :

Multiplication de 2 polynômes Division de polynômes

>>f=[3 2 -1 4];
>>g=[2 0 -3 5 -1]; >>d=deconv(g,f)
>>h=conv(f,g) d=
h= 0.6667 -0.4444
6 4 -11 17 10 -19 21 -4

Extension à n polynômes Racines d ’un polynôme

p4(x) = x(x + 2)(2x - 3)


>> p4 =conv([1 0],conv([1 2],[2 -3])) >>P=[2 1 4 5];
p4 =
2 1 -6 0 >>r=roots(P);

>> r
r=
0.2500 + 1.5612i
0.2500 - 1.5612i 18
-1.0000
Polynômes Opérations polynomiales

Exercice

19
Programmation Matlab Script

Un programme ou suite d'instructions Matlab peut être sauvegardé dans un fichier script
(script M-File) ayant une extension .m , que l'on peut créer avec un éditeur de texte externe

Exercice d’application 1 0 0 0 0 ..
0 2 0 0 0 ..
Créer le fichier script.m qui permet de fabriquer la matrice 0 0 3 0 0 ..
0 0 0 4 0 ..
Exécuter ce programme dans MATLAB 0 0 0 0 .. ..
.. .. .. .. .. 50

20
Programmation Matlab Fonctions

Création d’une fonction dans un fichier externe (M-File)

Dans un fichier externe la syntaxe de définition d’une fonction est :


function [y1, . . . , ym] = nom(x1, . . . , xn)
. . . instructions
où y1, . . . , ym sont les arguments de sortie et x1, . . . , xn ceux
d’entrée.

Remarques :
Le fichier doit être enregistré sous nom.m. et il est recommandé d’inscrire
dans le fichier le rôle de la fonction que l’on vient de créer :
% cette fonction calcule....

21
Programmation Matlab Fonctions
Exercice 1:
Ecrire dans un M-file une fonction equa(a,,b,c) qui détermine si l’équation du
second degré ax2 + bx + c = 0 admet des racines réelles et les calcule.

Exercice 2 :
En utilisant une boucle while et une boucle if, écrire dans un M-file une fonction
que l’on appellera somme et d’arguments indimax et borne. Cette fonction doit
renvoyer le plus petit entier n < indimax tel que 1 + 1/2 + · · · + 1/n > borne lorsqu’il
existe et sinon affiche indice max atteint

22
Graphiques Graphiques 2D

La commande plot(x,y) trace la courbe y en fonction de x


>> x =[-10:0.1:10];
>> y1 =x.^2;
>> plot(x, y1)

plot(x,y1,x,y2,...) trace y1, y2 ... en fonction de x sur le même graphe


>> y2 =0.5*x.^2 - x + 1 ;
>> plot(x, y1, x , y2)

23
Graphiques Graphiques 2D : Traçage de plusieurs courbes

Sur un même graphique Pour plus d’informations sur


>> plot(x, y1) l’utilisation des graphes 2D:
>> hold on
>>help graph2d
>> plot(x, y2)

La commande axis permet de changer les bornes de visualisation


syntaxe:
axis([xmin xmax ymin ymax])
Exercice : Traçage d’un graphe 2D de type x y avec plot

- définir le vecteur x=[0: pi/10:2pi]


- calculer le vecteur y1 = sin x correspondant
- tracer la fonction sin avec plot(x, y1)
- mettre un quadrillage de fond (fonction grid on)
- tracer sur le même graphique la fonction y2 = cos x
- taper figure pour ouvrir une nouvelle fenêtre, sans
fermer la première, puis tracer y = exp(cos
(x)).

24
Graphiques Graphiques 2D : Exercices

Exercice1 : Traçage d’un graphe 2D de type x y avec plot

- définir le vecteur x=[0: pi/10:2pi]


- calculer le vecteur y1 = sin x correspondant
- tracer la fonction sin avec plot(x, y1)
- mettre un quadrillage de fond (fonction grid on)
- tracer sur le même graphique la fonction y2 = cos x
- taper figure pour ouvrir une nouvelle fenêtre, sans
fermer la première, puis tracer y = exp(cos
(x)).

Exercice2 : Labellisation des axes et titre


- tracer y1 = sin x. Mettre ‘temps’ pour
l’axe des x, et ‘signal’ sur l’axe des y., les
deux en police 24
- Ajouter le titre : ‘Tension en Volts’ en
police 36, en format helvetica et en gras

25
Graphiques Graphiques 3D

>>plot3(x, y, z)
Pour plus d’informations sur
>> t =0:0.1:25; l’utilisation des graphes 3D:
>> x = exp(-0.05*t).*cos(t) ; >>help graph3d
>> y = exp(-0.05*t).*sin(t) ;
>> z = t ;
>> plot3(x, y,z)

26
Équations aux dérivées partielles Résolution analytique

Équations de 1ère ordre

y′(x) = xy.

>>y = dsolve(’Dy = y*x’,’x’)


y = C1*exp(1/2*xˆ2)

>>eqn1 = ’Dy = y*x’


eqn1 =
>>inits = ’y(1)=1’;
Dy = y*x
>>y = dsolve(eqn1,inits,’x’)
>>y = dsolve(eqn1,’x’)
y=
y = C1*exp(1/2*xˆ2)
1/exp(1/2)*exp(1/2*xˆ2)

>>y = dsolve(eqn1,’y(1)=1’,’x’)
y=
1/exp(1/2)*exp(1/2*xˆ2)

27
Équations aux dérivées partielles Résolution analytique

Équations de 2ème ordre

y′′(x) + 8y′(x) + 2y(x) = cos(x); y(0) = 0, y′(0) = 1.

>>eqn2 = ’D2y + 8*Dy + 2*y = cos(x)’;


>>inits2 = ’y(0)=0, Dy(0)=1’;
>>y=dsolve(eqn2,inits2,’x’)
y=
1/65*cos(x)+8/65*sin(x)+(-
1/130+53/1820*14ˆ(1/2))*exp((-
4+14ˆ(1/2))*x)
-1/1820*(53+14ˆ(1/2))*14ˆ(1/2)*exp(-
(4+14ˆ(1/2))*x)

28
Équations aux dérivées partielles Résolution numérique

dy
dx
= xy2 + y; y(0) = 1,

>>f=inline(’x*yˆ2+y’)
f=
Inline function:
f(x,y) = x*yˆ2+y
The basic usage for MATLAB’s solver
ode45 is
ode45(function,domain,initial condition).
That is, we use
>>[x,y]=ode45(f,[0 .5],1)

29
Équations aux dérivées partielles Résolution numérique

30