J'enseigne le développement logiciel a domicile (je n'ai pas d'affinité particulière avec les mathématiques, je suis même plutôt mauvais) et l'algorithme décrit dans le Tp de mon élève m'est impossible à réécrire sous forme de programme python.
L'algorithme est le suivant (algo + énoncé):
Nous considérons une fonction continue sur [a,b] , qui change de signe sur cet
intervalle.
Nous souhaitons déterminer une solution à l'équation f(x) = 0 sur cet intervalle à e près.
Une des solutions possibles à ce problème est l'algorithme de recherche par dichotomie.
Il se base sur le théorème de Bolzano énoncé comme suit~:
Soit une fonction continue sur un intervalle [a,b] , si f(a) et f(b) sont de signes
contraires alors il existe au moins une valeur de c appartient à [a,b] telle que f(c) = 0 .
D'un point de vue algorithmique, lorsque l'on recherche une valeur approchée à -près
de la solution dans un intervalle , on peut utiliser la méthode de la dichotomie qui
peut être décrite, dans sa forme simple, de la façon suivante :
- Code: Tout sélectionner
tant que l'intervalle d'étude [a,b] a une amplitude plus grande que e
calculer le centre m de l'intervalle [a,b]
calculer f(m)
si f(m) et f(a) sont de même signe alors
rechercher c dans l'intervalle [m,b]
sinon
rechercher c dans l'intervalle [a,m]
afficher m
Les paramètres d'entrée sont:
- la fonction f
- a
- b
- e
Le bon fonctionnement de l'algorithme est vérifié par:
- Code: Tout sélectionner
f = 2.1x² -1.5x -3.1
a = 0
b = 2
e = 0.0001
Donne un résultat de sortie approchant de
- Code: Tout sélectionner
1.6240
J'ai plusieurs questions:
- Que signifie "rechercher c dans l'interal [X,Y]" ?
- Avec les conditions données, la fonction ne peut jamais return, étant donné que nous (en tout cas l'algorithme donné) ne changeons jamais la valeur ni de
- Code: Tout sélectionner
a
- Code: Tout sélectionner
b