[RESOLU] Algorithme théorème de Bolzano incompréhensible

Discutez d'informatique ici !
andromelus
Messages: 2
Enregistré le: 15 Fév 2022, 18:52

[RESOLU] Algorithme théorème de Bolzano incompréhensible

par andromelus » 15 Fév 2022, 19:04

Bonjour.

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
ni de
Code: Tout sélectionner
b
. Il me paraît peu probable que l'énoncé soit incorrect, qu'ai-je donc mal compris ?
Modifié en dernier par andromelus le 17 Fév 2022, 09:12, modifié 1 fois.



Avatar de l’utilisateur
mathelot
Habitué(e)
Messages: 13686
Enregistré le: 08 Juin 2006, 08:55

Re: Algorithme théorème de Bolzano incompréhensible

par mathelot » 15 Fév 2022, 19:23

Bonjour,
il suffit de remplacer ton code par les lignes:

si f(m)f(a) > 0 alors
a=m
sinon
b=m
finsi

Le diamètre de l'intervalle d'étude [a,b] est divisé par 2 à chaque itération.
L'itération se termine lorsque

Avatar de l’utilisateur
mathelot
Habitué(e)
Messages: 13686
Enregistré le: 08 Juin 2006, 08:55

Re: Algorithme théorème de Bolzano incompréhensible

par mathelot » 15 Fév 2022, 19:32

Pour trouver la racine d'une fonction f sur un intervalle [a,b] , la méthode de Newton converge plus vite vers
cette racine que la dichotomie.

La méthode de Newton est la suite définie par récurrence:


andromelus
Messages: 2
Enregistré le: 15 Fév 2022, 18:52

Re: Algorithme théorème de Bolzano incompréhensible

par andromelus » 16 Fév 2022, 08:44

mathelot a écrit:Bonjour,
il suffit de remplacer ton code par les lignes:

si f(m)f(a) > 0 alors
a=m
sinon
b=m
finsi

Le diamètre de l'intervalle d'étude [a,b] est divisé par 2 à chaque itération.
L'itération se termine lorsque


Si c'est la solution, ce professeur devrait revoir les cours d'écriture d'algorithme qu'il a lui même fourni !

Je fais cela et revient vous confirmer ça dès que possible (cela me semble correct, mais sait-on jamais).

Merci et bonne journée.

Avatar de l’utilisateur
fatal_error
Modérateur
Messages: 6610
Enregistré le: 22 Nov 2007, 13:00

Re: [RESOLU] Algorithme théorème de Bolzano incompréhensible

par fatal_error » 17 Fév 2022, 20:35

hi andromelus

rechercher dans l'intervalle [a, b]:
ca veut juste dire que ton x solution de l'equation f(x) = 2.1x² -1.5x -3.1 sera dans l'intervalle [a, b]

e.g
si tu prends par exemple f(x) = (x-1)(x-2) (dont les solutions de l'equation f(x) = 0 sont x = 1 et x = 2) et qu'on te donne a = -10 et b = 1.5, alors LE x solution est x = 1
A contrario si on te donne a =1.2 et b = 3, alors LE x solution est x = 2
et evidemment si on te donne a = 3 et b = 4, alors pas de solutions
la vie est une fête :)

 

Retourner vers ϟ Informatique

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 6 invités

cron

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite