• Introduction
• Instructions de contrôle
2
Chapitre I: Environnement Matlab
September 9, 2020
3
Introduction
8
Interface Matlab
9
Aspects élémentaires
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
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!.
19
Informations générales
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
det - Determinant.
DET Determinant.
29
Matlab joue le role d’une calculatrice
30
Variables prédéfinies
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
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.
41
Matrice ligne ou colonne: vecteur
42
Matrice ligne ou colonne: vecteur
43
Matrice ligne ou colonne: 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
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
48
Matrice par bloc
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
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
53
Exemple
A=a*eye(10)-diag(ones(9,1),1)-diag(ones(9,1),-1)
54
Matrices creuses
55
Exemple
(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 =
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
61
Résolution de systèmes linéaires
62
Polynômes
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 =
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
68
Commande display ou disp
69
Commande display ou disp
70
Exemple
>> A=rand(2)
A =
0.9649 0.9706
0.1576 0.9572
>> disp(A)
0.9649 0.9706
0.1576 0.9572
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
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
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
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
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
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
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)
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
103
Représentation à l’échelle logarithmique
104
105
Représentation graphique 3D
106
Représentation graphique 3D
107
>> t=linspace(0,5*pi,500);
>> plot3(cos(t),sin(t),t)
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