Vous êtes sur la page 1sur 39

IUG-ISTA-ISA: INITIATION MATLAB 2022/2023

MANUEL

DR GONPE
IUG-ISTA-ISA: INITIATION MATLAB 2022/2023

LICENCE LP GIM

Dr GONPE

DR GONPE
Chapitre II: Introduction à la programmation avec MATLAB

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 d’Automatique, d’électricité, 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 présentés en cours. 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 un logiciel de calcul numérique commercialisé par la société MathWorks1. Il a été
initialement développé à la fin des années 70 par Cleve Moler, professeur de mathématique à
l’université du Nouveau-Mexique puis à Stanford, pour permettre aux étudiants de travailler à
parti d’un outil de programmation de haut niveau et sans apprendre le Fortran ou le C.
Matlab signifie Matrix laboratory. Il est un langage pour le calcul scientifique, l’analyse de
données, leur visualisation, le développement d’algorithmes. Son interface propose, d’une
part, une fenêtre interactive type console pour l’exécution de commandes, et d’autre part, un
environnement de développement intégré (IDE) pour la programmation d’applications.
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. Le logiciel de base peut être complété par de multiples toolboxes, c’est-à-dire
des boîtes à outils. Celles-ci sont des bibliothèques de fonctions dédiées à des domaines
particuliers. Nous pouvons citer par exemple : l’Automatique, le traitement du signal,
l’analyse statistique, l’optimisation…

MATLAB fait également partie d'un ensemble d'outils intégrés dédiés au Traitement du
Signal. En complément du noyau de calcul MATLAB, l'environnement comprend des
modules optionnels qui sont parfaitement intégrés à l'ensemble:

1- Voici une liste non exhaustive (loin de là) et en vrac de toolboxes, montrant la diversité des

3
Chapitre II: Introduction à la programmation avec MATLAB

fonctionnalités de Matlab :
Control System Toolbox Symbolic Math Toolbox Signal Processing Toolbox
Neural Network Toolbox Optimization Toolbox Parallel Computing Toolbox
Statistics Toolbox Fuzzy Logic Toolbox Image Processing Toolbox
Aerospace Toolbox Data Acquisition Toolbox Bioinformatics Toolbox
MATLAB Compiler Vehicle Network Toolbox Model-Based Calibration Toolbox
Financial Toolbox RF Toolbox System Identification Toolbox

une vaste gamme de bibliothèques de fonctions spécialisées (Toolboxes)

2) Simulink, un environnement puissant de modélisation basée sur les schémas-blocs et de


simulation de systèmes dynamiques linéaires et non linéaires

3) Des bibliothèques de blocs Simulink spécialisés (Blocksets)

4) D'autres modules dont un Compilateur, un générateur de code C, un accélérateur,...

5) Un ensemble d'outils intégrés dédiés au Traitement du Signal : le DSP Workshop.


Quelles sont les particularités de 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 un des meilleurs langages de programmations (C ou
Fortran), 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 leurs précisions,
• la bibliothèque mathématique très compréhensive,
• l’outil graphique qui inclus les fonctions d’interface graphique et les utilitaires,
• la possibilité de liaison avec les autres langages classiques de programmations (C ou
Fortran). Dans MATLAB, aucune déclaration n’est à effectuer sur les nombres. En effet, il
n'existe pas de distinction entre les nombres entiers, les nombres réels, les nombres
complexes et la simple ou double précision. Cette caractéristique rend le mode de
programmation très facile et très rapide. En Fortran par exemple, une subroutine est
presque nécessaire pour chaque variable simple ou double précision, entière, réelle ou
complexe. Dans MATLAB, aucune nécessité n’est demandée pour la séparation de ces
variables. La bibliothèque des fonctions mathématiques dans MATLAB donne des

4
Chapitre II: Introduction à la programmation avec MATLAB

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 peut-il s’en passer de la nécessité de Fortran ou du C ?

La réponse est non. En effet, le Fortran ou le C sont des langages importants pour les
calculs de haute performance qui nécessitent une grande mémoire et un temps de calcul
très long. Sans compilateur, les calculs sur MATLAB sont relativement lents par rapport
au Fortran ou au C si les programmes comportent des boucles. Il est donc conseillé
d'éviter les boucles, surtout si celles-ci est grande.

2 – Objectifs

Ce document propose une introduction à Matlab et développe un ensemble de fonctionnalités


spécifiques à certains domaines des sciences de l’ingénieur. Il ne constitue en aucun cas une
documentation exhaustive du logiciel. Toutefois, les principales notions sont présentées et
invitent l’étudiant à chercher par lui-même les informations complémentaires pour mener à
bien son projet. En plus de l’aide intégrée à l’environnement et des nombreux ouvrages
dédiés, une quantité abondante de ressources sont disponibles sur Internet :
Documentation en ligne de MathWorks : http://www.mathworks.com/help/techdoc/
Espaces d’entraide :
- Developpez.com : http://matlab.developpez.com/
- Matlab Central : http://www.mathworks.com/matlabcentral/
Notes mises en ligne par des Universités/Ecoles :
(par exemples)
- http://nte.mines-albi.fr/MATLAB/co/Matlab_web.html
- http://personnel.isae.fr/sites/personnel/IMG/pdf/InitiationMatLab.pdf
- http://perso.telecom-paristech.fr/~prado/enseignement/polys/matlab.html
- http://asi.insa-rouen.fr/enseignement/siteUV/tds/
- http://www-gmm.insa-toulouse.fr/~roussier/poly_info_icbe.pdf

5
Chapitre II: Introduction à la programmation avec MATLAB

-…
Il existe également un espace d’échange de codes et applications Matlab :
File exchange : http://www.mathworks.com/matlabcentral/fileexchange/
L’objectif de ce document est double. L’étudiant doit acquérir une connaissance suffisante du
logiciel pour pouvoir travailler efficacement et comprendre les notions vues dans les travaux
pratiques d’Automatique, de Mécanique et d’Analyse Numérique. Le second objectif est de
proposer une initiation consistante à un logiciel puissant, très largement utilisé dans le monde
industriel et académique (laboratoires, universités/écoles).

II- GENERALITES

Dans ce chapitre, l’environnement de Matlab est présenté. Un premier exemple introductif


montre rapidement le principe de fonctionnement du logiciel. Nous présentons ensuite un
ensemble de fonctions de base nécessaire pour débuter en Matlab.

1.1. Démarrage, quitter

Pour lancer le programme, double-cliquez l'icône matlab sur le bureau. Une fenêtre logo fait
une brève apparition, puis dans la fenêtre de commande, le symbole ">>" apparaît : c'est
l'invite de MATLAB qui attend vos commandes. Vous pourrez quitter la session avec la
commande quit.

1 - Interface principale
L’environnement MATLAB se présente sous la forme d’un espace de travail (Workspace), où
un interpréteur de commandes exécute des opérations et des fonctions .

6
Chapitre II: Introduction à la programmation avec MATLAB

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


Nous pouvons distinguer quatre blocs :

 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.
 Current directory (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.
 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.
Notons que la command window est la fenêtre centrale de l’interface, c’est à partir de là que
l’utilisateur pourra lancer les commandes interprétées par Matlab. Le principe est simple et
intuitif, le tout est de connaitre les fonctions appropriées et de respecter leur syntaxe.

Premier exemple élémentaire : à l’invite de commande, taper « 3*5 », puis entrer :

7
Chapitre II: Introduction à la programmation avec MATLAB

>> 3*5
ans =
15

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 (évidemment l’instruction est toujours exécutée). Par exemple :

>> 3*5;
>>

Le calcul a été effectué mais le résultat n’est pas affiché.


2 - Premiers pas sur des exemples
Nous proposons en premier lieu un démarrage rapide basé sur un exemple simple. Celui-ci a
pour objectif de montrer comment se pratique Matlab dans une première utilisation basique.
Cette section doit donc être parcourue avec Matlab à côté. Les lecteurs non débutants pourront
passer cette section.

Des Commandes Principales


help Pour plus d'informations sur une commande, on peut utiliser la commande help suivie du
nom de la commande demandée : help <command>

Exemple : >> help cos


COS Cosine.
COS(X) is the cosine of the elements of X.

quit : Cette commande est utilisée pour quitter MATLAB, à la fin de notre travail.
clc :Pour effacer la fenêtre.
clear /clear all : Elle réinitialise l’environnement (le "workspace") en détruisant toutes les
variables actives en mémoire.
Autres commandes :
• what : liste les fichiers *.m et *.mat dans le directory utilisé
• who : liste les variables utilisées dans l’espace courant
• ans : réponse retournée après exécution d’une commande
Exemple :
>>x=[1:5,1]
x=
1 2 3 4 5 1 ou bien :

8
Chapitre II: Introduction à la programmation avec MATLAB

>>[1:5,1]
ans =
123451

Calcul en mode Commande dans MATLAB :

4
Soit à calculer le volume suivant V = π R3: où R=4cm
3

Pour calculer V, on exécute les commandes suivantes :


>>R=4
R=
4
>>V=4/3*pi*R^3
V=
268.0826 (Ici, pi=π).
Calcul arithmétique :

+¿>¿ plus

- ¿>¿ moins
/¿>¿ division

* ¿>¿ multiplication

2
( ) 4 x −2 x+3
Exemple : P x = 3
x +1

x=2,
>>x=2
x=
2
>>P=(4*x^2-2*x+3)/(x^3+1)
P=
1.6667
Test ‘if’ Ce test s'emploie, souvent, dans la plupart des programmes. Un test ‘if’ est toujours suivi par
un ‘end’.
Exemple :
>>V=268.0826
V=

9
Chapitre II: Introduction à la programmation avec MATLAB

268.0826
>>if V>150, surface=pi*R^2, end
surface =
50.2655
L’opérateur ‘NON’ => Il est noté (ou symbolisé) par ‘~=’
Exemple :
>>R=4
R=
4
>>if R~=2, V=4/3*pi*R^3;end
L’opérateur ‘égal’ (==) dans ‘if’ Il est noté (ou symbolisé) par ‘==’.
Exemple :
>>R=4
R=
4
>>if R==4, V=4/3*pi*R^3;end
L’opérateur ‘ou’ => Il est noté (ou symbolisé) par ‘|’
Exemple : Si R=4 ou m=1, alors
>>if R==4 | m==1, V=4/3*pi*R^3;end
Autres opérateurs :

> => supérieur à

< => inférieur à

>= => supérieur ou égal

<= => inférieur ou égal

Exemples :

Si g>2 ou g<0, alors a=4


>> if g>2 |g<0, a=4, end

10
Chapitre II: Introduction à la programmation avec MATLAB

Si a>3 et C<0, alors b=15


>>if a>3 & c<0, b=15, end

Les opérateurs ‘&’ et ‘|’ peuvent être utilisés dans la même chaîne :
>>if ((a==2 | b==3)&(c<5),g=1,end L’opérateur ‘if…….else…….elseif…….end’:
Exemples:
>>R=2, if R>3, b=1 ; elseif R==3, b=2, else b=0, end

L’instruction ‘elseif’ peut être répétée dans un programme autant de fois.

Historique des commandes

Toutes les commandes que vous aurez tapé sous MATLAB peuvent être retrouvées et éditées grâce
aux

touches de direction. Appuyez sur ↑pour remonter dans les commandes précédentes, ↓pour
redescendre et

utilisez →et ←pour éditer une commande. Pour relancer une commande, inutile de remettre le
curseur à la

fin, vous appuyez directement sur la touche <Entrée>. Encore plus fort : vous pouvez retrouver
toutes les

commandes commençant par un groupe de lettres. Par exemple pour retrouver toutes les
commandes

commençant par <plot>, tapez plot, puis appuyez plusieurs fois sur ↑. Expérimenter cela dés
maintenant.
3- Variables et noms de variables :

3.1. Variables

Le calcul effectué plus haut n'a guère d'intérêt en soi. Il est bien sûr possible de conserver un résultat
de calcul et de le stocker dans des variables. Gros avantage sur les langages classiques : on ne déclare
pas les variables. Leur type (entier, réel, complexe) s'affectera automatiquement en fonction du
calcul effectué. Pour affecter une variable, on dit simplement à quoi elle est égale. Exemple :

>> a=1.2

a=

1.2000

11
Chapitre II: Introduction à la programmation avec MATLAB

On peut maintenant inclure cette variable dans de nouvelles expressions mathématiques, pour en
définir une

nouvelle :

>> b = 5*a^2+a

b=

8.4000

et ensuite utiliser ces deux variables :

>> c = a^2 + b^3/2

c=

297.7920

J'ai maintenant trois variables a, b et c. Ces variables ne sont pas affichées en permanence à l'écran.
Mais pour voir le contenu d'une variable, rien de plus simple, on tape son nom:

>> b

b=

8.4000

ou on double-click sur son nom dans le workspace.

On peut aussi faire des calculs en complexe √−1 − s'écrit indifféremment iou j, donc pour définir un
complexe :

>> a+ b*i

ans =

1.2000 + 8.4000i

Le symbole * peut être omis si la partie imaginaire est une constante numérique. Tous les opérateurs

précédents fonctionnent en complexe. Par exemple :

>> (a+b*i)^2

ans =

-69.1200 +20.1600i

12
Chapitre II: Introduction à la programmation avec MATLAB

Un dernier point sur les variables :

- MATLAB fait la différence entre les minuscules et les majuscules.

- Les noms de variables peuvent avoir une longueur quelconque.

- Les noms de variables doivent commencer par une lettre.

3.2. Variables prédéfinies


Il existe un certain nombre de variables préexistantes. Nous avons déjà vu ans qui contient le
dernier résultat de calcul, ainsi que i et j qui représentent √ −1
Il existe aussi pi, qui représente π, et quelques autres. Retenez que eps, nom que l'on a
souvent tendance à utiliser est une variable prédéfinie. ATTENTION : ces variables ne sont
pas protégées, donc si vous les affectez, elles ne gardent pas leur valeur initiale. C'est souvent
le problème pour i et j que l'on utilise souvent spontanément comme indices de boucles, de
telle sorte qu'on ne peut plus ensuite définir de complexe.
Quelle est la valeur de eps?
4. Arithmétique et opérations sur les scalaires
Nous allons nous intéresser aux opérations mathématiques de bases avec des
Avant de commencer, je conseille matrices 1x1, c’est `a dire des nombres. Commençons par les 4
opérations que vous connaissez depuis l’´école primaire : +, !, *, /.

On peut ´également travailler avec des variables définies par l’utilisateur :

On peut ´également utiliser les fonctions trigonométriques, puissance, logarithmiques etc

13
Chapitre II: Introduction à la programmation avec MATLAB

Fonctions prédéfinies
Toutes les fonctions courantes et beaucoup parmi les moins courantes existent. La plupart d'entre elles
fonctionnent en complexe. On retiendra que pour appliquer une fonction à une valeur, il faut mettre
cette dernière entre parenthèses. Exemple :
>> sin(pi/12)
ans =
0.16589613269342
Voici une liste non exhaustive :
- fonctions trigonométriques et inverses : sin, cos, tan, asin, acos, atan
- fonctions hyperboliques (on rajoute "h") : sinh, cosh, tanh, asinh, acosh, atanh
- racine, logarithmes et exponentielles : sqrt, log, log10, exp
- fonctions erreur : erf, erfc
- fonctions de Bessel et Hankel : besselj, bessely, besseli, besselk, besselh

Déclarations et affectations des variables :

format :
>>format → affiche les résultats avec 4 chiffres après la virgule.
>>format long → affiche les résultats avec 16 chiffres après la virgule.
* break :

Interrompe l’exécution d’un ‘for’ ou d’un ‘while’


* goto : Dans MATLAB l’instruction ‘goto’ est remplacée par ‘break’.
Exemple :
while R==1
.
.
.
if x>Xlimite, break, end

14
Chapitre II: Introduction à la programmation avec MATLAB

.
.
.
.
end
* clear : Efface toutes les variables existantes en mémoire
* clc :

Efface l’écran (fenêtre) de MATLAB

* input(' ') : Introduire une ou des variables par l’intermédiaire du clavier.


Exemple :
>>z=input(‘Longueur L=’); retourne :
Longueur L=
>>y=input(‘Introduire votre nom’,’s’);

Le second argument indique que la variable à introduire peut être un (ou des) caractère(s).
* fprintf(' ')

format de sortie sur écran


Exemples :
1. fprintf(‘La longueur L=%f\n’,L)

Dans cette chaîne, on a :

% → pour la sortie de la variable,

f → format de sortie

\n → retour à la ligne

L →‚ variable.
2. fprintf(‘La longueur L= %e%f\n’,L)

le résultat affiché est avec des puissances de 10 (exemple : 2.5e04)


3. fprintf(‘Nom_fichier’,’Volume= %e%12.5f\n’,V)

écrit la valeur = variable V dans un fichier Nom_fichier. la variable V est avec 5 chiffres après la
virgule.

Pour l’ouverture et la fermeture des fichiers, on peut utiliser également ‘fopen’ et ‘fclose’. Ainsi, on
peut joindre à l’ouverture de fichier par exemple, la permission d’ouvrir uniquement, de lire

15
Chapitre II: Introduction à la programmation avec MATLAB

uniquement, de lire et écrire, etc.


Exemple :

>>fich=fopen(‘Nom_fichier’,’ ?’)

? → représente la permission :

‘w’ → écriture : créer si nécessaire,

‘r’ → lecture uniquement (pas de création),

‘+r’ → lecture et écriture.


Ecriture d’un fichier ou de variables dans un fichier :

Ouvrir tout d’abord le fichier :


>>fich=fopen(‘Nom_fichier’,’ r’) ; y=fscanf(fich,’%f’)

1.5 Vecteurs
Une matrice d’ordre 0 est un scalaire. Une matrice d’ordre 1 est un vecteur. Ce vecteur peut être

un vecteur ligne ou un vecteur colonne.

Exemples:

>>x=[0,1,2,3] → retourne un vecteur ligne :

x =0 1 2 3

ou encore :

>>x=[0 1 2 3] → retourne aussi un vecteur ligne.

x(2)=1 par exemple.

>>x=[0 ;1 ;2 ;3] → retourne un vecteur colonne.

16
Chapitre II: Introduction à la programmation avec MATLAB

x=

>>x=[0 ;1 ;2 ;3]’ → retourne un vecteur ligne.

>>x=[0 1 2 3]’ → retourne un vecteur colonne. x(1)=0, x(2)=1, x(4)=3.

Remarque:

Dans MATLAB, les numéros de lignes ou de colonnes commencent toujours par 1et non par Zéro
comme c’est le cas dans les autres langages de programmation. Exemple : x(0)n’existe pas.

Matrice d’ordre supérieur à 1:

Une matrice d’ordre supérieur à 1 est une matrices à deux dimensions. Exemple : x(i,j).

Exemples:

>>x=[0 :2 ;4 :6] → retourne :

x=

012

456

C’est une matrice à 2 lignes et 3 colonnes.

>>y=[0 :2 ;4 :6]’ → retourne la matrice transposée :

y=

04

15

26

La taille de la matrice y est donnée par la fonction ‘size(y)’ :

>>size(y)

ans =

17
Chapitre II: Introduction à la programmation avec MATLAB

32

La réponse est : 3 lignes et 2 colonnes.

La colonne j de la matrice x est donnée par : y(:,j) → pour j=2, on a :

y(:,2)=

La ligne ide la matrice x est donnée par : y(i,:) → pour i=2, on a :

y(2,:)=

Pour une matrice carrée A d’ordre n, on a sa matrice identité qui est donnée par la fonction ‘eye’.

Exemple : pour n=3, on a :

>>A

A=

123

456

678

>>eye(size(A))

ans =

100

010

001

eye(size(A))donne la matrice identité de même ordre que celle de A.

Aspect des nombres dans MATLAB :

Dans MATLAB, il n’existe aucune distinction entre les nombres entiers, les nombres réels ou le
nombres complexes. Les nombres sont donc traités automatiquement. La précision des calculs est

18
Chapitre II: Introduction à la programmation avec MATLAB

affectée par le nombre de variables enregistrées et traitées. Les paramètres essentiels qui déterminent
cette précision dans un langage de programmation sont :
• le plus petit nombre positif : x_min
• le plus grand nombre positif : x_max

• l’erreur de la machine (epsilon) : eps

Autres fonctions :

Soit x=[2 15 0] une matrice ligne (vecteur ligne)

sort(x) → donne une matrice ligne dont les éléments sont en ordre croissant :
>>sort(x)
ans =
0 2 15 sort(x’) → donne une matrice colonne dont les éléments sont en ordre croissant :
>>sort(x’)
ans =
0
2
15 sum(x) calcule la somme des éléments de la matrice x.
>>sum(x)
ans =
17
>>sum([4 2 1 0;8 9 3 12])
ans =
12 11 4 12

Pour trouver le maximum et le minimum du vecteur x, on utilise les fonctions max(x) et min(x) :
>>max(x)
ans =
15
>>min(x)
ans =
0 pour une matrice y quelconque, le max(y) et min(y) donnent :
>>y
y=
4210
8 9 3 12
>>max(y)
ans =
19
Chapitre II: Introduction à la programmation avec MATLAB

8 9 3 12
>>min(y)
ans =
4210

4. Opérations sur les tableaux

4.1. Addition et soustraction

Les deux opérateurs sont les mêmes que pour les scalaires. A partir du moment où les deux tableaux
concernés ont la même taille, le tableau résultant est obtenu en ajoutant ou soustrayant les termes de
chaque tableau.

4.2. Multiplication, division et puissance terme à terme

Ces opérateurs sont notés ".*", "./" et ".^" (attention à ne pas oublier le point). Ils sont prévus pour
effectuer

des opérations termes à terme sur deux tableaux de même taille. Ces symboles sont importants lorsque
l'on

veut tracer des courbes.

4.3. Multiplication, division et puissance au sens matriciel

Puisque l'on veut manipuler des matrices, il paraît intéressant de disposer d'un multiplication
matricielle.

Celle-ci se note simplement * et ne doit pas être confondue avec la multiplication terme à terme. Il va
de soi que si l'on écrit A*B le nombre de colonnes de A doit être égal au nombre de lignes de B pour
que la multiplication fonctionne.

La division a un sens vis- à-vis des inverses de matrices. Ainsi A/B représente A multiplié (au sens des
matrices) par la matrice inverse de B. Il existe aussi une division à gauche qui se note \. Ainsi A\B
signifie l'inverse de A multiplié par B. Ce symbole peut être aussi utilisé pour résoudre des systèmes
linéaires : si v est un vecteur, A\v représente mathématiquement A−1 v , c'est- à-dire la solution du
système linéaire Ax = v.

La puissance n-ièmed'une matrice représente cette matrice multipliée n fois au sens des matrices par
elle-même.

20
Chapitre II: Introduction à la programmation avec MATLAB

Pour bien montrer la différence entre les opérateurs ".*"et "*", un petit exemple faisant intervenir la
matrice

4.4. Listes de valeurs

Cette notion est capitale pour la construction de courbes. Il s'agit de générer dans un vecteur une liste
de valeurs équidistantes entre deux valeurs extrêmes. La syntaxe générale est :

4.5. Matrices multidimensionnelles

Ci-dessous, tableau tri-dimensionnel, pour accéder à l'élément situé sur la seconde ligne, troisième
colonne,

5. Nombres aléatoires :

Les nombres aléatoires peuvent être générés par la fonction ‘rand’. Son expression est ‘rand(n)’ où n
est le rang de la matrice.

21
Chapitre II: Introduction à la programmation avec MATLAB

Si n=3 par exemple, rand(3) va générer 3 lignes et 3 colonnes de la matrice dont les coefficients sont
aléatoires et compris entre 0 et 1.
Exemple :
>> rand(3)
ans =
0.4154 0.0150 0.9901
0.3050 0.7680 0.7889
0.8744 0.9708 0.4387

On peut donner à la variable z une initialisation dans un programme. Pour cela, on peut générer des
valeurs aléatoires grâce à la fonction ‘seed’ (c’est à dire ensemencer) → rand(‘seed’,z)

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,:)

22
Chapitre II: Introduction à la programmation avec MATLAB

 L’accès à toute la colonne numéro j se fait par : A(:,j)

23
Chapitre II: Introduction à la programmation avec MATLAB

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.

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 :
5.1 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

24
Chapitre II: Introduction à la programmation avec MATLAB

présentons les plus utilisées :

Chapitre II : Introduction à la programmation avec MATLAB

1. Introduction
Nous avons vu jusqu’à présent comment utiliser MATLAB pour effectuer
des commandes ou pour évaluer des expressions en les écrivant dans la ligne de
commande, par conséquent les commandes utilisées s’écrivent généralement sous
forme d’une seule instruction (éventuellement sur une seule ligne).
Cependant, il existe des problèmes dont la description de leurs solutions nécessite
plusieurs instructions, ce qui réclame l’utilisation de plusieurs lignes. Comme par
exemple la recherche des racines d’une équation de second degré (avec prise en
compte de tous les cas possibles).
Une collection d’instructions bien structurées visant à résoudre un problème
donné s’appelle un programme. Dans cette partie, on va présenter les mécanismes
d’écriture et d’exécution des programmes en MATLAB.

2. Opérateurs de comparaison et opérateurs logiques


2.1 Les opérateurs de comparaison sont:
= = : égale à (X= = Y)
> : Strictement supérieur à (X > Y)
< : Strictement inférieur à (X< Y)
>= : supérieur ou égale à (X>= Y)
<= : inférieur ou égale à (X<= Y)
~= : différent de (X~=Y)

25
Chapitre II: Introduction à la programmation avec MATLAB

2.2 Les opérateurs


logiques sont: & : et
(and) (X &Y)
│ : ou (or) (X │ Y)
- : Non (not) X (-X)

3. Les entrées/sorties
3.1 Entrée au clavier
L’utilisateur peut saisir des informations au clavier grâce à la commande x =
input(...).

x=input ('Saisir une valeur de x : ');

Saisir une valeur de x : 5


x

x =
5

3.2 Sortie à l’écran


Pour afficher quelque chose à l’écran, l’utilisateur peut utiliser la commande disp,
qui affiche le contenu d’une variable (chaîne de caractères, vecteur, matrice...).

» A=[1 2 3];

» disp(A);

1 2 3

III Fichiers SCRIPT

1. 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

26
Chapitre II: Introduction à la programmation avec MATLAB

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 .
Une fenêtre d’édition comme celle- ci va apparaître :

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

Exemple

Notre script peut ensuite être exécuté, soit en tapant son nom (sans l’extension) à l’invite de
commande, soit en cliquant sur le bouton « run » de l’éditeur (icône avec un triangle vert).

27
Chapitre II: Introduction à la programmation avec MATLAB

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 :

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.

28
Chapitre II: Introduction à la programmation avec MATLAB

4. Instructions de contrôle
Les instructions de contrôle sous Matlab sont très proches de celles existant dans
d’autres langages de programmation.
4.1 L’instruction while :
L’instruction while répète l’exécution d’un groupe d’instructions un nombre
indéterminé de fois selon la valeur d’une condition logique. Elle a la forme

while (condition)
Ensemble d’instructions
end

générale suivante :

Tant que l’expression de while est évaluée à vrai (true), l’ensemble d’instructions
s’exécutera en boucle.

Exemple :
Faire un programme sous Matlab qui calcule la somme suivante:
S=1+2/2! +3/3!+… on arrête le calcul quand S>2.5

» s=1;i=1;f=1;

» while s<=2.5
i=i+1

f=f*i;
s=s+i/f
end

i=2

s=
2

i=3

s=
2.5000
29
i=4

s=
Chapitre II: Introduction à la programmation avec MATLAB

1.1 L’instruction if :
L’instruction if est la plus simple et la plus utilisée des structures de
contrôle de flux. Elle permet d’orienter l’exécution du programme en fonction de
la valeur logique d’une condition. Sa syntaxe générale est la suivante :

if (condition) if (condition)

instruction_1 ensemble d’instructions 1


ou bien
instruction_2
else
. . .
ensemble d’instructions 2
Instruction_N

Si la condition est évaluée à vrai (true), les instructions entre le if et le end seront
exécutées, sinon elles ne seront pas (ou si un else existe les instructions entre le
else et le end seront exécutées). S’il est nécessaire de vérifier plusieurs conditions
au lieu d’une seule, on peut utiliser des clauses elseif pour chaque nouvelle
condition, et à la fin on peut mettre un else dans le cas ou aucune condition n’a
été évaluée à vrai.
Voici donc la syntaxe générale :

if (expression_1)

Ensemble d’instructions 1

elseif (expression_2)

Ensemble d’instructions 2

....

elseif (expression_n)

Ensemble d’instructions n

else

Ensemble d’instructions si toutes les expressions étaient fausses

end

30
Chapitre II: Introduction à la programmation avec MATLAB

clear all ;

clc ;

x=input('introduire la valeur de x ');

Introduire la valeur de x 6 if
x<0

y=x;
end

if x>0
y=x^2;
end

if x==0
y=10;

end

disp('la valeur de y est: '),y

Clear all ;

Clc ;

x=input('introduire la valeur de x ');


introduire la valeur de x 6

if x<0
y=x;
else
y=x^2;
end

dis(y)

31
Chapitre II: Introduction à la programmation avec MATLAB

y=
36
Exemple :
Créons un programme qui trouve les racines d’une équation de second degré désigné par :
ax2+bx+c=0. Voici le M-File qui contient le programme (il est enregistré avec le nom
‘Equation2deg.m’ )

% Programme de résolution de l'équation a*x^2+b*x+c=0


Clear all ;
Clc ;

% lire a
a = input ('Entrez la valeur de a : '); % lire b
b = input ('Entrez la valeur de b : '); % lire c
c = input ('Entrez la valeur de c : '); % Calculer delta
delta = b^2-4*a*c ;
if delta<0
disp('Pas de solution') elseif delta==0
disp('Solution double : ') x=-b/(2*a)
% Pas de solution
else
disp('Deux solutions distinctes: ')
% Solution double
Deux solutions
x1=(-b+sqrt(delta))/(2*a) x2=(-b-
sqrt(delta))/(2*a)
%
end

Ainsi, le programme va être exécuté en suivant les instructions écrites dans son
M-File. Si une instruction est terminée par un point virgule, alors la valeur de la
variable concernée ne sera pas affichée, par contre si elle se termine par une
virgule ou un saut à la ligne, alors les résultats seront affichés.

Remarque :

32
Chapitre II: Introduction à la programmation avec MATLAB

Il existe la fonction solve prédéfinie en MATLAB pour trouver les racines d’une équation (et
beaucoup plus). Si nous voulons l’applique

>> solve('-2*x^2+x+3=0','x')
ans =

-1

3/2

1.1 L’instruction switch :


L’instruction switch exécute des groupes d’instructions selon la valeur d’une
variable ou d’une expression. Chaque groupe est associé à une clause case qui
définit si ce groupe doit être exécuté ou pas selon l’égalité de la valeur de ce case
avec le résultat d’évaluation de l’expression de switch. Si tous les cases n’ont pas
été acceptés, il est possible d’ajouter une clause otherwise qui sera exécutée
seulement si aucun case n’est exécuté.
Donc, la forme générale de cette instruction est :

switch (expression)

case valeur_1

Groupe d’instructions 1

case valeur_2

Groupe d’instructions 2

. . .

case valeur_n

Groupe d’instructions n

otherwise

Groupe d’instructions si tous les cases ont échoué

end

Exemple :

x = input ('Entrez un
nombre : ') ; switch(x)

case 0

disp('x = 0 ')
33
case 10

disp('x = 10 ')
case 100
Chapitre II: Introduction à la programmation avec MATLAB

L’exécution va donner :
Entrez un nombre : 50
x n'est pas 0 ou 10 ou 100

4.2 L’instruction for :


L’instruction for répète l’exécution d’un groupe d’instructions un nombre
déterminé de fois. Elle a la forme générale suivante :

for variable = expression_vecteur


Groupe d’instructions

end

L’expression_vecteur correspond à la définition d’un vecteur : début : pas : fin ou


début : fin La variable va parcourir tous les éléments du vecteur défini par
l’expression, et pour chacune il va exécuter le groupe d’instructions.
Exemple :
Dans le tableau suivant, nous avons trois formes de l’instruction for avec le
résultat MATLAB :

5. Les graphiques et la visualisation des données en MATLAB


Partant du principe qu’une image vaut mieux qu’un long discours,
MATLAB offre un puissant système de visualisation qui permet la présentation et
l’affichage graphique des données d’une manière à la fois efficace et facile.
Dans cette partie, nous allons présenter les principes de base indispensables pour
dessiner des courbes en MATLAB.
5. 1 La fonction plot :

34
Chapitre II: Introduction à la programmation avec MATLAB

La fonction plot est utilisable avec des vecteurs ou des matrices. Elle trace des
lignes en reliant des points de coordonnées définis dans ses arguments, et elle a
plusieurs formes :
Si elle contient deux vecteurs de la même taille comme arguments : elle
considère les valeurs du premier vecteur comme les éléments de l’axe X (les
abscisses), et les valeurs du deuxième vecteur comme les éléments de l’axe Y
(les ordonnées).

5. 2 Modification de l’apparence d’une courbe :


Il est possible de manipuler l’apparence d’une courbe en modifiant la couleur de
la courbe, la forme des points de coordonnées et le type de ligne reliant les points.
Pour cela, on ajoute un nouvel argument (qu’on peut appeler un marqueur) de type chaîne
de caractères à la fonction plot comme ceci :
plot (x, y, ’marqueur’)
Le contenu du marqueur est une combinaison d’un ensemble de caractères
spéciaux rassemblés dans le tableau suivant :

5. 3 Annotation d’une figure :


35
Chapitre II: Introduction à la programmation avec MATLAB

Dans une figure, il est préférable de mettre une description textuelle aidant
l’utilisateur à comprendre la signification des axes et de connaître le but ou
l’intérêt de la visualisation concernée.
Il est très intéressant également de pouvoir signaler des emplacements ou des
points significatifs dans une figure par un commentaire signalant leurs
importances.

 Pour donner un titre à une figure contenant une courbe nous utilisons la fonction
title
comme ceci :
>> title('titre de la figure')

 Pour donner un titre pour l’axe vertical des ordonnées y, nous utilisons la
fonction
ylabel comme ceci :
>> ylabel('Ceci est l''axe des ordonnées Y')

 Pour donner un titre pour l’axe horizontal des abscisses x, nous utilisons la
fonction
xlabel comme ceci :
>> xlabel('Ceci est l'axe des abscisses X')

 Pour écrire un texte (un message) sur la fenêtre graphique à une position
indiquée par les coordonnées x et y, nous utilisons la fonction text comme
ceci :
>> text(x, y, 'Ce point est important')

 Pour mettre un texte sur une position choisie manuellement par la souris,
nous utilisons la fonction gtext, qui a la syntaxe suivante :
>> gtext('Ce point est choisi manuellement')

 Pour mettre un quadrillage (une grille), nous utilisons la commande grid


(ou grid on). Pour l’enlever nous réutilisons la même commande grid (ou

36
Chapitre II: Introduction à la programmation avec MATLAB

grid off).
Exemple :
Dessinons la fonction : y = -2x3+x2-2x+4 pour x variant de -4 jusqu’à 4, avec un pas =
0.5.

>> x = -4:0.5:4;
>> y = -2*x^3+x^2-2*x+4;
>> plot(x,y)
>> grid
>> title('Dessiner une courbe')
>> xlabel('l'axe des abscisses')
>> ylabel('l'axe des ordonnées')

5. 4 Utiliser plot avec plusieurs arguments


On peut utiliser plot avec plusieurs couples (x,y) ou triplets (x ,y, ‘marqueur’)
comme arguments.
Exemple :
L’exemple qui suit:
>> x = [0:0.01:2*pi];

>> plot(x,cos(x),x ,sin(x))

produit la sortie graphique suivante :

37
Chapitre II: Introduction à la programmation avec MATLAB

1.7.1 Graphique d’une fonction


Le graph le plus simple est l’affichage d’une fonction d’une variable réelle.
Voyons comment tracer f ( x)=cos π x .

Regardons ce que fait l’exemple suivant :

1.7.2 Graphique de plusieurs fonctions


Décrivons maintenant quelques fonctions très utiles pour les graphs. Si l’on
souhaite placer deux courbes sur le même graph on utilise la commande hold on.

38
Chapitre II: Introduction à la programmation avec MATLAB

39

Vous aimerez peut-être aussi