Vous êtes sur la page 1sur 41

OUTILS INFO2: MATLAB

Pr Nidal LAMGHARI
nidaliso@yahoo.fr

2019-2020
Plan
 1. Philosophie de Matlab
 2. Présentation du logiciel
 3. L’interface de Matlab
 4. Scripts & fonctions
 5. Outils de base
 6. Vecteurs
 7. Matrices
 8. Représentation graphique
 9. Notions de programmation
Nidal LAMGHARI
Objectifs du cours
 Introduire les outils nécessaires à l’utilisation de
Matlab
 parcourir les bases de Matlab pour analyser des
données efficacement et simuler numériquement des
systèmes physiques
 Ce cours ne prétend pas formel et rigoureux du
point de vue mathématique
 On présente donc uniquement les points nécessaires
à la compréhension des concepts sans entrer dans
les détails.
1. Philosophie de Matlab
 Matlab est l’outil de référence pour la simulation
numérique, notamment en ce qui concerne
l’Automatique, Mécanique, Electronique …etc .

 Offre des possibilités avancées en matière


d’identification et de commande.

 Permet de résoudre une grande diversité de problèmes


de simulation, dans plusieurs domaines: le traitement du
signal, les statistiques, la vision...
1. Philosophie de Matlab
 Constitue un système interactif et convivial de calcul
numérique et de visualisation graphique.
 MatLab manipule uniquement des variables
numériques.
 Les objets le plus communs en matlab sont la
matrice et le vecteur.
2. Présentation du logiciel
 MATLAB la contraction du terme anglais matrix
laboratory
 C’est un langage de programmation et en même
temps un environnement permettant d'utiliser ce
langage.
 Il a été développé dans les années 70 pour des
applications impliquant des matrices, l'algèbre
linéaire et l'analyse numérique.
2. Présentation du logiciel
 Le langage ne nécessite pas de compilation.
 Il est interprété et est donc traduit en langage
machine à l’exécution.
 Matlab est plus qu’un langage de programmation,
puisqu’il s’agit d’une console d’exécution.
 Permet d’exécuter des fonctions, d’attribuer des
valeurs à des variables, etc.
 Permet d’effectuer des opérations mathématiques,
de manipuler des matrices, de faire des
graphiques, etc.
3. L’interface de Matlab
 Selon la version utilisée, l’interface peut changer l
légèrement mais les points centraux resteront
identiques.
3. L’interface de Matlab
 3.1 Command Window
 C’est le terminal dans lequel on tape les commandes et
sur lequel on verra l’affichage des résultats.
 Une ligne commence toujours par >>

 Essayer la commande suivante:

 Comparer à la commande
3. L’interface de Matlab
 3.1 Command Window
 En comparant les deux commandes on relève:
 Matlab définit une variable « ans », lorsqu’on effectue un
calcul.
 Cette variable (qui veut dire answer/réponse), s’affiche sur
le terminal lorsque l’on omet le signe « ; » en fin de ligne.
 Dans cet exemple « ans » est une matrice de taille 1x1 (une
ligne par une colonne).
3. L’interface de Matlab
 3.1 Command Window
 La commande Whos:
 Une commande utile lorsqu’on connait pas le type de la variable
qu’on vient de créer (ou on a un doute)

Nom de la variable Nombre d’octets


Sa taille Type de données
utilisés

 La commande whos() peut aussi être utilisée seule (sans argument).


Elle retourne alors la liste des variables.
3. L’interface de Matlab
 3.1 Command Window
 La commande clc:
 Permet de vider l’écran de Command Window pour repartir
sur une fenêtre propre
 Matlab supporte l’auto-complétion:
 Si vous connaissez le début d’une commande, vous pouvez
n’entrer que les premières lettres et utiliser la touche Tab
pour chercher parmi les commandes commençant par ces
lettres.
3. L’interface de Matlab
 3.2 Workspace
 Dans cette fenêtre, on obtient la liste des variables
connues par Matlab.
 Il est possible de double-cliquer sur une variable pour
l’afficher:
 Offre de nombreuses options telles que : copier, coller,
supprimer etc.
3. L’interface de Matlab
 3.2 Command history
 Lorsqu’on effectue une analyse de données sur les
résultats d’une expérience il est essentiel de conserver
une trace de toutes les opérations qui ont été réalisées.
 Il est possible de cliquer sur une commande dans cette
fenêtre pour la ré exécuter.
 Il est parfois important d’enregistrer dans un fichier
indépendant la liste des commandes utilisées.
 Pour ce, on utilise :
3. L’interface de Matlab
 3.2 Command history
 Lorsqu’on effectue une analyse de données sur les résultats
d’une expérience il est essentiel de conserver une trace de
toutes les opérations qui ont été réalisées.
 Il est possible de cliquer sur une commande dans cette
fenêtre pour la ré exécuter.
 Il est parfois important d’enregistrer dans un fichier
indépendant la liste des commandes utilisées.
 Pour ce, on utilise :
 Elle va créer un fichier filename qui enregistrera toutes les
commandes entrées jusqu’à ce qu’on utilise diary off.
3. L’interface de Matlab
 3.2 Current Folder
 Diary permet de créer un fichier
 Où sera stocké ce fichier?

 Matlab définit ce qui s’appelle lePATH(chemin).

 Il s’agit du dossier dans lequel Matlab va chercher


lorsqu’on appelle une commande.
 Le PATH est divisé en deux sous-parties :
 Le MATLABPATH
 Le USERPATH.
3. L’interface de Matlab
 3.2 Current Folder
 Diary permet de créer un fichier
 Où sera stocké ce fichier?

 Matlab définit ce qui s’appelle lePATH(chemin).

 Il s’agit du dossier dans lequel Matlab va chercher


lorsqu’on appelle une commande.
 Le PATH est divisé en deux sous-parties :
 Le MATLABPATH
 Le USERPATH.
3. L’interface de Matlab
 3.2 Current Folder
 MATLABPATH:
 Correspond aux différents dossiers auxquels Matlab va
faire référence pour utiliser des fonctions prédéfinies par
Matlab.
 Il s’agit des chemins par défaut dans lesquels Matlab
cherche les fonctions
 il peut contenir un grand nombre de dossiers.
3. L’interface de Matlab
 3.2 Current Folder
 USERPATH:
 Un unique dossier qui est propre à l’utilisateur lors d’une
session.
 Il est fortement conseillé de définir le USERPATH,
immédiatement lorsqu’on commence une session Matlab.
 Le fichier diary par exemple est enregistré dans le
USERPATH.
 Deux méthodes peuvent être utilisées pour modifier le
USERPATH:
 En ligne de commande :
 ou bien en sélectionnant File> Set Pathdans les menus déroulants.
3. L’interface de Matlab
 3.2 Current Folder
 Une autre application très importante de la fenêtre
Current Folder est d’afficher la liste des fichiers de
données qi peuvent être chargés par l’utilisateur.
 Très souvent les données à analyser sont générées par
un autre logiciel puis importés dans Matlab via la
commande importdata(filename)
3. L’interface de Matlab
 3.3 Editor
 On peut souvent réaliser une tâche sous Matlab, en
utilisant uniquement la Command Window.
 Lorsque cette tâche devient plus complexe (plusieurs
dizaines de ligne de code), on utilise la fenêtre Editor.
 On crée un fichier .m qui peut être au choix:
 un script: est une suite de commandes qu’on aurait tout
simplement pu (aussi) taper dans la Command Window.
 ou une fonction(function en an-glais):permet d’ étendre les
possibilités au delà des fonctions préprogrammées par les
développeurs de Matlab.
3. L’interface de Matlab
 3.3 Editor
 Exemple:
 On peut réaliser une fonction « racineplus2(input) » qui a un
paramètre d’entrée input
 Cette fonction va calculer √(input+2)
 Pour créer un fichier .m on peut soit utiliser les menus contextuels, soit
entrer la commande : edit FileName.m
 On entre ensuite le code suivant :

 Lorsqu’on enregistre cette fonction sous forme d’un fichier .m, il faut
nommer le fichier « racineplus2.m » et d’enregistrer ce fichier dans le
USERPATH.
 Onpeut ensuite appeler cette fonction simplement dans la Command
Window par :
3. L’interface de Matlab
 3.4 Help
 Le menu d’aide de Matlab est une des bases de son succès .
 l’aide est essentielle lorsqu’on programme avec un langage
de haut-niveau comme Matlab:
 le nombre de fonctions est très important et la syntaxe est parfois
complexe.
 Pour accéder à l’aide on peut au choix sélectionner une
fonction et presser F1, taper help FunctionName ou utiliser
les menus déroulants
 Il est essentiel que vous vous familiarisiez avec les outils de
l’aide de Matlab.
4. Scripts&fonctions
 On commence par l’exemple ”HelloWorld ” tout
comme n’importe quel cours de programmation.
 La tradition d’utiliser ”Hello World ” comme
message de test a été initié par Brian Ritchie dans
le livre The C Programming Language qui a été
publié en 1978.
 Nous allons réaliser deux exemples de ce
programme pour mettre en évidence la différence
entre un script et une fonction.
4. Scripts&fonctions
 4.1 Scripts
 Le script est le fichier .m le plus simple.
 Il s’agit simplement d’une suite de commandes et
instructions mises bout à bout et sauvegardée dans un
fichier.
 Pour commencer on fixe le USERPATH.

 On crée ensuite un fichier .m dans ce dossier et on le


nomme « hello.m ».
 On édite ensuite le fichier .m comme suit:
4. Scripts&fonctions
 4.1 Scripts
 Enregistrer ensuite le script.
 Puis dans la fenêtre Command Window, taper la
commande: hello.
 Il s’agit ici du programme le plus simple possible de
Matlab.
 Essayons dans ce qui suit d’améliorer ce programme
4. Scripts&fonctions
 4.2 Fonction
 Une fonction va permettre de rentrer des arguments en
entrée et d’obtenir différentes variables en sortie.
 Modifier le script hello.m pour en faire une fonction qui
reçoit en entrée votre prénom et retourne ‘Hello Votre
prénom’ en sortie.
 Commencer de façon similaire au script :
 créer
un fichier .m, nommer le « hello2.m » et éditer le
comme suit:.
4. Scripts&fonctions
 4.2 Fonction
 Sauvegarder le fichier .m puis l’appeler depuis
Command Window.
 Cette fois la fonction a besoin d’un paramètre en
entrée
 Taper donc : hello2(’Ahmed’).
4. Scripts&fonctions
 4.2 Fonction
 La syntaxe d’une fonction:
 Définir ce que va retourner la fonction : function
[output1,output2 ... outputN].
 Puis nommer la fonction (dans notre exemple hello2()).
 Définir les paramètres d’entrée .
 Passer au corps de la fonction, qui doit contenir une
définition de toutes les variables de sortie output1,output2
…outputN.
 Une fonction se termine toujours par ‘end’.
4. Scripts&fonctions
 4.2 Fonction
 Une fonction permet d'effectuer des opérations sur une ou plusieurs entrées pour
obtenir un résultat (sortie) .
 Les variables internes ne sont pas disponibles à l'invite MATLAB.
 Par exemple, la fonction suivante (avec une seule sortie, le résultat de l'addition)
:
function z = my_function(x,y)
z = x + y;
u = x * y;
 produit la sortie suivante :

>> z = my_fonction(1,2)
z =3
>> whos
 Name Size Bytes Class
 z 1x1 8 double array
 Comment peut on procéder pour avoir accès au résultat de la multiplication?
5. Outils de base
 Le principe de base de Matlab est de considérer la
plupart des objets comme des matrices.
 Ainsi les opérations usuelles +,−, *, / doivent se
comprendre comme des opérations matricielles.
 Cette section est consacrée à ces opérations.
 On va s’organiser comme suit:
 Commencer par les matrices 1x1 (équivalent à un seul
élément)
 Puis les matrices 1xn ou nx1 (des vecteurs ligne ou
colonne).
5. Outils de base
 5.1 types de variable
 Il existe cinq grands types de variables sous Matlab :
les entiers, les réels, les complexes, les chaînes de
caractères et le type logique.
réel complexe Chaine de
caractères

entier
Variables logiques
(booléen)
5. Outils de base
 5.1 types de variable
 On peut alors vérifier le type des variables en utilisant
la fonction whos :
5. Outils de base
 5.2 Précision
 Une des limites lorsqu’on fait du calcul numérique:
 Ils’agit du réel le plus grand et le plus petit qui peuvent
être manipulés par Matlab et leurs précisions
 Les constantes realmax et realmin renvoient
respectivement le plus grand et le plus petit nombre à
virgule flottante manipulable.
 La constante eps renvoie la précision numérique
relative.
5. Outils de base
 5.2 Précision
 Rappels:
 Un ordinateur travaille uniquement en binaire (base 2).
 Les nombres entiers sont donc codés en binaire sur un
nombre plus ou moins important de bits.
 Pour coder un entier naturel (donc non négatif) sur 8 bits, on
aura accès à tous les entiers entre 0 et 28 −1 = 255.
 De même pour travailler avec des entiers relatifs, toujours
sur 8 bits, on aura accès aux entiers entre −27 = −128 et 27
− 1 = 127.
 Matlab supporte les entiers jusqu’à 64 bits
5. Outils de base
 5.2 Précision
 Rappels:
 Pour les nombres réels, il existe deux principaux types de
codage : simple précision (single) ou double précision
(double).
 Ces deux codages utilisent le principe de la virgule flottante
(float).
 Cela consiste à représenter un nombre par son signe (+1 ou
-1) s, les chiffres significatifs (ou mantisse) m et un exposant
e.
 Le nombre s’écrit alors s*m*10e.
 Lorsqu’il est codé en simple précision (c’est à dire sur 32
bits), le nombre se compose d’un bit de signe, 8 bits
d’exposant, et 23 bits pour la mantisse.
5. Outils de base
 5.2 Précision
 Rappels:

 Si la mantisse est codée sur 23 bits, cela signifie que l’on


peut obtenir les nombres entre 0 et 223−1 = 8388607,
 Un nombre réel codé en simple précision aura environ 7
chiffres significatifs (ce qui est parfois relativement peu).
 En double précision (c’est à dire sur 64 bits), le nombre se
compose d’un bit de signe, 11 bits d’exposant, et 52 bits
pour la mantisse:
 Dans ce cas, on obtient environ 16 chiffres significatifs (c’est
le sens de la constante eps).
5. Outils de base
 5.2 Précision
 Bien choisir son type de données permet de:
 optimiser la mémoire utilisée
 améliorer la rapidité et la précision des calculs numériques.
 Il s’agit donc d’un critère important lors de l’évaluation de la
qualité d’un code.
5. Outils de base
 5.3 Opérations sur les scalaires
 On s’intéresse aux opérations mathématiques de bases (+,−, *, /) avec des
matrices 1x1(des nombres).

 On peut travailler avec des variables qu’on définit nous même

 On peut aussi utiliser les fonctions


trigonométriques
5. Outils de base
 5.3 Opérations sur les scalaires
 Une liste (non exhaustive) des
fonctions incorporées dans
Matlab :
5. Outils de base
 5.3 Opérations sur les scalaires
 On peut aussi utiliser les
fonctions d’arrondis :

 Ainsi que les fonctions


d’arithmétique

 Avec des complexes on peut


utiliser :

Vous aimerez peut-être aussi