0% ont trouvé ce document utile (0 vote)
35 vues17 pages

2-Environnement MATLAB

Transféré par

Hocine Hocine
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
35 vues17 pages

2-Environnement MATLAB

Transféré par

Hocine Hocine
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Chapitre I : Introduction à l’environnement MATLAB

Chapitre I : Introduction à l’environnement MATLAB

1. Introduction - Historique
MATLAB est une abréviation de MATrix LABoratory, écrit à l’origine, en Fortran, par
C. Moler.
MATLAB était destiné à faciliter l’accès au logiciel matriciel développé dans les projets
LINPACK et EISPACK. La version actuelle, écrite en C par the MathWorks Inc., existe en
version professionnelle et en version éducation. Sa disponibilité est assurée sur
plusieurs plateformes : Sun, Bull, HP, IBM, compatibles PC (DOS, Unix ou Windows),
Macintoch, iMac et plusieurs machines parallèles.
MATLAB est un environnement puissant, complet et facile à utiliser destiné au calcul
scientifique. Il apporte aux ingénieurs, chercheurs et à tout scientifique un système interactif
intégrant calcul numérique et visualisation. C'est un environnement performant, ouvert et
programmable qui permet de remarquables gains de productivité et de créativité.
MATLAB est un environnement complet, ouvert et extensible pour le calcul et la
visualisation. Il dispose de plusieurs centaines (voire milliers, selon les versions et les
modules optionnels autour du noyau Matlab) de fonctions mathématiques, scientifiques et
techniques. L'approche matricielle de MATLAB permet de traiter les données sans aucune
limitation de taille et de réaliser des calculs numérique et symbolique de façon fiable et
rapide. Grâce aux fonctions graphiques de MATLAB, il devient très facile de modifier
interactivement les différents paramètres des graphiques pour les adapter selon nos souhaits.
L'approche ouverte de MATLAB permet de construire un outil sur mesure. On peut inspecter
le code source et les algorithmes des bibliothèques de fonctions (Toolboxes), modifier des
fonctions existantes et ajouter d’autres.
MATLAB possède son propre langage, intuitif et naturel qui permet des gains de temps de
CPU spectaculaires par rapport à des langages comme le C, le TurboPascal et le Fortran. Avec
MATLAB, on peut faire des liaisons de façon dynamique, à des programmes C ou Fortran,
échanger des données avec d'autres applications (via la DDE Dynamic Data Exchange :
MATLAB serveur ou client) ou utiliser MATLAB comme moteur d'analyse et de
visualisation.
MATLAB comprend aussi un ensemble d'outils spécifiques à des domaines, appelés
Toolboxes (ou Boîtes à Outils). Indispensables à la plupart des utilisateurs, les Boîtes à Outils
sont des collections de fonctions qui étendent l'environnement MATLAB pour résoudre des
catégories spécifiques de problèmes.
7
Chapitre I : Introduction à l’environnement MATLAB

MATLAB permet le travail interactif soit en mode commande, soit en mode programmation ;
tout en ayant toujours la possibilité de faire des visualisations graphiques. Considéré comme
l’un des meilleurs langages de programmation, MATLAB possède les particularités suivantes
par rapport à ces langages :
• la programmation facile,
• la continuité parmi les valeurs entières, réelles et complexes,
• la gamme étendue des nombres et leur précision,
• la bibliothèque mathématique très compréhensive,
• l’outil graphique qui inclut les fonctions d’interface graphique et les utilitaires,
• la possibilité de liaison avec les autres langages classiques de programmation (C ou
Fortran).
La bibliothèque des fonctions mathématiques dans MATLAB donne des analyses
mathématiques très simples. En effet, l’utilisateur peut exécuter dans le mode commande
n’importe quelle fonction mathématique se trouvant dans la bibliothèque sans avoir à recourir
à la programmation.
Pour l’interface graphique, des représentations scientifiques et même artistiques des objets
peuvent être créées sur l’écran en utilisant les expressions mathématiques. Les graphiques sur
MATLAB sont simples et attirent l’attention des utilisateurs, vu les possibilités importantes
offertes par ce logiciel.
MATLAB n’est pas le seul environnement de calcul scientifique, il existe d’autres
concurrents dont les plus importants sont Maple et Mathematica. Il existe même des logiciels
libres qui sont des clones de MATLAB comme Scilab et Octave.

2. L’environnement MATLAB
MATLAB affiche au démarrage plusieurs fenêtres. Selon la version on peut trouver les
fenêtres suivantes :
• Current Folder: indique le répertoire courant ainsi que les fichiers existants.
• Workspace: indique toutes les variables existantes avec leurs types et valeurs.
• Command History: garde la trace de toutes les commandes entrées par l’utilisateur.
• Command Window: utilisée pour formuler nos expressions et interagir avec
MATLAB. C’est la fenêtre que nous utilisons tout au long de ce chapitre.

8
Chapitre I : Introduction à l’environnement MATLAB

Figure I.1 : L’environnement MATLAB

MATLAB est beaucoup plus qu'un langage de programmation. Il s'agit d'une console
d'exécution (shell ) permettant d'exécuter des fonctions, d'attribuer des valeurs à des variables,
etc. La console MATLAB permet d'effectuer des opérations mathématiques, de manipuler des
matrices et de tracer facilement des graphiques.
Le langage MATLAB n'est pas un langage compilé, à chaque appel d'un SCRIPT (ou d'une
FUNCTION), le logiciel lit et exécute les programmes ligne par ligne.
L’utilisateur peut grâce à l'invite MATLAB affecter des valeurs à des variables et effectuer
des opérations sur ces variables. Par exemple :

>> x = 4
x=
4
>> y = 2
y=
2
>> x + y
ans =
6
>> x * y
ans =
8

9
Chapitre I : Introduction à l’environnement MATLAB

Ici, il faut noter que lorsque l'utilisateur ne fixe pas de variable de sortie, MATLAB place le
résultat d'une opération dans ans. Il est toujours possible de connaître les variables utilisées et
leur type à l'aide de la fonction whos. Par exemple, pour les manipulations précédentes :

>>whos
Name Size Bytes Class
ans 1x1 8 double array
x 1x1 8 double array
y 1x1 8 double array
Grand total is 3 elements using
24 bytes

La solution de x+y est donc perdue. Il est donc préférable de toujours donner des noms aux
variables de sortie :

>> x = 4;
>> y = 2;
>> a = x + y
a=
6
>> b = x * y
b=
8

La fonction clear permet d'effacer des variables. Par exemple :

>> clear x % on efface x de la


mémoire
>> whos
Name Size Bytes Class
a 1x1 8 double array
b 1x1 8 double array
y 1x1 8 double array
Grand total is 3 elements using 24
bytes

Le signe de pourcentage % permet de mettre ce qui suit sur une ligne en commentaire
(MATLAB n'en tiendra pas compte à l'exécution).

10
Chapitre I : Introduction à l’environnement MATLAB

Pour les variables de type caractère : char, la déclaration se fait entre apostrophes. Il est
possible de concaténer (lier) des mots à l'aide des crochets.

>> mot1 = 'Génie'


>> mot2 = 'Civil';
>> mot1_2 = [mot1 ' ' mot2] % l'emploi de ' '
permet d'introduire un espace
mot1_2 =
Génie Civil

3. Les fichiers SCRIPT et FUNCTION.


Pour des tâches répétitives, il est pratique et judicieux d'écrire de courts programmes, qu’on
sauvegarde, pour effectuer les calculs désirés. Il existe deux types de fichiers qui peuvent être
programmés avec MATLAB : les fichiers SCRIPT et FUNCTION. Dans les deux cas, il faut
lancer l'éditeur de fichier et sauvegarder le fichier avec l'extension .m.
Le fichier SCRIPT permet de lancer les mêmes opérations que celles écrites directement à
l'invite MATLAB. Toutes les variables utilisées dans un SCRIPT sont disponibles à l'invite
MATLAB.
Cette approche est définie en Matlab par les M-Files, qui sont des fichiers pouvant contenir
les données, les programmes (scripts) ou les fonctions que nous développons.
Pour créer un M-Files il suffit de taper la commande edit, ou tout simplement aller dans le
menu : File  New  M-Files (ou cliquer sur l’icône ).
Une fenêtre d’édition comme celle- ci va apparaître :

Figure I.2 : La fenêtre d’édition MATLAB

11
Chapitre I : Introduction à l’environnement MATLAB

Par exemple, le fichier test.m qui reprend l'exemple précédent:

% test.m
clear all
x = 4;
y = 2;
a=x+y
b=x*y
whos

MATLAB contient un grand nombre de fonctions prédéfinies comme sin, cos, sqrt, sum, etc..
Il est possible de créer nos propres fonctions en écrivant leurs codes « source » dans des
fichiers M-Files (portant le même nom de fonction) en respectant la syntaxe suivante :

function [r1, r2, …, rn] = nom_fonction (arg1, arg2, …, argn)

% le corps de la fonction
. . .
r1 = . . . % la valeur retournée pour r1
r2 = . . . % la valeur retournée pour r2
. . .
rn = . . . % la valeur retournée pour rn
end % le end est facultatif

Où : r1...rn sont les valeurs retournées, et arg1...argn sont les arguments.


Le rôle d’une fonction est d'effectuer des opérations sur une ou plusieurs entrées pour obtenir
un résultat qui sera appelé sortie.

Par exemple :

function [a,b] = ma_function(x,y)


a = x + y;
b = x * y;

12
Chapitre I : Introduction à l’environnement MATLAB

On obtient

>> [a,b] = ma_fonction(4,2)


a=
6
b=
8

>> whos

Name Size Bytes Class


a 1x1 8 double array
b 1x1 8 double array
Grand total is 2 elements using 16 bytes

4. Les principales constantes, fonctions et commandes


MATLAB définit les constantes suivantes :
La constante Sa valeur
pi π=3.1415...
exp(1) e=2.7183...
i = √1
j = √1
Inf ∞
NaN Not a Number (Pas un nombre)
eps ε ≈ 2 × 10−16.

Parmi les fonctions fréquemment utilisées, on peut noter les suivantes :

La fonction Sa signification

sin(x) le sinus de x (en radian)


cos(x) le cosinus de x (en radian)
tan(x) le tangent de x (en radian)
asin(x) l’arc sinus de x (en radian)
acos(x) l’arc cosinus de x (en radian)
atan(x) l’arc tangent de x (en radian)
sqrt(x) la racine carrée de x  √x

13
Chapitre I : Introduction à l’environnement MATLAB

abs(x) la valeur absolue de x  |x|

exp(x) = ex

log(x) logarithme naturel de x  ln(x)=loge(x)

log10(x) logarithme à base 10 de x  log10(x)

imag(x) la partie imaginaire du nombre complexe x

real(x) la partie réelle du nombre complexe x

round(x) arrondi un nombre vers l’entier le plus proche

floor(x) arrondi un nombre vers l’entier le plus petit  max{n|n≤x, n entier}

ceil(x) arrondi un nombre vers l’entier le plus grand  min{n|n≥x, n entier}

MATLAB offre beaucoup de commandes pour l’interaction avec l’utilisateur. Nous nous
contentons pour l’instant d’un petit ensemble, et nous exposons les autres au fur et à mesure
de l’avancement du cours.

La commande Sa signification
who Affiche le nom des variables utilisées
whos Affiche des informations sur les variables utilisées
clear x y Supprime les variables x et y
clear, clear all Supprime toutes les variables
clc Efface l’écran
exit, quit Fermer l’environnement MATLAB
format Définit le format de sortie pour les valeurs numériques
{format long : affiche les nombres avec 14 chiffres après la virgule
format short: affiche les nombres avec 04 chiffres après la virgule
format bank : affiche les nombres avec 02 chiffres après la virgule
format rat : affiche les nombres sous forme d’un ratio (a/b)}

14
Chapitre I : Introduction à l’environnement MATLAB

5. Les vecteurs et les matrices


5.1 Les nombres en MATLAB
MATLAB utilise une notation décimale conventionnelle, avec un point décimal facultatif ‘.’
et le signe ‘+’ ou ‘–‘ pour les nombres signés. La notation scientifique utilise la lettre ‘e’ pour
spécifier le facteur d’échelle en puissance de 10. Les nombres complexes utilisent les
caractères ‘i’ et ‘j’ (indifféremment) pour designer la partie imaginaire. Le tableau suivant
donne un résumé :

Le type Exemples
Entier 5 -83
Réel en notation décimale 0.0205 3.1415926
Réel en notation scientifique 1.60210e-20 6.02252e23 (1.60210x10-20 et
6.02252x1023)
Complexe 5+3i -3.14159j

MATLAB utilise toujours les nombres réels (double précision) pour faire les calculs, ce qui
permet d’obtenir une précision de calcul allant jusqu’à 16 chiffres significatifs.

Mais il faut noter les points suivants :


• Le résultat d’une opération de calcul est par défaut affiché avec quatre chiffres après la
virgule.
• Pour afficher davantage de chiffres utiliser la commande format long (14 chiffres après la
virgule).
• Pour retourner à l’affichage par défaut, utiliser la commande format short.
• Pour afficher uniquement 02 chiffres après la virgule, utiliser la commande format bank.
• Pour afficher les nombres sous forme d’un ratio, utiliser la commande format rat.

La commande Signification
format short affiche les nombres avec 04 chiffres après la virgule
format long affiche les nombres avec 14 chiffres après la virgule
format bank affiche les nombres avec 02 chiffres après la virgule
format rat affiche les nombres sous forme d’un ratio (a/b)

15
Chapitre I : Introduction à l’environnement MATLAB

Par exemple :
» 5/3
ans =
1.6667
» format long
» 5/3
ans =
1.66666666666667
» format bank
» 5/3
ans =
1.67
» format short
» 5/3
ans =
1.6667
» 5.2*4.3
ans =
22.3600
» format rat
» 5.2*4.3
ans =
559/25
» 1.6667
ans =
16667/10000

La fonction vpa peut être utilisée afin de forcer le calcul et présenter plus de décimaux
significatifs en spécifiant le nombre de décimaux désirés.
Par exemple :

>> sqrt(2)
ans =
1.4142
>> vpa(sqrt(2),50)
ans =
1.4142135623730950488016887242096980785696718753769

5.2 Les opérations mathématiques.

L'élément de base de MATLAB est la matrice. C'est-à-dire qu'un scalaire est une matrice de
dimension 1x1, un vecteur colonne de dimension n est une matrice n x 1, un vecteur ligne de
dimension n, une matrice 1 x n. Contrairement aux langages de programmation usuels, il n'est

16
Chapitre I : Introduction à l’environnement MATLAB

pas obligatoire de déclarer les variables avant de les utiliser et, de ce fait, il faut prendre toutes
les précautions dans la manipulation de ces objets.

Les scalaires se déclarent directement, par exemple :

>> x = 0;
>> a = x;

Les vecteurs lignes se déclarent en séparant les éléments par des espaces ou des virgules de:

>> V_ligne = [0 1 2]
V_ligne =
012

Les vecteurs colonnes se déclarent en séparant les éléments par des points-virgules :

>> V_colonne = [0;1;2]


V_colonne =
0
1
2

Il est possible de transposer un vecteur à l'aide de la fonction transpose:

>> V_colonne = transpose(V_ligne)


V_colonne =
0
1
2

Le double point ( :) est l'opérateur d'incrémentation dans MATLAB. Ainsi, pour créer un
vecteur ligne des valeurs de 0 à 1 par incrément de 0.2, il suffit d'utiliser :

>> V = [0:0.2:1]
V=
Columns 1 through 6
0 0.2000 0.4000 0.6000 0.8000
1.0000

17
Chapitre I : Introduction à l’environnement MATLAB

Par défaut, l'incrément est de 1. Ainsi, pour créer un vecteur ligne des valeurs de 0 à 5 par
incrément de 1, il suffit d'utiliser :

>> V = [0:5]
V=
012345

On peut accéder à un élément d'un vecteur et même modifier celui-ci directement :

>> a = V(2);
>> V(3) = 3*a
V=
013345

La fonction linspace :
La création d’un vecteur dont les composants sont ordonnés par intervalle régulier et avec un
nombre d’éléments bien déterminé peut se réaliser avec la fonction :
linspace (début, fin, nombre d’éléments).
Le pas d’incrémentation est calculé automatiquement par Matlab selon la formule :
in  debut
le pas
nombre d′ éléments  1
Par exemple :

>> X = linspace(1,10,4) % un vecteur de quatre éléments de 1 à 10


X=
1 4 7 10

>> Y = linspace(13,40,4) % un vecteur de quatre éléments de 13 à 40


Y=
13 22 31 40

La taille d’un vecteur (le nombre de ses composants) peut être obtenue avec la fonction
length comme suit :

>> length(X) % la taille du vecteur X


ans =
4

18
Chapitre I : Introduction à l’environnement MATLAB

Les opérations usuelles d'addition, de soustraction et de multiplication par scalaire sur les
vecteurs sont définies dans MATLAB :

>> V1 = [1 2];
>> V2 = [3 4];
>> V = V1 + V2 % addition de vecteurs
V=
46
>> V = V2 - V1 % soustraction de vecteurs
V=
22
>> V = 2*V1 % multiplication par un scalaire
V=
24

On peut aussi créer des matrices, par exemple :

>> V1 = [1 2];
>> V2 = [3 4];
>> V = [V1;V2]
V=
12
34

Les matrices peuvent aussi être construites directement :

>> M = [1 2; 3 4]
M=
12
34

On peut évidemment avoir accès aux éléments de la matrice par :

>> m21 = M(2,1) % 2e ligne, 1ere colonne


m21 =
3

19
Chapitre I : Introduction à l’environnement MATLAB

Il est possible d'inverser inv() et de transposer transpose()les matrices :


>> invM = inv(M)
invM =
-2.0000 1.0000
1.5000 -0.5000
>> transpM = transpose(M)
transpM =
13
24

Un des intérêts de MATLAB est la possibilité d'utiliser directement les opérations


mathématiques prédéfinies pour les matrices. L'addition et la soustraction sont directes
(attention aux dimensions) ainsi que la multiplication par un scalaire :

>> A = [1 2;3 4];


>> B = [4 3;2 1];
>> C = A+B % addition
C=
5 5
5 5
>> D = A-B % soustraction
D=
-3 -1
1 3
>> C = 3*A % multiplication par un scalaire
C=
3 6
9 12
>> C = A*B % multiplication de matrices
C=
8 5
20 13
>> D = A/B % division de matrices
D=
1.5000 -2.5000
2.5000 -3.5000

Il est utile de noter les possibilités suivantes :


− L’accès à un élément de la ligne i et la colonne j se fait par : A(i,j)
− L’accès à toute la ligne numéro i se fait par : A(i,:)
− L’accès à toute la colonne numéro j se fait par : A(:,j)

20
Chapitre I : Introduction à l’environnement MATLAB

Par exemple :
>> A = [1,2,3,4 ; 5,6,7,8 ; 9,10,11,12] % création de la matrice A
A=
1 2 3 4
5 6 7 8
9 10 11 12

>> A(2,3) % l’élément sur la 2ème ligne à la 3ème colonne


ans =
7

>> A(1,:) % tous les éléments de la 1ère ligne


ans =
1 2 3 4

>> A(:,2) % tous les éléments de la 2ème colonne


ans =
2
6
10

>> A(2:3,:) % tous les éléments de la 2ème et la 3ème ligne


ans =
5 6 7 8
9 10 11 12

>> A(1:2,3:4) % La sous matrice supérieure droite de taille 2x2


ans =
3 4
7 8

>> A([1,3],[2,4]) % la sous matrice : lignes(1,3) et colonnes (2,4)


ans =
2 4
10 12

>> A(:,3) = [] % Supprimer la troisième colonne


A=
1 2 4
5 6 8
9 10 12
>> A(2,:) = [] % Supprimer la deuxième ligne
A=
1 2 4
9 10 12

>> A = [A , [0;0]] % Ajouter une nouvelle colonne {ou A(:,4)=[0;0]}


A=
1 2 4 0
9 10 12 0

21
Chapitre I : Introduction à l’environnement MATLAB

>> A = [A ; [1,1,1,1]] % Ajouter une nouvelle ligne {ou A(3,:)=[1,1,1,1]}


A=
1 2 4 0
9 10 12 0
1 1 1 1

Les dimensions d’une matrice peuvent être acquises en utilisant la fonction size. Cependant,
avec une matrice A de dimension m × n le résultat de cette fonction est un vecteur de deux
composants, une pour m et l’autre pour n.

>> d = size(A)
d =
3 4

Ici, la variable d contient les dimensions de la matrice A sous forme d’un vecteur. Pour
obtenir les dimensions séparément on peut utiliser la syntaxe :

>> d1 = size (A, 1) % d1 contient le nombre de lignes (m)


d1 =
3

>> d2 = size (A, 2) % d2 contient le nombre de colonnes (n)


d2 =
4

5.3 Génération automatique des matrices

Dans MATLAB, il existe des fonctions qui permettent de générer automatiquement des
matrices particulières. Dans le tableau suivant nous présentons les plus utilisées :

La fonction Signification
zeros(n) Génère une matrice n × n avec tous les éléments = 0
zeros(m,n) Génère une matrice m × n avec tous les éléments = 0
ones(n) Génère une matrice n × n avec tous les éléments = 1
ones(m,n) Génère une matrice m × n avec tous les éléments = 1
eye(n) Génère une matrice identité de dimension n × n
magic(n) Génère une matrice magique de dimension n × n
rand(m,n) Génère une matrice de dimension m × n de valeurs aléatoires

22
Chapitre I : Introduction à l’environnement MATLAB

6. Application
1. On veut vérifier que la multiplication de matrices n'est pas commutative. Soient deux
matrices :

3 4 4 4 5 8
A 6 5 3 B 3 11 12
10 8 2 2 1 7

Réalisez un code MATLAB qui permet, pour les matrices A et B données, de vérifier que :

A*B-B*A≠0

2. En utilisant les matrices définies au premier exercice, vérifiez l'identité suivante :

(A + B)T = AT + BT

Utilisez la fonction transpose de MATLAB pour transposer les matrices.

3. On désire résoudre un système d'équations algébriques linéaires, c'est-à-dire, un système


représenté par :
A*x=b
Avec A, une matrice de dimension n x n, x et b, des vecteurs colonnes de dimension n. La
solution de ce système est donnée par :
x = A-1 * b
En utilisant la fonction inv de MATLAB pour inverser la matrice, résoudre le système décrit
par la matrice A, définie au premier exercice et le vecteur b, la première colonne de la matrice
B, de ce même exercice.

23

Vous aimerez peut-être aussi