Vous êtes sur la page 1sur 116

Initiation à Matlab

Année Universitaire 2016/2017 logo

ENIT Initiation à Matlab 1


Chapitre I : Environnement Matlab

logo

ENIT Initiation à Matlab 2


Introduction

Matlab, abréviation de MATrix LABoratory, est un logiciel de


calcul, de programmation et de visualisation graphique. Son nom
signifie qu’il est un environnement interactif avec les matrices. Sa
dernière version est R2016a (mars 2016). Pour lancer Matlab sous
PC Windows, il suffit de cliquer sur l’icone Matlab pour obtenir,

logo

ENIT Initiation à Matlab 3


logo

ENIT Initiation à Matlab 4


logo

On quitte de logiciel en tapant exit ou quit ou on utilise la souris.


ENIT Initiation à Matlab 4
Aspects élémentaires

On se retrouve alors dans la fenêtre de commandes où on peut


écrire des commandes ou executer des fonctions et défnir des
données variables. Dans Matlab, comme exemples, essayer, dans
l’ordre, les instructions en bleu suivantes :
x
x=2
x
x=2 ;
2*x+5
y=x+ans

logo

ENIT Initiation à Matlab 5


Voici les résultats : Les notes en vert après le symbole % sont des
commentaires concernant les résultats :
>> x
? ? ? Undefined function or variable ’x’. % La variable x n’est pas
encore définie.
>> x=2
% On définit la variable x
x=
2
>> x
% La variable x est maintenant bien définie.

logo

ENIT Initiation à Matlab 6


x=
2
>> x=2 ;
% On peut définir la variable x sans l’afficher en utilisant un point
virgule.

logo

ENIT Initiation à Matlab 7


>> 3+ans

ans =
10
% Ici ’ans’ est la dernière instruction exécutée.
Pour modifier dans une instruction précédente on peut utiliser les
touches ↑ et ↓ pour la retrouver.

logo

ENIT Initiation à Matlab 8


Séparations d’instructions

Plusieurs instructions peuvent figurer sur une même ligne. Il faut


les séparer par une virgule ou par un point virgule.
Voici un exemple
>> a=x+1, b=2*x ; c=a+b,

a=
3

c=
5

logo

ENIT Initiation à Matlab 9


Pause dans l’execution
Si on entre la commande pause dans un ensemble de commandes,
le programme s’arrêtera à cette étape tant qu’on ne tape pas
entrée.

logo

ENIT Initiation à Matlab 10


Pause dans l’execution
Si on entre la commande pause dans un ensemble de commandes,
le programme s’arrêtera à cette étape tant qu’on ne tape pas
entrée.
Temps de calcul
On peut calculer le temps de calcul pris par Matlab pour executer
une commande. Il suffit d’insérer la commande tic au début de la
simulation (cela fera partir le chronomètre) et de placer toc
lorsqu’on veut que le temps s’arrête.

logo

ENIT Initiation à Matlab 10


Pause dans l’execution
Si on entre la commande pause dans un ensemble de commandes,
le programme s’arrêtera à cette étape tant qu’on ne tape pas
entrée.
Temps de calcul
On peut calculer le temps de calcul pris par Matlab pour executer
une commande. Il suffit d’insérer la commande tic au début de la
simulation (cela fera partir le chronomètre) et de placer toc
lorsqu’on veut que le temps s’arrête.
Exemple
Calculer en utilisant la commande pause et en précisant le temps
de calcul d’abord 10 ! puis 6 !.

logo

ENIT Initiation à Matlab 10


Pause dans l’execution
Si on entre la commande pause dans un ensemble de commandes,
le programme s’arrêtera à cette étape tant qu’on ne tape pas
entrée.
Temps de calcul
On peut calculer le temps de calcul pris par Matlab pour executer
une commande. Il suffit d’insérer la commande tic au début de la
simulation (cela fera partir le chronomètre) et de placer toc
lorsqu’on veut que le temps s’arrête.
Exemple
Calculer en utilisant la commande pause et en précisant le temps
de calcul d’abord 10 ! puis 6 !.
Pour stopper une commande ou un programme en execution, on
utilise ctrl-c. On a besoin de stopper un programme Matlab
lorsqu’il tourne mal.
logo

ENIT Initiation à Matlab 10


Informations générales

Pour afficher la liste des variables actives de l’espace de travail, on


utilise l’une des commandes ’who’ ou ’whos’.

logo

ENIT Initiation à Matlab 11


Informations générales

Pour afficher la liste des variables actives de l’espace de travail, on


utilise l’une des commandes ’who’ ou ’whos’. La commande ’who’
affiche le nom des commandes et ’whos’ donne plus
d’informations : le nom, la taille, l’espace mémoire utilisé (en
bytes)... Essayer ces deux instructions.

logo

ENIT Initiation à Matlab 11


La commande ’clc’ permet d’effacer toute la fenêtre de commandes
mais pas les variables crées dans la fenêtre ’workspace’.
Tester cette commande.

logo

ENIT Initiation à Matlab 12


La commande ’clc’ permet d’effacer toute la fenêtre de commandes
mais pas les variables crées dans la fenêtre ’workspace’.
Tester cette commande.
Pour détruire une partie de travail on tape ’clear’ suivi du noms de
la variables à nettoyer.

logo

ENIT Initiation à Matlab 12


La commande ’clc’ permet d’effacer toute la fenêtre de commandes
mais pas les variables crées dans la fenêtre ’workspace’.
Tester cette commande.
Pour détruire une partie de travail on tape ’clear’ suivi du noms de
la variables à nettoyer. Pour nettoyer l’espace de travail on utilise
la commande ’clear’. Effacer la variable c puis nettoyer l’espace de
travail.

logo

ENIT Initiation à Matlab 12


Instructions d’aides

Essayer sur Matlab l’instruction ’help’.

logo

ENIT Initiation à Matlab 13


Instructions d’aides

Essayer sur Matlab l’instruction ’help’.Cette instruction seule


donne une liste des répertoires des fonctions Matlab. L’instruction
’help’ suivi d’un nom d’une fonction permet d’obtenir une
description de cette fonction.

logo

ENIT Initiation à Matlab 13


Instructions d’aides

Essayer sur Matlab l’instruction ’help’.Cette instruction seule


donne une liste des répertoires des fonctions Matlab. L’instruction
’help’ suivi d’un nom d’une fonction permet d’obtenir une
description de cette fonction. Attention, dans l’aide, le nom d’une
fonction peut être en majuscule, mais son utilisation doit être en
minuscule.

logo

ENIT Initiation à Matlab 13


Instructions d’aides

Essayer sur Matlab l’instruction ’help’.Cette instruction seule


donne une liste des répertoires des fonctions Matlab. L’instruction
’help’ suivi d’un nom d’une fonction permet d’obtenir une
description de cette fonction. Attention, dans l’aide, le nom d’une
fonction peut être en majuscule, mais son utilisation doit être en
minuscule. Pour chercher une fonction dont on ne connaı̂t pas le
nom exact, on utilise l’instruction ’lookfor’ suivi du nom
approximatif ou par mot clé de la fonction.
Exemples : Pour trouver comment calculer le déterminant d’une
matrice, on peut executer

logo

ENIT Initiation à Matlab 13


>> lookfor determinant
det - Determinant.
>> help Det
DET Determinant.
DET(X) is the determinant of the square matrix X.

logo

ENIT Initiation à Matlab 14


Matlab joue le role d’une calculatrice

Les opérations arithmétiques de base sont + − ∗ / qui sont


utilisées en conjonction avec parenthèse (.).
Le symbole ∧ est utilisé pour élever à une puissance.
2
Exemple Calculer, pour a = 3, aa3 +2 +1
.

logo

ENIT Initiation à Matlab 15


Variables prédéfinies

ans % réponse à une expression sans assignation


eps % précision de la virgule flottante.
pi % le nombre réel π. √
i, j % le nombre complexe i = −1.
inf % ∞.
NaN % not a number.
Préciser la valeur de eps dans la version matlab utilisée.
Calculer 1/0, 1/inf puis inf*0.

logo

ENIT Initiation à Matlab 16


Fonctions portant sur les scalaires
Parmi les fonctions mathématiques incorporées on trouve

logo

ENIT Initiation à Matlab 17


Opérateurs de comparaison et opérateurs logiques

Les opérateurs logiques sont


& : et
| : ou logo
∼ : non
ENIT Initiation à Matlab 18
Chapitre II : Matrices et Polynômes sur Matlab

logo

ENIT Initiation à Matlab 19


Calcul matriciel

Déclaration d’une matrice Pour  créer par exemple


 la matrice à 2
1 2 3
lignes et 3 colonnes suivante A = on execute la
4 5 6
commande suivante
>> A=[1 2 3 ;4 5 6]

A=
1 2 3
4 5 6

logo

ENIT Initiation à Matlab 20


% le point virgule dans une matrice sert à passer à la ligne
suivante.
Ou encore
>> A=[1,2,3 ;4,5,6]

A=
1 2 3
4 5 6
% une virgule ou un espace dans une matrice sert à séparer deux
termes consécutifs de la même ligne

logo

ENIT Initiation à Matlab 21


Essayer les instructions suivantes et conclure :
A(1,1), A(4,1), A(1), A(4), A’, 2*A, 2./A, A./2, A2 , A.*A,
D=ones(2,3), A+D, B=rand(3), B∧3 , A+B, A*B, A.*B, B*A,
C=A*A’, inv(C),I=eye(2). size(A), length(A), length(A’).

logo

ENIT Initiation à Matlab 22


Essayer les instructions suivantes et conclure :
A(1,1), A(4,1), A(1), A(4), A’, 2*A, 2./A, A./2, A2 , A.*A,
D=ones(2,3), A+D, B=rand(3), B∧3 , A+B, A*B, A.*B, B*A,
C=A*A’, inv(C),I=eye(2). size(A), length(A), length(A’).
Si les tailles des matrices sont incompatibles avec l’opération en
question, Matlab renvoie un message d’erreur.

logo

ENIT Initiation à Matlab 22


En plus des opérations matricielles usuelles, il est possible
d’exectuer des opérations entre deux matrices de même taille
”élément par élément”. Pour cela, il suffit de faire précéder
l’opérateur d’un point (.).

logo

ENIT Initiation à Matlab 23


En plus des opérations matricielles usuelles, il est possible
d’exectuer des opérations entre deux matrices de même taille
”élément par élément”. Pour cela, il suffit de faire précéder
l’opérateur d’un point (.).
Les fonctions réelles ou complexes du premier tableau de ce
document s’appliquent aussi sur les matrices terme à terme.

logo

ENIT Initiation à Matlab 23


En plus des opérations matricielles usuelles, il est possible
d’exectuer des opérations entre deux matrices de même taille
”élément par élément”. Pour cela, il suffit de faire précéder
l’opérateur d’un point (.).
Les fonctions réelles ou complexes du premier tableau de ce
document s’appliquent aussi sur les matrices terme à terme.
Exemple : Calculer cos(A), conj(A), real(A), exp(A).
Calculer expm(A)

logo

ENIT Initiation à Matlab 23


Matrice ligne ou colonne : vecteur

Un vecteur est aussi une matrice ligne ou une matrice colonne.


Donc toutes les instructions matricielles sont applicables pour les
vecteurs.

logo

ENIT Initiation à Matlab 24


Matrice ligne ou colonne : vecteur

Un vecteur est aussi une matrice ligne ou une matrice colonne.


Donc toutes les instructions matricielles sont applicables pour les
vecteurs.

Cependant, la i-ème composante d’un vecteur ligne v(1,i) ou un


vecteur colonne v(i,1) est aussi v(i).

logo

ENIT Initiation à Matlab 24


Matrice ligne ou colonne : vecteur

Un vecteur est aussi une matrice ligne ou une matrice colonne.


Donc toutes les instructions matricielles sont applicables pour les
vecteurs.

Cependant, la i-ème composante d’un vecteur ligne v(1,i) ou un


vecteur colonne v(i,1) est aussi v(i).

La commande ’length’ pour un vecteur désigne la longueur de ce


vecteur.

logo

ENIT Initiation à Matlab 24


Exercice :
Construire deux vecteurs quelconques u et v de R3 puis calculer le
produit scalaire et le produit vectoriel de ces deux vecteurs. (Voir
dans le help dot et cross)
Calculer kuk1 , kvk2 et kuk∞ .
Executer les commandes max(u), min(v) et sum(u) et conclure.

logo

ENIT Initiation à Matlab 25


Sous matrice et Matrice par bloc

On peut extraire une partie d’une matrice par ligne ou par colonne
ou par les deux.
L’expression a :p :b crée une liste ou un vecteur ligne dont les
éléments vont de a à b par pas de p.
Lorsqu’on ne donne pas le pas, la valeur du pas est par défaut 1.

logo

ENIT Initiation à Matlab 26


On peut définir le vecteur ligne par l’instruction linspace(a,b,q), où
l’entier naturel q ici désigne le nombre des valeurs régulièrement
espacées entre a et b en partant de a et allant vers b. Si q n’est
pas entier naturel, Matlab le remplace par sa partie entière.
Taper les commandes suivantes
A(1, :), A( :,2), A( :,1 :2), A( :,1 :2 :3).

logo

ENIT Initiation à Matlab 27


Matrice par bloc

Une matrice peut être construite par bloc. Si par exemple A, B, C,


D sont quatre matrices aux dimensions
 compatibles,
 on construit la
A B
matrice par concaténation K= par l’instruction K =[A
C D
B ; C D] ou K=[A,B ;C,D].

logo

ENIT Initiation à Matlab 28


Matrice par bloc

Une matrice peut être construite par bloc. Si par exemple A, B, C,


D sont quatre matrices aux dimensions
 compatibles,
 on construit la
A B
matrice par concaténation K= par l’instruction K =[A
C D
B ; C D] ou K=[A,B ;C,D].
Exemple : Construire en utilisant la concaténation, la matrice par
bloc suivante :

logo

ENIT Initiation à Matlab 28


logo

ENIT Initiation à Matlab 29


Matrices carrées

Pour une matrice carrée, la diagonale principale est comptée


d’indice 0, les parallèles en dessous sont d’indice positif et les
parallèles en dessus sont d’indice négatif.

logo

ENIT Initiation à Matlab 30


On peut trouver en Matlab les opérations sur les matrices carrées
suivantes :

logo

ENIT Initiation à Matlab 31


Exemple

Soit la matrice tridiagonale.

Ecrire A sous matlab pour a=3 et n=10.

logo

ENIT Initiation à Matlab 32


Exemple

Soit la matrice tridiagonale.

Ecrire A sous matlab pour a=3 et n=10.

A=a*eye(10)-diag(ones(9,1),1)-diag(ones(9,1),-1)
logo

ENIT Initiation à Matlab 32


Matrices creuses

Pour les matrices creuses (dont une grande portion de termes est
nulle), et pour gagner de la place mémoire, on a intérêt à
considérer les termes non nuls de la matrice, les autres sont par
défaut comptés nuls. On peut utilser la commande sparse pour
construire ces matrices.

logo

ENIT Initiation à Matlab 33


Exemple

>> a=sparse([1,2],[1,3],[-2,6], 2,3)


a=
(1,1) -2
(2,3) 6
On donne ici seulement les éléments non nuls de la matrice a.
On peut avoir la matrice totale a.

>> B=full(a)

B=
−2 0 0
0 0 6
logo

ENIT Initiation à Matlab 34


Inversement, pour connaı̂tre le nombre de terme non nuls et les
coefficients non nuls de la matrice B, on utilise respectivement
’nnz’ et sparse(B).
>> nnz(B)

ans =

2
Ecrire sur Matlab spy(B) et sparse(B) et commenter.

logo

ENIT Initiation à Matlab 35


Exercice
Utiliser sparse pour écrire la matrice (1) pour a=2 et n=10.

logo

ENIT Initiation à Matlab 36


Exercice
Utiliser sparse pour écrire la matrice (1) pour a=2 et n=10.

a=sparse([2 :10,1 :10,1 :9],[1 :9,1 :10,2 :10],[-


ones(1,9),3*ones(1,10),-ones(1,9)],10,10)
Consulter l’aide de speye, spones, spdiags, sprandn .

logo

ENIT Initiation à Matlab 36


Résolution de systèmes linéaires

On peut calculer une solution x d’un système Ax = b, pour A une


matrice quelconque (pas forcément carrée) en utilisant la
commande Matlab linsolve où on écrit x = linsolve(A ; b). Ou
encore x = A\b.

logo

ENIT Initiation à Matlab 37


Résolution de systèmes linéaires

On peut calculer une solution x d’un système Ax = b, pour A une


matrice quelconque (pas forcément carrée) en utilisant la
commande Matlab linsolve où on écrit x = linsolve(A ; b). Ou
encore x = A\b.
Lorsque A est une matrice inversible l’unique solution x peut
s’obtenir en appliquant A−1 à x.
Exercice 13.1 du poly.

logo

ENIT Initiation à Matlab 37


Polynômes

Dans Matlab, un polynôme de degré n est représenté par un


vecteur ligne de taille (n+1), dont les composantes sont données
par ordre des puissances décroissantes.
Exemple P (x) = 8x4 − 3x3 + x − 1 s’écrit en Matlab
>> P=[8 -3 0 1 -1]

P=

8 −3 0 1 −1

logo

ENIT Initiation à Matlab 38


Pour évaluer le polynôme P en différents points d’un vecteur donné
x, on utilise la commande ’polyval’

>> polyval(P,1) % valeur de P en x=1

ans =

>> polyval(P,[0,-1,2]) % valeurs de P en 0, 1 puis 2.

ans =

−1 9 105
logo

ENIT Initiation à Matlab 39


Pour dériver et intégrer un polynôme P on utilise respectivement
’polyder’ et ’polyint’

>> polyder(P)

ans =

32 −9 0 1

>> polyint(P)

ans =

1.6000 − 0.7500 0 0.5000 − 1.0000 0


logo

ENIT Initiation à Matlab 40


La commande poly permet de donner un polynôme de degré n
dont on connaı̂t les racines.
Par exemple le polynôme de degré minimal ayant comme racines 1
et -1 est :

>> P=poly([1,-1])

P=

1 0 −1

logo

ENIT Initiation à Matlab 41


Chapitre III : Les entrées-sorties

logo

ENIT Initiation à Matlab 42


Les formats d’affichage

Matlab dispose de format d’affichage pour des réels. Par défaut le


format est le format court à 4 chiffres après la virgule.
Parmi les autres principaux formats on trouve :

format short 4 décimales (par défaut)


format long 14 décimales
format short e 4 chiffres après virgule + exposant
format long e 15 chiffres après virgule + exposant
format rat approximation par une fraction rationelle

Consulter help format pour afficher les autres types de format.

logo

ENIT Initiation à Matlab 43


logo

ENIT Initiation à Matlab 44


Commande display ou disp

Pour afficher un tableau de valeurs numérique, il suffit de taper son


nom. Parfois, pour améliorer la présentation, on utilise la
commande disp qui affiche le même tableau à l’écran sans avoir
<< ans >> et sans faire référence à son nom.

On utilise cette commande aussi pour afficher un message. Mais


pour afficher un résultat numérique dans ce message il faut avoir
recours à num2str.

logo

ENIT Initiation à Matlab 45


Exemple

>> A=rand(2)

A=

0.9649 0.9706
0.1576 0.9572
>> disp(A)

0.9649 0.9706
0.1576 0.9572

>> disp([’le détérminant de A vaut’, num2str(det(A))])

le détérminant de A vaut 0.77058 logo

ENIT Initiation à Matlab 46


Commande input

Il est possible d’interagir avec l’utilisateur pour attribuer une valeur


à une variable en utilisant la commande input.
>> tolerence= input(’qu’elle est la valeur de la tolerence
epsilon ?’) % on tape la valeur après avoir le message
correspondant
qu’elle est la valeur de tolerence epsilon ? 10−4 .
>>tolerence=0.0001

logo

ENIT Initiation à Matlab 47


Commande sprintf

La commande sprintf permet l’impression des variables selon un


modèle donné. La syntaxe est de type sprintf(format, variable) où :
• variables est le nom de variables à imprimer suivant le modèle
d’édition dans format.
• format est le format d’édition : il s’agit d’une chaine de caractère
contenant les modèles des variables à imprimer.

logo

ENIT Initiation à Matlab 48


>> sprintf(’%s’,’Ce n’est qu’un commentaire’)

ans =

Ce n’est qu’un commentaire

>> sprintf(’%40s’,’Ce n’est qu’un commentaire’)

ans =

Ce n’est qu’un commentaire

logo

ENIT Initiation à Matlab 49


Chapitre IV : Instructions de contrôle

logo

ENIT Initiation à Matlab 50


Les instructions de Matlab sont proches à celles utilisées dans
d’autres programme de programmation et elles sont
1. Instructions conditionnelles : if-else-elseif-end
Elles permettent d’exectuer différentes instructions suivant qu’une
ou plusieurs conditions sont vérifiées. Les différentes syntaxes pour
ces instructions sont :

logo

ENIT Initiation à Matlab 51


Exemple

Pour vérifier si par exemple x = 3 est strictement positif ou non,


on exécute

logo

ENIT Initiation à Matlab 52


Exemple

Pour vérifier si par exemple x = 3 est strictement positif ou non,


on exécute
>> x = 3 ;
if x > 0, disp(’x est strictement positif’),
else
disp(’x est négatif ou nul’),
end

Pour déterminer exactement le signe de x = −3, on fait


>> x = −3 ; if x > 0, disp(’x est strictement positif’),
elseif x < 0,
disp(’x est strictement négatif’),else disp(’x est nul’), end
x est strictement négatif
logo

ENIT Initiation à Matlab 52


2. Boucle for-end Elle permet de repéter un nombre fixé de fois
un ensemble d’instructions. Sa syntaxe est :

for indice=debut :pas :fin


instructions end

L’indice de début et de fin sont des réels et le pas doit être précisé
si l’indice de début est plus grand que celui de fin. Dans le cas
contraire, le pas est par défaut 1 en cas d’absence de pas.
Exemple : Calculer n! pour n = 10 par la boucle for.

logo

ENIT Initiation à Matlab 53


3. Boucle while-end
On peut aussi executer une instruction repétée tant qu’une
condition est vérifiée, par la boucle while, dont la syntaxe est :

while expression ou condition


instructions end

Exemple : Retrouver n! pour n = 10, en utilisant la boucle while

logo

ENIT Initiation à Matlab 54


>> s=1 ; for i=1 :10, s=i*s ; end, disp([’10 !=’ num2str(s)])
10 !=3628800

>> s=1 ; i=1 ; while i ¡= 10, s=i*s ; i=i+1 ; end,


disp([’10 !=’ num2str(s)])
10 !=3628800

logo

ENIT Initiation à Matlab 55


Chapitre V : Programmation et utilisation de fonctions

logo

ENIT Initiation à Matlab 56


Fichier.m

Il est possible d’enregistrer un ensemble d’instructions dans un


fichier appelé M-file et de faire l’executer par Matlab.
Un tel fichier doit avoir obligatoirement l’extension .m et on
distingue deux types de M-File, les fichiers de script et les fichiers
de fonctions

logo

ENIT Initiation à Matlab 57


1. Scripts
Un script est un ensemble d’instructions Matlab qui joue le role de
programme. On utilise l’éditeur de texte de Matalb M-File pour
créer ce type de fichier sous un nom nomdfichier.m. Pour executer
ce programme, il suffit de taper son nom nomdfichier dans la
fenêtre Matlab.

logo

ENIT Initiation à Matlab 58


1. Scripts
Un script est un ensemble d’instructions Matlab qui joue le role de
programme. On utilise l’éditeur de texte de Matalb M-File pour
créer ce type de fichier sous un nom nomdfichier.m. Pour executer
ce programme, il suffit de taper son nom nomdfichier dans la
fenêtre Matlab.
Exemple
Calculer dans un fichier script norm-inf.m la norme infinie d’un
vecteur x de Rn .

logo

ENIT Initiation à Matlab 58


2. Fonction
Pour définir une fonction à variable réelle ou à n variables (n=2 ou
3), on peut utiliser directement la commande inline ou @(variables)
lorsque il y a des paramètres dans la fonction.

logo

ENIT Initiation à Matlab 59


2. Fonction
Pour définir une fonction à variable réelle ou à n variables (n=2 ou
3), on peut utiliser directement la commande inline ou @(variables)
lorsque il y a des paramètres dans la fonction.
Exemple
2 2
Définir la fonction fonc(x, y) = e−x −y et calculer fonc(0,0).

logo

ENIT Initiation à Matlab 59


>> fonc=inline(’exp(-x∧2-y∧2)’)

fonc =

Inline function :
fonc(x,y) = exp(-x∧2-y∧2)

>> p=1 ;
>> fonc=@(x,y)exp(-x∧2-y∧2)

>> fonc(0,0)

ans =

1
logo

ENIT Initiation à Matlab 60


Pour x=rand(2) et y=rand(2), calculer fonc(x,y).
Que remarquez-vous ?

logo

ENIT Initiation à Matlab 61


Remarque Il ne faut pas oublier le point avant la puissance pour
pouvoir évaluer cette fonction en chaque point d’un vecteur donné
(voir la partie graphisme).

>> fonc=inline(’exp(-x.∧2-y.∧2)’)

fonc =

Inline function :
fonc(x,y) = exp(-x.∧2-y.∧2)

Calculer maintenant fonc(x,y).


Vérfier que cette fonction (par la commande ’help’) n’est pas
incorporée en Matlab.
logo

ENIT Initiation à Matlab 62


>> help fonc

fonc not found.

Afin d’enregistrer cette fonction, il suffit de la créer en un fichier


script fonction enregistrée sous fonc.m

logo

ENIT Initiation à Matlab 63


En général on déclare une fonction (pas forcément à variable dans
Rn ) de la façon suivante

function [vars1 , ..., varsm ]=nomfonction(vare1 , ..., varen )


instructions

où :
• vare1 , ..., varen sont les variables d’entrée
• vars1 , ..., varsm sont les variables de sortie
Pour exécuter cette fonction et afficher toutes les variables de
sortie, on utilise la commande :
[vars1 , ..., varsm ]=nomfonction(vare1 , ..., varen )

logo

ENIT Initiation à Matlab 64


Exemples

1.Ecrire la fonction précédente fonc.m sous Matlab.


2.Ecrire une fonction Matlab DetTrace qui donne en sortie dans
l’ordre la trace et le déterminant d’une matrice carrée A.

logo

ENIT Initiation à Matlab 65


Chapitre VI : Graphisme sur Matlab

logo

ENIT Initiation à Matlab 66


Dans le plan ou dans l’espace, et pour tracer une fonction
quelconque, le principe est le suivant :
1- Discrétiser le domaine de représentation.
2- Evaluer la fonction en chaque point de discrétisation.
3- Executer l’instruction graphique Matlab avec les données
précédentes.

Représentation graphique 2D : Pour représenter une courbe


d’une fonction la une seule variable, on peut utiliser la commande
fplot suivi de la fonction à tracer et l’intervalle d’étude. Par défaut
le type de tracé est en bleu et en ligne continue.
Exemple
>> fplot(’x∧ 2’,[-1,1])

logo

ENIT Initiation à Matlab 67


logo

ENIT Initiation à Matlab 68


Executer les commandes suivantes

>> fplot(’x∧ 2’,[-1 1],’r,*’)


>> fplot(’[x∧ 2,-x∧ 3]’,[-1 1 -1 1])

On peut choisir la couleur ou le type de tracé en ajoutant un des


paramètres optionnels du tableau suivant :

logo

ENIT Initiation à Matlab 69


Voir help plot pour voir toute la liste des styles et symboles.
On peut également utiliser la commande plot pour tracer une
courbe passant par des points (xi , yi )i=1:p en tapant plot(x,y)
Exemple Pour tracer la courbe de la fonction x 7→ x2 on écrit

>> x=-1 :1/10 :1 ;


>> plot(x,x.∧ 2) % Ici yi = x2i

Remarque Il faut précéder les signes puissance, multiplication et


division par un point, pour pouvoir appliquer ses opérations au
vecteurs.

logo

ENIT Initiation à Matlab 70


La commande hold on donne la possibilité de tracer plusieurs
courbes dans la même fenêtre graphique. L’effet de cette
commande est supprimé en tapant hold off
La commande title ajoute un titre au graphique de la fenêtre
courante.
On peut aussi écrire des titres sur les axes des abscisses et des
ordonnées par les commandes xlabel et ylabel.
Grace à la commande gtext on peut ajouter un texte sur le graphe
à un endroit graphique selectionné à l’aide de la souris.
La commande legend permet d’ajouter une legende.

logo

ENIT Initiation à Matlab 71


Afficher plusieurs sous graphiques sur la même figure :
subplot

L’instruction subplot permet de présenter sur une même fenêtre


graphiques plusieurs résultats. en découpant la fenêtre en plusieurs
pavés et d’afficher un graphe sur chaque pavé. La syntaxe est :
subplot(Nb de pavés sur hauteur, Nb de pavés sur largeur, Numéro
du pavé).
La virgule n’est pas indispensable et les pavés sont numérotés dans
le sens de la lecture d’un texte français : de gauche à droite et de
haut vers le bas.

logo

ENIT Initiation à Matlab 72


Exemple

>> x=0 :0.2 :1 ;


>> y=x.∧ 2 ;
>> t=cos(x) ;
>> subplot(221)
>> fplot(’x.∧ 2’,[-1 1])
>> subplot(222)
>> fplot(’[x∧ 2,-x∧ 3]’,[-1 1 -1 1])
>> subplot(223)
>> plot(x,y)
>> subplot(224)
>> plot(x,t)

Comme résultat on obtient logo

ENIT Initiation à Matlab 73


logo

ENIT Initiation à Matlab 74


Afficher et nommer plusieurs figures indépendantes :figure

La commande figure permet de créer de nouvelles figures sans


remplacer les anciennes. On peut aussi numéroter ces figures :

>> figure(1)
>> fplot(’[x∧ 2,-x∧ 3]’,[-1 1 -1 1])
>> figure(2)
>> x=0 :0.2 :1 ; plot(x,cos(x)),

logo

ENIT Initiation à Matlab 75


Courbes polaires et paramétrées

La procédure pour tracer une courbe paramétrée est identique à


celle d’une courbe cartésienne. Pour représenter par exemple la
2t 2t3
courbe paramétrée donnée par x(t) = 1+t 4 , y(t) = 1+t4 lorsque t
varie sur l’intervalle [-100,100], on peut faire

>> t=-100 :1/10 :100 ;


>> x=(2*t)./(1+t.∧ 4) ;
>> y=(2*t.∧ 3)./(1+t.∧ 4) ;
>> plot(x,y)

logo

ENIT Initiation à Matlab 76


Pour les courbes polaires on utilise polar. Voici un exemple pour
tracer la courbe polaire r = 2 + 2cos(θ) pour θ ∈ [−π; π]

>> theta=-pi :1/10 :pi ;


>> r=2+2*cos(theta) ;
>> polar(theta,r)

logo

ENIT Initiation à Matlab 77


logo

ENIT Initiation à Matlab 78


Représentation à l’échelle logarithmique

La commande loglog s’utilise de la même façon que plot. loglog


permet d’afficher le vecteur log(x) contre log(y).
semilogx respectivement semilogy affiche le vecteur logarithme de
x respectivement de y

logo

ENIT Initiation à Matlab 79


Représentation à l’échelle logarithmique

La commande loglog s’utilise de la même façon que plot. loglog


permet d’afficher le vecteur log(x) contre log(y).
semilogx respectivement semilogy affiche le vecteur logarithme de
x respectivement de y
Exercice
Tracer la courbe de la fonction x : [0, 1000] 7→ x4 à une échelle
logarithmique.

logo

ENIT Initiation à Matlab 79


Représentation graphique 3D

Une courbe en 3D est une liste de triplets (x, y, z).


On utilise la commande plot3 pour tracer la courbe reliant les
points (x(i),y(i),z(i)) en utilisant la syntaxe plot3(x,y,z) pour x, y
et z sont trois vecteurs de même longueur.

logo

ENIT Initiation à Matlab 80


Représentation graphique 3D

Une courbe en 3D est une liste de triplets (x, y, z).


On utilise la commande plot3 pour tracer la courbe reliant les
points (x(i),y(i),z(i)) en utilisant la syntaxe plot3(x,y,z) pour x, y
et z sont trois vecteurs de même longueur.
Exemple
Soit la courbe paramétrée t 7→ (cos(t), sin(t), t). Représenter la
courbe pour t variant sur l’intervalle [0, 5π].

logo

ENIT Initiation à Matlab 80


>> t=linspace(0,5*pi,500) ;
>> plot3(cos(t),sin(t),t)

La courbe obtenue est

logo

ENIT Initiation à Matlab 81


En général, pour tracer la courbe d’une fonction z = f (x, y) sur un
pavé [a, b] × [c, d], il faut d’abord générer une grille de points,
évaluer la fonction en chaque point, puis tracer le graphe.
La fonction meshgrid permet de générer une grille de points
(matrice de maillage) représentée par deux vecteurs X et Y et de
faire un maillage d’un pavé [a, b] × [c, d] d’un pas h en écrivant
meshgrid(a :h :b,c :h :d).

logo

ENIT Initiation à Matlab 82


On évalue ensuite la fonction à tracer en ces points de maillage en
écrivant z = f (X, Y ).
Pour tracer la courbe on peut faire plot3(X,Y,Z) ou encore
mesh(X,Y,Z) (représentation de la surface par un maillage dit ”fil
de fer”), ou surf(X,Y,Z) (représentation avec des mailles colorées).

Exemple Tracer la courbe f (x, y) = x2 + y 2 sur [−2; 2] × [−2, 2].

logo

ENIT Initiation à Matlab 83


>> [X,Y]=meshgrid(-2 :0.1 :2,-2 :0.2 :2) ;
>> Z=X.∧ 2+Y.∧ 2 ;
>> plot3(X,Y,Z)
>> mesh(X,Y,Z)

logo

ENIT Initiation à Matlab 84


Pour visualiser les lignes de niveau, on utilise la syntaxe
contour(X,Y,Z) ou surfc(X,Y,Z).
Les commandes ezmesh, ezmeshc, ezsurf et ezsurfc sont des
fonctions usuelles de graphisme en 3D où la matrice de maillage
est définie par defaut.
Consulter le help pour appliquer ces commandes pour tracer la
fonction précédente.

logo

ENIT Initiation à Matlab 85


Chapitre VI :Calcul symbolique avec Matlab

logo

ENIT Initiation à Matlab 86


Un objet symbolique est une structure de données qui enregistre
une représentation du symbole sous la forme d’une chaı̂ne.
La boı̂te à outils utilise des objets symboliques pour représenter
• des variables symboliques,
• des expressions symboliques
• et des matrices symboliques.
Les calculs symboliques sont effectués par Maple.

logo

ENIT Initiation à Matlab 87


La commande Matlab sqrt(2) donne ans=1.4142
Si on convertit 2 en un objet symbolique à l’aide de la commande
sym, et en calculant sa racine en écrivant a = sqrt(sym(2)) le
résultat est a = 2(1/2) . √
MATLAB donne le résultat 2(1/2) qui signifie 2, en utilisant la
notation de calcul symbolique pour la racine carrée, sans calculer
sa valeur numérique. On peut obtenir la valeur numérique d’un
objet à l’aide de la commande double :
>> double(a)
>> ans= 1.4142

logo

ENIT Initiation à Matlab 88


Calcul sur les objets symboliques

MATLAB ne fait pas les calculs de la même manière sur les


variables de type double et les objets symboliques.
Pour les variables doubles

>> 2/5 + 1/3


>> ans = 0.7333
Avec les objets symboliques
>> sym(2)/sym(5) + sym(1)/sym(3)
>> ans = 11/15

logo

ENIT Initiation à Matlab 89


Création de variables et d’expression symboliques

>> y = sym((1 + sqrt(5))/20) % crée une variable symbolique


qui s’écrit y
>> z = y 2 − y − 1 % faire des opérations avec y
>> simplify(z) % permet de simplifier l’expression de z
>> f = sym(0 x2 + 2 ∗ x0 ) % crée une fonction symbolique

logo

ENIT Initiation à Matlab 90


logo

ENIT Initiation à Matlab 91


Chapitre VII :Applications

logo

ENIT Initiation à Matlab 92

Vous aimerez peut-être aussi