TP de Informatique3-L2GM2020
TP de Informatique3-L2GM2020
Initiation à MATLAB
2019/2020
1. Introduction
-Mode interactif: Matlab exécute les instructions au fur et à mesure qu'elles sont données par
l'usager.
le logiciel se comporte comme une très bonne calculatrice graphique ;
-Mode exécutif: Matlab exécute ligne par ligne un fichier ".m" (Programme de langage matlab).
Pour le lancer, il suffit double clic sur l'icône Matlab qui se trouve sur le bureau,
une fois vous commencez, une fenêtre de commande s'ouvrira avec un message de sollicitation.
L'application vous offre plusieurs fenêtres dont une fenêtre principale contenant la fenêtre commande
avec le rompt >> .Ce critère apparaissant à gauche et indiquant que l'interpréteur est prêt à recevoir
des commandes.
On peut utiliser Matlab
- soit en entrant directement au clavier depuis une fenêtre de commande des instructions à la
suite du prompteur >> ;
- soit sous forme de séquences d’expressions ou scripts enregistrées dans des fichiers-texte
appelés m-files et exécutées depuis la fenêtre de commande ;
- soit plus rarement sous forme de fichiers binaires appelés mex-files ou fichiers .mex générés
à partir d’un compilateur C ou fortran.
Remarque: Il est à noter que toutes les commandes sont en minuscules et en anglais.
On quitte MATLAB en tapant quit ou exit dans la fenêtre de commande.
4. 1. Les Vecteurs
𝑋1
𝑋2
.
Un vecteur colonne de dimension n est une matrice de n x 1 .
.
.
[𝑋𝑛 ]
-Si le vecteur à déclarer c'est un vecteur colonne je sépare entre ses éléments par un point-virgule «
; » ou entrée (sépare les lignes entre elles). Ex : U2= [3;6;7]
- Si le vecteur à déclarer commence par X1 et termine par Xn avec un pas P ,il faut le définir comme
suit: U3= X1: P: Xn % donne vecteur ligne
- Si le vecteur à déclarer commence par X1 et termine par Xn avec un N éléments , il faut le définir
comme suit: U4= linspace(X1 , Xn , N) % donne vecteur ligne
Exemples
Nous utilisons le % pour ajouter un commentaire
>>V=[2 6 8] % donne un vecteur ligne 2 6 8
sqrt( ) donne la racine, ^: pour calculer la puissance et cos(pi/6) l'angle doit être en radiant.
Remarques:
Lorsque l’on met un ; à la fin d’une commande, le résultat n’est pas affiché à l’écran.
On peut taper plusieurs commandes Matlab sur une même ligne, en les séparant par une
virgule(,)
Exemple:
>> A=5, C=3,P=A*C
4. 2. Les Matrices
Pour séparer les colonnes on utilise l’espace ou la virgule.
Pour séparer les lignes on utilise le point-virgule ;
4. 2. 1. Matrices particulières
>>I=eye(3,3) % déclaration de la matrice d'identité de 3x3
I=
1 0 0
0 1 0
0 0 1
>>Y=ones(3,5) % déclaration de la matrice unitaire de 3x5
Y=
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
x = b/A est la solution du système x*A = b, avec x et b sont maintenant des vecteurs lignes.
A\b =inv(A)*b
A/b =A*inv(b)
Remarque: Il faut noter que l’on peut multiplier, diviser et faire toute sorte d’opérations sur les
tableaux en utilisant les opérateurs usuels. La très grande majorité des fonctions mathématiques
peuvent opérer avec des tableaux. Si les tableaux ne sont pas de même taille, quelques précautions
sont à prendre Si l’on veut diviser chaque élément du tableau a par l’élément correspondant du
tableau b,
Exemple: >>a=[2 4 6]; >>b=[1 2 3];
>>a./b
ans =2 2 2
alors que >>a/b ans = 2
Il est possible de réaliser des opérations terme à terme sur les matrices (les matrices sont alors
assimilées à des tableaux). Les deux opérateurs + et – travaillent déjà terme à terme. Pour les autres
opérateurs *, /, \, et ^ , il est nécessaire de les précéder d’un point « . » pour préciser que les
opérations se font terme à terme.
.* produit élément par élément de matrices
.ˆ puissance élément par élément de matrices
./ division élément par élément de matrices
Il y a bien sûr beaucoup d’autres commandes.
4. 2. 2. Sous matrices
Exercice:
Effectuer les commandes Matlab suivantes et commenter les résultats obtenus
m2=M1(:,1:2)
m3=[diag(M1,-1) M1(2:4,1:2)]
M1^2
M1.^2
Pour calculer la valeur de la fonction f pour x=2 , il faut introduire toujuors en premier la valeur de
Exemple: >>x=2
>>vf= eval(f)
Calcul de sa dérivée
- Pour calculer la dérivée par rapport à x
>>diff(f) % calcule la dérivée de f par rapport à x
Donne ans =
2ax+b
- Pour calculer la dérivée par rapport à a
>>diff(f,a) % calcule la dérivée de f par rapport à a
Donne ans =
x^2
- Pour calculer la dérivée seconde par rapport à x et a :
diff(f,2)ou bien diff(f,x,2) %pour dériver deux fois par rapport à "x " deux fois
diff(f,a,2) %pour dériver deux fois par rapport à "a" deux fois
La fonction diff peut également agir sur une matrice. Dans ce cas la dérivation est effectuée sur
chaque élément de la matrice.
Pour ouvrir il suffit de cliquer File/new/M-File ou File/Open dans le coin supérieur gauche
de menu principal, ou écrire edit dans la command windows
L’exécution du script (les commandes une après une) se fait à l’aide du bouton Save and Run
ou avec le menu debug/Save and Run ou bien, simplement, en appuyant sur la touche fonction F5.
Les résultats d’exécution sont affichés dans la fenêtre des commandes de la même manière que si les
commandes sont entrées dans cette fenêtre.
Les variables d’entrée sont var1, var2 ... et les résultats sont res1, res2, ... Autant de variables et de
résultats que nécessaire peut être utilisé. Le fichier doit être sauvegardé sous le nom nomfonction.m
et peut contenir plus d’une fonction.
8. Graphisme
8. 1. La fonction plot
Soient x et y deux listes (ou deux vecteurs) de même longueur. La fonction plot(x, y) trace dans la
fenêtre active le graphe de y en fonction x. Lorsqu’il n’y a pas de fenêtre active, MATLAB crée
automatiquement une nouvelle fenêtre. On peut tracer les graphes de plusieurs fonctions
simultanément.
Exemple 1: courbe avec plot
0.8
0.6
0.4
0.2
-0.2
-0.4
-0.6
-0.8
-1
0 1 2 3 4 5 6 7
fonction plot
0.8
0.6
0.4
0.2
-0.2
-0.4
-0.6
-0.8
-1
0 1 2 3 4 5 6 7
Exemple3:
figure(1) 0.8
cos x
plot(x,y,'--v') 0.6
0.4
xlabel('coordonnée x')
0.2
coordonnée y
ylabel('coordonnée y') 0
title('y=f(x)') -0.2
-0.6
grid;
-0.8
-1
0 1 2 3 4 5 6 7 8 9 10
coordonnée x
% Lorsque plusieurs tracés ont lieu dans la même fenêtre, nous utilisons le hold on
figure(2)
plot(x,y)
legend('cos x','sin x')
hold on % pour tracer deux courbes sur le même diagramme
plot(x,z,'cd')
plot(y,z,'g')
gtext('x égal à zéro')
hold off
grid;
0.8
0.6
0.4
x égal à zéro
0.2
-0.2
-0.4
-0.6
-0.8
cos x
-1
-2 0 2 4 6 8 10
figure (3)
subplot(3,3,1:3) % pour positionner les courbes
plot(x,y) 1
subplot(3,3,4:6)
0
plot(x,z)
-1
0 1 2 3 4 5 6 7 8 9 10
subplot(3,3,7)
1
plot(y,z)
0
-1
0 1 2 3 4 5 6 7 8 9 10
1
-1
-1 0 1
figure(4)
loglog(x,y)
semilogy(x,y) % X linéaire et y logarithme
figure(5)
plot3(x,y,z)
plot 3
0.5
-0.5
-1
1
0.5 10
8
0 6
-0.5 4
2
-1 0
figure(6)
bar(x,y) % Diagramme à barres
barh(x,y)
10
-2
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1
9. Boucles et Test
Les principales instructions de contrôle proposées par Matlab sont for, while et if .Elles
fonctionnent à peu près comme leurs équivalents dans les autres langages de programmation.
Avant de décrire la syntaxe du test sous Matlab, indiquons les principaux opérateurs de relation ainsi
que les opérateurs booléens qu'utilise Matlab.
9.1. Boucle if
Les instructions ne seront exécutées que si l'expression est vraie. Il est possible de proposer une
alternative, en indiquant les instructions à exécuter lorsque expression est fausse.
Exemple:
Exemple
Les instructions suivantes permettent de calculer les valeurs approchées de E pour x de 1 jusqu'à 3
avec un pas de 0.3.
E=x^2+x-3
Programme
x=1:0.3:3
for i=1:length(x)
E=x(i)^2+x(i)-3
end
Plusieurs boucles peuvent être emboîtées. Comme Matlab est un langage interprété, il faut
essayer d’éviter les boucles quand c’est possible. Pour cela on peut utiliser des boucles implicites.
1
Pour construire la matrice H = (hi,j) avec : 𝐻𝑖,𝑗 = 𝑖+𝑗−1
end
end
clear all,clc
n=0 % initialisation de n
while n<5 % tant que n inférieur à 5
w=2*n % calcul de w
n=n+1; % l'incrémentation est importante sinon
la boucle sera infinie
end %fin de boucle