bravo pour vos vidéos, merci pour ce partage. Si je ne me trompe, les variables (f a b et p ) de la fonction Dichotomie doivent être déclarées séparées avec des virgules et non des points virgules.
Bonjour, il y a un gros problème dans l'algorithme : la valeur de d est figée et n'est pas recalculée à chaque étape. En conséquence, si d>p à l'étape d'origine, la condition d>p sera évaluée à vrai à toutes les étapes ultérieures et l'algorithme ne s'arrêtera que si f(m) vaut 0, ce qui peut ne pas survenir suivant la précision numérique des calculs.
d est égale à (a+b) exemple [0;5] 0 + 5 = 5 et abs (5-0) = 5 aussi, et il n'y a pas besoin de mettre d = 0 dans le premier if car supposons que la fonction passe du positif au négatif en 2,5 soit x = 2,5 cela veut dire que f(x) = 0 et que donc c'est le point que l'on cherchait mais maintenant supposons que l'on a fait (0 + 5)/2 pour obtenir 2,5 et que l'on utiliser que la distance pour savoir si c'est le point que l'on cherche et bien on fait abs(0-2,5) d = 2,5 et pas 0 pourtant 2,5 est le point que l'on cherche et puis juste ca n'a pas de senses puisque l'on se rend compte que f(0)*((2,5) = 0 et pas > ou < à 0 donc on peut théoriquement même pas déduire d.
bravo pour vos vidéos, merci pour ce partage. Si je ne me trompe, les variables (f a b et p ) de la fonction Dichotomie doivent être déclarées séparées avec des virgules et non des points virgules.
Merci ! Oui en effet en Python ce sont des virgules qui séparent les variables :)
Pas grave l'essentiel c'est dichotomique :D
meeerciiiiiiiii prof :))))
Bonjour, il y a un gros problème dans l'algorithme : la valeur de d est figée et n'est pas recalculée à chaque étape. En conséquence, si d>p à l'étape d'origine, la condition d>p sera évaluée à vrai à toutes les étapes ultérieures et l'algorithme ne s'arrêtera que si f(m) vaut 0, ce qui peut ne pas survenir suivant la précision numérique des calculs.
Oui j'ai oublié de mettre à jour le d, il faut mettre d = abs(b-a) dans le while
Je pense que vous avez oublié de diviser d par 2 dans votre boucle et mettre d=0 pour le premier if
d est égale à (a+b) exemple [0;5] 0 + 5 = 5 et abs (5-0) = 5 aussi, et il n'y a pas besoin de mettre d = 0 dans le premier if car supposons que la fonction passe du positif au négatif en 2,5 soit x = 2,5 cela veut dire que f(x) = 0 et que donc c'est le point que l'on cherchait mais maintenant supposons que l'on a fait (0 + 5)/2 pour obtenir 2,5 et que l'on utiliser que la distance pour savoir si c'est le point que l'on cherche et bien on fait abs(0-2,5) d = 2,5 et pas 0 pourtant 2,5 est le point que l'on cherche et puis juste ca n'a pas de senses puisque l'on se rend compte que f(0)*((2,5) = 0 et pas > ou < à 0 donc on peut théoriquement même pas déduire d.