I. Fonctions en informatique
La syntaxe d’une fonction en langage Python est :
Une fonction peut avoir aucun, un ou plusieurs paramètres.
Le résultat éventuel d’une fonction, renvoyé par le mot-clé return, est utilisable dans un programme ou une autre fonction.
II. Résolution approchée d’une équation par balayage
On considère la situation suivante : rechercher une valeur approchée à 0,01 près de la solution x0 de l’équation 10x = 25. Considérons la fonction f définie par f : x ↦ 10x. En langage Python, on peut définir cette fonction par :
On a le tableau de variation suivant :
La fonction f est dérivable, strictement croissante sur l’intervalle [1, 2] où l’équation f(x) = 25 admet une solution unique x0. Le principe de l’algorithme de balayage à un « pas » donné, à partir de x = 1, consiste à :
- ajouter à x la valeur du pas ;
- calculer l’image par f ;
- recommencer jusqu’à ce que l’image par f dépasse la valeur 25.
En prenant comme valeur du pas 0,01, l’algorithme suivant fournit un encadrement de x0 de longueur 0,01.
On sait que la solution de l’équation 10x = 25 est log (25) qui vaut environ 1,39794.
Pour un pas de 0,01, la fonction balayage renvoie le couple (1.3900000000000003, 1.4000000000000004) qui correspond à l’encadrement [1,39 ; 1,40].
III. Révolution approchée d’une équation par dichotomie
On reprend la situation précédente : rechercher une valeur approchée à 0,01 près de la solution x0 de l’équation 10x = 25. Considérons, à présent, la fonction f définie par f : x ↦ 10x − 25 de sorte que l’on recherche x0 tel que f(x0) = 0. En langage Python, on peut définir cette fonction par :
La fonction f est dérivable, strictement croissante sur l’intervalle [1, 2] avec f(1) < 0 et f(2) > 0. L’équation f(x) = 0 admet donc une solution unique x0 dans l’intervalle [1, 2]. Le principe de l’algorithme de dichotomie pour une approximation donnée, consiste, à partir de l’intervalle [a, b] où a = 1 et b = 2, à :
- calculer l’image par f du milieu de l’intervalle [a, b], fa+b2 ;
- si fa+b2 < 0, remplacer l’intervalle [a, b] par l’intervalle a+b2, b ;
- sinon, remplacer l’intervalle [a, b] par l’intervalle a, a+b2 ;
- recommencer tant que la longueur de l’intervalle (qui est divisée par 2 à chaque étape) est supérieure à l’approximation donnée.
En prenant comme valeur d’approximation 0,01, l’algorithme suivant fournit un encadrement de x0 de longueur 0,01.
La requête dichotomie(0.25) renvoie (1.25, 1.5) qui correspond à l’illustration graphique ci-dessus, où deux étapes aboutissent à situer x0 dans l’intervalle [1,25 ; 1,5].
La requête dichotomie(0.01) renvoie (1.390625, 1.3984375) qui permet d’affirmer que x0 est compris entre 1,39 et 1,40.
Remarque
Dans le cas où f est décroissante, la condition if f(x) < 0 est remplacée par if f(x) > 0.