0% ont trouvé ce document utile (0 vote)
67 vues30 pages

Cours Matlab

Transféré par

Mohamed Ghzal
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
67 vues30 pages

Cours Matlab

Transféré par

Mohamed Ghzal
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Introduction à Matlab

ESIGC
1ère Année du Cycle Préparatoire Intégré

Imad El Mahi

2019 - 2020
1
1. Introduction
Matlab est l'abréviation de Matrix Laboratory. C’est un langage interprété, c’est à
dire qu’il exécute directement (sans compilation) les commandes dans la fenêtre
de Matlab.
Matlab est un logiciel interactif basé avant tout sur le calcul matriciel. Ainsi, un
scalaire est considéré comme une matrice à un élément et un vecteur est
considéré comme une matrice à une ligne (ou une colonne). Cette approche
matricielle permet à Matlab de traiter les données sans aucune limitation de
taille et de réaliser des calculs numériques et symboliques de façon fiable et
rapide.
Matlab est destiné au Calcul Scientifique et offre un système interactif intégrant
"Calcul Numérique" et "Visualisation Graphique". Destiné aux ingénieurs,
techniciens et aux scientifiques, Matlab est très utilisé dans les universités
comme dans le monde industriel.

2. Lancement du logiciel Matlab


2.1 Démarrer et quitter Matlab

• Pour lancer Matlab,


Sous linux :
Tapez la commande suivante dans la console linux :
>> matlab

Sous windows :
Il suffit de cliquer sur l'icone "Matlab" dans l'environnement windows.

• Pour quitter Matlab, taper l'une des commandes :


>> quit

ou
>> exit

2.2 Obtenir de l'aide sous Matlab


On a souvent besoin d'avoir de l'aide sur une commande "command". Pour se
faire, il y a deux manières :
1. On peut utiliser directement l’onglet search documentation de l'interface
graphique de Matlab.
2. On peut utiliser le mode texte en tapant
>> help command

Par exemple, la commande :


>> help cos

donne des informations sur la fonction cosinus.


2
>> help plot

donne de l'aide sur l'utilisation de la commande plot.

Pour obtenir de l'aide sur une section particulière taper help "section".
Par exemple :
>> help elfun

donne des informations sur toutes les fonctions mathématiques élémentaires


"Elementary Math Functions".

On peut enfin aussi assister à une démonstration de Matlab en tapant :


>> demo matlab

Remarque :
A noter que toutes les commandes sous Matlab sont écrites en lettres
minuscules. Aussi, pour reprendre une des commandes déjà exécutée, il suffit
d’utiliser la flèche « ↑ ».

3. Les Variables dans Matlab


Tout d'abord, Matlab peut être utilisé comme une simple calculatrice. Par
exemple :
>> 2+5
ans =
7

Le résultat est par défaut stocké dans la variable nommée ans.


>> cos(0)
ans =
1
>> log(1)
ans =
0
>> cos(pi)
ans =
-1

Matlab respecte aussi les règles usuelles dans les opérations mathématiques. Par
exemple :
>> (3*5+15*2)/4
ans =
11.2500

3
On peut aussi comme tout langage de programmation stocker les valeurs dans
des variables. Dans Matlab, il est inutile de déclarer le type de variable (entier,
réel, complexe, chaîne de caractère, etc).
Par exemple :
>> a=7
a =
7
>> b=8.3
b =
8.3000
>> c=a+b
c =
15.3000

>> x=2.5e3
x =
2500
>> y=3e2
y =
300
>> z=x*y
z =
750000

Si on ne veut pas que le résultat de l’opération s’affiche sur l’écran, il suffit de


rajouter un point-virgule ’’ ; ‘’ à la fin de la commande. Pour afficher par la suite
le résultat, il suffit de taper le nom de la variable. Exemple :
>> a=7;
>> b=8.3;
>> c=a+b;
>> a
a =
7
>> b
b =
8.3000
>> c
c =
15.3000

Remarque :

4
Il est utile parfois de savoir les variables qui ont été utilisées. Pour ce faire, on
tape la commande :
>> who

On peut aussi annuler toutes les variables utilisées en exécutant la commande :


>> clear all

Constantes de Matlab
Voici quelques constantes déjà prédéfinies en Matlab :
>> pi
ans =
3.1416 désigne le nombre réel π
>> i
ans =
0.0000 + 1.0000i est le complexe imaginaire tel que i2 = -1
>> j
ans =
0.0000 + 1.0000i est le complexe imaginaire tel que j2 = -1
>> eps
ans =
2.2204e-16 désigne la précision numérique relative

Manipulation des complexes


Dans Matlab, l’unité imaginaire est notée i ou j. Un nombre complexe peut être
écrit soit sous forme algébrique a + bi ou sous forme exponentielle r*exp(it) où a,
b, r et t sont des réels.
Les règles de calcul (addition, soustraction, multiplication, division, etc) usuelles
s’y appliquent.
Exemples :
>> z1=1+4i
z1 =
1.0000 + 4.0000i
>> z2=3+5i
z2 =
3.0000 + 5.0000i
>> z3=z1+z2
z3 =
4.0000 + 9.0000i
>> z4=z1*z2

5
z4 =
-17.0000 + 17.0000i
>> z5=z1/z2
z5 =
0.6765 + 0.2059i

Si z est de type complexe, les instructions :


real(z) et imag(z) retournent la partie réelle et la partie imaginaire de z.
abs(z) et angle(z) retournent le module et l’argument de z.
conj(z) retourne le conjugué de z.
Exemples :
>> z=1+i
z =
1.0000 + 1.0000i
>> real(z)
ans =
1
>> imag(z)
ans =
1
>> abs(z)
ans =
1.4142
>> angle(z)
ans =
0.7854

>> z = 1 + sqrt(3)*i
z =
1.0000 + 1.7321i
>> real(z)
ans =
1
>> imag(z)
ans =
1.7321
>> abs(z)
ans =
2.0000

6
>> angle(z)
ans =
1.0472
>> z2=conj(z)
z2 =
1.0000 - 1.7321i

Chaînes de caractères
Une chaîne de caractère est un tableau de caractères. On peut accéder à chaque
caractère de la chaîne de caractères en faisant référence à sa position dans la
chaîne.
Exemple :
>> ch='bonjour'
ch =
bonjour
>> ch(1)
ans =
b
>> ch(3)
ans =
n

On peut aussi concaténer deux chaînes de caractères chaîne1 et chaîne2 en


utilisant le crochet [chaîne1 chaîne2].
Par exemple :
>> ch1='bon'
ch1 =
bon
>> ch2='soir'
ch2 =
soir
>> ch=[ch1 ch2]
ch =
bonsoir

4. L’opérateur colon ‘’ : ’’
On retrouve la notation de l’opérateur colon ‘’ : ’’ souvent en Matlab,
notamment pour générer des vecteurs. Elle s’utilise de la manière suivante :

7
>> x:z:y

qui génère les nombres de x à y avec un pas de z.


Par défaut le pas est choisi égal à 1, c'est-à-dire que la commande
>> x:y

génère les nombres entre x et y avec un pas de 1.

Voici quelques exemples :


>> 1:10
ans =
1 2 3 4 5 6 7 8 9 10
donne les nombres entre 1 et 10 avec un pas de 1
>> [Link]
ans =
1 3 5 7 9
donne les nombres entre 1 et 10 avec un pas de 2
>> 10:-1:1
ans =
10 9 8 7 6 5 4 3 2 1
donne les nombres entre 10 et 1 avec un pas de -1
>> 2.5:3.5:20
ans =
2.5000 6.0000 9.5000 13.0000 16.5000 20.0000
donne les nombres entre 2.5 et 20 avec un pas de 3.5

5. Les vecteurs dans Matlab


On déclare un vecteur ligne en utilisant un crochet [ ] et en séparant ces
éléments par des espaces ou des virgules.
Par exemple, pour définir le vecteur ligne = 5 1 − 2 3 , on écrit :
>> u=[5 1 -2 3]
u =
5 1 -2 3

ou bien
>> u=[5 ,1 , -2 , 3]
u =
5 1 -2 3

Pour définir un vecteur colonne, on sépare ces éléments par des points virgules.

8
5
1
−2
Par exemple, pour définir le vecteur colonne , on écrit :
3
>> v=[5;1;-2;3]
v =
5
1
-2
3

On peut aussi utiliser tout simplement l’opérateur transposée noté ( ‘ ).


Par exemple :
>> v=u'
v =
5
1
-2
3

donne le vecteur colonne v qui est la transposée du vecteur ligne u.

L’accès à un élément du vecteur se fait à l’aide de parenthèse en indiquant la


position de l’élément souhaité.
Exemple :
>> u=[2 7 4 15 12]
u =
2 7 4 15 12
>> u(1)
ans =
2 accès au 1er élément du vecteur u
>> u(2)
ans =
7 accès au 2ème élément du vecteur u
>> u(5)
ans =
12 accès au 5ème élément du vecteur u
>> u(6)
Index exceeds matrix dimensions.
Ici, on dépasse la dimension du vecteur u.

9
On peut obtenir la longueur d’un vecteur en utilisant la commande length. On
peut aussi utiliser la commande size qui donne la dimension du vecteur
(nombre de lignes et nombre de colonnes).
Exemple :
>> u=[2 7 4 15 12];
>> n=length(u)
n =
5 longueur du vecteur u
>> [p,q]=size(u)
p =
1 nombre de lignes du vecteur u
q =
5 nombre de colonnes de u

Opérations sur les vecteurs :


Addition :
La somme de deux vecteurs u et v s’effectue en écrivant :
>> u+v

Produit scalaire :
Le produit scalaire de deux vecteurs u et v s’obtient par la commande :
>> dot(u,v)

Si les vecteurs u et v sont colonnes, on peut aussi effectuer leur produit scalaire
en multipliant u par la transposée de v, c'est-à-dire par la commande :
>> u*v’

Exemple :
>> u=[3 4 1];
>> v=[-1 5 2];
>> w=u+v;
>> w
w =
2 9 3
>> dot(u,v)
ans =
19

Il existe aussi quelques fonctions spécifiques aux vecteurs :


min(u) : donne le minimum des éléments du vecteur u.
max(u) : donne le maximum des éléments du vecteur u.

10
sum(u) : donne la somme des éléments du vecteur u.
prod(u) : donne le produit des éléments du vecteur u.
sort(u) : classe les éléments du vecteur u en ordre croissant.
sort(u,’descend’) : classe les éléments de u en ordre décroissant.
Exemple :
>> u=[3 8 4 9 1];
>> min(u)
ans =
1
>> max(u)
ans =
9
>> sum(u)
ans =
25
>> prod(u)
ans =
864
>> sort(u)
ans =

1 3 4 8 9
>> sort(u,'descend')
ans =
9 8 4 3 1

6. Les matrices en Matlab


Les matrices en Matlab se déclarent comme les vecteurs, en séparant les
colonnes par des espaces et les lignes par des points-virgules.
3 7
=
−2 5
Par exemple, pour déclarer la matrice , on écrit :
>> A=[3 7 ; -2 5]
A =
3 7

2 5
-2 5

=
1 3 , on écrit :
−6 2
Pour générer la matrice

>> B=[2 5 ; 1 3 ; -6 2]

11
B =
2 5
1 3
-6 2

L’accès à un élément d’une matrice se fait grâce aux parenthèses en précisant la


ligne et la colonne.
Exemple :
>> A(1,1)
ans =
3
>> A(1,2)
ans =
7
>> A(2,1)
ans =
-2
>> A(2,2)
ans =
5

Les dimensions (nombre de lignes et de colonnes) d’une matrice s’obtiennent


comme pour les vecteurs par la commande size.
Exemple :
>> [p,q]=size(A)
p =
2 nombre de lignes de la matrice A
q =
2 nombre de colonnes de la matrice A
>> [m,n]=size(B)
m =
3 nombre de lignes de la matrice B
n =
2 nombre de colonnes de la matrice B

On peut aussi accéder à toute une ligne ou une colonne d’une matrice par la
notation ‘ : ’.
Exemple :
>> u1=A(:,1) crée le vecteur u1 contenant la 1ère
u1 = colonne de la matrice A.
3

12
-2
>> u2=A(:,2) crée le vecteur u2 contenant la 2ème
u2 = colonne de A.
7
5
>> u3=A(1,:) crée le vecteur u3 contenant la 1ère
u3 = ligne de A.
3 7

Quelques matrices spéciales :


On peut construire en Matlab certaines matrices particulières grâce à des
commandes dédiées. Voici quelques unes :
eye(n) : crée la matrice Identité d’ordre n.
zeros(m,n) : crée la matrice nulle d’ordre m x n.
ones(m,n) : crée une matrice remplie de 1 d’ordre m x n.
rand(m,n) : crée une matrice d’ordre m x n dont les éléments sont générés d’une
manière aléatoire entre 0 et 1.
Exemples :
>> eye(3)
ans =

1 0 0
0 1 0
0 0 1
>> zeros(3,2)
ans =
0 0
0 0
0 0
>> zeros(2)
ans =
0 0
0 0
>> ones(3,2)
ans =
1 1
1 1
1 1

13
>> rand(2,3)
ans =
0.2785 0.9575 0.1576
0.5469 0.9649 0.9706

Opérations matricielles :
La somme et le produit de deux matrices A et B s’obtiennent en tapant :
A+B et A*B.
La matrice transposée de la matrice A s’obtient en écrivant : A’
Exemple :
>> A=[3 6 -2 ; 2 4 1 ; 5 6 0]
A =
3 6 -2
2 4 1
5 6 0
>> B=[1 4 2 ; 3 2 1 ; 5 2 3]
B =
1 4 2
3 2 1
5 2 3
>> A+B
ans =
4 10 0
5 6 2
10 8 3
>> A*B
ans =
11 20 6
19 18 11
23 32 16
>> A'
ans =
3 2 5
6 4 6
-2 1 0

Il existe aussi dans Matlab des fonctions spécifiques qui opèrent sur les matrices.
Voici quelques unes :
det(A) : calcule le déterminant de la matrice A.
inv(A) : calcule la matrice inverse de A.

14
diag(A) : retourne un vecteur formé par la diagonale de A.
trace(A) : retourne la trace de A (somme des éléments de la diagonale de A).
rank(A) : retourne le rang de la matrice A.
eig(A) : retourne les valeurs propres de la matrice A. Si on veut aussi les
vecteurs propres, on écrit [V, D]=eig(A) qui renvoie une matrice diagonale D des
valeurs propres et une matrice V dont les vecteurs colonnes sont les vecteurs
propres de A.
Exemples :
>> A=[5 -3 ; 6 -4]
A =
5 -3
6 -4
>> det(A)
ans =
-2.0000
>> B=inv(A)
B =
2.0000 -1.5000
3.0000 -2.5000
On vérifie le résultat en calculant A*B = I
>> A*B
ans =
1.0000 -0.0000
0 1.0000
>> trace(A)
ans =
1
>> diag(A)
ans =
5
-4
>> [V,D]=eig(A)
V =
0.7071 0.4472
0.7071 0.8944
D =
2 0
0 -1

15
Application :
∗ = .
La solution est donnée par le vecteur = ∗ .
Matlab permet aussi de résoudre très facilement les systèmes linéaires

En Matlab, on écrit : x = inv(A)*b ou bien x = A\b


Exemple :
>> A=[1 2 ;3 4];
>> b=[1 1]';
>> x=inv(A)*b
x =
-1.0000
1.0000
>> x=A\b
x =
-1
1
>> A*x
ans =
1
1

Finalement, on peut construire des matrices « par blocs ». Si A, B, C et D


désignent des matrices, alors on peut définir la matrice bloc

|
= −−|− −
|
en écrivant l’instruction :
>> E=[A B ; C D]

Exemple :
>> A=[2 7 ; -1 5]
A =
2 7
-1 5
>> B=[0 5 ; 4 -3]
B =
0 5
4 -3

16
>> C=[4 6 ; 9 4]
C =
4 6
9 4
>> D=[-8 1 ; 0 3]
D =
-8 1
0 3
>> E=[A B ; C D]
E =
2 7 0 5
-1 5 4 -3
4 6 -8 1
9 4 0 3

7. Graphisme en Matlab
Matlab est un outil très puissant et convivial pour la gestion des figures, que ce
soit en deux dimensions ou trois dimensions.

En tapant la commande :
>> help plot

on a accès à toutes les informations et options possibles du graphisme.

7.1 Graphisme en 2D
La fonction plot permet de tracer une courbe = f x . Elle nécessite un vecteur x
dont les éléments sont les abscisses et un vecteur y dont les éléments sont les
ordonnées (images par f des éléments du vecteur x).

Par exemple, pour tracer la courbe = sin x pour x ∈ [0, 20] , il suffit d’écrire
les commandes :
>> x=0:0.1:20; pour générer le vecteur x contenant les
abscisses de 0 à 20 par pas de 0.1
>> y=sin(x); pour générer le vecteur y contenant les images
des éléments de x
>> plot(x,y) pour tracer la courbe reliant les points (xi,yi)

On obtient la courbe suivante :

17
Par défaut, la courbe est tracée en reliant les points -, - par des lignes de
couleur bleu. On peut aussi choisir de tracer la courbe en donnant une couleur

-, -
au traçage et en utilisant soit des points, des cercles, des lignes coupées, ou
autres pour relier les points .

Par exemple, la commande :


>> plot(x,y,'*r')

trace la courbe de y en fonction de x en utilisant des * de couleur rouge ‘red’.

>> plot(x,y,'.-g')

trace la courbe de y en fonction de x en utilisant des ’lignes avec points’ de


couleur verte ‘green’.

Donner des titres à la figure

Pour donner le titre ‘Abscisses’ à l’axe x, on écrit :


>> xlabel('Abscisses')

Pour donner le titre ‘Ordonnées’ à l’axe y, on écrit :


>> ylabel('Ordonnées')

Pour donner le titre ‘Ma première figure’ à la figure, on écrit :


>> title('Ma première figure')

Pour définir une légende par exemple ‘y=f(x)’ à la courbe, on écrit :


>> legend('y=f(x)')

En tapant alors les commandes suivantes :


>> plot(x,y,'*r')

18
>> xlabel('Abscisses')
>> ylabel('Ordonnées')
>> title('Ma première figure')
>> legend('y=f(x)')

On obtient la courbe suivante :

Afficher plusieurs courbes dans une même figure

Pour afficher deux courbes à la fois dans la même figure, il suffit de taper hold on
après le premier plot et écrire hold off après le dernier plot.

Tracer sur la même figure sur l’intervalle [0, 20], les courbes des fonctions :
Exemple :

→ cos x en lignes continues, couleur rouge,


→ sin x en utilisant des cercles, couleur bleu.
Réponse :
>> plot(x,cos(x),'-r')
>> hold on
>> plot(x,sin(x),'ob')
>> hold off

Et voici le résultat :

19
Traçage de courbes à partir de données d’un fichier

Nous avons vu comment tracer des courbes à partir de fonctions, mais souvent
on souhaite tracer des courbes à partir de données lues dans un fichier.

Supposons que le fichier se nomme ‘[Link]’ et contient par exemple 3 colonnes


comme suit :

[Link]
0 0.5 0.7
1 1.2 0.9
2 1.4 1.5
3 2.3 1.8
4 1.7 3.2
5 1. 2.8
6 0.8 1.6
Pour tracer les courbes de la 2ème colonne et la 3ème colonne en fonction de la 1ère
colonne sur la même figure, on écrit :
>> load '[Link]' permet de créer une matrice nommée toto
>> x=toto(:,1); met la 1ère colonne de toto dans le vecteur x
>> y=toto(:,2); met la 2ème colonne de toto dans le vecteur y
>> z=toto(:,3); met la 3ème colonne de toto dans le vecteur z
>> plot(x,y)
>> hold on
>> plot(x,z)
>> hold off

Sauvegarder une figure

Pour sauvegarder une figure dans un fichier, il y a deux manières :

20
1. Dans la fenêtre de commandes, on écrit :
>> print –d<format> nomfic


nomfic est le nom du fichier dans lequel on veut sauvegarder la figure.
Pour un fichier du type pdf l’extension est .pdf, .jpg pour un fichier du
type jpeg, .ps pour un fichier postscript, etc.

<format> peut être : ps pour le postscript noir et blanc,


psc pour le postscript couleur,
jpeg pour le format jpeg.

2. On peut aussi utiliser la fenêtre de Matlab ‘Enregistrer-sous’, puis choisir


le format du fichier dans lequel on veut sauvegarder la figure (.pdf, .jpg,
.bmp, .ps ou autre).

Décomposer une fenêtre en plusieurs figures

On utilise la commande :

>> subplot(m,n,k) qui permet de tracer m x n graphiques séparés dans la


fenêtre Matlab où k est le numéro de chaque graphique.

∈ [−5, 5] :
Exemple :
On veut décomposer la fenêtre en 4 sous-fenêtres et tracer pour

= ,
=
- dans la 1ère fenêtre, la fonction
/

=
- dans la 2 ème
fenêtre, la fonction ,
0

=
- dans la 3ème fenêtre, la fonction ,
1
- dans la 4ème fenêtre, la fonction ,

Réponse :
>> subplot(2,2,1), plot(x,x), xlabel('x'), ylabel('y'),
title('Titre 1')
>> subplot(2,2,2), plot(x,x.^2), xlabel('x'), ylabel('y'),
title('Titre 2')
>> subplot(2,2,3), plot(x,x.^3), xlabel('x'), ylabel('y'),
title('Titre 3')
>> subplot(2,2,4), plot(x,x.^4), xlabel('x'), ylabel('y'),
title('Titre 4')

Et voici le résultat :

21
D’autres commandes du graphique
>> grid on

permet d’afficher le quadrillage dans le graphisme.

>> grid off

masque le quadrillage dans le graphisme.

>> axis(‘square’)

trace un graphe géométriquement carré.

>> axis([xmin xmax ymin ymax])

affiche le graphisme selon les limites données des x et des y.

7.2 Graphisme en 3D
Pour tracer une fonction 3D : 2 = 3 , ∈ [4, ] et ∈ [5, 6] , on
commence par définir le pavé [4, ] × [5, 6] par les commandes :
pour

>> x = a:dx:b; dx étant le pas suivant x.


>> y = c:dy:d; dy étant le pas suivant y.
>> [X,Y]=meshgrid(x,y); qui permet de définir deux matrices X et Y
contenant respectivement les abscisses et les ordonnées des points du pavé.
>> Z = f(X,Y) pour calculer les images des points du pavé.
>> mesh(X,Y,Z) ou bien >> surf(X,Y,Z) pour tracer la figure 3D.

22
On veut tracer la surface d’équation 2 = 8 ∈ [−2, 2] et ∈ [−2, 2],
Exemple :
9 : ;< :

en prenant des pas 6 = 6 = 0.2


Réponse :
>> x=-2:0.2:2;
>> y=-2:0.2:2;
>> [X,Y]=meshgrid(x,y);
>> Z=X.*exp(-X.^2-Y.^2);
>> surf(X,Y,Z)

Comme résultat, on obtient la figure suivante :

On peut aussi tracer les courbes de niveau d’une fonction de 2 variables par la
commande :
>> contour(X,Y,Z)

Si on veut spécifier le nombre de lignes de niveau à tracer, on écrit :


>> contour(X,Y,Z,n)

où n est le nombre de lignes de niveau à tracer.

Si on veut en plus afficher les valeurs de ces lignes de niveau, on écrit :


>> [C,h]= contour(X,Y,Z,n)
>> clabel(C,h)

Par exemple, pour tracer 10 courbes de niveau de la fonction précédente et


afficher les valeurs de ces lignes de niveau, on écrit :
>> [C,h]= contour(X,Y,Z,10)
>> clabel(C,h)

On obtient la figure suivante :

23
Enfin, on peut aussi décider de tracer des courbes de niveau en utilisant des
barres de couleurs. Il suffit d’utiliser les commandes suivantes :
>> contourf(X,Y,Z,n)
>> colorbar

Exemple :

3 , = − 1 / + 10 / − / ∈ [−1, 1], ∈ [−1, 1].


Tracer 20 lignes de niveau, en utilisant des barres de couleurs, de la fonction

Réponse :
>> x=-1:0.1:1;
>> y=-1:0.1:1;
>> [X,Y]=meshgrid(x,y);
>> Z=(X-1).^2 + 10*(X.^2-Y).^2;
>> contourf(X,Y,Z,20)
>> colorbar

Voici le résultat :

24
8. Programmer sous Matlab
Les programmes sous Matlab sont écris sous forme de fonctions.

Pour définir une fonction nommée ‘nomfonct’, utilise l’éditeur Matlab des
programmes. La structure d’une fonction est la suivante :
function [sortie1, sortie2, …] = nomfonct(entrée1, entrée2, …)
Instructions
end

entrée1, entrée2, ... désignent les variables d’entrées pour la fonction, ils sont en
fait les données de la fonction.

sortie1, sortie2, … sont les sorties de la fonction, ils sont les résultats que va
produire l’exécution de la fonction nomfonct.

Instructions constituent le corps de la fonction.

Le fichier dans lequel est sauvegardé la fonction doit avoir le même nom que la
fonction, ici ‘nomfonct.m’.

Pour une fonction produisant une seule sortie : sortie, on la définit comme suit :
function sortie = nomfonct(entrée1, entrée2, …)

Exemple 2 :
Dans l’exemple qui suit, on définit une fonction norme qui calcule la norme d’un
vecteur u. Les lignes qui suivent doivent être enregistrées dans un fichier de
nom ‘norme.m’.
function n = norme(u)
n = sqrt(dot(u,u));
end
Exemple d’exécution dans la fenêtre de commandes :
>> u=[1 1];
>> n=norme(u)
n =
1.4142

Exemple 2 :

calcule 3 = + 5 − 2. On crée un fichier Matlab nommé ‘f.m’ dans lequel


On veut définir une fonction nommé ‘f’ qui prend en entrée une variable x et
/

on écrit la fonction suivante :

25
function y = f(x)
y = x^2 + 5*x – 1 ;
end
Exemple d’exécution :
>> f(1)
ans =
5
>> f(3)
ans =
23

Les entrées-sorties sous Matlab

L’utilisateur peut saisir des informations au clavier grâce à la commande :


x = input(les entrées au clavier)
Exemple :
>> x = input('Donner la valeur de x :’)
Donner la valeur de x : 12
x=
12

L’utilisateur peut aussi afficher une information à l’écran avec la commande :


disp(ce que doit être affiché à l’écran)
Exemple :
>> disp('Il fait beau’)
Il fait beau
>> u=[1 5 2];
>> disp(u)
1 5 2

Opérateurs de comparaison et opérateurs logiques


== : égal à (on écrit a == b)
>= : supérieur ou égal (a >= b)
<= : inférieur ou égal (a <= b)
~= : différent de (a ~= b)
& : et (on écrit a & b)
| : ou (a | b)

26
La boucle for

La boucle for est utilisée pour exécuter une séquence d’instructions d’une
manière répétée. Elle consiste à effectuer une boucle pour les valeurs d’un
indice, incrémenté à chaque itération, variant entre deux bornes données.

Syntaxe :
for i = p : q
Séquence d’instructions
end

– i est une variable appelée l’indice de la boucle ;

– p et q sont les bornes de la boucle, c'est-à-dire que la séquence d’instructions va


être répétée pour i allant de p à q.

Exemple d’utilisation :

retourne la somme S = 1 + 2 + 3 + ⋯ + n.
On veut écrire une fonction ‘sommesuite’ qui prend en entrée un entier n et

Voici la structure du programme :


Nom du programme « sommesuite.m »
function S = sommesuite(n)
S = 0;
for i=1:n
S = S + i;
end
end

Exemple d’exécution :
>> S=sommesuite(3)
S =
6
>> S=sommesuite(10)
S =
55
>> S=sommesuite(100)
S =
5050

27
Exemple 2 :

On veut écrire une fonction ‘exponentiel’ qui prend en entrée un réel x et


retourne son exponentiel en utilisant un développement limité à l’ordre 6, c'est-
à-dire :
/ 0 1 D E
89 ≃ 1 + + + + + +
2! 3! 4! 5! 6!

Nom du programme « exponentiel.m »


function y=exponentiel(x)
n = 6;
y = 0;
for i=0:n
y = y + x^i/factorial(i);
end
end

Exemple d’exécution :
>> exponentiel(0)
ans =
1
>> exponentiel(2)
ans =
7.3556
>> exponentiel(3)
ans =
19.4125

L’instruction while
Comme pour la boucle for, l’instruction while permet de répéter la même instruction
un certain nombre de fois en faisant varier un paramètre.
Syntaxe :
while (condition)
Séquence d’instructions
end
Ici la séquence d’instructions est répétée tant que la condition
(condition) est vérifiée.

Exemple d’utilisation :

somme S = 1 + 2 + 3 + ⋯ + n, en utilisant cette fois-ci l’instruction while.


On veut réécrire la fonction ‘sommesuite’ qui retourne pour un entier n la

28
Voici la structure du programme :
Nom du programme « sommesuite.m »
function S = sommesuite(n)
S = 0;
i=1;
while (i <= n)
S = S + i;
i = i + 1;
end
end

L’instruction if
L’instruction if permet d’orienter l’exécution des instructions en fonction de la
valeur logique d’une condition ou plusieurs conditions. Ses syntaxes générales
sont :
Syntaxe 1 : lorsqu’on a une seule condition
if (condition)
séquence d’instructions
end

Syntaxe 2 : lorsqu’on a deux conditions


if (condition)
séquence 1 d’instructions
else
séquence 2 d’instructions
end

Syntaxe 3 : lorsqu’on a plusieurs conditions


if (condition 1)
séquence 1 d’instructions
elseif (condition 2)
séquence 2 d’instructions
.
.
elseif (condition N)
séquence N d’instructions
end

Exemple d’utilisation :

29
On va écrire une fonction ‘plusgrad’ qui affiche le plus grand de deux
nombre a et b.
Nom du programme « plusgrand.m »
function plusgrand(a,b)
if (a < b)
disp('le plus grand est : ')
disp(b)
elseif (a > b)
disp('le plus grand est : ')
disp(a)
else
disp('Nombres égaux')
end
end

30

Vous aimerez peut-être aussi