Vous êtes sur la page 1sur 3

Avant TP : Les fonctions (sous programmes) en Matlab Par exemple pour définir la fonction : f(x)=2x3-4x2+x-3, on écrit :

>> f = @(x) 2*x^3-4*x^2+x-3 ;


En informatique, une fonction (une routine ou un sous-programme) est une
activité qui accepte des entrées (des arguments ou des paramètres) et qui Pour calculer f(3) on écrit :
renvoie des résultats (des sorties).
>> f(3)
ans =
arg1 r1 18
Les arguments ou arg2 Les résultats
. . r2
les paramètres . La fonction . (Les sorties)
(Les entrées) . . Exercice : Créer une fonction anonyme nommée inverser qui inverse les
argn rm
éléments d’un vecteur.

Souvent on observe pendant l’écriture des programmes que des traitements Solution :
spécifiques sont fréquemment utilisées, c’est pourquoi au lieu de les réécrire Pour inverser les éléments d’un vecteur V on peut écrire V(end :-1 :1) donc :
plusieurs fois dans plusieurs endroits, il est préférable et plus judicieux d’écrire >> inverser = @(V) V(end:-1:1)
ces traitement une seule fois en modélisant leurs petits changements sous
Si nous désirons inverser les éléments du vecteur [5,-3, 11,-52] on écrit :
forme de paramètres. Cette organisation est appelé un sous-programme (ou >> inverser([5,-3,11,-52])
une fonction). ans =
-52 11 -3 5
L’utilisation des fonctions nous offre beaucoup d’avantages par exemple : la
diminution de la taille du programme et de l’effort pour l’écrire, la facilité de Remarque :
modification, la commodité de pister et corriger les erreurs, l’amélioration de Le symbole @ est utilisé en Matlab pour désigner une référence à une fonction
la lisibilité et de la cohérence. (un pointeur), par exemple @fun signifie une référence à la fonction fun. C’est
pourquoi quand on met @ sans ajouter un nom de fonction, Matlab génère une
Il existe trois types de fonctions en Matlab :
fonction sans nom (anonyme) définie par les arguments et l’expression écrites
1. Les fonctions inline (obsolètes et ne seront pas étudiées) par la suite.
2. Les fonctions anonymes
Par exmple :
3. Les sous programmes (ou les fonctions dans un fichier M). >> monSinus = @sin % faire une référence à la fonction sin
>> monSinus(pi/2)
1. Les fonctions anonymes : ans =
1
Les fonctions anonymes sont utilisées pour créer une fonction définie par une
petite expression. 3. Les fonctions structurées ou sous-programmes :
La création d’une fonction anonymes est définie par la syntaxe suivante :
Si la fonction ne peut pas être définie avec une seule expression, alors son
nom_fonction = @ (arg1, arg2, … ,argn) expression de la fonction comportement doit être programmé et sauvegardé dans un fichier.
>> x = racine(9)
C’était le cas avec la plupart des fonctions pré-implémentées de Matlab comme : x =
sin, cos, sqrt, diag, eye, …etc., mais nous pouvons facilement créer nos 3
propres fonctions et les ajouter à l’environnement Matlab en suivant les étapes >> x = racine(196)
suivantes : x =
1. Ouvrir la fenêtre d’Edition (avec la commande edit) 14.0000
2. Programmer le comportement de la fonction en respectant la syntaxe
suivante : Remarque :
Contrairement à un programme (ou un script), une fonction peut être
function [r1, r2, …, rn] = nom_fonction (arg1, arg2, …, argm)
utilisée dans une expression par exemple : 2*racine(9)-1.
% le corps de la fonction
. . .
r1 = . . . % la valeur retournée pour r1 Exemple 2 :
r2 = . . . % la valeur retournée pour r2 Nous allons créer une fonction qui calcule le PGCD de deux entiers a et b:
. . . >> edit Le fichier pgcd.m
rn = . . . % la valeur retournée pour rn
end % le end est facultatif function resultat = pgcd(a,b)
while a ~= b
Ou : r1, r2, …, rn sont les sorties if a > b
arg1, arg2, …, argm sont les entrées (les arguments) a = a-b;
else
3. Enregistrer le code source dans un fichier qui porte le même nom que b = b-a;
la fonction (un fichier d’extension .m) end
4. Tester la fonction (et corriger les erreurs s’il y’en a) end
resultat = a;

Exemple 1 : >> pgcd(56,24)


Nous allons créer une fonction qui calcule la racine carrée d’un nombre ans =
en utilisant la célèbre méthode de Newton : 8

>> edit Le fichier racine.m >> x = pgcd(84,35)


x =
function [r]=racine(nombre) 7
r = nombre/2;
for i = 1:10
r = (r + nombre / r) / 2;
end
Dessiner une fonction avec la fonction fplot :
La fonction fplot est spécialisée dans les dessins des courbes des
fonctions et elle a la forme générale suivante :
fplot(fonction, [debut, fin])
Où fonction est soit :

 Une chaine de caractères contenant l’expression de la fonction


 Soit une fonction inline, anonymes ou fonction dans un fichier

Et début et fin sont les limites de l’intervalle ou la fonction sera dessinée.


Exemple :
Pour dessiner la fonction g(x) = x2−1+ex sur [−1,1] on peut
choisir une des méthodes suivantes :
1. >> fplot('x^2-1+exp(x)',[-1,1])

2. >> g = inline('x^2-1+exp(x)');
>> fplot(g,[-1,1])

3. >> g = @(x) x^2-1+exp(x);


>> fplot(g,[-1,1])

Vous aimerez peut-être aussi