MATLAB
I. introduction à matlab:
1. Pourquoi matlab:
Mat (rix) lab(oratory) est un logiciel puissant doté à la fois d'un langage de
programmation haut niveau et d'outil dédiés au calcul numérique et à la
visualisation numérique. Développé en c par la société mathworks, matlab
était destinée initialement à faire du calcul matriciel simplement.
Actuellement, matlab recouvre d'autre domaine d'application de
l'informatique scientifique :
Visualisation graphique 2D et 3D.
Résolution d'équation aux dérivées partielle
Optimisation
Simulation
Command history : dans cette fenêtre on trouve l'ensemble des fonctions matlab
déjà applique.
Page 1
Université des sciences et technologie houari Boumediene
Faculté: mathématique Département: analyse
Module: informatique Section :2eme licence mathématique
Workspace: dans cette fenêtre on trouve des informations sur tous les variables
qui sont utilisés
Pour ajouter d'autre fenêtre on choisit le menu desktop puis la fenêtre qu'on veut
ajouter.
Page 2
Université des sciences et technologie houari Boumediene
Faculté: mathématique Département: analyse
Module: informatique Section :2eme licence mathématique
Exemple:
Dans la fenêtre " command Windows" tapé les instructions suivants:
>>A=2
>> a=3
>> a1= 4.
Question: Vérifier la fenêtre "Workspace". Quelle sont vous remarque?
Matlab fournit des fonctions permettant de lister les variables de l'environnement
de travail:
Who : liste le nom des variables courantes.
Whos : précise pour chaque variable courante: son nom, sa dimension, sa classe.
D'autres fonctions permettant de supprimer les variables:
Clear var: permet d'effacer la variable var de l'environnement de travaille.
Clear all: permet d'effacer toutes les variables de l'environnement de travaille.
Clc: effacer la fenêtre " command Windows"
Exemple:
Tester les 4 commandes précédentes.
2.1. Manipulation de chaine de caractère:
Une chaine de caractère est un tableau de caractères, une donnée de type
chaine de caractères (char) est représentée sous la forme d'une suite de
caractères encadre d'apostrophes simple('), il est possible de manipuler
chaque lettre de la chaine en faisant référence à sa position dans la chaine.
Exemple:
>>ch1='bon'
>>ch2='jour'
>>ch =[ch1,ch2]
>>ch(1), ch(7), ch(1:3)
>>ch3='soi'
>>ch=[ch(1:3),ch3,ch(7)]
>>ap='aujourd''hui'
3. variables spéciales
_
Page 3
Université des sciences et technologie houari Boumediene
Faculté: mathématique Département: analyse
Module: informatique Section :2eme licence mathématique
NAN (not a numbre): n'est pas un nombre. C'est par exemple le résultat de
l'opération 0/0.
Realmin: plus petit nombre flottant.
Realmax: plus grand nombre positif.
I,j: nombre complexe.
Exemple :
>>pi
>>eps
>>1/0
>>0/0
>>realmax
>>realmin
>>i
4. Les nombre complexe
Pour introduire un nombre complexe il suffit d'écrire a+bi ; a+b*i ou bien
a+b*sqrt (-1).
On peut aussi utiliser la forme exponentielle da la manière suivant: r*exp
(m*i).sachant que r représente l'argument et m l'ongle.
Pour déterminer la partie réelle d'un nombre complexe z, la partie imaginaire,
le conjugue, l'argument ou bien l'ongle on utilise respectivement les
fonctions : real(z), imag(z), conj(z), abs(z) et angle(z).
Exemple
» Z1=3+4*i
» Z2=5+2*sqrt(-1).
» Z=Z1+Z2
» Real(Z)
» Imag(Z)
» Conj(Z1)
» Abs(Z)
» Angle(Z)
5. Les commentaires
Pour ajouter un commentaire il suffit de taper % avant la phrase qu'on veut
l'écrire.
Exemple : >> z=3i+2 % z est un nombre complexe
Page 4
Université des sciences et technologie houari Boumediene
Faculté: mathématique Département: analyse
Module: informatique Section :2eme licence mathématique
6. Mode d'affichage
Les résultats numériques sont affichés avec un format défini par défaut pour la
modifier on à deux possibilités:
Sélectionne le menu file puis choisir Preferences.
Utilise l'une des commande suivant: format short, format short e,
format short g, format long, format long e, format long g, format bank,
format rat, format hex,
Exemple :
» a=sqrt(2)/1000
» format long e
» a
Application: continuer à tester les différents modes d'affichage possible.
III. Manipulation des matrices et vecteurs
1. Vecteurs
On définit un vecteur ligne en donnant la liste des ses éléments entre crochets ([ ]),
les éléments sont séparer par un espace ou une virgule.
Pour définir un vecteur colonne il suffit de remplacer les virgules par des points
virgules.
Il est inutile de définir la taille de vecteur car elle sera établie de manière
automatique.
Exemple:
» A1= [1 2 3]
» A2= [4, 5, 6]
» A= [A1, A2] % concaténation de A1 et A2.
» Lenght (A) % afficher la taille de A.
» X1= [1;4;5]
» X2= [5;9;8]
» X=[X1;X2]
» X(2) % affiché un élément de vecteur x
Page 5
Université des sciences et technologie houari Boumediene
Faculté: mathématique Département: analyse
Module: informatique Section :2eme licence mathématique
» X2= [X1, X2] % construire une matrice a partir de 2 vecteurs.
» B= [0:5:100] %afficher tout les multiple de 5 inférieur ou
égale à 100 dans un vecteur.
» B2= [0:0.2:2] % construit un vecteur tel que ses élément sont
des termes successif compris entre 0 et 2 d'une suite
arithmétique de raison 0.2
Remarque: contrairement au c++, il n'y a pas d'indice 0 dans les vecteurs et les
matrices en MATLAB
2. Les matrices
Les matrices suivent la même syntaxe que les vecteurs. Les composantes des
lignes sont séparées par des virgules et chaque ligne est séparée de l'autre
par un point virgule.
Un élément d'une matrice est référence par le numéro de la ligne et de la
colonne, A(i, j) présente le ieme élément de jeme colonne.
Exemple
» A1= [1 2 3;4 5 6] % la matrice A1 est de taille 2*3
» A2= [1 2; 3 4; 5 6; 8 9] % la matrice A2 est da taille 3*2
» A1(2,3) % accéder à l'élément de la 2eme ligne et 3eme
colonne
» A2 (1, 2)=15 % modifier la valeur d'un élément de la matrice.
» A3= [7 8 9 ; 10 11 12];
» A= [A1, A3] %concaténation de deux matrice.
» B= [A1; A3] % concaténation de deux matrice
Page 6
Université des sciences et technologie houari Boumediene
Faculté: mathématique Département: analyse
Module: informatique Section :2eme licence mathématique
eye(i,j): crée un tableau de i lignes j colonnes avec des 1 sur la diagonale
principale et 0 ailleurs
rand (i, j): donner une matrice de taille i*j qui suite la lois uniforme
randn (i, j): donner une matrice de taille i*j qui suite la lois normal
toeplitz(u): crée une matrice de Toeplitz symétrique dont la première ligne
est 1 élements du vecteur u
diag(u): crée une matrice carrée avec le vecteur u sur la diagonale et 0 ailleurs
diag(U): extrait la diagonale de la matrice U
triu(A): renvoie la partie supérieure de A
tril(A) : renvoie la partie inférieure de A
linspace(a,b,n): crée un vecteur de n composantes uniformément réparties de a à b
A\b: résolution du système linéaire Ax=b.
cond(A): conditionnement d'une matrice (norme euclidienne)
det(A): déterminant d'une matrice
rank(A): rang d'une matrice
inv(A) : inverse d'une matrice
pinv(A): pseudo inverse d'une matrice
svd(A): valeurs singulières d'une matrice
norm(A): norme matricielle ou vectorielle
trace(A):la somme des éléments de diagonale de la matrice A
magic(A)
U': prend le transposé de u
U*V: multiplication matricielle
U+V: addition matricielle
U-V: soustraction matricielle
U.* V: multiplication des tableaux u et v terme à terme
U./V: division du tableau u par le tableau v terme à terme
find(C(A)): indices des composantes du tableau A vérifiant la condition C(A)
sum(X): somme des éléments de X
prod(X): produit des éléments de X
mean(X):moyenne des éléments de X
Exemple:
» Ones(3)
» Zero(4,5)
» Eyse(3,2)
» Rand(3)
» Randn(2,3)
» toeplitz([1 2 3])
» diag([ 2 5 8])
» A=[ 1 2 3 ; 4 5 6; 10,8,9]
» Diag(A)
» Triu(A)
» Tril(A)
» linspace(5,7,20)
Page 7
Université des sciences et technologie houari Boumediene
Faculté: mathématique Département: analyse
Module: informatique Section :2eme licence mathématique
» b=[ 5; 6; 7]
» A\b
» A1=[1 2 3; 4 5 6; 7 8 9]
» Det(A)
» Det(A1)
» Rank(A)
» Rank(A1)
» Inv(A)
» Pinv(A1)
» A1+B
» B-A1
» A1.*B
» A1*B
» A./B
» A.*B
Exercice1
On note u et v les nombres complexes
u = 11 - 7i v = -1 + 3i.
Calculer les modules de u et de v, les produits ; , la partie réelle et la partie
imaginaire de u3 + v2.
Exercice2
On note A, B et C les matrices suivantes
Page 8
Université des sciences et technologie houari Boumediene
Faculté: mathématique Département: analyse
Module: informatique Section :2eme licence mathématique
B(V)=abs(B(V));
A (1 :2; 2:3)
Page 9
Université des sciences et technologie houari Boumediene
Faculté: mathématique Département: analyse
Module: informatique Section :2eme licence mathématique
>> racines = roots(P)
Exercice 5 :
Soit le polynôme p(x) défini par : p(x)= 2x2-2x-1
1- Evaluer le polynôme p(x) sur l’intervalle x=[0, 1] avec le pas=0,01
2- Calculer la dérivée de p et tracer sur le même graphique le polynôme et sa
dérivée sur l’intervalle x.
Exercice 6:
Entrer les polynomes p=2x5-x2+5x et q=x2+1s
Calculer les racines de p et q
Calculer p’
Calculer le produit p.q
Calculer le quotient et le reste de la division de p par q
Page
10
Université des sciences et technologie houari Boumediene
Faculté: mathématique Département: analyse
Module: informatique Section :2eme licence mathématique
Calculer les valeurs de p en 0 et -1
Tracer la courbe d’équation y=p(x) sur [-10, 10]
Exercice 7 :
Construire les polynômes p et q tel que :
Les racines de p=[2 3] et les racines de q=[-1 1]
Calculer p’
Calculer le produit p.q
Calculer le quotient et le reste de la division de q par p
Calculer les valeurs de p en 3 et -1
Tracer la courbe d’équation y=p(x) sur [-20, 20]
V. Les fonctions sous MATLAB
1- déclaRation d’une fonction
a) Fonction à une variable
Syntaxe : nom de la fonction=inline('expression de la fonction')
Exemple
F(x)=2x2+sin(x)
>> F=inline('2 x^2+sin(x)')
b) Fonction à plusieurs variables
Syntaxe:
Nom_f=inline('expression de f', 'var 1', 'var 2', ….., 'var n')
Exemple
» G(x, y)=2xy+x2+y2
» G=inline ('2 x y+x^2+y^2', 'x', 'y')
2- Evaluation d'une fonction
Le calcul se fait par nom de la fonction
Exemple
On prend les fonctions des exemples précédents :
» F(3)
» G(6,1)
VI. Programmation avec matlab
1. Les opérateurs de comparaison et opérateurs logiques
Les opérateurs de comparaison sont: = =, <,>, >=, <= et =
Les opérateurs logiques sont: et (x & y), ou (x|y), non (x),
xor (x, y): ou exclusif
any(x): retourne 1 si un élément de x et nul.
All(x):retourne 1 si tous les éléments de x sont nul
2. les boucles
2.1 La boucle for :
La boucle la plus utiliser pour effectuer une opération d'une façons répétitif est
la boucle for, la syntaxe est:
Page
11
Université des sciences et technologie houari Boumediene
Faculté: mathématique Département: analyse
Module: informatique Section :2eme licence mathématique
For indice=borne _ inf : borne_sup
Sequence d' instructions end
Exemple:
» x=1;
» For i=1:10
x=x+2*i+x^2
end
2.2 la boucle while
La deuxième façon pour exécute une séquence d'instruction est
d'utiliser la boucle while, la syntaxe et:
While instruction logique
Séquence
End
Exemple
» x=2;
» y=1;
» while y<100
» y=y+2*x^2;
» end;
» y
3. L'instruction conditionnée if
Pour exécuter une séquence d'instruction seulement dans le cas où une
condition est vérifie on doit utilise une instruction conditionnelle telle que if;
la syntaxe est:
If instruction logique
Séquence d'instruction
End
Il existe une séquence conditionnelle sous forme alternative
Syntaxe:
If expression logique
Séquence d'instructions1
Else
Séquence d'instruction 2
End
Page
12
Université des sciences et technologie houari Boumediene
Faculté: mathématique Département: analyse
Module: informatique Section :2eme licence mathématique
Séquence d'instruction 2
.
.
.
Elseif expression logique N
Séquence d'instruction N
Else
Séquence d'instruction par défaut
End
4. L'instruction switch :
Une alternative à l'utilisation d'une séquence d'instructions conditionnées pour
effectuer un choix en cascade existe. Il s'agit de l'instruction switch.
Syntaxe:
Switch var
Case cst_1,
Sequence d'instructions 1
Case cst_2,
Sequence d'instruction 2
.
.
.
Case cst_N ,
Séquence d'instructions N
Otherwise
Séquence d'instruction par défaut
End
5. scripts et fonctions
il est possible d'enregistrer une séquence d'instruction dans un
fichier (appelé un "M-file") et de les faire exécuter par matlab.
Un tel fichier doit obligatoirement avoir une extension de la
forme .m (d'où le nom M-file) pour être considéré par matlab
comme un fichier d'instruction. On distingue 2 types de M-file,
les fichiers de scripts et les fichiers de fonctions.
Un script est un ensemble d'instructions matlab qui joue le role
d'un programme principal. Si le script est écrit dans le fichier de
nom nom.m on l'exécute dans la fenêtre matlab en tapant nom.
Utiliser un script est très utile. Il est en effet beaucoup plus
simple de modifier des instructions dans un fichier l'aide d'un
éditeur de texte que retaper un ensemble d'instructions dans la
fenêtre de commande.
Page
13
Université des sciences et technologie houari Boumediene
Faculté: mathématique Département: analyse
Module: informatique Section :2eme licence mathématique
Initialiser le système.
Déclarer les variables.
Effectuer les opérations.
Appeler les fonctions.
Tracer les figures.
L'idée de base d'une fonction est d'exécuter des opérations sur une ou plusieurs
entrées ou arguments pour obtenir un résultat qui sera appelé sortie. Il est
important de noter que les variables internes ne sont pas disponibles à l'invite
MATLAB.
Habituellement, on utilise les fichiers FUNCTION afin de :
Programmer des opérations répétitives
Limiter le nombre de variables dans l'invite MATLAB
Diviser le programme (problème) de manière claire.
On définit la fonction fonc de la manière suivante:
Function [vars1,…,varsn]=fonc(vare1,…,varen)
Séquence d'instruction
Où
Vars1,…,varsn sont les variables de sortie de la fonction.
Vare1,…,varen sont les variables d'entre de la fonction.
VII. Graphisme
Matlab permet de faire des dessins en 2D et 3D cette propriété permet de
donnée une très bonne présentation graphique pour tout phénomène
Etudier.
1. Graphe à 2d
Pour dessiner un graphe en 2D matlab nous propose plusieurs fonctions
possibles parmi lesquelles on a:
Fplot : cette commande permet de tracer la courbe d'une fonction f définir
sur un Intervalle.
La syntaxe est: fplot('nom de fonction',[xmin , xmax ])
On peut aussi tracer plusieurs fonctions au même temps. la syntaxe est:
Fplot('[f1,f2,f3]',[xmin1,xmax1,xmin2,,xmax2;xmin3;xmax3])
Exemple
» Fplot('sin',[0,10])
» Fplot('x*sin(x)',[-2*pi,2*pi])
» Fplot('[x^2*sin(x),sin(x)*cos(x),cos(x)^2]',[-2*pi,2*pi,-
2*pi,2*pi,pi,3*pi])
Page
14
Université des sciences et technologie houari Boumediene
Faculté: mathématique Département: analyse
Module: informatique Section :2eme licence mathématique
Plot: cette commande permet de dessiner une courbe a partir des donner qui
sont regrouper dans deux vecteur X et Y.
La syntaxe est :
Plot(X,Y,ctm)
Sachant que ctm présente la couleur(c) et le style de la courbe(tm).
Les différente styles et couleurs possible sont regrouper dans le tableau
suivant:
Couleur Style
Y Jeune - Trait continu(t)
M Magenta : Ponctuation(t)
C Cyan -. Trait point(t)
R Rouge -- Tirets(t)
G Vert + Plus(m)
B Bleu O Cercle(m)
W While * Etoile(m)
K Noir X Croix(m)
Exemple
» X=-2*pi:0.01:2*pi;
» Y=sin(x);
» Plot(x, y);
» X1=-2*pi:0.5:2*pi;
» y=sin(x1);
» plot (x1, y1, 'r-+');
Question: comparait entre les deux exemples, quelle sont tés remarques.
Remarque 1:
Pour dessiner plusieurs fonction sur la même figure on doit ajouter
la commande " hold on" avant la deuxième commande plot.
Exemple :
» X= [-2*pi:0.01:2*pi];
» Y1=sin(X);
» Y2=cos(X);
» Plot(X, Y1);
» Hold on
» Plot(X,Y2,' r+-')
Page
15
Université des sciences et technologie houari Boumediene
Faculté: mathématique Département: analyse
Module: informatique Section :2eme licence mathématique
Remarque 2 :
Pour dessiner plusieurs graphe sur la même figure on peut aussi
utilise la syntaxe suivant: plot(x1,y1,'r',x2,y2,'b').
Question : utilisez la deuxième méthode pour dessiner la fonction sin et cos dans
le même graphe.
Remarque 3:
Les commandes 'xlabel', 'ylabel' et 'title' sont utilisées Pour afficher
une chaîne de caractères respectivement pour la légende de l’axe des
abscisses, celle de l’axe des ordonnées, et un titre.
Exemple :
» xlabel('x');
» ylabel('f(x)');
» title('f= cosinus');
Page
16
Université des sciences et technologie houari Boumediene
Faculté: mathématique Département: analyse
Module: informatique Section :2eme licence mathématique
subplot(n,p,q): subdivision en n*q dessin et sélectionne à qième
Exemple:
» x=-2*pi:0.01:2*pi;
» y1=sin(x);
» y2=cos(x);
» y3=x.*sin(x);
» y4=cos(x)./x;
» subplot(2,3,1)
» plot(x,y1)
» subplot(2,3,2)
» plot (x,y2)
» subplot(2,3,5)
» plot(x,y3)
Page
17
Université des sciences et technologie houari Boumediene
Faculté: mathématique Département: analyse
Module: informatique Section :2eme licence mathématique
2. graphe à 3D :
plot3: est une fonction permet de dessiner un graphe en 3D, la syntaxe de
commande est plot3(x, y, z) où x, y et z sont des vecteurs de même
dimension contenant les trois coordonnées
Exemple
» t = 0:0.1:6*pi;
» x = exp(0.05*t).*cos(t) ;
» y = exp(0.05*t).*sin(t) ;
» z=t;
» plot3(x, y, z)
Contour: cette commande permet de tracer les courbes de niveau d'une
équation de deux variables.
Avant de tracer les lignes de niveaux on doit commencer par la création d'un
maillage sur le domaine [amin, amax]*[bmin*bmax] à l'aide de la
commande meshgrid.
Exemple:
» [x,y]=meshgrid(-2:.2:2,-2:.2:2);
» z=x.*exp(-x.^2-y.^2);
» contour(x,y,z)
» contour(x, y ,z,30)
» [c,h]=contour(x,y,z,7)
» Clabel(c,h)
» [x,y]=meshgrid(-2:.2:2,-2:.2:2);
» z=(x-1).^2+10*(x.^2-y).^2;
» [c,h]=contour(x,y,z,30);
» Clabel(c,h,'manual')
» Contourf(x, y, z, 30);
» Colormap(cool);
Mesh, surf: sont deux commandes qui permet de tracer des surface pour des
fonctions à deux variables.
Exemple:
» [x,y]=meshgrid(-2:.2:2,-2:.2:2);
» z=x.*exp(-x.^2-y.^2);
» mesh(x,y,z)
» z=abs(z)
» surf(x,y,z)
Application :
Remplacer la commande mesh par les commandes meshc et meshz
Teste la commande comet3, sphere,
Page
18
Université des sciences et technologie houari Boumediene
Faculté: mathématique Département: analyse
Module: informatique Section :2eme licence mathématique
Exercice 8
[0, 2]
1- Dans une même fenêtre tracer les courbes d’équations y x 2 en rouge et
y x 2 sin( x)e x en vert sur [-1 , 1] (pas=0,1)
2- Tracer dans un même graphe les trois courbes 2D : y1=x sin(x), y2= x, y3=-
x sur l’intervalle [-n*pi, n*pi] avec un pas de pi/2*n. (n=5 et 6)
Exercice 9 :
Soient les vecteurs :
X= [1 3 4 10] ; Y= [1 -2 7 6] ; Z= [0 2 5 -1] ;
Tracer la représentation graphique des vecteurs X,Y puis X ,Z dans des figures
différents
1- dans le même graphique
2- dans la même figure
Exercice 10
Soit le vecteur x=[1, 1000] et la fonction y= x3
1- Tracer la courbe y en utilisant une échelle logarithmique (à l’aide de la
commande loglog)
2- Tracer la courbe y en utilisant une échelle logarithmique sur l’axe des x et
une échelle linéaire sur l’axe des y ( semilogx )
3- Tracer la courbe y en utilisant une échelle linéaire sur l’axe des x et une
échelle logarithmique sur l’axe des y ( semilogy)
Exercice 11
Tracer sur la même figure les graphes de la fonction y e x sur l’intervalle x=[-2,
2/2
Page
19
Université des sciences et technologie houari Boumediene
Faculté: mathématique Département: analyse
Module: informatique Section :2eme licence mathématique
Exercice 13
On considère la courbe paramétrée définie par :
x(t ) cos(t ) / t
y (t ) sin(t ) / t pour t [ , 20 ]
Exercice 16
On cosidére la fonction f :R2→R3 , définie par
f ( x, y) ( x 2 , y 2 , sin( xy ))
Dessiner la surface de R3, image du rectangle [0, 5] [-1.5, 1.5] par la
Page
20