Casio - Algorithme de dichotomie (L)
1 Vues de vidéo·1 déc. 2024
Résoudre une équation par dichotomie c'est approximer la solution d'une équation en l'encadrant par des intervalles deux fois plus petits à chaque étape... Un principe beaucoup plus simple à comprendre avec un dessin ou mieux encore... une vidéo...
Complétez vos révisions avec 2000 fiches BAC à télécharger gratuitement sur Studyrama.com :
http://www.studyrama.com/formations/bac-2015/fiches-de-revision-du-bac/serie-l/mathematiques/
Bonjour, si vous devez deviner un nombre entre 1 et 100 et qu'on vous dit plus grand ou plus petit,
et que vous choisissez 50 puis 25 ou 75,
vous coupez en deux à chaque étape l'intervalle de recherche, vous effectuez une dichotomie.
On prend une fonction F strictement croissante et continue sur un intervalle AB
avec F2A négatif et F2B positif, ce qui correspond à cette situation
où on voit qu'il y a une seule solution à l'équation F2X égale 0,
ce qu'on pourrait démontrer facilement avec le théorème des valeurs intermédiaires qui ne nous intéresse pas ici.
Ce qu'on veut, c'est construire un algorithme qui nous permettra de trouver Alpha avec la dichotomie.
La valeur Alpha est comprise entre les bornes A et B.
Si on applique la dichotomie, on va couper en deux l'intervalle,
autrement dit s'intéresser à son milieu et surtout à l'image de ce milieu.
On peut constater qu'elle est positive, donc Alpha va être comprise entre A et le milieu
qui va prendre le rôle de la borne supérieure, c'est-à-dire la place de B,
codée sous la forme d'un algorithme si l'image du milieu est positive.
La borne inférieure ne change pas, par contre la borne supérieure B va prendre la valeur du milieu.
Si on réitère le processus sur ce nouvel intervalle,
on constate que le nouveau milieu a une image négative,
il va donc prendre la place cette fois de la borne inférieure, autrement dit de A,
ce qui va nous donner le programme suivant.
Maintenant, la question qu'on peut se poser, c'est comment arrêter les itérations ?
On s'arrête quand on est suffisamment proche de la solution,
c'est-à-dire quand on a un encadrement suffisamment précis.
L'encadrement, c'est l'intervalle AB qui a une longueur égale à B-A qui est de plus en plus petite.
A chaque étape, B-A est deux fois plus petit, il sera aussi petit que l'on veut,
et on va s'arrêter quand on aura atteint la précision voulue, par exemple 10-3.
On va noter P la précision, il nous faut une boucle avec condition d'arrêt,
on reste dans la boucle tant que la longueur de l'intervalle est plus grande que la précision voulue.
Dans ces cas-là, on cherche et on sort quand B-A est plus petit que P,
et dans ces cas-là, on affiche les deux bornes de l'intervalle A et B.
On n'oublie pas de spécifier les variables et de demander leur valeur à l'utilisateur.
Première remarque, on peut supprimer deux lignes du programme,
car A garde sa valeur et B garde sa valeur, n'ont aucun intérêt,
ce sont des choses qui se font automatiquement.
Que faire maintenant si on a une fonction décroissante ?
Si vous observez le schéma, vous allez constater que notre algorithme fonctionne
à condition de changer l'inégalité ici, ce qui signifie qu'il y a un programme
pour les fonctions croissantes avec strictement supérieur,
et un programme pour les fonctions décroissantes avec strictement inférieur.
Enfin, si vous voulez un programme qui fonctionne à la fois pour les fonctions
strictement croissantes et décroissantes, il existe une astuce,
elle consiste à tester le produit F de A fois F de A plus B sur 2.
S'il est négatif, ça signifie qu'ils sont de signes opposés,
autrement dit, A et le milieu sont de part et d'autre de la solution,
donc A plus B sur 2 va prendre la place de B,
autrement dit, on va changer B et dans le cas contraire, on changera A.
Sur votre Casio, cet algorithme se code de la façon suivante.

