Inscription / Connexion Nouveau Sujet
Niveau seconde
Partager :

Algorithme par dichotomie

Posté par
Sophie81
23-04-13 à 00:05

1)Voici une capture d'écran du logiciel Algobax:

Variables
-BorneMin EST_DU_TYPE NOMBRE
-BorneMax EST_DU_TYPE NOMBRE
-m EST_DU_TYPE NOMBRE
-Erreur EST DU TYPE NOMBRE
DEBUT_ALGORITHME
-AFFICHER "Définir la fonction f1 dans "fonction numérique""
-AFFICHER "Entrer les bornes de l'intervalle"
-LIRE BorneMin
-LIRE BorneMax
-AFFICHER "Quelle précision pour la solution ?"
-LIRE Erreur
TANT_QUE (BorneMax-BorneMin>=Erreur) FAIRE
-DEBUT_TANT_QUE
-m PREND_LA_VALEUR (BorneMin+BorneMax)/2
SI (F1(BorneMin)*F1(m)>0) ALORS
-DEBUT_SI
-BorneMin PREND_LA_VALEUR m
-Fin_Si
SINON
-DEBUT_SINON
-BorneMin PREND_LA_VALEUR m
-FIN_SINON
-AFFICHER BorneMin
-AFFICHER BorneMax
-AFFICHER " "
-FIN_TANT_QUE
FIN_ALGORITHME

Reproduire cet algorithme

2)On suppose que pour tout nombre réel x:
F1(x)=x²-4x+3
Tracer sur votre calculatrice la représentation graphique de la fonction F1, puis exécuter l'algorithme en prenant:
a: BorneMin=0, BorneMax=2 et Erreur= 0.00001
a: BorneMin=2, BorneMax=4 et Erreur= 0.00001

3)Que peut-on dire de la longueur de l'intervalle [BorneMin ; BorneMax] à chaque nouvelle boucle ?

4)Expliquer l'utilité de cet algorithme. Que doivent vérifier la fonction F1 et les bornes "BornesMin" et "BorneMax" pour que l'algorithme s'arrête ?

5)Que permettrait d'obtenir cet algorithme avec la fonction F1 définie sur R par F1(x)=x²-2, BorneMin=1, BorneMax=2 et Erreur=0.00000001.

Posté par
Iamat
re : Algorithme par dichotomie 23-04-13 à 09:05

Salut,

Je pense qu'il y a une erreur là:

SI (F1(BorneMin)*F1(m)>0) ALORS
-DEBUT_SI
-BorneMin PREND_LA_VALEUR m
-Fin_Si
SINON
-DEBUT_SINON
-BorneMin PREND_LA_VALEUR m
-FIN_SINON

1 et 2) tu dois faire ce qu'on te demande,

4) je ne vois pas la condition sur F1

5) fait le toutner ça te donnera une idée

Posté par
Sophie81
re : Algorithme par dichotomie 23-04-13 à 10:21

Oui le deuxième c'est

BorneMax_PREND_LA_VALEUR m

Merci de le signaler !!

Merci de m'avoir répondu ! Je ne comprends vraiment pas ce que je dois faire.. Je n'ai j'amais fais d'algorithme !

Posté par
Iamat
re : Algorithme par dichotomie 23-04-13 à 10:26

un ordinateur est quelqu'un de très bête et très obéissant mais il ne fait jamais d'erreur.

Un algorithme est une série d'ordre que l'ordinateur doit appliqué

Donc quelle ligne ne comprends tu pas?

Posté par
Sophie81
re : Algorithme par dichotomie 23-04-13 à 10:30

Je ne comprends pas ce qu'est Erreur=0.00001

A la question 1 je dois utiliser algobox et rentrer la fonction F1?

Posté par
Iamat
re : Algorithme par dichotomie 23-04-13 à 10:32

oui

Posté par
Sophie81
re : Algorithme par dichotomie 23-04-13 à 10:33

Je vais essayer merci !

Posté par
Sophie81
re : Algorithme par dichotomie 23-04-13 à 14:39

Mon algorithme m'affiche ça:
***L'algorithme contient une erreur : impossible de le lancer***
***Vérifiez la syntaxe des affectations et des conditions***

Posté par
Iamat
re : Algorithme par dichotomie 23-04-13 à 14:42

tu as recopié excatement le texte ci-dessus?

si oui, le problème vient de SI(F1(BorneMin)*F1(m)>0) ALORS

si je te dis de calculer F1(0), que trouves tu?

Posté par
Sophie81
re : Algorithme par dichotomie 23-04-13 à 14:45

x(x-4)+3=0

Posté par
Iamat
re : Algorithme par dichotomie 23-04-13 à 14:46

je demande que tu calcules F1(0) je ne demande pas que tu résolves f1(x)=0

Posté par
Sophie81
re : Algorithme par dichotomie 23-04-13 à 14:47

Pardon! Cela fait 3

Posté par
Iamat
re : Algorithme par dichotomie 23-04-13 à 15:01

ok, comme je te le disais au départ,


un ordinateur est quelqu'un de très bête et très obéissant mais il ne fait jamais d'erreur.

Un algorithme est une série d'ordre que l'ordinateur doit appliqué

il te dit qu'il lui manque une info, la question que te pose l'ordi est :

C'est quoi F1?

Posté par
Sophie81
re : Algorithme par dichotomie 23-04-13 à 15:03

Ok je viens de lancer l'algorithme !

Posté par
Sophie81
re : Algorithme par dichotomie 23-04-13 à 15:08

***Algorithme lancé***
Définir la fonction F1 dans fonction numériqueEntrer les bornes de l'intervalle
Entrer BorneMin : 0
Entrer BorneMax : 2
Quelle précision pour la solution ?
Entrer Erreur : 0.00001
12 1.52 1.752 1.8752 1.93752 1.968752 1.9843752 1.99218752 1.99609382 1.99804692 1.99902342 1.99951172 1.99975592 1.99987792 1.9999392 1.99996952 1.99998472 1.99999242  
***Algorithme terminé***

Je ne comprends pas ce que cela signifie :/

Posté par
Iamat
re : Algorithme par dichotomie 23-04-13 à 15:12

tu as utilisé ça?

F1(x)=x²-4x+3
a: BorneMin=0, BorneMax=2 et Erreur= 0.00001

Posté par
Sophie81
re : Algorithme par dichotomie 23-04-13 à 15:14

oui

Posté par
Iamat
re : Algorithme par dichotomie 23-04-13 à 15:17

Alors tu ne peux pas avoir bornemin = 12

comment tu as mis f1(x) dans ton programme?

Posté par
Sophie81
re : Algorithme par dichotomie 23-04-13 à 15:18

J'ai mis F1(x)=3

Posté par
Iamat
re : Algorithme par dichotomie 23-04-13 à 15:20

celle la je l'ai pas vu venir

F1(x) vaut toujours 3 pour toi?

Posté par
Sophie81
re : Algorithme par dichotomie 23-04-13 à 15:22

Et bien c'est ce que j'avais compris précédement..

Posté par
Iamat
re : Algorithme par dichotomie 23-04-13 à 15:25

f1(x)=x(x-4)+3 ok
f1(0)=3 ok
f1()=??

Posté par
Sophie81
re : Algorithme par dichotomie 23-04-13 à 15:47

Bon je vous suis plus pourquoi ?

Posté par
Iamat
re : Algorithme par dichotomie 23-04-13 à 15:52

pour calculer f1(0) tu as pris x(x-4)+3 et tu as rempalcer x par 0

tu dois donner à ton programme la maière de calculer f1-bronemin) et f1(m)

Posté par
Sophie81
re : Algorithme par dichotomie 23-04-13 à 16:03

J'abandonne, je comprends pas et je ne comprends pourquoi je fais tout ça, ce ne sert à rien ! Si quelqu'un est apte à m'expliquer ce qu'il faut faire et dans quel interêt ce sera simpa ! Merci à toi en tout cas

Posté par
Iamat
re : Algorithme par dichotomie 23-04-13 à 16:06

tu dis à ton algoritme

je te donne une valeur a, calcules f1(a)

il te demande c'est quoi f1?

Posté par
Sophie81
re : Algorithme par dichotomie 23-04-13 à 16:10

F1 c'est la fonction

Posté par
Iamat
re : Algorithme par dichotomie 23-04-13 à 16:15

tu donnes quand la fonction dans l'algorithme?

Posté par
Sophie81
re : Algorithme par dichotomie 23-04-13 à 16:19

A la fin

Posté par
Iamat
re : Algorithme par dichotomie 23-04-13 à 16:20

écris la ligne où tu définis f1(x)

Posté par
Sophie81
re : Algorithme par dichotomie 23-04-13 à 16:22

F1(x)=[sub][/sub]-4x+3

Posté par
Sophie81
re : Algorithme par dichotomie 23-04-13 à 16:23

F1(x)=x²-4x+3

Posté par
Iamat
re : Algorithme par dichotomie 23-04-13 à 16:34

le problème c'est que l'ordinateur n'a pas fait de maths

il ne comprends pas que si F1(x)=x²-4x+3, il faut remplacer x par m pour calculer F1(m), il ne comprend donc pas la ligne

F1(BorneMin)*F1(m)>0

Il faut expliciter F1(BorneMin) et F1(m)

Posté par
Sophie81
re : Algorithme par dichotomie 23-04-13 à 21:47

Pour
BorneMin=0
BorneMax=2
Erreur=0.00001

BorneMin=1 et m=12

Pour
BorneMin=2
BorneMax=4
Erreur=0.00001

BorneMin=34 et m=34

Posté par
Iamat
re : Algorithme par dichotomie 23-04-13 à 22:26

comment tu calcules m d'après l'algoritme?

Posté par
Sophie81
re : Algorithme par dichotomie 23-04-13 à 22:30

Avec f1(x)=m

Posté par
Iamat
re : Algorithme par dichotomie 23-04-13 à 22:43

non

Posté par
Sophie81
re : Algorithme par dichotomie 23-04-13 à 22:44

Pourtant pour BorneMin c'est F1(x)=BorneMin

Posté par
Iamat
re : Algorithme par dichotomie 24-04-13 à 09:47

je ne vois aucune ligne dans le programme qui dit que
f1(x)=m ou F1(x)=BorneMin

Attention m et BorneMin sont 2 choses différentes

Posté par
Sophie81
re : Algorithme par dichotomie 24-04-13 à 11:35

Que dois je rentrer dans F1(x)?

Posté par
Iamat
re : Algorithme par dichotomie 24-04-13 à 11:40

SI (F1(BorneMin)*F1(m)>0)

il faut remplacer cette ligne par :


SI ((BorneMin²-4*BorneMin+3)*(m²-4*m+3)>0)

Posté par
Sophie81
re : Algorithme par dichotomie 24-04-13 à 11:46

Mais que dois je rentrer dans f1(x)

Posté par
Iamat
re : Algorithme par dichotomie 24-04-13 à 11:48

tu n'as pas besoinde le faire si tu remplaces

SI (F1(BorneMin)*F1(m)>0) par
SI ((BorneMin²-4*BorneMin+3)*(m²-4*m+3)>0)

Posté par
Sophie81
re : Algorithme par dichotomie 24-04-13 à 11:51

Ca ne marche pas:

***L'algorithme contient une erreur : impossible de le lancer***
***Vérifiez la syntaxe des affectations et des conditions***

Posté par
Iamat
re : Algorithme par dichotomie 24-04-13 à 11:53


je suis désolé, je ne connais pas algobox

supprime la ligne

-AFFICHER "Définir la fonction f1 dans "fonction numérique""

Posté par
oups
re : Algorithme par dichotomie 24-04-15 à 16:24

bonjour, j'ai le même exercice à faire pour la rentrée !!
j'ai compris comment faire l'algorithme sur Algobox et comment tracer la représentation graphique sur la calculatrice mais je ne comprends pas les questions 3) 4) et 5).
pouvez-vous m'aider s'il vous plaît ??
merci d'avance

Posté par
Glapion Moderateur
re : Algorithme par dichotomie 24-04-15 à 16:34

3) A chaque itération on teste le point milieu et l'intervalle est divisé par 2

4) l'algorithme trouve la solution de f(x) = 0 située dans l'intervalle
regarde l'instruction TANT_QUE (BorneMax-BorneMin>=Erreur) FAIRE pour comprendre quand est-ce que l'algorithme s'arrête.

5) et bien fais le tourner cet algorithme, tu verras bien ce que ça donne

Posté par
oups
re : Algorithme par dichotomie 24-04-15 à 16:52

désolé mais je ne comprends toujours pas la question 3
4) il faut que le résultat de la soustraction BorneMax - BorneMin soit supérieur ou égal à Erreur ?!
5) il permet d'obtenir BorneMin = BorneMax ??

Posté par
Glapion Moderateur
re : Algorithme par dichotomie 24-04-15 à 17:02

3)Que peut-on dire de la longueur de l'intervalle [BorneMin ; BorneMax] à chaque nouvelle boucle ?

il suffit de regarder les instructions
m PREND_LA_VALEUR (BorneMin+BorneMax)/2 donc ici m prend la valeur qui est au milieu de l'intervalle
puis après soit
BorneMin PREND_LA_VALEUR m soit
BorneMax PREND_LA_VALEUR m

en fait on garde les deux valeurs qui continuent à faire changer de signe la fonction.

mais dans tous les cas on a divisé le segment par 2 puisque l'on a gardé comme bornes l'une des précédentes et le point milieu.

en diminuant comme ça l'intervalle qui est divisé par 2 à chaque itération, on finit par avoir une précision aussi bonne que l'on veut car la valeur que l'on cherche (qui annule f(x)) reste constamment dans l'intervalle.

l'algorithme s'arrête quand l'intervalle est plus petit que Erreur (ça rejoint la réponse de la question 4)

5) non, c'est pas ça que l'on te demande, on demande ce que ça donne si F1(x)=x²-2, BorneMin=1, BorneMax=2 et Erreur=0.00000001.

si tu as compris ce qui précède, la réponse est évidente, ça donne la solution de x²-2=0 donc 2 avec une précision inférieure à 0.00000001.

Posté par
oups
re : Algorithme par dichotomie 24-04-15 à 17:16

merci beaucoup !! j'ai compris !!!! et c'était pas gagné !!



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Inscription gratuite

Fiches en rapport

parmi 1733 fiches de maths

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !