Programmation et fonctions

Signaler

I. Fonctions en informatique

La syntaxe d’une fonction en langage Python est :

7293fd32-d8e8-4e8f-842e-124062f00ee5

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 :

4d5cc616-fd89-46be-9c6e-06df0929ac99

On a le tableau de variation suivant :

47ae3352-f6a1-4977-ad8e-3ad24564eb1c

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.

df05abe9-5571-4e18-b57b-d314a26fcf96

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 :

1199c246-c7fc-4ab2-8a4c-4777fd061cca

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 [ab] 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.

f31a7f61-3f35-4b5a-85f9-ad38ac74355b

36276d54-1f47-40ad-8d0c-c06c923f5755

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.