MATLAB / Leçon 5
Le langage de programmation
Abdramane BAH, PhD / Maître Assistant
[email protected] /
[email protected]Plan
1. Introduction
a) Scripts vs fonctions
b) Exécuter un script
2. Instructions de base
3. Structures de contrôle
4. Fonctions
5. Exercices
2
1) Introduction
Pourquoi créer un programme ?
• Pour enregistrer une série de
commandes dans un fichier qui
peut être exécuter.
• Pour éviter d’écrire plusieurs fois
les commandes visant à résoudre
un problème.
3
4
1) Introduction: programme
Sous MATLAB, un programme :
• est un fichier (.m) appelé un « M-file »
• contenant un ensemble d’instructions.
Script « racine.m »
On distingue deux types de « M-file » :
1. les scripts
2. et les fonctions
Fonction « racine.m »
1) Introduction: script vs fonction
• Script : est une suite d’instructions • Fonction : est un script qui possède
exécutées séquentiellement. des paramètres d’entrées et de sortie.
On ne peut pas écrire expressions telles que :
Le script « racine.m » La fonction « racine.m »
5
1) Introduction : exécuter un script
• Créer un script : • Exécuter un script :
Cliquez sur « Home » puis sur « New Script » Deux méthodes:
1. En tapant le nom du script dans la
zone de commande
2. En cliquant sur le bouton « Run »
6
Création de scripts : exercice
a) Ecrire un script permettant de dessiner dans une même figure les courbes des trois
fonctions suivantes:
y1 = sin(𝑥) , y2 = sin(2𝑥) et y3 = sin(3𝑥)dans l’intervalle [-2π, 2π] pas: 0,05
b) Représenter
• y1 avec une ligne noire,
• y2 en utilisant une étoile bleue,
• et y3, avec des cercles rouges.
7
Instructions
8
2) Instructions de base
a) Affectation : signe (=)
b) Lecture : la commande input()
c) Ecriture : la commande disp(objet)
Objet peut être un scalaire, un vecteur, une
matrice ou une expression.
9
10
3) Structures de contrôle
1) Structures alternatives (if……..elseif…….else)
3.1) Structures alternatives
Opérateurs de comparaison & logiques
Égale à
En MATLAB, une valeur logique est Différent de
représentée par un nombre entier : 0 ou 1 Supérieur à
• 0 = faux Inférieur à
Supérieur ou égal à
• 1 = vrai (1 ou n’importe quel nombre Inférieur ou égal à
entier correspond à la valeur « vrai »)
ET logique
• Exemple: OU logique
NON logique
11
3.1) Structures alternatives
Comparaison de vecteurs et de matrices :
• On utilise deux fonctions isequal() et isempty()
12
3.1) Structures alternatives
Comparaison de vecteurs et de matrices : isequal() et isempty()
13
3.2) Structure alternative de choix multiples (switch)
L’instruction switch exécute des groupes d’instructions selon la valeur d’une expression.
14
3.2) Structure alternative de choix multiples (switch)
Exemple:
15
16
3.3) Structures répétitives : la boucle (POUR)
expression_vecteur correspond à la
définition d’un vecteur :
début : pas : fin ou début : fin
17
3.3) Structures répétitives : la boucle (TANTQUE)
Fonctions
18
4) Fonctions
• Une fonction est un script qui peut prendre des arguments et renvoyer des valeurs.
r1,r2,...,rn :
sont les valeurs retournées,
arg1...argn :
sont les paramètres.
end : est facultatif
• NB : il est obligatoire que le nom du M-file soit identique au nom de la fonction
19
4) Fonctions : exemple
Fichier racine.m
20
21
4) Fonctions : exemple
Une fonction sans paramètre de sortie Une fonction sans paramètre d’entrée
4) Fonctions
• Une fonction peut être appelée dans un script.
• MATLAB supporte aussi la récursivité i.e. une fonction qui s’appelle.
22
6) Exercice 1:
1) Ecrire le M-file de la fonction suivante:
2) Tester la fonction avec x = 1, x = -2, x =[-2 : 0.1 : 2]
3) Tracer la courbe de la fonction f1 aux points xi avec la commande plot(x, f1(x))
pour x allant de -5 à 5 avec un pas de 0,1.
23
6) Exercices 2 :
Soit fact(n) une fonction qui calcule la factorielle d’un nombre entier positif n.
a) Ecrire le m-file de la fonction sans utiliser de boucle, mais en servant de vecteurs
b) Ecrire le m-file de la fonction en utilisant une boucle for
c) Ecrire le m-file de la fonction en utilisant une boucle while
d) Ecrire le m-file de la fonction en utilisant la récursivité
24
6) Exercice 3 :
• Ecrire une fonction qui calcule la somme suivante:
25
6) Exercice 4 :
• Ecrire une fonction qui prend en paramètre un vecteur x et trace la courbe de la
fonction f(x) :
• Tester la fonction avec x de 0 jusqu’à 2π, et un pas = π/12
• Tester la fonction avec x de -5 jusqu’à 5, et un pas = 0,2
26
6) Exercice 5 :
Ecrire une fonction qui retourne les N premiers termes de la suite de Fibonacci,
N étant un entier saisi par l’utilisateur.
Une suite de Fibonacci est définie par la relation de récurrence suivante:
Exemple: pour N = 5, le programme doit retourner un vecteur contenant
fib(4) fib(3) fib(2) fib(1) fib(0)
3 2 1 1 0
27
6) Exercices 6
1. Définir une fonction somme qui prend en paramètres un nombre entier N. La
fonction fait appel à une autre fonction f retourne la valeur f (1) + f (2) + ... + f (n).
2. Tester la fonction somme avec les fonctions f2(x) = x2 et f3(x) = x2 + 1
28
FIN DU MODULE
MATLAB
29