Vous êtes sur la page 1sur 115

Initiation à Matlab

ENIT: Septembre 2020


Radhia Bessi
Sommaire

• Introduction

• Commandes des base

• Instructions de contrôle

• Programmation et utilisation des fonctions

• Graphisme sur Matlab

2
Chapitre I: Environnement Matlab

September 9, 2020

3
Introduction

Développé par la société américaine The MathWorks, Matlab,


est l’abréviation de MATrix LABoratory, c’est un logiciel de
calcul , de
Introduction

Développé par la société américaine The MathWorks, Matlab,


est l’abréviation de MATrix LABoratory, c’est un logiciel de
calcul , de programmation
Introduction

Développé par la société américaine The MathWorks, Matlab,


est l’abréviation de MATrix LABoratory, c’est un logiciel de
calcul , de programmation et de visualisation graphique.
Son nom signifie qu’il est un environnement interactif avec
les matrices.
Matlab fonctionne dans plusieurs environnements tels que
Windows, Linux, Macintosh,...
Sa dernière version est R2020a (mars 2020).
Introduction

Développé par la société américaine The MathWorks, Matlab,


est l’abréviation de MATrix LABoratory, c’est un logiciel de
calcul , de programmation et de visualisation graphique.
Son nom signifie qu’il est un environnement interactif avec
les matrices.
Matlab fonctionne dans plusieurs environnements tels que
Windows, Linux, Macintosh,...
Sa dernière version est R2020a (mars 2020).
Pour lancer Matlab sous PC Windows, il suffit de cliquer sur
l’icone Matlab pour obtenir l’interface graphique suivante,
On sort de logiciel en tapant exit ou quit ou on utilise la
souris.

8
Interface Matlab

Dans l’interface Matlab on trouve :


• Le menu : regroupe les commandes de base de Matlab: (Home
pour ouvrir, sauvgarder afficher des fichiers, importer des
données, Plots pour les , Apps...)
• ’current folder’ ou explorateur de fichiers : Qu’il faut avant tout le
fixer et qui permet d’ouvrir et de visualiser les fichiers
Matlab pour les éditer
• ’Workspace’ ou espace de variable : pour visualiser toutes les variables
créées.
• Espace de ’command history’ : qui enregistre l’historique des
commandes précédemment exécutées.
• Espace ’command Windows’ : qui est la plus grande et qui permet
d’écrire les commandes et afficher les résultats d’exécution.
La taille de chaque panneau est ajustable, il suffit de placer le curseur de
la souris sur les limites et glisser pour ajuster les dimensions.

9
Aspects élémentaires

On se retrouve alors dans la fenètre de commandes ou


d’exécution où on peut écrire des commandes ou exécuter des
fonctions et définir 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

10
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 =

>> x
% La variable x est maintenant bien définie.

11
x =

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

12
>> 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.
Séparations d’instructions

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


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

a =

c =

14
Pause dans l’exécution
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.
Pause dans l’exécution
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 partira le chronomètre) et de
placer toc lorsqu’on veut que le temps s’arrète.
Pause dans l’exécution
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 partira 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!.
Pause dans l’exécution
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 partira 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 exécution,


on utilise ctrl-c . On a besoin de stopper un programme
Matlab lorsqu’il tourne mal.
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’.

19
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.

20
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.

21
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.

22
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.

23
Instructions d’aides

Essayer sur Matlab l’instruction ’help’ puis ’help elfun’


Instructions d’aides

Essayer sur Matlab l’instruction ’help’ puis ’help elfun’


La première instruction seule donne une liste des répertoires
des fonctions Matlab.
Instructions d’aides

Essayer sur Matlab l’instruction ’help’ puis ’help elfun’


La première instruction seule donne une liste des répertoires
des fonctions Matlab. La deuxième permet d’afficher l’aide sur
les fonctions mathématiques élémentaires sous Matlab
L’instruction ’help’ suivi d’un nom d’une fonction permet
d’obtenir une description de cette fonction.
Instructions d’aides

Essayer sur Matlab l’instruction ’help’ puis ’help elfun’


La première instruction seule donne une liste des répertoires
des fonctions Matlab. La deuxième permet d’afficher l’aide sur
les fonctions mathématiques élémentaires sous 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.
Instructions d’aides

Essayer sur Matlab l’instruction ’help’ puis ’help elfun’


La première instruction seule donne une liste des répertoires
des fonctions Matlab. La deuxième permet d’afficher l’aide sur
les fonctions mathématiques élémentaires sous 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 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 exécuter
>> lookfor determinant

det - Determinant.

>> help Det

DET Determinant.

DET(X) is the determinant of the square matrix X.

29
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
.

30
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.

31
Fonctions portant sur les scalaires
Parmi les fonctions mathématiques incorporées on trouve
sqrt(x) racine carrée de x
log(x) logarithme népérien de x
log10 (x) logarithme en base 10 de x
exp(x) exponentielle de x
abs(x) valeur absolue de x
cos(x) cosinus de x
tan(x) tangente de x
conj(z) conjugué d’un nombre complexe z
angle(z) argument de z
real(z) partie réelle de z
imag(z) partie imaginaire de z

32
Opérateurs de comparaison et opérateurs logiques

Opérateurs de comparaison
= égal
> strictement plus grand
< strictement plus petit
>= plus grand ou égal
<= plus petit ou égal
˜= différent de
Les opérateurs logiques sont
&: et
|: ou
˜: non

33
Chapitre II: Matrices et Polynômes
sur Matlab

September 9, 2020

34
Calcul matriciel

Déclaration d’une matrice


Pour créer parexemple lamatrice à 2 lignes et 3 colonnes
1 2 3
suivante A = on execute la commande suivante
4 5 6
>> A=[1 2 3;4 5 6]

A =

1 2 3
4 5 6

35
% le point virgule dans une matrice est pour 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 pour séparer
deux termes consécutifs de la même ligne

36
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), B3 , A+B, A*B, A.*B, B*A,
C=A*A’, inv(C),I=eye(2). size(A), length(A), length(A’).
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), B3 , 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.
En plus des opérations matricielles usuelles, il est
possible de possible d’effectuer des opérations entre
deux matrices de même taille ”élément par
élément”.

39
En plus des opérations matricielles usuelles, il est
possible de possible d’effectuer 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 de premier
tableau de ce document s’appliquent aussi sur les
matrices terme à terme.

40
En plus des opérations matricielles usuelles, il est
possible de possible d’effectuer 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 de 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)

41
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.

42
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).

43
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.

44
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.

45
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 de pas est
par défaut 1.

46
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).

47
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 matrice par
A B
concaténation K = par l’instruction
C D
K=[A B; C D] ou K=[A,B;C,D].

48
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 matrice par
A B
concaténation K = par l’instruction
C D
K=[A B; C D] ou K=[A,B;C,D].
Exemple Construire en utilisant la concaténation,
la matrice par bloc suivante:
 
1 2 7
K= 3 4 8 
4 5 9

49
Matrices particulières
ones(n,p)/ ones(n) matrice contenant
partout 1
zeros(n,p)/ zeros(n) matrice nulle
eye(n)/ matrice unité d’ordre n
rand(n,p)/ rand(n) matrice aléatoire
size(A,1)/size(A,2)
size(A) nb de lignes/ nb de
colonnes / taille de A
rank(A) rang de A

50
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 positifs et les parallèles en dessus sont
d’indice négatifs.

51
On peut trouver en Matlab les opérations sur les matrices carrées
suivantes:
Opérations sur les matrices carrées
det(A) déterminant de A
trace(A) trace de A
inv(A) inverse de A
eig(A) valeurs et vecteurs propres de A
diag(A)/diag(A,p) vecteur composé des termes diagonaux de
A/ la diagonale d’indice p
diag(v)/diag(v,p) matrice diagonale dont la diagonale est le
vecteur v / matrice à diagonale d’indice p
est v
tril(A)/ tril(A,p) matrice triangulaire inférieure des
éléments de A / extrait les éléments en
dessous de la diagonale p.
triu(A) / triu(A,p) matrice triangulaire supérieure des
éléments de A / extrait les éléments en
dessus de la diagonale p

52
Exemple

Soit la matrice tridiagonale.


 
a −1
 −1 a −1 
 
A=
 ... ... ... 
 (1)
 −1 a −1
 

−1 a
Ecrire A sous matlab pour a=2 et n=10.

53
Exemple

Soit la matrice tridiagonale.


 
a −1
 −1 a −1 
 
A=
 ... ... ... 
 (1)
 −1 a −1
 

−1 a
Ecrire A sous matlab pour a=2 et n=10.

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

54
Matrices creuses

Pour les matrices creuses (dont une grande portion


de termes est nulle), et pour gagner de 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 utiliser sparse pour
construire ces matrices.

55
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

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

ans =

Ecrire sur Matlab spy(B) et sparse(B) et


commenter.

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

58
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)

59
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 .

60
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.

61
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 de poly

62
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

63
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 =
5
>> polyval(P,[0,-1,2]) % valeurs de P en 0, 1 puis
2.
ans =
-1 9 105
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


La commande poly permet de donner un polynôme
de degré n dont on connaı̂t les n + 1 racines.
Par exemple le polynôme de degré minimal ayant
comme racines 1 et -1 est:
>> P=poly([1,-1])

P =

1 0 -1

66
Chapitre III: Les entrées-sorties

September 9, 2020
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 rationnelle

>> format short >> format long


>> pi >> pi
ans = 3.1416 ans =
3.141592653589793
>> format short e >> format short g
>> pi2 ans = 9.8696e >> pi2
ans =
9.8696

68
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.

69
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

70
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 deteminant de A vaut’, num2str(det(A))])


le deteminant de A vaut0.77058
Afin de lire des données utiles à l’exécution, on peut interrompre
l’exécution et demander une valeur, en utilisant la commande ’ input’.
Exemple
>> p=input(’Donner la valeur de n’), p=5
Chapitre IV : Instructions de
contrôle

September 9, 2020

73
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’effectuer différentes instructions suivant
qu’une ou plusieurs conditions sont vérifiées. Les différentes
syntaxes pour ces instructions sont:
if condition if condition if condition
instructions instructions instructions
end else elseif condition
end instructions
else
instructions
end

74
Exemple

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


exécute

75
>> 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

76
2. Boucle for-end
Elle permet de répé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.

77
Exemple

Calculer n! pour n=10 par la boucle for.


3. Boucle while-end On peut aussi exécuter une
instruction répétée tant qu’une condition 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

78
>> 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

79
Chapitre V : Programmation et
utilisation de fonctions

September 9, 2020

80
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

81
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 exécuter ce
programme, il suffit de taper son nom nomdfichier
dans la fenètre Matlab.
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 exécuter 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 .
2. Fonction
Pour définir une fonction à variable réelle ou à n
variables (n=2 ou 3), on peut utiliser directement la
commande inline

84
2. Fonction
Pour définir une fonction à variable réelle ou à n
variables (n=2 ou 3), on peut utiliser directement la
commande inline
Exemple
2 2
Définir la fonction fonc(x, y) = e−x −y et calculer
fonc(0,0).

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

fonc =

Inline function:
fonc(x,y) = exp(-x^2-y^2)
>> fonc(0,0)

ans =

86
>> 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

87
En général on déclare une fonction (pas forcément à
variable dans Rn ) de la façon suivante
function [vars1 ,vars2 ,...,varsm ] =
nomfonction(vare1 ,vare2 ,...,varen )
instructions
où
• vare1 ,vare2 ... sont les variables d’entrées
• vars1 ,vars2 ... sont les variables de sortie
Pour exécuter cette fonction, on utilise la
commande :
[vars1 ,vars2 ,...,varsm ]=nomfonction(vare1 ,vare2 ,...,va

88
Exemples

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


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

89
Chapitre VI : Graphisme sur Matlab

September 9, 2020

90
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
Exécuter l’instruction graphique Matlab avec les
données précédentes.
Représentation graphique 2D Pour représenter
une courbe d’une fonction à 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 ligne continue.
Exemple
>> fplot(’x^2’,[-1,1])
91
92
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 de tableau
suivant
Couleur Symboles tracés conti-
nus
b bleu . - trait continu
r rouge ◦ : pointillé
g vert) + -. trait-point
k noir * – trait-trait
b blanc ×
y jaune
93
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)

94
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 une
légende à un endroit graphique selectionné à l’aide
de la souris.
Afficher plusieurs graphiques

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 de 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.

96
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


97
98
Courbes polaires et paramétrées

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


identique à celle à une courbe cartésienne. Pour
représenter par exemple la courbe paramétrée
2t 2t3
donnée par x(t) = 1+t 4 , y(t) = 1+t4 lorsque t varie

sur l’intervalle [−100, 100], on peut faire

99
>> t=-100:1/10:100;
>> x=(2*t)./(1+t.^4);
>> y=(2*t.^3)./(1+t.^4);
>> plot(x,y)

100
Pour les courbes polaires on utilise polar. Voici un
exemple Pour tracer la courbe polaire
r = 2 + 2 cos(θ) pour θ ∈ [−π, π]
>> theta=-pi:1/10:pi;
>> r=2+2*cos(theta);
>> polar(theta,r)

101
102
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

103
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.

104
105
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.

106
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π].

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

La courbe obtenue est

108
Consulter le help pour tester les commandes ezsurf,
ezmesh, ezcontour

109
Consulter le help pour tester les commandes ezsurf,
ezmesh, ezcontour
En général, pour tracer la courbe d’une fonction
z = f (x, y), il faut d’abord générer une grille de
points, évaluer la fonction en chaque point, puis
tracer le graphe.

110
Consulter le help pour tester les commandes ezsurf,
ezmesh, ezcontour
En général, pour tracer la courbe d’une fonction
z = f (x, y), 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 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).

111
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].

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

113
Pour visualiser les lignes de niveau, on utilise la syntaxe
contour(X,Y,Z)

114
Chapitre VI :Applications

115

Vous aimerez peut-être aussi