Académique Documents
Professionnel Documents
Culture Documents
Initiation à MATLAB®
Filière SMP-S6
1
Sommaire
I Introduction : ..........................................................................................................................3
2
I Introduction :
3
http://www.mathworks.com/access/helpdesk/help/techdoc/matlab.shtml
Matlab, ses boîtes à outils et Simulink sont des produits développés par la société The
MathWorks,Inc.. Matlab® et Simulink® sont des marques déposées par cettesociété!
II Système MATLAB :
Par exemple :
>>ans= 6
-0.6536
4
-Langage MATLAB : est un langage matriciel avec des déclarations de contrôle de boucles,
des fonctions, des structures de données, des entrées/sorties et des fonctionnalités de
programmation orientée objet. Et le plus important est que Matlab est un langage interprété :
toute commande tapée dans la fenêtre de commande est immédiatement exécutée (après la
frappe de return).
-Graphiques : MATLAB possède une facilité extensive permettant d'afficher des vecteurs et
des matrices sous forme de graphique. Il comprend des fonctions de haut-niveau pour la
visualisation bidimensionnelles et tridimensionnelles de données, d'images, d’animations. Il
comprend également des fonctions de bas niveau, ce qui vous permet de personnaliser
entièrement l'apparence des graphiques ainsi que de construire des interfaces graphiques
complètes pour vos applications MATLAB.
Matlab affiche des nombres de 4 chiffres après la virgule, tandis que la présentation
interne est faite à 16 chiffres. La commande format permet de modifier l’affichage du format
des différentes variables.
Matlab offre une aide en ligne très complète. Elle peut être obtenue directement dans
la session en tapant à l’invite : help non de la commande.
Exemple :
5
lookforkeyword : lance une recherche sur toutes les fonctions Matlab, et retourne toutes les
fonctions dont l’aide contient le mot cl´e keyword
De même que la plupart des autres langages de programmation, Matlab fournit des
expressions mathématiques, mais il implique généralement que des matrices. Les éléments
constitutifs de ces expressions sont : Nombres, Opérateur, Fonctions, Variable.
Exemple :
1. Nombre
2. Opérateur
.* , ./ , .^ ,... (les opérateurs usuels précédés d’un point) opérations sur les matrices
effectuées terme à terme (ex. calculer A = [1 : 6]. ∗ [7 : 12])
= =, >=, <=, <, > comparaison des éléments de deux matrices, terme à terme
abs, angle, real, imag opérations usuelles sur les nombres complexes
6
D’autre fonction : pour avoir plus d’informations tape help fun
3. Fonction
4. Variable :
Le nom de variable est désigne par un identificateur qui est formé d’une combinaison
de lettres et de chiffres. Le premier caractère de l’identificateur doit nécessairement être une
lettre. Une variable peut être de type réel, complexe, chaîne de caractère ou logique.
Matlab considère toute variable comme une matrice (de dimension NxM). Une matrice
1×1 est interprétée comme un scalaire, celle ayant une seule ligne (1xN) ou une seule colonne
(Nx1) comme un vecteur. Ainsi, dans Matlab, il n'est pas nécessaire de déclarer le type
(réelle, complexe, …) ou la dimension (scalaire, matrice) de la variable que l'on manipule, y
compris les tableaux. MATLAB différencie entre les variables majuscules et minuscules.
NB :
-Un point virgule « ; » à la fin de la ligne permet de ne pas afficher le résultat. Ceci est très
utile surtout lorsqu’on exécutera des programmes importants : l’affichage des résultats des
instructions dans la fenêtre de commande retarde l’exécution des programmes.
- On peut taper plusieurs commandes par ligne, séparées par une virgule ou un point virgule.
7
- Lorsqu’une ligne de commande est trop longue on peut l’interrompre par trois points « ... »
et la poursuivre à la ligne suivante.
- On peut aussi mettre des commentaires dans une ligne de commande à l’aide du signe " % ".
a. Variables scalaires :
Les scalaires réels peuvent présenter comme suivant : >> gamma = 2 ; x=pi/4 ;
b. Vecteurs
Vecteur ligne
>>n = length (vl) % la commande length renvoie le nombre de composantes d’un vecteur
n=5
C’est un vecteur qui utilise un opérateur d’énumération, dont le premier élément est début
puis début+ pas jusqu’à début+n*pas tel que 𝑑é𝑏𝑢𝑡 + 𝑛 ∗ 𝑝𝑎𝑠 ≤ 𝑓𝑖𝑛 ≤ (𝑛 + 1) ∗ 𝑝𝑎𝑠
Vecteur colonnes
8
Cumsum(x) : somme cumulée
c. Matrices
Pour créer une matrice dans Matlab, on doit suivre la construction suivante :
𝑎11 𝑎12 … 𝑎1𝑚
𝑀 = ( 𝑎𝑖1 𝑎𝑖2 … 𝑎𝑖𝑚 )
𝑎𝑛1 𝑎𝑛2 … 𝑎𝑛𝑚
Calcule matriciel
Exemple :
9
Exercice : Créer sur l’espace de commande les Matrice M et N suivants :
16 4 6 1 0 2
𝑀= (5 1 0) 𝑁 = ( 8 2 3)
0 12 8 12 4 0
- Calculer la somme, la soustraction, la multiplication et la division matricielle entre M et N.
- Calculer le produit et la division droite des deux matrices élément par élément.
10
Quelques fonctions matricielles:
rang(M) : rang de M
ones(n,m) Génère une matrice de taillenxm dont tous les éléments égaux à1
Créer une matrice R= rand(3,2), calculer le déterminant, le diagonale et les valeurs propres de
R. Calculer C= 2*eye(3,2) – ( diag(R) + eig ( R ))
1. Graphisme
Matlab offre une grande variété de technique pour l’affichage des données sous forme
graphique doit en 2D ou bien en 3D. Le processus de visualisation des données implique une
série d’opérations.
11
a. Graphique 2D
Dans cette partie, nous avons s’intéressé à la commande plot et fplot. La différence
entre ces deux commande c’est que avec plot on doit toujours utiliser des vecteurs alors il faut
définir les vecteurs, la fonction et l’intervalle [XminXmax]. Par contre fplot nécessite la
définition de la fonction et de l’intervalle où il faut la tracer.
Les exemples suivant montrent la variation de la structure de commande pour chaque
cas pour l’équation 𝑓(𝑥 ) = 𝑥 3 − 2 sin(𝑥 ) + 1
% définir un vecteur de points dans [-1, 1] % définir un vecteur de points dans [-1, 1]
>> plot(x,y) ; grid ; % grid dessine une grille de On peut aussi utiliser
repère
>>fplot (‘polyval([-1 ,0, 1],x)’,[-3 , 3])
12
superposer plusieurs courbes
A chaque nouvelle commande plot, la figure est remplacée. Pour garder plusieurs
courbes, il faut autoriser la superposition de graphique. Ceci est générer à l’aide de la
commande hold on qui superposé les plots jusqu'à la désactivation par hold off, ou bien avec
l’utilisation de la commande plot en spécifiant autant de couples (abscisses, ordonnées) qu’il
y a de courbe à tracer.
Exemple :
13
Fonction graphique plus recommandé :
title, xlabel, titre général, titre sur les axes et légende d’une figure
ylabel, legend
sélection manuelle de l’´echelle d’un graphique.
axis >> axis([xmin,xmax,ymin,ymax)]
permet de superposer des graphiques sur une même figure, on peut
hold on /off utliser aussi >> plot(x1,y1,’-g’,x2,y2,’ :rx’)
b. Graphique 3D
De même que le graphisme en 2D, Matlab utilise différent fonction pour tracer un
graphe en trois dimensions. Nous montrons ici les possibilités de Matlab en graphisme 3D sur
quelques exemples.
Courbe dans l’espace (ligne dans l’espace)
Instruction plot3 :elle est identique à plot, elle ne fait appel qu’à une coordonnée
supplémentaire. Sa syntaxe de pase est plot3(x,y,z).
Exemple :
14
Tracé des surfaces
La fonction mesh trace un maillage (séries de lignes entre les points) tandis que la
fonction surf trace une surface. Ces fonctions prennent en argument 2 matrices générées à
partir de 2 vecteurs (x et y, pas nécessairement de même taille) et une matrice Z de dimension
(length(y),length(x)). Pou chaque point du plan (x(i),y(j)), elles affichent la valeur (ou niveau)
Z(j,i). Les 2 premières matrices obtenues à l’aide de la fonction meshgrid définissent tous les
points du quadrillage. En fait, le niveau Z(j,i) de chaque point du maillage est calculé à partir
des couples (X(j,i),Y(j,i)).,Une quatrième matrice peut être précisée pour définir une échelle
de couleur associée au niveau du maillage. Cette échelle est basée sur une palette de couleurs
prédéfinie par la valeur courante de la variable colormap.
Exemple :
15
NB : Nous pouvons utiliser différents commandes complétant le graphisme en 3D
Pour présenter sur une figure plusieurs graphiques, on utilise la commande subplot.
La fonction subplot(m,n,p) ou subplot(mnp) subdivise la fenêtre graphique en m x n (m lignes
et n colonnes) cadres séparés. Le pème cadre est choisi de telle sorte que p=1 correspond à
(m=1, n=1), p=2 → (m=1, n=2), ….
16
II.5 Scripts et fonctions Matlab
17
II.6 Commandes structurées
Les structures usuelles sont bien sûr aussi disponible sous Matlab, par exemple :
for . . .end , if . . .else. . .end , while . . .end , switch . . .case. . .end , . . .
L’aide (par exemple help for) permet de retrouver facilement la syntaxe de ces structures.
Exercice 1:
1
1-Créer un fichier fonction dont en va étudier la fonction 𝑓 (𝑥, 𝑙 ) = sous le nom de
𝑥 2+𝑙
f1.m. Notant que la fonction f1 dépend de deux paramètre l et x.
2- Dans un fichier script, déterminer les valeurs de fonction f1. On considère l=1
(constant) et x varié dans un intervalle [0,1] de pas h.
Définir un vecteur X d’abscisses x pour discrétiser l’intervalle [0,1] avec le pas
0 .1.(utiliser la boucle FOR)
Définir un vecteur F qui présente les valeurs de la fonction f(x,l) (boucle FOR)
Afficher les deux vecteurs
Dessiner la variation de f en fonction de x.
Exercice 2 :
On considère l’approximation numérique de la dérivée d’une fonction par différences finies
de premier ordre avant
𝑓 (𝑥 + ℎ) − 𝑓(𝑥)
𝑓 ′ (𝑥 ) ≃
ℎ
1. Définir un tableau d’abscisses pour discrétiser l’intervalle [0 ,1] avec le pas h=0.1
2. Calculer dans un tableau D la dérivée exacte de la fonction 𝑥 → sin(𝑥) aux points x et dans
un tableauD1 les valeurs approchées par la formule de l’équation (1).
3. Calculer l’erreur maximale commise en faisant cette approximation sur l’intervalle [0, л].
Diminuer h, que remarque-t-on ?
18