Vous êtes sur la page 1sur 41

30/01/2021

I. Introduction
MatLab est un puissant outil de calcul numérique, de programmation
et de visualisation graphique. Son nom signifie matrix laboratory,
c'est à dire un environnement interactif de travail avec des matrices.

Une fenêtre Matlab se divise en quatre espaces affichés :


Command Window ou s'affichent les commandes exécutées et
leur résultat,
Command History ou s'affiche l'historique des commandes,
Current Directory qui affiche les dossiers et fichiers du
répertoire courant,
Workspace qui recense les variables affectees.

A. HAMANE, Cours Matlab 2ème 30 January 2021


Année ST, Université de Jijel

MATLAB est un interpréteur : les instructions sont interprétées et


exécutées ligne par ligne.

Il existe deux modes de fonctionnement :


Mode interactif: MATLAB exécute les instructions au fur et à
mesure qu'elles sont données par l'utilisateur.
Mode exécutif: MATLAB exécute ligne par ligne un "fichier M"
(programme en langage MATLAB).

A. HAMANE, Cours Matlab 2ème 30 January 2021


Année ST, Université de Jijel

1
30/01/2021

II. Prise en main de Matlab

II.1. L’aide dans MATLAB

Le premier écran de MATLAB présente quelques commandes :


intro, demo, help help, help, info

intro : lance une introduction à MATLAB,

help : produit une liste des fonctions MATLAB par catégorie,

help help : informations sur l'utilisation de l'aide,

info : informations sur les boîtes à outils (Toolboxes) disponibles,

A. HAMANE, Cours Matlab 2ème 30 January 2021


Année ST, Université de Jijel

demo : programme de démonstration donnant une présentation


des fonctionnalités de base de MATLAB

help <fonction ou commande> : fournit de l'aide sur l'utilisation


de la fonction ou de la commande indiquée.

Pour quitter MATLAB, tapez quit (ou exit) suivi de la touche


ENTREE ou utilisez le menu "File" avec l'option "Exit MATLAB".

A. HAMANE, Cours Matlab 2ème 30 January 2021


Année ST, Université de Jijel

2
30/01/2021

lookfor <mot-clé> : fournit la liste des fonctions et commandes


contenant le mot-clé spécifié dans la première ligne de leur texte
d'aide.
On peut aussi faire appel à la documentation MATLAB pour des
fonctions, par la commande : doc ‘fonction’.

II.2. Types de données

Dans MATLAB, il y a un seul type de données : le type matrice


(Matrix). Tout est matrice, un scalaire est une matrice carrée
d'ordre 1. Il n'y a donc pas de déclaration de types.

MATLAB fait la distinction entre les majuscules et minuscules ;


ainsi, mavar et MAVAR sont deux variables différentes.

A. HAMANE, Cours Matlab 2ème 30 January 2021


Année ST, Université de Jijel

II.3. Notions de base de MATLAB

Le mode interactif
Dans le mode interactif, MATLAB peut être utilisé comme une
"super-puissante" calculatrice scientifique. On dispose des
opérations arithmétiques et d'un ensemble important de fonctions
de calcul numérique et de visualisation graphique.

Une fois Matlab lancé, les instructions de Matlab doivent suivre le


sigle >> .

Par exemple :

A. HAMANE, Cours Matlab 2ème 30 January 2021


Année ST, Université de Jijel

3
30/01/2021

A. HAMANE, Cours Matlab 2ème 30 January 2021


Année ST, Université de Jijel

A. HAMANE, Cours Matlab 2ème 30 January 2021


Année ST, Université de Jijel

4
30/01/2021

On remarque que :

• par défaut, tout calcul est affecté dans la variable ans


• les variables pi, eps, i, j sont déjà affectées, les variables i, j peuvent être
réaffectées
• l'affectation se fait grâce au sigle =
• le résultat d'une affectation est imprimé sauf si cette affectation est suivie du sigle ;
• la commande format permet de modifier l’affichage du format des différentes
variables
• les commandes who, whos permettent de lister l'ensemble des variables utilisées
• la commande clear efface le contenu de tous les variables utilisées
• la commande clc efface le contenu de la fenêtre command window

Attention : il très fortement déconseillé d'utiliser des noms de variables déjà utilisées
par Matlab.

Dans MATLAB, on trouve des constantes pré-définies par exp:


Pi, eps
Inf (Infinite) : nombre infini,
NaN (Not a Number) : n'est pas un nombre, exprime parfois une indétermination.
ans : variable contenant la dernière réponse.
A. HAMANE, Cours Matlab 2ème 30 January 2021
Année ST, Université de Jijel

Opérations arithmétiques
Les opérations arithmétiques de base dans MATLAB sont : + pour
l'addition, - pour la soustraction, * pour la multiplication et / ou \
pour la division. La division à droite et la division à gauche ne
donnent pas les mêmes résultats, ce sont donc deux opérations
différentes que ce soit pour les scalaires ou pour les vecteurs et
matrices.
Les opérations peuvent être enchaînées en respectant les
priorités usuelles des opérations et en utilisant des parenthèses.
MATLAB possède l'opérateur "^" pour l'élévation à une
puissance entière ou réelle.
L'élévation à une puissance est prioritaire par rapport aux autres
opérations ; l'utilisation des parenthèses est recommandée.

A. HAMANE, Cours Matlab 2ème 30 January 2021


Année ST, Université de Jijel

5
30/01/2021

Format des nombres et précision des calculs

MATLAB a la possibilité d'afficher les valeurs des variables dans


différents formats : flottants courts ( short ), flottants longs ( long),
flottants courts en notation scientifique (short e), flottants longs
en notation scientifique (long e ), ainsi que les formats monétaire,
hexadécimal et rationnel (notation sous forme d'une fraction).

Exemples :
format flottant short

>> format short


>> 22/7
ans =
3.1429

A. HAMANE, Cours Matlab 2ème 30 January 2021


Année ST, Université de Jijel

format flottant long en notation scientifique

>> format long e


>> 22/7
ans =
3.142857142857143e+000

II.4. Tableaux

II.4.1. Vecteurs ou tableaux à 1 dimension

Le moyen le plus simple de saisir un vecteur de type ligne est


d'entrer ses éléments en les séparant par des blancs ou des
virgules.

A. HAMANE, Cours Matlab 2ème 30 January 2021


Année ST, Université de Jijel

6
30/01/2021

Saisie du tableau x, vecteur ligne

>> x = [6 4 7]
x=
6 4 7
Afin d'éviter l'affichage du résultat d'une expression quelconque,
on terminera celle-ci par un point-virgule (;)
Autre façon de saisir un vecteur ligne
>> x = [6,4,7] ;

Ce vecteur est considéré comme une matrice à une ligne et trois


colonnes.

>> size(x)
ans =
1 3
A. HAMANE, Cours Matlab 2ème 30 January 2021
Année ST, Université de Jijel

Les dimensions d'un tableau quelconque peuvent être récupérées


par la commande size sous forme d'un vecteur, [m n], m et n
étant respectivement le nombre de lignes et de colonnes.

>> [m n] = size(x)
m=
1
n=
3

La longueur d'un tableau quelconque est, par définition, sa plus


grande dimension.

>> longueur_x = length(x)


longueur_x =
3
A. HAMANE, Cours Matlab 2ème 30 January 2021
Année ST, Université de Jijel

7
30/01/2021

Si l'on veut créer le vecteur v = [6 4 7 1 2 8], on peut utiliser le


vecteur x précédent, en réalisant une concaténation.
Construction d'un tableau à partir d'un autre
>> v = [x 1 2 8]
v=
6 4 7 1 2 8

De même pour avoir le vecteur w = [1 6 4 7 1 2 8], nous avons


deux possibilités :
>> w = [1 v]
w=
1 6 4 7 1 2 8

>> w = [1 x 1 2 8]
w=
1 6 4 7 1 2 8
A. HAMANE, Cours Matlab 2ème 30 January 2021
Année ST, Université de Jijel

Dans MATLAB, les indices d'un tableau commencent à 1. Pour


récupérer une composante d'un vecteur, il faut spécifier son
indice entre parenthèses.
>> w(3)
ans =
4
Si les composantes d'un vecteur sont espacées d'un pas constant
et si la première et la dernière valeur sont connues, alors ce
vecteur peut être décrit de la manière suivante :

>> debut = 0; fin = 1;


>> pas = 0.25;
>> t = debut:pas:fin
t=
0 0.2500 0.5000 0.7500 1.0000
A. HAMANE, Cours Matlab 2ème 30 January 2021
Année ST, Université de Jijel

8
30/01/2021

Si on omet de spécifier ce pas, celui-ci est pris par défaut à 1.

>> x=3:6
x=
3 4 5 6
L'addition et la soustraction de vecteurs de mêmes dimensions se
font élément par élément.

>> x = [0 4 3];
>> y = [2 5 7];
>> x-y
ans =
-2 -1 -4
>> x+y
ans =
2 9 10
A. HAMANE, Cours Matlab 2ème 30 January 2021
Année ST, Université de Jijel

Ajouter ou retrancher un scalaire à un vecteur, revient à l’ajouter


ou le retrancher à toutes les composantes du vecteur.

>> 3+x
ans =
3 7 6

>> x-2
ans =
-2 2 1

De même, la multiplication et la division d'un vecteur par un


scalaire sont réalisées sur toutes les composantes du vecteur.

A. HAMANE, Cours Matlab 2ème 30 January 2021


Année ST, Université de Jijel

9
30/01/2021

>> 2*x
ans =
0 8 6
>> x/4
ans =
0 1.0000 0.7500

La transformation d'un vecteur ligne en un vecteur colonne et


inversement, sera réalisée à l'aide de l'opérateur de transposition
« ‘ ».
>> tx = x'
tx =
0
4
3
A. HAMANE, Cours Matlab 2ème 30 January 2021
Année ST, Université de Jijel

Le produit d'un vecteur par sa transposée donne le carré de la


norme de celui-ci.

>> x*tx
ans =
25

Le produit d'un vecteur colonne de taille n par un vecteur ligne de


taille m donne une matrice de dimensions (n, m).

>> tx*y
ans =
0 0 0
8 20 28
6 15 21

A. HAMANE, Cours Matlab 2ème 30 January 2021


Année ST, Université de Jijel

10
30/01/2021

En précédant d'un point les opérateurs *, / , \ et ^, on réalise


des opérations élément par élément.

>> x.*y
ans =
0 20 21

>> x.^2
ans =
0 16 9

>> x./y
ans =
0 0.8000 0.4286

A. HAMANE, Cours Matlab 2ème 30 January 2021


Année ST, Université de Jijel

Plusieurs fonctions opérant directement sur des vecteurs sont


disponibles sous MATLAB. On peut en citer :

sum : somme des composantes d'un vecteur,


prod : produit des composantes d'un vecteur,
sqrt : racines carrées des composantes d'un vecteur,
mean : moyenne des composantes d'un vecteur.

A. HAMANE, Cours Matlab 2ème 30 January 2021


Année ST, Université de Jijel

11
30/01/2021

II.4.2. Matrices ou tableaux à 2 dimensions

La matrice ou tableau à 2 dimensions est un type de base de


MATLAB.

Saisie d’une matrice


La saisie d’une matrice peut être faite de différentes façons.

- Vecteurs lignes séparés par un saut de ligne ( ;)

>> matrice=[5 7 9; 1 4 2]
matrice =
5 7 9
1 4 2

A. HAMANE, Cours Matlab 2ème 30 January 2021


Année ST, Université de Jijel

- Vecteurs séparés par un retour à la ligne

>> matrice2=[3 5 7
8 6 10]
matrice2 =
3 5 7
8 6 10

Concaténation de matrices

La concaténation de 2 ou plusieurs matrices de dimensions


adéquates, peut se faire horizontalement ou verticalement.

A. HAMANE, Cours Matlab 2ème 30 January 2021


Année ST, Université de Jijel

12
30/01/2021

Soit les matrices A et B suivantes :

>> A =[5 7 3;2 9 4]

A=
5 7 3
2 9 4

>> B = [5 3 0; 7 1 6]

B=
5 3 0
7 1 6

A. HAMANE, Cours Matlab 2ème 30 January 2021


Année ST, Université de Jijel

La concaténation horizontale se fait comme suit :

>> ConcatHoriz = [A B]

ConcatHoriz =
5 7 3 5 3 0
2 9 4 7 1 6

La concaténation verticale se fait en faisant suivre A par un retour à la ligne


(point-virgule).

>> ConcatVert = [A; B]

ConcatVert =
5 7 3
2 9 4
5 3 0
7 1 6

A. HAMANE, Cours Matlab 2ème 30 January 2021


Année ST, Université de Jijel

13
30/01/2021

Nous pouvons aussi utiliser la commande cat , en spécifiant la


dimension selon laquelle on concatène ces matrices.

La syntaxe est la suivante : MatConcat = cat(dim, A, B)

>> MatConcatH=cat(2,A,B)
MatConcatH =
5 7 3 5 3 0
2 9 4 7 1 6

>> MatConcatV=cat(1,A,B)
MatConcatV =
5 7 3
2 9 4
5 3 0
7 1 6
A. HAMANE, Cours Matlab 2ème 30 January 2021
Année ST, Université de Jijel

Indexation d’une matrice

Pour extraire un élément d’une matrice, il suffit de spécifier


l’indice de la ligne et celui de la colonne où se trouve cet élément.
L’élément de la 2ème ligne et 4ème colonne est :

>> MatConcatH(2,4)
Ans =
7

Elément de la 2ème ligne et des colonnes 4 à 6 :

>> MatConcatH(2,4:6)

ans =
7 1 6
A. HAMANE, Cours Matlab 2ème 30 January 2021
Année ST, Université de Jijel

14
30/01/2021

On peut ainsi extraire une sous-matrice comme suit (cas des


lignes 2 à 3 et colonnes 1 à 2).

>> SousMat=MatConcatV(2:3,1:2)
SousMat =
2 9
5 3

Suppression de lignes ou de colonnes

On peut supprimer une ou plusieurs lignes ou colonnes d’une


matrice en les remplaçant par un ensemble vide symbolisé par
deux crochets [].
Si l’on veut supprimer la 2ème colonne de MatConcatV :

A. HAMANE, Cours Matlab 2ème 30 January 2021


Année ST, Université de Jijel

>> MatConcatV(:,2)=[ ]

MatConcatV =
5 3
2 4
5 0
7 6

Le signe « : » signifie toutes les lignes.

A. HAMANE, Cours Matlab 2ème 30 January 2021


Année ST, Université de Jijel

15
30/01/2021

II.4.3. Tableaux multidimensionnels

Un tableau à 3 dimensions est une succession, en profondeur, de


matrices appelées pages.

A. HAMANE, Cours Matlab 2ème 30 January 2021


Année ST, Université de Jijel

Ce tableau possède ainsi 3 pages, chacune ayant 4 lignes et 3


colonnes.
On indexe un élément de ce tableau selon la règle :

tableau(num_ligne, num_colonne, num_page).

Ainsi la valeur 68, 2ème ligne et 3ème colonne de la 3ème page


peut être indexée par : tableau(2,3,3)

La création d’un tableau à 3 dimensions se fait par la concaténation


selon la direction 3 de matrices de mêmes dimensions.

>> page1=ones(3);
>> page2=eye(3);
>> tab=cat(3,page1,page2)

A. HAMANE, Cours Matlab 2ème 30 January 2021


Année ST, Université de Jijel

16
30/01/2021

Les opérations propres aux vecteurs, telles que sum , mean,


max , etc. se font selon les colonnes, puis le vecteur ligne obtenu
et enfin par page.

II.5. Les chaînes de caractères

Toute chaîne de caractères est une matrice à une ligne, et un


nombre de colonnes égal à sa longueur. Une chaîne est considérée
par MATLAB comme un vecteur ligne dont le nombre d’éléments
est le nombre de ses caractères.

>> ch = 'matlab'
ch =
matlab

A. HAMANE, Cours Matlab 2ème 30 January 2021


Année ST, Université de Jijel

Les dimensions de la chaîne de caractères sont données par la


commande size.

>> [n, m] = size(ch)


n=
1
m=
6

Ainsi la chaîne 'matlab' est considérée comme une matrice à une


ligne et six colonnes, ou plus simplement comme un vecteur ligne
de taille 6.

La commande length qui permet d'obtenir la taille d'un vecteur ou


la plus grande dimension d'une matrice, est applicable aux
chaînes de caractères dont elle retourne la longueur.
A. HAMANE, Cours Matlab 2ème 30 January 2021
Année ST, Université de Jijel

17
30/01/2021

II.6. Les nombres complexes

L'imaginaire pur i (i2 = -1) est noté i ou j. Un nombre complexe est donc
de la forme z = a + ib ou a + jb. Mais MATLAB, dans ses réponses,
donne toujours le symbole i.

>> i
ans =
0 + 1.0000i

>> j
ans =
0 + 1.0000i

Le conjugué d'un nombre complexe est obtenu par la fonction conj.


Considérons le nombre complexe z1.

>> z1 = 4-3i
z1 =
4.0000 - 3.0000i
A. HAMANE, Cours Matlab 2ème 30 January 2021
Année ST, Université de Jijel

Son conjugué, noté z1c, est :

>> z1c = conj(z1)


z1c =
4.0000 + 3.0000i

Le conjugué peut aussi se calculer par la transposition du nombre complexe.

>> z1'
ans =
4.0000 + 3.0000i

Nous pouvons aussi effectuer les opérations courantes sur les complexes telles que
l'addition, la multiplication, l'élévation à une puissance et la division.

A. HAMANE, Cours Matlab 2ème 30 January 2021


Année ST, Université de Jijel

18
30/01/2021

Remarques

Il n’est plus nécessaire d'écrire le signe de multiplication '*'avant i (ou j) ; on


peut noter z = 4+2i au lieu de z = 4+2*i. Ce signe est, par contre,nécessaire
avant le nom du variable.

Il est conseillé d'utiliser la première notation pour éviter toute ambiguïté,


surtout si on a défini une variable i à laquelle on a affecté une valeur.

Par exemple, si on définit une variable i à laquelle on affecte la valeur -3,

>> i = -3;

La définition du complexe z sans le signe '*' avant i, donne bien le nombre


complexe désiré.
>> z = 4+2i
z=
4.0000 + 2.0000i
A. HAMANE, Cours Matlab 2ème 30 January 2021
Année ST, Université de Jijel

Alors que si l'on utilise le signe '*', i représente la variable précédemment


affectée de la valeur -3 au lieu du symbole i des nombres complexes ; dans
ce cas, l'instruction précédente revient à une simple opération arithmétique.

>> z = 4+2*i
z=
-2

Les fonctions real et imag permettent d'obtenir respectivement les parties


réelle et imaginaire d'un nombre complexe

>> a = real(z1)
a=
4
>> b = imag(z1)
b=
-3

A. HAMANE, Cours Matlab 2ème 30 January 2021


Année ST, Université de Jijel

19
30/01/2021

Module et argument
Nous pouvons calculer le module et l'argument d'un nombre complexe à
partir de leurs définitions mathématiques.

>> r = sqrt(z1*z1c) >> r = sqrt(a^2+b^2)


r= r=
5 5
>> theta = atan(b/a) ou >> theta = atan2(b,a)
theta = theta =
-0.6435 -0.6435

MATLAB propose les fonctions abs et angle qui permettent d'obtenir


directement le module et l'argument d'un complexe.

>> r = abs(z1)
r=
5
>> theta = angle(z1)
theta =
-0.6435
A. HAMANE, Cours Matlab 2ème 30 January 2021
Année ST, Université de Jijel

Rappel
forme algébrique : z = a + ib
forme trigonométrique : z = [r, theta]
r et theta sont respectivement le module et l'argument de z.
La connaissance de l'une de ces formes permet d'aboutir à l'autre.

>> z = r*(cos(theta)+i*sin(theta))
ans =
4.0000 - 3.0000i

Il est aussi possible d'utiliser la notation exponentielle.

>>z= r*exp(j*theta)
ans =
4.0000 - 3.0000i

A. HAMANE, Cours Matlab 2ème 30 January 2021


Année ST, Université de Jijel

20
30/01/2021

II.7. Les fichiers et la programmation avec MATLAB

Dans MATLAB, il y a deux types de fichiers : les fichiers de données et les


fichiers de programmes (scripts et fonctions).

II.7.1. Fichiers de données


En plus des fichiers de données que l'on peut définir et utiliser par programmation,
dans MATLAB on trouve les fichiers MAT. Ce sont des fichiers binaires (d'extension
.mat) qui permettent de stocker et de restituer des variables utilisées dans l'espace de
travail. Ces opérations sont réalisées respectivement par les commandes save et
load.

Exemple (sauvegarde de variables)

>> t = [1 2 3]
t=
123
>>h = 56
h=
56

A. HAMANE, Cours Matlab 2ème 30 January 2021


Année ST, Université de Jijel

>> save data


sauve toutes les variables existantes dans le fichier data.mat.

>> save data ‘h’ ‘t’


sauve les variables h et t dans le fichier data.mat

>> load data


charge les données qui sont dans le fichier data.mat ( Matlab affecte à nouveau
automatiquement les variables h et t).

>> clear
efface toutes les variables et données existantes.

On a la possibilité d'effacer une ou plusieurs variables de l'espace de travail. Si l'on


veut, par exemple, effacer uniquement certaines variables, on exécutera la
commande clear suivie des noms de ces variables.

A. HAMANE, Cours Matlab 2ème 30 January 2021


Année ST, Université de Jijel

21
30/01/2021

II.7.2. Fichiers de commandes et de fonctions

MATLAB peut exécuter une séquence d'instructions stockées dans un fichier. Ce fichier
est appelé fichier M (M-file). Ce nom provient du fait que l'extension est ".m".

La majorité de votre travail avec MATLAB sera liée à la manipulation de ces fichiers. Il y
a deux types de fichiers M : les fichiers de commandes (fichiers scripts) et les
fichiers de fonctions.

• Les fichiers de commandes (scripts)

Un fichier de commandes ou script est une séquence d'instructions MATLAB. Les


variables de ces fichiers sont locales à l'espace de travail. Les valeurs des variables de
votre environnement de travail peuvent être modifiées par les instructions des fichiers
scripts.

Les fichiers de commandes (scripts) sont aussi utilisés pour la saisie de données. Dans
le cas de grandes matrices, l'utilisation de scripts vous permet de corriger facilement et
rapidement les erreurs de saisie. Un fichier script peut appeler un autre ou s'appeler lui
même de façon récursive.

A. HAMANE, Cours Matlab 2ème 30 January 2021


Année ST, Université de Jijel

Pour exécuter un script, dans la fenêtre de commande de MATLAB, il suffit de mettre


son nom après le prompt (>>) ou de cliquer sur la flèche verte de l’éditeur

Exemple:

A. HAMANE, Cours Matlab 2ème 30 January 2021


Année ST, Université de Jijel

22
30/01/2021

• Les fichiers de fonctions

Les fichiers fonctions fournissent une extensibilité à MATLAB. Vous pouvez créer de
nouvelles fonctions spécifiques à votre domaine de travail qui auront le même statut
que toutes les autres fonctions MATLAB. Les variables dans les fonctions sont par
défaut locales, mais on peut définir des variables globales.

Sa syntaxe est la suivante :

function [args1,args2,...] = nomfonction(arge1,arge2,...)


Instructions

args1,args2,... sont les arguments de sortie de la fonction et peuvent être de n'importe


quel type.

arge1,arge2,... sont les arguments d'entrée de la fonction et peuvent être de n'importe


quel type.

instructions est un bloc d'instructions quelconque devant affecter les arguments de


sortie args1,args2,...

A. HAMANE, Cours Matlab 2ème 30 January 2021


Année ST, Université de Jijel

Exemple :
On va créer une fonction . L’exemple est édité sous le nom f1.m .

A. HAMANE, Cours Matlab 2ème 30 January 2021


Année ST, Université de Jijel

23
30/01/2021

II.7.3. Instructions de contrôle

MATLAB dispose des instructions de contrôle suivantes : for, while et if. La


syntaxe de chacune de ces instructions est semblable à celles des langages
classiques.
Il est important de savoir que beaucoup d'opérations nécessitent ces
instructions dans des langages classiques tels que C et Fortran, alors que dans
MATLAB, on peut s'en affranchir. Les opérations sur les matrices (addition,
multiplication, etc.) sont les exemples les plus évidents.

L'instruction for

for K= Kmin : Kmax for K= Kmin : pas : Kmax


instructions instructions
end end

A. HAMANE, Cours Matlab 2ème 30 January 2021


Année ST, Université de Jijel

L'instruction while

while conditions
instructions
end

L'instruction if

if condition1
instructions (si la condition1 est vérifiée)
elseif condition2
instructions (si la condition2 est vérifiée)
else
instructions (si les conditions ne sont pas vérifiées)
end

II.7.4. Opérateurs relationnels et logiques


Des expressions relationnelles et logiques peuvent être utilisées dans MATLAB
exactement comme dans les autres langages de programmation tels que le Fortran,
le Pascal ou le C.

A. HAMANE, Cours Matlab 2ème 30 January 2021


Année ST, Université de Jijel

24
30/01/2021

Opérateurs relationnels
Les opérateurs relationnels sont : <, <=, >, >=, ==, ~=

Ces opérateurs peuvent être utilisés avec des scalaires ou des matrices. Le
résultat d'évaluation d'une expression relationnelle est 1 (vrai) ou 0 (faux).
Quand ces opérateurs sont appliqués à des matrices, le résultat est une
matrice, de mêmes dimensions, formée de 0 et de 1, résultats de comparaisons
élément à élément.

Opérateurs logiques
Les expressions relationnelles peuvent être combinées en utilisant les
opérateurs logiques suivants : &, |, ~

qui signifient respectivement "et" (AND), "ou" (OR) et "non" (NOT). Ces
opérateurs sont appliqués sur les matrices élément par élément. Les
opérateurs logiques ont une priorité plus faible que les opérateurs relationnels,
qui à leur tour ont une priorité plus faible que les opérateurs arithmétiques.

A. HAMANE, Cours Matlab 2ème 30 January 2021


Année ST, Université de Jijel

II.8. Graphiques 2D et 3D

MATLAB peut produire des graphiques couleurs 2D et 3D impressionnants.


Il fournit aussi les outils et moyens de personnaliser et de modifier
pratiquement tous leurs aspects, facilement et de manière parfaitement
contrôlée. Pour avoir un aperçu des possibilités de MATLAB, il est conseillé
de consulter le programme de démonstration en entrant la commande demo
à la suite de l'invite ">>".
>> demo matlab graphics

II.8.1. Graphiques 2D
Une courbe 2D est pour tout logiciel de tracé de courbes représenté par
une série d’abscisses et une série d’ordonnées. Ensuite, le logiciel trace
généralement des droites entre ces points. MATLAB n’échappe pas à la
règle. La fonction s’appelle plot.
L’utilisation la plus simple de l’instruction plot est la suivante.
plot ( vecteur d’abscisses, vecteur d’ordonnées )
[ x1 x2 . . . xn ] [ y1 y2 . . . yn ]

A.HAMANE, Cours Matlab 2ème 30 January 2021


Année ST, Université de Jijel

25
30/01/2021

Traçage de courbes:
plot(x,y) Tracer le vecteur y en fonction du vecteur x
plot(t,x,t,y,t,z) Tracer x(t), y(t) et z(t) sur le même graphique
plot(t,z,'r--') Tracer z(t) en trait pointillé rouge

Rajouter des annotations sur le graphe :


title ajoute un titre au graphe,
xlabel ajoute une légende à l'axe horizontal du graphe,
ylabel ajoute une légende à l'axe vertical du graphe,
text ajoute un texte à l'emplacement précisé e.
legend ajoute des légendes aux différentes courbes.
Exemple :
>> Y=[0:0.02:1]; Z1=sin(2*pi*Y); Z2=cos(2*pi*Y);
>> plot(Y,Z1,':b',Y,Z2,'+k');
>> title('Exemple de courbes');
>> xlabel('Y');ylabel('Z');
>> legend('sin','cos');
A.HAMANE, Cours Matlab 2ème 30 January 2021
Année ST, Université de Jijel

Exemple de courbes
1
sin
0.8 cos

0.6

0.4

0.2

0
Z

-0.2

-0.4

-0.6

-0.8

-1
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Y

A. HAMANE, Cours Matlab 2ème 30 January 2021


Année ST, Université de Jijel

26
30/01/2021

• La taille du trait peut être modifiée graphiquement en le sélectionnant à la


souris puis un clic droit en choisissant l’option LineWidth après avoir
sélectionné la flèche d’édition graphique
• De même, on peut modifier la taille et la police des caractères du titre et du
label de l’axe des x et y ainsi que celles du texte à l’intérieur de la fenêtre
graphique.
• La commande figure permet de passer du mode interactif à la fenêtre
graphique courante. Vous pouvez aussi utiliser le menu "Window" et
sélectionner la fenêtre graphique
• Pour imprimer le graphique courant, on utilisera la commande print. Pour la
coller dans un texte, on utilisera l’option Copy Figure du menu edit.
• Pour conserver plusieurs courbes sur la même figure, on peut utiliser la
commande hold on .
A. HAMANE, Cours Matlab 2ème 30 January 2021
Année ST, Université de Jijel

Format de graphique :
plot(x,y) Tracer y(x) avec échelles linéaires
semilogx(f,A) Tracer A(f) avec échelle log(f)
semilogy(w,B) Tracer B(w) avec échelle log(B)
polar(theta,r) Tracer r(theta) en coordonnées polaires
bar(x,y) Tracer y(x) sous forme des barres
plotyy Graphe avec deux axes y différents à gauche et à droite.
loglog Graphe en 2D avec une échelle logarithmique pour les deux axes.
grid Ajouter une grille

Spécification des types de ligne avec plot

Taper help plot pour avoir la liste des options et la liste des styles et symboles.

A. HAMANE, Cours Matlab 2ème 30 January 2021


Année ST, Université de Jijel

27
30/01/2021

A. HAMANE, Cours Matlab 2ème 30 January 2021


Année ST, Université de Jijel

Graphique multiple:
On peut tracer plusieurs graphiques dans la même fenêtre en utilisant
l’instruction subplot pour diviser la fenêtre en plusieurs parties.
L’idée générale est de découper la fenêtre graphique en pavés de même
taille, et d’afficher un graphe dans chaque pavé. On utilise l’instruction
précédente en lui spécifiant le nombre de pavés sur la hauteur, le nombre de
pavés sur la largeur, et le numéro du pavé dans lequel on va tracer :

subplot (Nbre pavés sur hauteur, Nbre pavés sur largeur, Numéro pavé)

Une fois que l’on a tapé une commande


subplot, toutes les commandes graphiques
suivantes seront exécutées dans le pavé
spécifié.

A. HAMANE, Cours Matlab 2ème 30 January 2021


Année ST, Université de Jijel

28
30/01/2021

II.8.2. Graphiques 3D

La commande plot3 est identique à la commande plot, elle ne fait appel qu'à
une coordonnée supplémentaire. La syntaxe de base est plot3(x,y,z). Les
axes, titres et légendes se traitent comme dans le cas des courbes planes, la
commande zlabel est disponible.

A. HAMANE, Cours Matlab 2ème 30 January 2021


Année ST, Université de Jijel

Exemple :
Soit l'exemple suivant d'une fonction à 2 variables :

pour x et y variant de -π à π avec un pas de π /10.

>> alpha = -pi:pi/10:pi;


>> beta = alpha;

Dans la prochaine étape on génère deux matrices carrées X et Y qui


définissent le domaine de calcul de z, on utilisera pour ceci la fonction mesh
pour le tracé.
>> [X,Y]= meshgrid(alpha, beta);

On évalue la fonction z et on stocke les données dans la variable Z.

>> Z = sin(X.^2+Y.^2)./(X.^2+Y.^2);

A. HAMANE, Cours Matlab 2ème 30 January 2021


Année ST, Université de Jijel

29
30/01/2021

On dessine la surface représentative de la fonction.

>> mesh(X,Y,Z)

Nous pouvons rajouter un titre pour le tracé (title), des légendes pour les
axes (xlabel, ylabel et zlabel) ainsi qu'un quadrillage (grid).

>> xlabel('angle \alpha = -\pi : \pi')


>> ylabel('angle \beta = -\pi : \pi')
>> title('sin (\alpha^2+\beta^2)/(\alpha^2+\beta^2)')

Si une apostrophe est présente dans une chaîne de caractères, il faut la


doubler car MATLAB l'utilise comme délimiteur de chaînes.

A. HAMANE, Cours Matlab 2ème 30 January 2021


Année ST, Université de Jijel

2 2 2 2
sin ( + )/( +  )

0.5

-0.5
4
2 4
0 2
0
-2 -2
-4 -4
angle  = - :  angle  = - : 

A. HAMANE, Cours Matlab 2ème 30 January 2021


Année ST, Université de Jijel

30
30/01/2021

II.9. Les polynômes


MATLAB représente un polynôme sous forme d'un tableau de ses
coefficients classés dans l'ordre des puissances décroissantes

Saisie d'un polynôme


Le polynôme P d'expression : P(x) = x2 − 6x + 9, est représenté par le
tableau à 1 dimension suivant :

>> P = [1 -6 9]
P=
1 -6 9
Le nombre d'éléments du tableau est égal au degré du polynôme +1.

Le polynôme Q(x) = x3 +2 x2 − 3 est représenté par :

>> Q = [1 2 0 -3]
Q=
1 2 0 -3

A. HAMANE, Cours Matlab 2ème 30 January 2021


Année ST, Université de Jijel

Racines d'un polynôme


On peut déterminer les racines des polynômes P et Q à l'aide de la
fonction roots.

>> roots(P)
ans =
3
3

Ceci est exact car P(x) = (x − 3)2.

>> roots(Q)
ans =
-1.5000 + 0.8660i
-1.5000 - 0.8660i
1.0000

Le polynôme Q pouvant être mis en facteur comme suit :

Q(x) = (x −1)(x2 + 3x + 3)
A. HAMANE, Cours Matlab 2ème 30 January 2021
Année ST, Université de Jijel

31
30/01/2021

Evaluation de polynômes
Pour évaluer un polynôme en un point, on utilise la fonction polyval.
Valeur du polynôme P en 1 et celle du polynôme Q en 0

>> polyval(P,1)
ans =
4
>> polyval(Q,0)
ans =
-3
Détermination d'un polynôme à partir de ses racines
On peut aussi déterminer les coefficients d'un polynôme à partir de ses
racines en utilisant la fonction poly.
On cherche, par exemple, le polynôme qui a pour racines : 1, 2 et 3.
Celles-ci peuvent être définies comme les éléments d'un vecteur r.
>> r = [1 2 3]
r=
1 2 3
A. HAMANE, Cours Matlab 2ème 30 January 2021
Année ST, Université de Jijel

Le polynôme recherché est alors :

>> K = poly(r)
K=
1 -6 11 -6

qui correspond à : K(x)= x3 −6x2 +11x−6. En multipliant par un réel non nul,
tous les coefficients de K, on trouve un autre polynôme ayant les mêmes
racines que K.

On vérifie bien que les racines du polynôme K sont 1, 2 et 3.

>> racines = roots(K);


>> racines
racines =
3.0000
2.0000
1.0000

A. HAMANE, Cours Matlab 2ème 30 January 2021


Année ST, Université de Jijel

32
30/01/2021

Représentation graphique
Pour tracer la représentation graphique du polynôme K(x), définissons un
domaine pour la variable x qui contient les racines de K

Domaine des valeurs de la variable x et évaluation du polynôme K

>> x = 0:0.1:4;
>> y = polyval(K,x);

Tracé de la fonction y = K(x)

>> plot(x,y)
>> grid
>> title('tracé de y = x^3-6x^2+11x-6')
>> xlabel('x')
>> ylabel('y')

Grâce au bouton Data Curseur, nous montrons sur le graphique les


solutions du polynôme.
A. HAMANE, Cours Matlab 2ème 30 January 2021
Année ST, Université de Jijel

tracé de y = x3-6x2+11x-6
6

2
X: 1
Y: 0
0
y

-2

-4

-6
0 0.5 1 1.5 2 2.5 3 3.5 4
x

A. HAMANE, Cours Matlab 2ème 30 January 2021


Année ST, Université de Jijel

33
30/01/2021

Multiplication et division de polynômes


La multiplication et la division de polynômes peuvent être réalisées facilement
avec MATLAB. Soient deux polynômes P1 et P2 définis par :

>> P1 = [1 2]
P1 =
1 2
>> P2 = [1 -2 1]
P2 =
1 -2 1

Le résultat de la multiplication de P1 par P2 est le polynôme P3 qui s'obtient


avec la fonction conv.

>> P3 = conv(P1,P2)
P3 =
1 0 -3 2

A. HAMANE, Cours Matlab 2ème 30 January 2021


Année ST, Université de Jijel

La division de deux polynômes se fait par la fonction deconv. Le quotient Q


et le reste R de la division peuvent être obtenus sous forme d'éléments d'un
tableau.

>> [Q,R] = deconv(P2,P1)


Q=
1 -4
R=
0 0 9

En divisant P3 par P1, on retrouve bien le polynôme P2 (le reste R est nul).

>> [Q,R] = deconv(P3,P1)


Q=
1 -2 1
R=
0 0 0 0

R est le polynôme nul si la division est exacte.

A. HAMANE, Cours Matlab 2ème 30 January 2021


Année ST, Université de Jijel

34
30/01/2021

III. Prise en main de SIMULINK


SIMULINK est un langage de programmation graphique qui permet de
modéliser et de simuler des systèmes dynamiques.
SIMULINK s’ouvre lorsqu’on clique sur le bouton
Les librairies sont des ensembles de blocs répartis selon la catégorie de
fonctions réalisées. Parmi ces librairies, nous trouvons, entre autres, les plus
utilisées :

A. HAMANE, Cours Matlab 2ème 30 January 2021


Année ST, Université de Jijel

S. HADDAD, Cours Matlab 2ème 30 January 2021


Année TCST, Université de Jijel

35
30/01/2021

III.2. Quelques exemples

III.2.1. Réponse indicielle d’un système du 1er ordre

Le modèle exemple1.mdl permet de simuler la réponse indicielle d’un


système numérique du premier ordre de pôle 0.5 et de gain statique unité.

Pour cela, nous utilisons le bloc générateur d’échelon de la librairie Sources


que l’on relie à l’entrée du système (librairie Discrete).
La sortie du système ainsi que la commande échelon sont sauvegardées,
grâce à un multiplexeur (librairie Signal Routing), dans la variable y que l’on
peut utiliser dans l’espace de travail MATLAB.
Elle est de même affichée dans un oscilloscope (librairie Sinks).

A. HAMANE, Cours Matlab 2ème 30 January 2021


Année ST, Université de Jijel

En double-cliquant sur les blocs, on peut les paramétrer : édition du


numérateur et dénominateur de la fonction de transfert, hauteur de
l’échelon, ainsi que le type de variable y, structure ou tableau (Array).
Avec l’option «Configuration Parameters » du menu « Simulation », nous
pouvons spécifier les paramètres de la simulation : durée de la
simulation, algorithme de résolution, etc.
A. HAMANE, Cours Matlab 2ème 30 January 2021
Année ST, Université de Jijel

36
30/01/2021

III.2.2. Résolution d’un système linéaire

Le modèle suivant permet de résoudre un système déterminé de la forme


Ax= B

>> A = [2 3; 1 -2];
>> B= [8 -3]';
>> inv(A)*B
ans =
1
2
A. HAMANE, Cours Matlab 2ème 30 January 2021
Année ST, Université de Jijel

Pour la transposition, nous utilisons le bloc Math Function


de la librairie Math Operations.

Dans le menu déroulant Function on choisit l’option transpose. Le bloc prend


alors la forme

Quant à la multiplication, l’inversion ou le produit matriciel, nous utilisons le même bloc


Product (produit) que nous paramétrons sous sa forme matricielle avec

autant d’entrées que l’on désire.

On peut réaliser l’inversion par la division matricielle en écrivant le symbole « / » dans la


case Number of inputs. Ainsi le bloc ne possèdera qu’une entrée (la matrice à inverser)
sur laquelle est notée Inv.

La matrice A et le vecteur B sont entrés comme des constantes qui prennent les valeurs
des variables spécifiées et connues dans l’espace de travail MATLAB.

A. HAMANE, Cours Matlab 2ème 30 January 2021


Année ST, Université de Jijel

37
30/01/2021

Exercices & Corrigés

Exercice 1.

Ecrire un script Matlab qui affiche la résistance équivalente à trois


résistances R1, R2 et R3 lorsqu’elles sont branchées en série ou
en parallèle (l’utilisateur doit entrer, à la demande du programme,
les valeurs des résistances et le type de montage).

A. HAMANE, Cours Matlab 2ème 30 January 2021


Année ST, Université de Jijel

Corrigé 1.
% Ce programme calcule la résistance équivalente R de trois
% résistances montées en série ou en parallèle.
disp (' entrer dans l’ordre les valeurs de chaque résistance ')
for i=1:3 ;
disp(['entrer la valeur de R',num2str(i),' (en Ohm)']) ;
R(i)=input(' ') ;
end
disp ('quel type de montage voulez-vous ? série =1 ou parallèle = 0 ?')
n=input(' ');
if n==1 ;
R=R(1)+ R(2)+ R(3);
else if n==0;
R=(R(1)*R(2)+R(1)*R(3)+R(2)*R(3))/(R(1)*R(2)*R(3));
end
end
disp(['La résistance équivalente est : ',num2str(R),' (Ohms)'])
A. HAMANE, Cours Matlab 2ème 30 January 2021
Année ST, Université de Jijel

38
30/01/2021

Exercice 2.

Ecrire une fonction de Matlab qui donne le périmètre et la surface d’un cercle
connaissant son rayon R.

Corrigé 2.

function [d,s]=perisurf(R)
d=2*R*pi;
s=R*R*pi;

A. HAMANE, Cours Matlab 2ème 30 January 2021


Année ST, Université de Jijel

S. HADDAD, Cours Matlab 2ème 30 January 2021


Année TCST, Université de Jijel

39
30/01/2021

Exercice 3.

(on commencera par créer un tableau de valeur pour x avec un pas de 0.01).

Corrigé 3.

x=0:0.01:10;
y=exp(-(x-5).^2/2);
figure
plot(x,y,'or')
xlabel('axe des x')
ylabel('axe des y')

A. HAMANE, Cours Matlab 2ème 30 January 2021


Année ST, Université de Jijel

Exercice 4

Ecrire les instructions MATLAB pour construire une matrice triangulaire


supérieure (resp. inférieure) de dimension 10 ayant des 2 sur la diagonale
principale et des −3 sur la seconde sur-diagonale (resp. sous-diagonale).

Corrigé 4

On utilise l’instruction U=2*eye(10)-3*diag(ones(8,1),2)

(respectivement L=2*eye(10)-3*diag(ones(8,1),-2)).

A. HAMANE, Cours Matlab 2ème 30 January 2021


Année ST, Université de Jijel

40
30/01/2021

Exercice 5.
On veut calculer le nombre factoriel d’un entier naturel n, soit n!=n(n-1)(n-
2)×…×2×1. Le programme demandera à l’utilisateur de rentrer la valeur de n et
affichera en sortie la décomposition de n en tous ses facteurs et donnera aussi
le résultat de la valeur de n!

Corrigé 5.
disp('entrer le valeur de N' )
N=input( ' ' )
S=1
while N>=1
S=S*N
N=N-1;
disp( N )
end
disp( ['N! = ' , num2str(S)] )

A. HAMANE, Cours Matlab 2ème 30 January 2021


Année ST, Université de Jijel

41

Vous aimerez peut-être aussi