1) Tester cet algorithme avec les fonctions définies par :
a) f(x) = cos(x) sur [0 ; 7] (mettre la calculatrice en radians)b) f(x) = x²-1 sur [-2 ; 2]
2) Tracer le graphe de la fonction f définie au b). Que constate-t-on? Comment l'expliquer?
Amélioration de l'algorithme :
Pour palier au défaut rencontré à la question 2) nous allons rajouter un test supplémentaire dans le traitement de
l'algorithme.
Algorithme en langage naturel Sur Casio
Entrées :
Saisir les bornes a et b de l'intervalle (a<b)
Initialisation des variables :
Affecter (b-a)/1000 à p
Affecter a à x
Affecter 0 à N // N représente le nombre de solutions exactes trouvées
Affecter 0 à M // M représente le nombre de solutions approchées trouvées
Effacer toutes les listes
Traitement :
Tant que
faire
| Si f(x) = 0 alors
| | Affecter N+1 à N
| | Affecter x à Liste_des_solutions_exactes en position N
| | Affecter x + p à x
| Sinon
| | Si
alors
| | | Augmenter M de 1
| | | Affecter x à Liste_des_valeurs_par_défaut en position M
| | | Affecter x + p à Liste_des_valeurs_par_excès en position M
| | | Affecter x + p à x
| | Sinon
| | | Affecter x + p à x
| | Fin de Si
| Fin de Si
Fin de Tant que
Sorties :
Afficher "Le nombre de solution de l'équation est : "
Afficher la valeur de N+M
Pour i allant de 1 à N faire
| Afficher "Les solutions exactes sont : "
| Afficher la valeur de Liste_des_solutions_exactes, position N
Fin de Pour
Pour i allant de 1 à M faire
| Afficher "Les solutions sont comprises entre : "
| Afficher la valeur de Liste_des_valeurs_par_défaut, position M
| Afficher "et : "
| Afficher la valeur de Liste_des_valeurs_par_excès, position M
Fin de Pour
Tester l'algorithme avec les fonctions précédentes
Mini défi : Cet algorithme contient une instruction répétée trois fois, alors que l'on peut ne l'écrire qu'une seule fois en
modifiant la structure de l'algorithme. Sauriez-vous trouver laquelle et effectuer cette modification?
(*) Un début d'explication du "presque toutes les solutions" du début :
Tester cet algorithme sur la fonction f définie par f(x) = sin(1/x) en choisissant comme bornes :
a) a=0,00001 et b = 1
b) a=0,00001 et b = 0,1
Que remarque-t-on?