Apprendre Matlab pas à pas

Apprendre Matlab pas à pas comment ça marche
...
1.1 Introduction
Pour lancer Matlab, il suffit de cliquer sur le raccourci Matlab situé sur le Bureau ou dans le menu Démar¬rer, selon l’ordinateur. Matlab est un gros programme. Il est donc normal qu’il prenne un peu de temps à démarrer, en fonction des autres programmes déjà ouverts sur votre ordinateur.
EXERCICE: Démarrez Matlab.
1.2 Fenêtres
L’interface de Matlab correspond à celle-ci.
Par défaut, on retrouve 3 fenêtres. La fenêtre en haut à gauche contient le Workspace. En dessous, on retrouve le Current Directory ainsi que le Command History. Enfin, à droite, il y a la Command Window. Pour "sortir" une fenêtre de l’interface, il suffit de cliquer sur le bouton représentant une flèche en haut à droite de chacune des fenêtres.
L’interface contient aussi des barres de menus. Voici les commandes accessibles dans les menus :
Edit → Clear Command Window Permet d’effacer les instructions et/ou les résultats visibles dans
la Command Window
Edit → Clear Command History Efface les commandes précédentes mises en mémoire
Edit → Clear Command Workspace Efface de la mémoire les variables stokées
View Détermine les aspects visuels des différentes fenêtres.
La barre de boutons permet l’accès rapide à certaines commandes. On peut déterminer le Current Directory par cette barre sans avoir à passer par la fenêtre du même nom. En cliquant-glissant les barres horizontales et verticales séparant les différentes fenêtres de l’interface, il est possible d’agrandir ou de rapetisser ces fenêtres.
1.2.1 Command Window
L’une des plus importantes fenêtres de Matlab, la Command Window traite des instructions données. C’est après l’invite ("prompt") » qu’il faut entrer les instructions demandées. Les résultats s’afficheront dès le retour de ligne.
On peut éviter de retaper une instruction en pesant sur la flèche vers le haut (T), ce qui affichera l’instruction précédente. Continuez à peser T jusqu’à l’instruction recherchée.
Il est facile d’observer sur l’image les instructions données ainsi que les réponses obtenues :
Instructions Affichage
>> a=2 a =
2
>> 8*3*pi ans = 75.398
>> x1=3+4+5 x1 =
12
>> x1=3 + 4

+ 7 + 8 + 9 + 5 + 6 ... x1 =
42
>> abc=7*7 abc =
49
1.2.2 Boutton Start
Le boutton Start est un outil pour ouvrir rapidement certaines fonctions de Matlab (outils, démonstrations et documentation). Pour plus de renseignements, consultez sa rubrique dans l’aide de Matlab.
1.2.3 Workspace
La fenêtre nommée Workspace permet de visualiser les variables mises en mémoire. On y retrouve leur nom, leur dimensions ainsi que le type de variable. Matlab étant basé sur les matrices, toutes les variables sont constituées de plusieurs dimensions : un scalaire est une matrice 1x1 et un vecteur est une matrice 1xn ou n x 1, etc. Il est possible d’effacer certaines variables ainsi que de les éditer. Pour toutes les effacer, utilisez la commande Clear Workspace dans le menu Edit.
En double-cliquant sur une variable, la fenêtre Array Editor (Éditeur de tableau) apparait. Cette fenêtre contient les valeurs des variables et permet de les modifier. Dans l’exemple suivant, la variable initiale est une matrice 1 x 1. En ajoutant des valeurs dans les cases adjacentes, on a transformé la matrice pour qu’elle devienne de dimensions 5 x 3. Dans l’exemple, la case (3,2) a eu comme valeur 8 plutôt que 0.
1.2.4 Current Directory
Le Current Directory est le répertoire courant où sont enregistrés les fichiers-M (voir section 1.3). Il est fortement conseillé de se créer un répertoire autre que celui fournit par Matlab afin de mieux gérer les fichiers contenus dedans. Bien que vous l’apprendrez au cours du didacticiel, quelques principes généraux par rapport au Current Directory sont nécessaires :
– Pour compiler un fichier-M, il doit être enregistré dans le répertoire courant.
– Si un fichier-M appelle une fonction autre qu’une fonction de Matlab (i.e. une fonction crée par l’utilisa¬teur), le fichier-M appelant la fonction ainsi que le fichier-M définissant la fonction doivent être dans le même répertoire courrant.
1.2.5 Command History
Le Command History inscrit les commandes au fur et à mesure qu’elles sont appellées dans le Command Window. Elle garde en mémoire ces commandes, ainsi que la date et l’heure d’ouverture de chacune des sessions de Matlab.
1.2.6 Editor/Debugger
Pour traiter des fichiers-M (voir section 1.3), il faut utiliser l’éditeur/débogueur de Matlab. Cette fenêtre ne fait pas partie de l’interface de base de Matlab et s’ouvre lorsqu’on ouvre un fichier-M ou lorsqu’on crée un nouveau fichier-M.
Sur la barre des boutons, un bouton est essentiel: le bouton RUN compile le programme, i.e. exécute les commandes du programme. Il peut aussi être exécuté avec F5.
Un autre élément intéressant de l’Éditeur consiste à laisser le curseur sur une variable, et sa valeur apparait (si le programme a été compilé au moins une fois).
Démonstrations :
Pour des démonstrations pas à pas sur l’environnement de Matlab, ouvrez Matlab, puis entrez demo dans la fenêtre de commande. Sélectionnez Matlab - Desktop Tools and Development Environment. Vous trouverez une demi-douzaine de démonstrations.
1.3 Les fichiers-M
Afin d’éviter d’avoir à retaper une série de commandes, il est possible de créer un programme MATLAB, connu sous le nom de «fichier-M» («M-file»), le nom provenant de la terminaison « .m » de ces fichiers. Il s’agit, à l’aide de l’éditeur de MATLAB, de créer un fichier en format texte qui contient une série de commandes MATLAB. Pour créer un fichier-M, il faut aller dans le menu File → New → M-File ou cliquez sur le bouton de la page blanche. L’enregistrement se fait normalement dans le répertoire courant. Une fois le fichier sauvegardé (sous le nom nomdefichier.m par exemple), il s’agit de l’appeler dans MATLAB à l’aide de la commande:
>> nomdefichier
Les commandes qui y sont stockées seront alors exécutées et les résultats s’afficheront dans la fenêtre de commande (Command Window). Si vous devez apporter une modification à votre série de commandes, vous n’avez qu’à modifier la ligne du fichier-M en question et à réexécuter le fichier-M en entrant le nom du fichier dans MATLAB à nouveau (essayez la touche T).
Les fichiers-M vous évitent d’avoir à retaper une série de commandes à répétition et vous permettent de conserver vos instructions, commandes et calculs grâce à l’enregistrement. C’est la procédure recommandée pour vos travaux pratiques.

EXERCICE:
Création d’un fichier-M - Procédure
– Créez un fichier par le bouton ou par le menu
– Inscrivez quelques instructions. Par exemple, inscrivez les instructions suivantes :
A=8 B=7 C=A+B
– Enregistrez le fichier-m dans le répertoire courant. Si vous ne le faîtes pas, Matlab vous demandera de l’enregistrer avant de le compiler.
– Retournez dans Matlab : les réponses devraient être apparues dans la fenêtre de commande. Ces réponses devraient être :
>> A =
7
B=
9
C=
16
1.4 Le " ;" et le "..."
Le point-virgule à la fin d’une ligne signale à MATLAB de ne pas retourner le résultat de l’opérétion à l’écran. Une pratique courante est de mettre des «;» à la fin de toutes les lignes et d’enlever certains de ceux-ci lorsque quelque chose ne tourne pas rond dans notre programme, afin de voir ce qui se passe.
Dans l’éditeur/débogueur tout comme dans la fenêtre de commande, l’utilisation de «...» est utile pour continuer sur la ligne d’en dessous l’instruction en cours.
Les deux instructions sont identiques à l’exception du «;» à la fin de la 2e.
>> B = pi * 3^2 B=
28.274
>> B = pi * 3^2; >>
Les deux instructions suivantes donnent le même résultat
>> A = 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9
A=
45
>> A = 1 + 2 + 3 + 4 + 5 ...
+ 6 + 7 + 8 + 9

A=
45
1.5 Aide 1.5.1 Aide
En plus des fonctionnalités de base de MATLAB, une vaste bibliothèque de fonctions (les « toolbox » en langage MATLAB) sont à votre disposition. Pour avoir une liste des familles de fonctions qui sont dispo¬nibles, entrez la commande help. Pour voir la liste des fonctions d’une famille de fonctions, on peut entrer help matfun par exemple, afin de voir la liste des fonctions matricielles. Pour obtenir de l’information sur une fonction en particulier, il s’agit d’utiliser la commande help avec le nom de la fonction, soit help sin pour avoir de l’information sur la fonction sin. Si la fonction n’a pas été compilée afin de gagner de la vitesse d’exécution, il est possible de voir le code source en entrant type arrow, par exemple.
1.5.2 Trouver une fonction
La commande lookfor permet de trouver dans les répertoires de documentation toutes les fonctions conte-nant le mot cherché. Par exemple, pourvoir la liste des fonctions liées au hasard, on entre lookfor random et on obtient 13 fonctions utilisant le hasard.
1.5.3 Variables utilisées
La commande qui indique les variables utilisées est who. Elle donne simplement le nom de toutes les va¬riables utilisées. La commande whos quant à elle donne le nom, les dimensions, l’espace mémoire utilisé ainsi que le type de la variable.
>> who
Your variables are:
DATAE DATAG DATAI DATAR E I
>> whos
Name Size Bytes Class
DATAE 1x7 56 double array
DATAG 7x7 392 double array
DATAI 1x7 56 double array
DATAR 7x7 392 double array
E 7x1 56 double array
I 7x1 56 double array
Grand total is 126 elements using 1008 bytes
Nous voyons que tous les objets créés sont des matrices avec des composantes stockées comme des réels en double précision, même ce que nous avons entré sous la forme d’entiers.
2 Calculs simples
2.1 Entrée de données
Comme expliqué dans le chapitre 1, il exite 2 manières d’entrer et d’exécuter des instructions : par le Com-mand Window, qui les exécute immédiatement après le retour de chariot, ou par un fichier-m qui les exécute lorsque le bouton RUN est cliqué. Peu importe la manière dont les instructions sont compilées, la réponse s’affichera dans le Command Window.
2.2 Format de données
Les réponses numériques données suites aux instructions peuvent être exprimées dans plusiques formats. Pour changer le format, on peut le modifier dans l’éditeur de tableau (voir section 1.2.3). C’est aussi possible de modifier le format en allant dans le menu File → Preferences..., puis dans la section Command Window. Il y a plusieurs choix dans le Numeric Format, ainsi que 2 dans le Numeric display. Le premier régit le format des donées alors que le second détermine s’il y aura des lignes vides entre les instructions et entre les différentes lignes des réponses.

Dans le Numeric Format, le choix suivant sont offerts (les exemples sont tous produit à partir de l’équation y = pi) :
...
2.3 Entrée d’équations
Pour associer une instruction à une variable, on indique le nom de la variable, suivi d’un signe =, puis de l’instruction en question. Si on n’indique pas de variable, la réponse sera associé à la variable ans (pour answer). Les variables peuvent être constitués d’au maximum 31 lettres ou chiffres. Les majuscules et les minuscules produisent deux variables différentes. Ainsi, A et a sont différents. Enfin, pour obtenir la valeur des données d’une variables, il suffit simplement de taper son nom.
2.4 Fonctions de base
Il est aussi possible de créer ses propres fonctions MATLAB. Cette section n’est cependant pas élaborée dans ce didacticiel.
En tout temps, les paranthèses () indiquent la priorité des opérations.
Pour le reste, il suffit d’entre les calculs à effecter simplement. L’addition, la soustraction, la multiplication, la division sont les opérateurs habituels (respectivement +, -, *, /).
Les puissances s’indiquent avec l’opérateur ∧. On calcul les puissances de e avec la fonction exp(x) où x est la puissance de e. Pour calculer la racine carrée, on utilise la fonction sqrt(x). Pour les autres racines, la fonction est roots(x) qui produira une matrice (voir section 3.1) contenant les racines.
Pour calculer des logarithmes, il existe 3 fonctions : la fonction log(x) calcule les logarithmes naturels (ln), la fonction log2(x) calcule les logarithmes en base 2, et la fonction log10(x) calcule les logarithmes en base 10.
Le nombre π s’indique pi, les lettres pour les nombres complexes i et j s’indiquent ainsi aussi. Une variable retournée pourrait être l’infinit, décrit par inf, lors d’une division par zero. La variable NaN (Not a Number) est retournée pour des opérations tel les 0/0 ou Inf/Inf.
Les fonctions trigonométriques principales s’inscrivent simplement ainsi: sin(x), cos(x), tan(x), asin(x), acos(x), atan(x), atan2(x). Dans la série des hyperboliques, il y a sinh(x), cosh(x), tanh(x).
Les fonctions de fonctions sont permises et on les écrit par l’entremise de paranthèses.
Pour plus de fonctions, veuillez consulter le catalogue à la fin du didacticiel. Sinon, consultez l’aide.
Instructions Affichage
a = (pi^2 + 3)/sin(8) >> a =
b = 13.0080
b = sinh(3*9*exp(2))
c = sqrt(16) - tan(.5) 2.2013e+086
c =
3.4537
%Exemple en électrotechnique
P = 4000; >> Q =
Fp = 0.8; 3000
Q = tan(acos(Fp))*P
3 Calcul matriciel

3.1 Matrices 3.1.1 Création
Tous les types de variabled de MATLAB sont basés autour de la notion de matrice. Un scalaire est une matrice de taille 1 x 1, un vecteur est une matrice de taille n x 1 ou 1 x n, etc. On définit une matrice par deux crochets [ ]. L’espace permet l’identification des différentes données dans la matrice dans la dimention horizontale. La virgule effectue le même travail. Le point virgule indique un changement de dimention verticale.
Instructions Affichage
>> A =
1 2
B=
A=[1 2] 1 2
B=[1,2] C =
C=[1;2] 1
D=[1 2;3 4] 2
D=
1 2
3 4
3.1.2 Opérateur deux points ( : )
Un outil puissant de MATLAB est l’opérateur « :». Il permet de décomposer les nombres compris entre le premier et le dernier, avec un intervalle du nombre du milieu. Ainsi,
J :K est le même que [J, J+1, ..., K]
J :K est vide si J>K
~~K−J ~~
J :D :K est le même que [J, J+D, ..., J+m*D] où m = D J :D :K est vide si D>0 et J>K ou D<0 et J<K
...
4.7 Éditeur de figures
Lorsqu’on traite des données, il est parfois fastidieux d’entrer toutes les commandes pour modifier les op¬tions du graphique. Parfois, il faut aussi en essayer plusieurs afin de déterminer laquelle produit un meilleur graphique. C’est pourquoi toutes les options abordées dans cette section possèdent une seconde manière d’être mises sur le graphique: on peut les indiquer par le biais des menus ainsi que des boutons sur la figure.
Ainsi, on peut les modifier et observer le résultat à notre guise sans avoir à créer une nouvelle figure à chaque fois.
Il suffit d’enregistrer la figure à la fin afin de conserver ces options. Par défaut, l’enregistrement de la figure se fait en format .fig, le format des figures de Matlab, mais il est possible de le sauver dans un autre format tel bitmap (.bmp).
Il est aussi possible de copier la figure une fois qu’elle est ouverte sans avoir à passer par les instructions. Il suffit d’aller dans le menu Edition → Copy figure. Pour choisir dans quel format la figure sera enregistrée, allez dans le menu Edition → Copy Options. Dans cette fenêtre de préférences, sélectionner le format désiré. Voir le tableau de la section précédente pour connaître les propriétés de chacun des formats et pour connaître comment coller cette copie dans Word.
À partir des boutons, on peut créer une nouvelle figure, ouvrir une figure, enregistrer la figure actuelle, ou l’imprimer.

Il est aussi possible de modifier le graphique grâce à l’icone de la flèche. Une fois ce bouton enfoncé, il suffit de double-cliquer sur un item du graphique pour que la fenêtre de l’éditeur des propriétés (Property Editor) s’ouvre. Grâce à cet éditor, il est possible de modifier l’objet en question grâce aux différentes options qui nous sont offertes. Voici quelques exemples des propriétés intéressantes d’objets qui nous sont possible de modifier par le biais de cet éditeur.
– Limites
– Échelles
– Grille
– Style (Bordure, Couleur, Police, ...)
– Titre du graphique
– Identification des axes
– Données
– Style de ligne et de point – Nom de la ligne (Tag)
– Police – Texte
– Position, Allignement
– Nom du texte (Tag)
– Police
– Texte
– Position, Style
– Nom de la légende (Tag)
– Couleur de fond
– Présence ou non du menu et des boutons – Titre de la figure
– Nom de la figure (Tag)
On peut ajouter des éléments sur le graphique sans passer par l’éditeur des propriétés. Le menu Insert offre la possibilité d’ajouter un élément (Titre, Identification des axes, Légende, Flèche, texte, etc. ). Il y a 3 boutons sur la barre qui permettent l’ajout de lignes, flèches et de textes.
Si vous sélectionnez un objet, vous pouvez aussi cliquer-droit pour avoir accès à certaines de ses propriétés.
Dans n’importe quelle fenêtre de Matlab possédant un menu (Fenêtre principale, Éditeur/débogueur, Figure), il est possible d’accéder aux préférences de Matlab par le biais de File → Preferences. Dans cette fenêtre, il est possible de modifier des éléments égalements. Voici quelques options pouvant être utiles. Pour le reste, explorez par vous-même toutes les options offertes dans Matlab.
Command Window
Figure Copy Template FCT → Copy Options
Text Display : Numeric Format
Numeric Display

Text : Change font size
Clipboard Format:
4.8 Approximation de données 4.8.1 Fonction polyfit
Une fonction très utile dans les laboratoires est la fonction polyfit(x,y,n) qui donne un polynôme qui approxime les données. Dans l’équation, on donne les donnes respectives dans le x et le y, puis on indique le degré du polynôme qui approximativera les données dans le n.
f = polyfit(x,y,n) retourne la variable f qui est un vecteur rangées de n+1 dimention contenant les coefficients des puissances descendantes. Ainsi, la fonction p(x) produite sera sous la forme:
p(x) = p1xn + p2xn−1 +... + pnx1 + pn+1 où p1 est contenu dans f(1), p2 dans f(2),.. .
Ainsi, en appelant les instructions suivantes, on obtiendras
f = polyfit(x,y,1) = >p(x) = f(1)*x+ f(2)
f(1) est la pente de la droite et f(2) est la valeur à l’origine
f = polyfit(x,y,2) => p(x) = f (1) *x2 + f (2) *x+ f (3)
f(1) est le coefficient a de l’équation quadratique, f(2) est b, f(3) est c.
Pour tracer la courbe par la suite, il suffit d’utiliser les coefficients du polynôme pour le recréer et le tracer à l’aide de plot ou de fplot.
4.8.2 Basic Fitting
Si on connais préalablement le degré du polynôme que sont supposés former les données, cette méthode est excellente. Par contre, si on ne connais pas exactement le degré à employé, une seconde manière d’approxi¬mer sur le graphique les données s’impose.
Cette manière consiste à tracer les données désirées. Une fois la figure produite, allez dans le menu Tools → Basic Fitting. Par la fenêtre appaissant, il est possible de sélectionner le groupe de données désirées (si par exemple il y en a plusieurs sur un même grapique), de sélectionner la ou les approximations désirées selon le degré du polynome. De plus, il est possible de montrer l’équation de chaque approximation. On peut aussi indiquer sur un graphique la différence entre chaque donnée et sa valeur calculée avec l’approximation.
En cliquant sur la flèche → en bas en gauche, la fenêtre s’étant et les résultats numériques sont disponibles. Dans ces résultats, on trouve la fonction théorique du polynôme, ses coefficients, ainsi que la norme des différence entre chaque donnée et sa valeur calculée avec l’approximation. De plus, on peut enregistrer ces données dans des variables disponibles dans le Workspace.
En étendant la fenêtre une seconde fois avec la flèche, on peut calculer f(x) d’une valeur ou d’un groupe de valeurs selon l’équation sélectionnée dans le "menu du centre".
4.9 Exercices
- À partir des données suivantes, produisez un graphique comprenant les données expérimentales, la courbe approximant ces données et analysez le résultat produit.
ô NbL. E I
ô
Donnees=[ 0 0 1.57
50 6.7 1.54
45 7.28 1.52
40 8.14 1.50
35 8.88 1.505
30 10.02 1.502

25 11.40 1.48
20 14.1 1.490
15 17.32 1.468
10 22.9 1.430
5 40.4 1.33 ] ;
SourceCourant.m
- À partir des données suivantes, produisez un graphique comprenant les données expérimentales, la courbe approximant ces données et analysez le résultat produit.
ô NbL. E I
ô
Donnees = [ 1 126 1.11
2 125.8 2.05
5 126 5.4
7 124 7.45
10 124.5 10.22
12 126 12.3
15 127 15.74
18 124.5 18.9 ] ;
SourceTension.m
5 Calcul complexe
5.1 Fonction complexe
Les mathématiciens présentent les nombres complexes sous la forme de A = a + b * i, alors que les électri-cients le font sous la forme de A = a+b* j. Matlab ne fait pas la différence entre i et j. On peut aussi utiliser la fonction sqrt(-1) à la place de i ou de j. Par contre, tout nombre mis sous une forme complexe (voir section 5.3 pour les différentes formes) sera redonné sous la forme cartésienne a + b * i. Pour obtenir des formes différentes il faut utiliser les fonctions spécifiques décrites ci-dessous. La fonction complex(a,b) peut être utilisée.