Académique Documents
Professionnel Documents
Culture Documents
Un outil très utilisé, dans les universités comme dans le monde industriel, qui
intègre des centaines de fonctions mathématiques et d’analyse numérique (calcul
matriciel —le MAT de Matlab—, traitement de signal, traitement d’images,
visualisations graphiques, etc.).
3
Introduction
Démarrer et quitter Matlab
Pour lancer Matlab, tapez
>> matlab dans votre console Linux (ou cliquez simplement sur l’icône dans un
environnement Windows).
Pour quitter, tapez
>> quit ou >> exit
Matlab fonctionne à l’aide de commandes qu’il faut apprendre à utiliser. Vous pouvez à
n’importe quel moment taper
>> help
pour savoir comment on utilise telle ou telle commande (par exemple essayez help
exit).
Le module d’aide est aussi assez efficace ; on peut par exemple une recherche de mots
clefs en tapant
>> lookfor sinus
on trouvera que la commande sin correspond, à la fonction sinus.
Interface Matlab
Workspace
Command Window
Command History
5
Interface matlab
6
Création fichier de commandes
Dans un premier temps, on peut se contenter d’introduire ses commandes une à une au
niveau de l’espace de travail où elles sont interprétées directement. Cependant, par la
suite, il est beaucoup plus pratique d’écrire sa séquence de commandes complète au
moyen d’un éditeur, puis de sauver le tout dans un fichier avec l’extension .m.
Cette séquence pourra alors être exécutée dans MATLAB par simple introduction du
nom du fichier.
Les variables dans Matlab
Dans un premiers temps, Matlab peut bien sûr s’utiliser comme une calculette.
Exemples:
>> 1+2 donnera 3,
>> 4ˆ2 retourne 16
>> (((1+2)ˆ3)*4)/2 donne bien 54.
Il est aussi possible, comme dans tout langage de programmation, de définir des variables
pour stocker un résultat:
>> a=1+2
>> b=2+3
>> a+b retourne bien 8.
Les calculs avec les variables complexes sont parfaitement possibles, en utilisant i ou j
(avec bien évidement i² = j²= −1) :
>> a=1+2i ;
>> b=2+3i ;
>> a*b donne la réponse attendue, ans = -4 + 7i.
Exemples sur Matlab
Exemples sur Matlab
Exemples sur Matlab
Les variables dans Matlab
Il est utile de savoir quelles sont les variables que nous avons utilisées depuis le début
de la session, et pour cela il suffit d’écrire:
>> who
Pour en savoir plus sur elles:
>> whos
Enfin, pour les détruire, on utilise:
>> clear a
Pour toutes les variables:
>> clear all
Certaines variables très utiles sont déjà définies, comme :
>> pi ou >> ans qui retourne la dernière réponse donnée par Matlab.
Il est aussi utile de savoir que taper sur ↑ peut rappeler les commandes précédentes (la
flèche ↓ permet de revenir) et taper la première lettre et appuyer sur la flèche vers le
haut permet de faire apparaître une commande déjà utilisée.
Les variables dans Matlab
• Les noms de variables peuvent contenir jusqu'à 63 caractères
• Les noms de variables doivent commencer par une lettre et peuvent être
suivis par lettres, chiffres et caractères de soulignement.
Exemples:
>> X = 2;
>> Abc_123 = 0,005;
>> 1ab = 2;
Error: Unexpected MATLAB expression.
L’opérateur colon « : »
En Matlab, quand on écrit “1 :10” par exemple, cela signifie “tous les nombres de 1
a 10” (c.à.d. 1 2 3 4 5 6 7 8 9 10),
et “1 :2:10” signifie “tous les nombres de 1 a 10 avec un pas de 2 (et donc les
nombres : 1 3 5 7 9)”, le pas étant unitaire par défaut.
Les vecteurs
Pour définir un vecteur v, par exemple v = (11 22 33 44 55), on utilise:
>> v=[11 22 33 44 55]
La commande >> v’ donne ensuite la transposée de ce vecteur, c’est-`a-dire ici un
vecteur colonne.
On peut aussi écrire:
>> z=[11 ; 22 ; 33 ; 44 ; 55 ;] pour obtenir directement un vecteur colonne z, mais il
est bien plus simple d’écrire:
>> z=v’ ou encore >> z=[11 22 33 44 55]’
Les vecteurs
Pour obtenir:
Il est aussi possible d’utiliser ces notations avec notre opérateur “ :” pour définir un
nouveau vecteur. Par exemple si l’on écrit [1 :1 :5], on définit un vecteur allant de 1 à 5
avec une incrémentation unité.
>> w=[1 :1 :5] ou encore >> w=[1 :5] nous permettent de définir le vecteur w = (1 2 3 4
5) Les mêmes opérations sont bien sûr possibles sur les vecteurs colonnes.
Exemple :
>> vec=[1 :2 :10]’ définit le vecteur:
Les vecteurs
Les vecteurs
Pour accéder a une valeur particulière d’un vecteur, on écrira :
>> v(2) qui donne simplement accès au 2ème élément, c.-`a.-d. ici la valeur 22.
Il est aussi possible d’utiliser les “ :” pour sélectionner plusieurs éléments d’un vecteur
Exemples :
>> v(1 :3) donne accès aux éléments qui vont de 1 à 3 (avec un pas de 1 sans plus de
précision, donc les éléments 1, 2 et 3).
Cette commande retourne le vecteur (11 22 33).
On peut aussi écrire:
>> v(1 :2 :5) qui donne accès aux éléments qui vont de 1 à 5, mais en incrémentant
avec un pas de 2.
Le vecteur (11 33 55) est retourné.
Si l’on écrit:
>> v tout le vecteur est retourné, mais l’on obtient le même résultat par:
>> v( :) le symbole “ :” sans autres précisions signifiant “tout le vecteur”.
Les vecteurs
Les vecteurs
Matlab permet la multiplication des vecteurs, cependant on surveillera l'ordre de ce
que l'on écrit:
Si on prend le vecteur:
vec= (1 2 3 4 5)
Les matrices
Il suffit en fait d'ajouter une dimension aux vecteurs pour créer des matrices avec les
mêmes notations. Ainsi:
>> A=[1 2 3 ; 2 4 5 ; 6 7 8 ;]
Génère la matrice:
Il est important de bien faire attention à la taille des objets que l'on définit sous peine
d'obtenir des messages d'erreur.
Si l'on veut créer une matrice à partir de ses colonnes, il suffit d‘écrire:
>> A=[[1 2 6]' [2 4 7]' [3 5 8]']
Les matrices
Pour lire les éléments, on utilise les mêmes méthodes que précédemment.
>> A(1,3)
permet d'accéder à l‘élément (1,3) de la matrice A, qui est ici 3.
On peut accéder à toutes les valeurs d'une matrice par la notation " :" :
A( :,2) pour obtenir la deuxième colonne de A
>> C=[1 3 4 ; 5 2 1 ; 3 1 2]
>> b=[3 1 2 ]
>> v=[1 3 4 ]
>> v*b‘
>> v'*b
>> A*C
>> C*A
>> A*v'
Opérations matricielles avec les vecteurs et les
matrices
Opérations matricielles avec les vecteurs et les
matrices
Opérations matricielles avec les vecteurs et les
matrices
Pour les matrices carrées, il existe aussi des fonctions spécifiques extrêmement utiles :
1. inv(A) calcule l'inverse de A.
2. det(A) calcule le déterminant de A.
3. diag(A) retourne la diagonale.
Opérations matricielles avec les vecteurs et les
matrices
Matlab permet aussi d'effectuer des inversions de matrices, et donc de résoudre
rapidement des systèmes d‘équations linéaires.
Par exemple, pour résoudre un système du type A *x = b, la solution est donnée par
x = A-1.b.
Pour spécifier que l'on utilise les éléments et non pas les matrices, on écrit par exemple -
pour la multiplication- « .* » au lieu de «* ».
Certaines fonctions, qui ne sont pas destinées directement aux matrices, s'appliquent
directement aux éléments et n'ont donc pas besoin du point :
>> sin(v)
>> log(C)
>> exp(A)
>> 0.5-C
Dans un vecteur
Afin d'obtenir le minimun/maximum d'un vecteur, il suffit d'utiliser les
fonctions min et max de MATLAB :
L'indexage s'effectue :
•soit avec () pour récupérer la cellule ;
•soit avec {} pour récupérer la valeur contenue dans la cellule.
•Comment accéder à un élément particulier d'une cellule ?
•Comment concaténer des tableaux de cellules ?
Alors :
ENREGISTRER LES VARIABLES DE L’ESPACE DE TRAVAIL DANS UN FICHIER
2. Si des données sont sous forme de matrices régulières dans un fichier (ex
exercice1.dat ou file500.txt), vous pouvez charger ces données en tapant:
>> load file500.txt
la matrice de données est alors disponible dans l'espace matlab sous le nom
file500.
3. Si des données sont dans un fichier excel (ex matlab_TD.xls), vous pouvez
charger ces données en tapant:
>> [data,texte]=xlsread(‘matlab_TD.xls')
la matrice de données est alors disponible dans l'espace matlab sous le nom
data. Si il y avait du texte en en-tête des données, il est dans texte.
Graphique 2D
Une courbe 2D est représentée par une série d'abscisses et une série
d'ordonnées. Le logiciel trace généralement des droites entre ces points. La
fonction de MATLAB s'appelle plot.
L'instruction plot
L'utilisation la plus simple de l'instruction plot est la suivante.
plot ( vecteur d'abscisses, vecteur d'ordonnées ) ou encore,
plot ([ x1 x2 ... xn ], [ y1 y2 ... yn ])
Les vecteurs peuvent être indifféremment ligne ou colonne, pourvu qu'ils soient
tous deux de même type.
Exemple:
Si on veut tracer sin(x) sur l'intervalle [0; 2π], on commence par définir une
série (de taille raisonnable, disons 100) de valeurs équidistantes sur cet
intervalle :
>> x = 0: 2*pi/100 : 2*pi;
puis, comme la fonction sin peut s'appliquer terme à terme à un tableau :
>> plot(x, sin(x))
qui fournit le graphe suivant dans la fenêtre graphique :
On remarquera que tout ce que demande plot, c'est un vecteur d'abscisses et un
vecteur d'ordonnées.
Les abscisses peuvent donc être une fonction de x plutôt que x lui-même.
Il est donc possible de tracer des courbes paramétrées :
>> plot(cos(x), sin(x))
Superposer plusieurs courbes
Il suffit de spécifier autant de couples (abscisses, ordonnées) qu'il y a de courbes
à tracer. Par exemple pour superposer sin et cos :
>> plot(x, cos(x),x, sin(x))
Les deux courbes étant en réalité dans des couleurs différentes. Cette méthode
fonctionne même si les abscisses des deux courbes ne sont pas les mêmes.
Exercice:
Tracer le graphe de la fonction x ==> x*sin (x) sur [0; 2π].
>> x = 0:0.1:2*pi;
>> plot(x, x*sin(x))
??? Error using ==> *
Inner matrix dimensions must agree.
C'est l'instruction title à laquelle il faut fournir une chaîne de caractères. Le titre
apparaît en haut de la fenêtre graphique :
>> plot(x,cos(x),x,sin(x))
>> title('Fonctions sin et cos')
Labels
Il s'agit d'afficher quelque chose sous les abscisses et à coté de l'axe des ordonnées:
>> plot(x,cos(x))
>> xlabel('Abscisse')
>> ylabel('Ordonnée')
Tracer un quadrillage
C'est l'instruction grid, qui utilisé après une instruction plot affiche un quadrillage
sur la courbe. Si on tape à nouveau grid, le quadrillage disparaît.
Légendes
subplot (Nbre pavés sur hauteur, Nbre pavés sur largeur, Numéro pavé)
La virgule peut être omise. Les pavés sont numérotés dans le sens de la lecture
d'un texte , de gauche à droite et de haut en bas :
Une fois que l'on a tapé une commande subplot, toutes les commandes
graphiques suivantes seront exécutées dans le pavé spécifié.
Exemple:
>> subplot(221)
>> plot(x,sin(x))
>> subplot(222)
>> plot(x,cos(x),x,sin(x),'-.')
>> subplot(223)
>> plot(cos(x),sin(x))
>> subplot(224)
>> plot(sin(2*x),sin(3*x))
Axes et Zoom
Il y a deux manières de modifier les valeurs extrêmes sur les axes, autrement
dit de faire du zooming sur les courbes. La plus simple est d'utiliser le bouton
de la fenêtre graphique.
Vous pouvez alors :
-encadrer une zone à zoomer avec le bouton de gauche de la souris,
-cliquer sur un point avec le bouton de gauche. Le point cliqué sera le centre
du zoom, ce dernier étant effectué avec un facteur arbitraire
Maintien du graphique
Par défaut une instruction plot efface systématiquement le graphique
précédent. Il est parfois utile de le conserver et de venir le surcharger avec
une nouvelle courbe. Pour cela on utilise la commande hold. Pour démarrer le
mode surcharge, taper hold on, pour revenir en mode normal, hold off.
load data.txt ;
x=data( :,1) ;
y=data( :,2) ;
plot(x,y)
La première commande lit le fichier et crée une matrice (avec le même nom)
contenant ces données. On copie ensuite la première colonne dans le vecteur x,
la seconde dans le vecteur y, et l'on affiche finalement le graphe.
Fichiers de commande (”script files”)
Un fichier de script est un fichier externe contenant une suite d'instruction MATLAB.
Les fichiers de script ont une extension de nom de fichier .m.
Les M-files peuvent être des scripts qui exécutent simplement une suite
d'instructions ou peuvent être des fonctions (nous verrons les fonctions plus loin).
Exemple :
créer le script "test script" (soit vous tapez >>edit test_script.m, soit vous faites
'File‘->'New'->'Script' puis 'Save As' en spécifiant "test_script.m" comme nom) avec
la suite d'instructions suivante :
clear all %efface toutes les variables du workspace
a=1
b = 2;
c = 3, d = 4;
e = a*b/(c+d),
scal = 11;
Sauvegardez puis exécutez le script (menu Debug->Save&Run ou Flêche verte ou
F5).
Exemple:
Sauvez dans le répertoire courant les lignes suivantes sous le nom losange.m :
x=[0 -1 0 1 ; -1 0 1 0 ]
y=[-1 0 1 0 ; 0 1 0 -1]
plot(x,y)
Exemple:
function m = moyenne(x)
% MOYENNE(X) : moyenne des elements d’une liste ou d’un vecteur
% un argument autre qu’une liste ou un vecteur conduit a une erreur
x=input('valeur de x=')
[k,l] = size(x) ;
if ( (k~=1) & (l~=1) )
error('argument doit etre une liste ou un vecteur')
end
m = sum(x)/length(x) ;
• Le nom de la fonction et celui du fichier m-file qui en contient la définition
doivent être identiques. Ce fichier est le fichier m-file associé à la fonction.
• Un fichier m-file associé à une fonction (i.e. qui porte le nom d’une fonction
et contient sa définition) peut contenir d’autres définitions de fonctions. La
fonction qui partage son nom avec le fichier ou fonction principale doit
apparaître en premier. Les autres fonctions ou fonctions internes peuvent être
appelées par la fonction principale, mais pas par d’autres fonctions ou depuis
la fenêtre de commande.
Exercices:
Exercice 1:
Ecrire un script qui déclare la variable R contenant la valeur 20. Déclarer 3 variables D, P
et S et affecter respectivement à ces variables les valeurs du diamètre, du périmètre et
de la surface d’un cercle dont le rayon est R.
On affichera à l’écran le contenu de ces différentes variables selon le format suivant : Un
cercle de rayon WW a pour diametre XX, pour circonference YY et pour surface ZZ.
Exercice 3:
- On considère la fonction suivante f définie sur R par :
Écrire les instructions qui permettent à Matlab de tracer la fonction f sur [−1, 3]. On
utilisera un pas de 0.05.