Vous êtes sur la page 1sur 19

Université du 20 Aout 1955 Skikda

Faculté des Sciences L2 Physique


Département de Physique TP Méthodes Numériques et programmation

Introduction
à

MATLAB
Dr.W.CHELIA 2020-2021 1
Université du 20 Aout 1955 Skikda
Faculté des Sciences L2 Physique
Département de Physique TP Méthodes Numériques et programmation

I. INTRODUCTION :
Ce document est une introduction à MATLAB, un logiciel de calcul scientifique. Il a pour objectif de
préparer l’étudiant aux travaux pratiques de Mécanique et d’Analyse Numérique dans lesquels cet outil est
intensivement utilisé pour la mise en application et la simulation des principes théoriques. Par ailleurs, ce
manuel offre la possibilité à l’étudiant de se former à un logiciel professionnel largement répandu.
1 - Qu’est ce que MATLAB?
MATLAB est une abréviation de MATrix LABoratory. Ecrit à l’origine, en FORTRAN, par Cleve Moler,
MATLAB était destiné à faciliter l’accès au logiciel matriciel.
MATLAB comprend de nombreuses fonctions graphiques, un systeme puissant d’opérateurs s’appliquant à
des matrices, des algorithmes numeriques (EDOs, zeros d’une fonction, integration, interpolation), ainsi
qu’un langage de programmation extremement simple à utiliser.
MATLAB trouve ses applications dans de nombreuses disciplines. Il constitue un outil numérique puissant
pour la modélisation de systèmes physiques, la simulation de modèles mathématiques, la conception et la
validation (tests en simulation et expérimentation) d’applications.
2- L'environnement MATLAB :
L’environnement MATLAB se présente dans la figure1 :

Figure1 : L'environnement MATLAB.

Le logiciel propose un véritable environnement de travail composé de multiples fenêtres :


- Command window (console d’exécution) : à l’invite de commande « >> », l’utilisateur peut entrer
les instructions à exécuter. Il s’agit de la fenêtre principale de l’interface.
- Editor window (Edit Window) : fenêtre de saisie des scripts (fichier.m), "Edit Window" c’est pour
créer et réaliser des programmes, cette fenêtre peut être vue comme un éditeur de texte où :
Les commentaires sont écrits en vert et débutent par "%".
Les variables et équations apparaissent en noir.
Les mot-clés dans Matlab comme les boucles apparaissent en bleu.
Les caractères apparaissent en Violet.
- Current Folder (répertoire courant) : permet de naviguer et de visualiser le contenu du répertoire
courant de l’utilisateur. Les programmes de l’utilisateur doivent être situés dans ce répertoire pour
être visible et donc exécutable.

Dr.W.CHELIA 2020-2021 2
Université du 20 Aout 1955 Skikda
Faculté des Sciences L2 Physique
Département de Physique TP Méthodes Numériques et programmation

- Workspace (espace de travail) : permet de visualiser les variables définies, leur type, la taille
occupée en mémoire…
- Command history : historique des commandes que l’utilisateur a exécutées. Il est possible de faire
glisser ces commandes vers la fenêtre de commande.

Remarque :
Help : c’est le menu d’aide, on utilise la commande help pour plus de précisions. Cette commande affiche
les commentaires de la fonction indiquée.
Exemple :

>> help sin


sin Sine of argument in radians.
sin(X) is the sine of the elements of X.

See also asin, sind.

Reference page for sin


Other functions named sin

II. Calculs élémentaires :


1-Variables :
Variable (stocker une valeur) : est un nom qui commencer par un caractère alphabétique, les type des
variables sont entier, réel et complexe. à l’invite de commande '>>', on peut taper (déclarer) une variable,
puis entrer ' ' :

Exemple1 :

>> A=2 % un autre scalaire, i.e. une matrice de taille 1x1


A=
2
>> a
Undefined function or variable 'a'.
Did you mean:
>> A
>> a=1
a=
1
>> a % on peut vérifier ce que contient une variable
a=
1
>> A % a et A sont des symboles différents
A=
2

Dr.W.CHELIA 2020-2021 3
Université du 20 Aout 1955 Skikda
Faculté des Sciences L2 Physique
Département de Physique TP Méthodes Numériques et programmation

A la validation de l’instruction, l’interface affiche le résultat de cette dernière. Afin d’alléger l’affichage, un
point-virgule « ; » en fin de commande empêche le renvoie du résultat dans la fenêtre command window,
mais évidemment l’instruction est toujours exécutée (le variable est visible dans la fenêtre Workspace).
Exemple2 :

>> a=1,b=3;c=4

a=

c=

>> % pour 'b' le résultat n’est pas affiché

2-Opérations arithmétiques :
Les opérateurs les plus courants sont :
+ Addition
- Soustraction
* Multiplication
/ Division
^ Puissance
Nous avons tout pour effectuer une expression mathématique.
Exemple3 :

>> 1+5,1/2,5-3

ans =

ans =

0.5000

ans =

Dr.W.CHELIA 2020-2021 4
Université du 20 Aout 1955 Skikda
Faculté des Sciences L2 Physique
Département de Physique TP Méthodes Numériques et programmation

Exemple4 :

>> a=1,b=2+a,b*2

a=

b=

ans =

3-Nombres :

Il existe deux types des nombres :


Les nombres réels peuvent être écrits sous différents formats :

5 1.0237 0.5245e-12 12.78E+06 0.001234 -235.087

Les nombres complexes peuvent être écrits sous forme :

2.5 + 9.7i ou 1- 2j

Exemple5 :

>> i

ans =

0.0000 + 1.0000i % la partie réelle et la partie imaginaire d’un nombre complexe

Remarque :
On ne déclare pas les variables. Leur type (entier, réel, complexe) s’affectera automatiquement en fonction
du calcul effectué (typage automatique).
a-Format d'affichage :

Pour choisir le format d'affichage (Les chiffres après la virgule) pour les nombres, on utilise l'instruction
format :

Format short
Format long
Format short e
Format long e

Dr.W.CHELIA 2020-2021 5
Université du 20 Aout 1955 Skikda
Faculté des Sciences L2 Physique
Département de Physique TP Méthodes Numériques et programmation

Exemple6 :

>> 1/2

ans =

0.5000

>> format long

>> 1/2

ans =

0.500000000000000

>> format short

>> 1/2

ans =

0.5000

>> format long e

>> 1/2

ans =

5.000000000000000e-01 % 5 × 10−1

>> format short e

>> 1/2

ans =

5.0000e-01

b-Commandes générales :

La commande Signification
who affiche liste des variables de workspace
whos affiche les informations et les tailles des variables
clc efface affichage de command window
clear all supprime toutes les variables
exist - quit fermer l’environnement MATLAB

c-Les constantes :
Les principales constantes sont :

Nom de la variable Valeur


i ou j √−1
exp(1) e=2.7183…
pi π=3.1416…
eps précision numérique relative ɛ≈2.2204x10-16
inf infini ∞
NaN not-a-number.Est obtenu quand on essaie d’effectuer une
opération non définie comme 0/0

Dr.W.CHELIA 2020-2021 6
Université du 20 Aout 1955 Skikda
Faculté des Sciences L2 Physique
Département de Physique TP Méthodes Numériques et programmation

III. Fonctions graphiques :

MATLAB permet de tracer facilement le graphe de fonctions scalaires. Cela se fait à l’aide de la fonction
«plot». Le format de base de la fonction plot est en fait le suivant :
plot(x,y,s) ;
Où x contient les absisses, y les ordonnées, et s’est une chaine de 1 à 3 caractères :
s= 'ctm', pour la couleur (c) et le style (tm), ex : r rouge (red), -- tirets (t), * étoiles (m)
Exemple :
𝑥2
On considère la fonction définie par 𝑦(𝑥) = 𝑒 (𝑥− 2 ) dans l’intervalle [0,5] avec un pas de 0.1 :

>> x=0.0:0.1:5.0; Figure1

y=exp(x-x.^2/2);

plot(x,y,'r--*')

1-Mathématiques, géométrie :
La fonction Définition
cos(x) cosinus. (en radian π)

sin(x) sinus.

tan(x) tangente.

abs(x) Valeur absolue ou module d’un nombre complexe. |𝑥|

sqrt(x) racine carrée. √𝑥

acos(x) fonction inverse du cosinus. l’arc cos

asin(x) fonction inverse du sinus.

atan(x) fonction inverse de la tangente.

exp(x) fonction exponentielle. ex

log(x) fonction logarithme népérien. ln(x)

log10(x) fonction logarithme en base 10. log10(x)

Dr.W.CHELIA 2020-2021 7
Université du 20 Aout 1955 Skikda
Faculté des Sciences L2 Physique
Département de Physique TP Méthodes Numériques et programmation

IV. Vecteurs et matrices :


1-Vecteurs :
Un vecteur est un tableau de valeurs.
Exemple1 :

>> v = [1 2 3 4] % vecteur ligne v ou v = [1,2,3,4]

v=
1234

>> u = [1 ; 2 ; 3 ; 4] % vecteur colonne u ou u = [1 2 3 4]' letransposé d'un vecteur

u=

1
2
3

L’opérateur deux-points «:», Il permet de discrétiser un intervalle avec un pas constant. La syntaxe est la
suivante : vecteur = valeur_initial : incrément : valeur_finale. Par défaut, le pas est égal à 1.
Exemple2 :

>> w = 0:5

w=

0 1 2 3 4 5

Exemple3 :

>> w = [0:0.2:1] % ou 0:0.2:1 Vecteur contenant des valeurs 0 à 1 avec un pas de 0.2

w=

0 0.2 0.4 0.6 0.8 1

Exemple4 :

>> x= [2 4 6]

x=

2 4 6

>> y= [x, 1, 2, 3]

y=

2 4 6 1 2 3

Dr.W.CHELIA 2020-2021 8
Université du 20 Aout 1955 Skikda
Faculté des Sciences L2 Physique
Département de Physique TP Méthodes Numériques et programmation

On peut accéder aux différents éléments d’un tableau en spécifiant un (ou des) indice(s) entre parenthèses.
Exemple5 :

>> v = [6 4 -1 3 7 9];

>> v(3) % v(3) retourne le 3ième élément du vecteur v

ans =

-1

>> v(2:4) % L’argument 2:4 permet de sélectionner un blocd’éléments (ici du second au quatrième)

ans =

4 -1 3

>> v(1)=5 % donner la valeur 5 au premier élément

v=

5 4 -1 3 7 9

1-1La fonction linspace :


La création d’un vecteur par la fonction linspace (début, fin, nombre d’éléments). Le pas d’incrémentation
est calculé automatiquement par Matlab selon la formule :
fin−debut
le pas = nombre d′ éléments−1

Exemple6 :

>> x = linspace(0,12,5) % un vecteur ligne x de cinq élément de 0 à 12

x=

0 3 6 9 12

1-2Fonctions vectorielles :
Ces fonctions sont plutôt destinées `a agir sur des vecteurs.
La fonction Signification

length(x) renvoie la taille du tableau.

max(x) renvoie la valeur maximale du tableau.

min(x) renvoie la valeur minimale du tableau.

Dr.W.CHELIA 2020-2021 9
Université du 20 Aout 1955 Skikda
Faculté des Sciences L2 Physique
Département de Physique TP Méthodes Numériques et programmation

Exemple7 :

>> length(x)

ans =

2-Matrices :

En fait MATLAB est avant tout un outil matriciel, toutes les variables représentent des matrices. Par
exemple A=2 c'est un nombre réel comme une matrice 1x1.
On peut créer une matrice « [ ] » de plusieurs façons :
Les éléments d’une ligne de la matrice peuvent être s´épares au choix par un blanc (espace) ou bien par une
virgule (,). Les lignes quant `à elles peuvent ˆêtre s´éparées au choix par le point-virgule (;) ou par un retour
chariot (entrer).
Exemple8 :

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

A=

1 3

4 2

>> A = [1 3

4 2]

A=

1 3

4 2

>> A = [1,3

4,2]

A=

1 3

4 2

Dr.W.CHELIA 2020-2021 10
Université du 20 Aout 1955 Skikda
Faculté des Sciences L2 Physique
Département de Physique TP Méthodes Numériques et programmation

2-1Extraction des éléments d’une matrice :


M(i,j) élément de la matrice M situe sur la ligne i et la colonne j

V(end) dernier élément du vecteur V

M(5:9,3) les éléments de la matrice M situés de la ligne 5 à 9, et sur


la colonne 3

M(:,j) toutes les lignes de la matrice M, colonne j

M(i,:) toutes les colonnes de la matrice M, ligne i

M(1:5,1:3) les éléments de la matrice M situés sur les lignes 1 à 5, et


sur les colonnes 1 à 3

Exemple9 :

>> M=[11 12 13 14 15 16 17 18 19 20

21 22 23 24 25 26 27 28 29 30

31 32 33 34 35 36 37 38 39 40

41 42 43 44 45 46 47 48 49 50

51 52 53 54 55 56 57 58 59 60

61 62 63 64 65 66 67 68 69 70
Figure2 : Matrice 10X9
71 72 73 74 75 76 77 78 79 80

81 82 83 84 85 86 87 88 89 90

91 92 93 94 95 96 97 98 99 100];

>> M(:,6)

ans =

16

26

36

46

56

66

76

86

96

Dr.W.CHELIA 2020-2021 11
Université du 20 Aout 1955 Skikda
Faculté des Sciences L2 Physique
Département de Physique TP Méthodes Numériques et programmation

2-2Quelques fonctions utiles :


Nous présentons dans ce tableau un ensemble de fonctions usuelles liées à l’utilisation des matrices.
La fonction Signification

« size(M) » renvoie les dimensions de la matrice.

« max(M) » renvoie un vecteur-ligne contenant les valeurs maximales


associées à chaque colonne.

« min(M) » renvoie un vecteur-ligne contenant les valeurs minimales


associées à chaque colonne.

« rank(M) » renvoie le rang de la matrice.

« det(M) » renvoie le déterminant de la matrice.

« diag(M) » extrait la diagonale de la matrice.

« triu(M) » extrait la matrice-triangle supérieure de M. tril donne la


matrice-triangle inférieure.

« eig(M) » renvoie un vecteur contenant les valeurs propres de la


matrice

« eye(n) » la matrice identité de dimension n.

« ones(m,n) » la matrice à m lignes et n colonnes dont tous les éléments


valent 1.

« zeros(m,n) » la matrice à m lignes et n colonnes dont tous les éléments


valent 0.

« rand(m,n) » une matrice à m lignes et n colonnes dont les éléments


sont génères de manière aléatoire entre 0 et 1.

Exemple10 :

>> M=[1 2 3;4 5 6;2 6 8];

>> size(M)

ans =

3 3

>> det(M)

ans =

Dr.W.CHELIA 2020-2021 12
Université du 20 Aout 1955 Skikda
Faculté des Sciences L2 Physique
Département de Physique TP Méthodes Numériques et programmation

Exemple11 :

>> diag(M)

ans =

>> eye(3)

ans =

1 0 0

0 1 0

0 0 1

>> ones(3,2)

ans =

1 1

1 1

1 1

>> zeros(2)

ans =

0 0

0 0

2-3Les opérations matricielles :


- Les opérations matricielles : +-* / \ ^ '.
- Les opérations «élément par élément» des vecteurs et des matrices sont effectuées en ajoutant un
point « . » avant les opérations : .* ./ .^ .\
Le tableau suivant résume quelques-uns des opérateurs :
matricielles composante ij élément par élément composante ij
A+B ou A-B Aij+Bij ou Aij+Bij / /
A*B ∑ 𝐀𝐢𝐤 𝐁𝐤𝐣 A.* 𝐀𝐢𝐣 𝐁𝐢𝐣
𝐤
A/B ou A\B (inversée) / A./ ou A.\ /
A' (transposée) 𝐀𝐣𝐢 A.^B 𝐀𝐢𝐣 𝐁𝐢𝐣
/ / A.^n 𝐀𝐢𝐣 𝒏

Dr.W.CHELIA 2020-2021 13
Université du 20 Aout 1955 Skikda
Faculté des Sciences L2 Physique
Département de Physique TP Méthodes Numériques et programmation

Exemple12 :

>> A = [2 1;6 9];

>> B = [1 0;-4 3];

>> A + B

ans =

3 1

2 12

>> A * B

ans =

-2 3

-30 27

>> A' % matrice A transposée (AT)

ans =

2 6

1 9

>> inv(B) % matrice B inversée (B-1)

ans =

1.0000 0

1.3333 0.3333

>> A / B

ans =

3.3333 0.3333

18.0000 3.000

>> A^2

ans =

10 11

66 87

Dr.W.CHELIA 2020-2021 14
Université du 20 Aout 1955 Skikda
Faculté des Sciences L2 Physique
Département de Physique TP Méthodes Numériques et programmation

Exemple13 :

>> A .* B

ans =

2 0

-24 27

>> B ./ A

ans =

0.5000 0

-0.6667 0.3333

>> A.^2

ans =

4 1

36 81

V. Structures de contrôle :
On va parler ici de tests et de boucles. Commençons par les opérateurs de comparaison et les opérateurs
logiques.
1-Operateurs de comparaison et logiques :

MATLAB représente la constante logique «FAUX» par 0 et la constante «VRAIE» par 1.

Symbole Opérateur

< > différent de (inferieur-supérieur)

<= >= inférieur (supérieur) ou égal

== égal

~= différent

& et logique

| ou logique

~ complément logique (not)

La fonction xor ou exclusif

Dr.W.CHELIA 2020-2021 15
Université du 20 Aout 1955 Skikda
Faculté des Sciences L2 Physique
Département de Physique TP Méthodes Numériques et programmation

Exemple1 :

>> 10 > 9

ans =

>> 2 == 3

ans =

>> 4 ~= 7

ans =

>> [1 4 ; 7 3] <= [0 6 ; 7 2]

ans =

0 1

1 0

>> x = [0 1 0 1];

>> y = [0 0 1 1];

>> x & y

ans =

0 0 0 1

>> x | y

ans =

0 1 1 1

>> ~x

ans =

1 0 1 0

Dr.W.CHELIA 2020-2021 16
Université du 20 Aout 1955 Skikda
Faculté des Sciences L2 Physique
Département de Physique TP Méthodes Numériques et programmation

Exemple2 :

>> xor(x,y)

ans =

0 1 1 0

>> 0 | 3

ans =

>> ~(-2.4)

ans =

2-Structures de programmation usuelles :


Les principales structures de programmation proposées par MATLAB sont :
- La boucle for :
for variable = valeur début : pas : valeur fin
instructions…
end
L’originalité réside dans le fait que la variable de boucle peut être réelle.
Exemple3 :
Pour remplir un vecteur A des valeurs de 11 à 20, au lieu de :

A=zeros(1,10);

for ii=1:10

A(ii)=ii+10;

end

il vaut mieux
A=11:20; ou bien A=[1:10]+10;
- La boucle while :
while expression
instructions…
end

Dr.W.CHELIA 2020-2021 17
Université du 20 Aout 1955 Skikda
Faculté des Sciences L2 Physique
Département de Physique TP Méthodes Numériques et programmation

Expression désigne le résultat d’une opération logique. Elle est construite en utilisant des opérateurs
relationnels et logiques.
- La boucle if :
Cette structure permet d’exécuter un bloc d’instructions en fonction de la valeur logique d’une expression.
Sa syntaxe est :
if condition ou if condition1
instructions… instructions1
end elseif condition2
instructions2
else
instructions3
end
Exemple4 : la valeur x

if x > 0

disp(‘x est positif’);

elseif x == 0

disp(‘x est nul’);

else

x = 1;

end

Bien évidemment, la variable x doit être définie auparavant. La fonction disp permet d’afficher une chaîne de
caractère spécifiée entre apostrophes. Si x n’est ni positif ni nul, il reçoit la valeur 1.
Il existe aussi une structure du type switch. . . case (voir les doc).

Dr.W.CHELIA 2020-2021 18
Université du 20 Aout 1955 Skikda
Faculté des Sciences L2 Physique
Département de Physique TP Méthodes Numériques et programmation

Référence bibliographique (livres, site internet, etc) :

[1] Brian D. Hahn and Daniel T. Valentine, Essential MATLAB for Engineers and Scientists, Elsevier
Ltd.2007.

[2] Craig S. Lent, LEARNING TO PROGRAM WITH MATLAB Building GUI Tools, Wiley.2013.

[3] Stormy Attaway, MATLAB A Practical Introduction to Programming and Problem Solving, Elsevier
Inc,2019.

[4] Rao V.Dukkipati, MATLAB An Introduction With Application, New Age International (P) Ltd,
Publishers,2010.

[5] Jean-Louis Merrien, ANALYSE NUMÉRIQUE AVEC MATLAB -Rappels de cours-Méthodes-


Exercices et problèmes avec corrigés détaillés, Dunod,Paris, 2007.

[6] https://www.youtube.com/results?search_query=matlab+programmation.

Dr.W.CHELIA 2020-2021 19

Vous aimerez peut-être aussi