Algorithme de dichotomie

Réponses à toutes vos questions de la 2nde à la Terminale toutes séries
chimene
Membre Relatif
Messages: 196
Enregistré le: 14 Sep 2014, 06:23

Algorithme de dichotomie

par chimene » 03 Déc 2015, 06:31

Bonjour

j'ai besoin de votre aide sur des exos d'algorithme de dichotomie.
Je n'y comprends rien du tout.

On considère la fonction f définie sur [-2;3] par : f(x) = x^3+2x-2

Variables
a,b : nombres réels
f: fonction
k : entier naturel
N : entier naturel
m : nombre réel

Entrée
Saisir a,b,f,N

Traitement
Pour K variant de 1 à N
m prend la valeur a+b/2
si f(m) et f(a) sont de même signe alors
a prend la valeur m
sinon
b prend la valeur m

Fin pour

Sortie
Afficher a,b

1/ Traduire cet algo dans le language de programmation de votre calculatrice TI 82
J'ai trouvé des exemples mais pas par rapport à cet algo précis

2/ Tester ce programme pour N= 4 puis 10,15 et 25
Que constatez vous?

Merci pour votre aide



Avatar de l’utilisateur
ampholyte
Membre Transcendant
Messages: 3940
Enregistré le: 21 Juil 2012, 07:03

par ampholyte » 03 Déc 2015, 08:48

Bonjour,

Est-ce que tu sais récupérer des valeurs saisies par l'utilisateur ?

Est-ce que tu sais écrire une boucle for et une condition if / else sur ta TI ?

Sans ces notions, tu risque d'avoir un peu de mal à traduire l'algo.

Regarde ici si tu ne sais pas : http://www.maxicours.com/se/fiche/4/7/420974.html/tes

mathelot

par mathelot » 03 Déc 2015, 09:12

INPUT a
INPUT b
WHILE abs(a-b)> 0.001
(a+b)/2 STO m
IF f(a)*f(m) > 0
m STO a
ELSE
m STO b
ENDIF
ENDWHILE
DISP "a=",a
DISP "b=",b

à tester avec

titine
Habitué(e)
Messages: 5574
Enregistré le: 01 Mai 2006, 13:59

par titine » 03 Déc 2015, 09:25

mathelot a écrit:INPUT a
INPUT b
WHILE abs(a-b)> 0.001
(a+b)/2 STO m
IF f(a)f(m) > 0
m STO a
ELSE
m STO b
ENDIF
ENDWHILE
DISP "a=",a
DISP "b=",b

à tester avec

Bonjour.
1) donner le programme comme ça n'a pas beaucoup d'intérêt. Il vaudrait mieux que chimene se familiarise elle même avec sa calculatrice.
2) le programme que tu donnes ne code pas l'algorithme donné. (Pas de test sur la différence a-b)

mathelot

par mathelot » 03 Déc 2015, 09:43

la boucle du programme est à réécrire et le code ci-dessus lui donne des exemples de syntaxe.

chimene
Membre Relatif
Messages: 196
Enregistré le: 14 Sep 2014, 06:23

par chimene » 03 Déc 2015, 16:54

bonsoir à vous

je n'ai jamais fait d'algorihtme avec ma calculatrice

Avatar de l’utilisateur
WillyCagnes
Membre Transcendant
Messages: 3753
Enregistré le: 21 Sep 2013, 19:58

par WillyCagnes » 03 Déc 2015, 17:06

mathelot a écrit:la boucle du programme est à réécrire et le code ci-dessus lui donne des exemples de syntaxe.

bjr ,

tu as mis ce code que je ne comprends pas
IF f(a)f(m) > 0

plutôt ceci?
IF f(a)*f(m) > 0

chimene
Membre Relatif
Messages: 196
Enregistré le: 14 Sep 2014, 06:23

par chimene » 03 Déc 2015, 17:16

Sur ma calculatrice j'ai juste rentré la fonction

Y1 = X^3+2x-2

et après je ne comprends rien

tester le prog pour N=4, 10, 15 et 20

Je ne sais pas faire le prog sur la calculatrice et ou indiquer N

merci je suis perdu

chimene
Membre Relatif
Messages: 196
Enregistré le: 14 Sep 2014, 06:23

par chimene » 03 Déc 2015, 17:35

j'essaie par rapport à ce que vous avez indiqué mais je n'y arrive pas du tout

chimene
Membre Relatif
Messages: 196
Enregistré le: 14 Sep 2014, 06:23

par chimene » 03 Déc 2015, 18:51

pouvez vous m'aider s'il vous plait

chaa13
Membre Rationnel
Messages: 622
Enregistré le: 25 Mar 2012, 19:52

par chaa13 » 03 Déc 2015, 20:48

Salut,
Déjà l'important c'est de bien saisir la méthode de la dichotomie. Donc ici on cherche une approximation de la solution de :
f(x) = 0.
Est-ce que tu as bien compris l’algorithme en langage naturel?

chimene
Membre Relatif
Messages: 196
Enregistré le: 14 Sep 2014, 06:23

par chimene » 03 Déc 2015, 20:51

non je sais juste que
f(x)=0
[0,1]

chaa13
Membre Rationnel
Messages: 622
Enregistré le: 25 Mar 2012, 19:52

par chaa13 » 03 Déc 2015, 21:08

Okay.
Si tu trace ta courbe f tel que f(x) = x^3+2x-2, tu vois que ta courbe coupe l'axe des abscisse pour un x entre -2 et 2
Tu cherche la racine de ce polynôme (Donc tu cherche x tel que f(x) = 0)
Le truc c'est que tu ne sais pas résoudre une équation du type x^3+2x-2=0.
La dichotomie te permet de donner une approximation de la solution de cette équation.
Bon en regardant le tracé de la courbe tu vois que la solution se trouve entre -2 et 2.
Mais bon l'intervalle [-2;2] est gros, on va essayer de le réduire.
tu remarque que f(-2)<0 et f(2)>0. Donc f(-2) est en dessous de l'axe des abscisse et f(2) est au dessus. Donc forcement la courbe va couper l'axe des abscisse pour un x entre -2 et 2.
Ensuite tu remarque que f(0)<0 et f(2)>0. Maintenant tu sais que la solution se trouve entre 0 et 2 puisque entre 0 et 2 la courbe passe de négatif au positif, forcement a un moment elle va couper l'axe des abscisse ^^
Tu calcul f(1) et f(2). Tu remarque alors que f(1)>0 et f(2) >0. Mais alors, si les deux valeurs son supérieur a 0, ça veut dire que la courbe est au dessus de l'axe des abscisse pour x entre 1 et 2 ! Du coup ta solution est avant 1.
Tu affine encore, tu sais que la solution se trouve entre f(0) et f(1) (Puisque f(0)<0 et f(1)>0). Et ainsi de suite, plus tu fera ça plus tu aura une approximation correcte.
Prend un papier et un crayon, trace ta courbe et essaye.
Dis moi si je ne suis pas clair ;)

chimene
Membre Relatif
Messages: 196
Enregistré le: 14 Sep 2014, 06:23

par chimene » 03 Déc 2015, 21:15

Non je ne comprend pas bien. J'ai besoin de faire cela pour répondre aux questions ci-dessous?
Ca me fait peur alors là je suis perdu


On considère la fonction f définie sur [-2;3] par : f(x) = x^3+2x-2

Variables
a,b : nombres réels
f: fonction
k : entier naturel
N : entier naturel
m : nombre réel

Entrée
Saisir a,b,f,N

Traitement
Pour K variant de 1 à N
m prend la valeur a+b/2
si f(m) et f(a) sont de même signe alors
a prend la valeur m
sinon
b prend la valeur m

Fin pour

Sortie
Afficher a,b

1/ Traduire cet algo dans le language de programmation de votre calculatrice TI 82
J'ai trouvé des exemples mais pas par rapport à cet algo précis

2/ Tester ce programme pour N= 4 puis 10,15 et 25
Que constatez vous?

chaa13
Membre Rationnel
Messages: 622
Enregistré le: 25 Mar 2012, 19:52

par chaa13 » 03 Déc 2015, 21:18

Dans l'absolue non. Tu pourrais le traduire sans rien comprendre, mais ce ne serais pas très utile ^^
Relis mon message d'avant, dessine grossièrement ta courbe et essaye ! Dis moi où tu bloque sur la compréhension du dernier message.

chimene
Membre Relatif
Messages: 196
Enregistré le: 14 Sep 2014, 06:23

par chimene » 03 Déc 2015, 21:48

oui j'ai fait une courbe
et d'après cette courbe
f(x) = o n'a qu'une seule solution
[0;1]

chaa13
Membre Rationnel
Messages: 622
Enregistré le: 25 Mar 2012, 19:52

par chaa13 » 03 Déc 2015, 22:19

f(x) = 0
La solution se trouve entre 0 et 1.
Bon maintenant, en relisant mon message et l'algorithme en langage naturel, essaye d'affiner cette intervalle (rends le plus petit) ! N'essaye pas de programmer quelque chose pour l'instant fait le seulement avec un peu de calcul.

Mc1245
Messages: 3
Enregistré le: 03 Déc 2015, 22:15

par Mc1245 » 03 Déc 2015, 22:26

Bonjour tous le monde, je viens juste de m'inscrire je voudrais poster une question mais je ne trouve pas l'onglet "nouvelle question". Merci d'avance.

chimene
Membre Relatif
Messages: 196
Enregistré le: 14 Sep 2014, 06:23

par chimene » 03 Déc 2015, 22:40

Je ne comprends pas comment faire

chaa13
Membre Rationnel
Messages: 622
Enregistré le: 25 Mar 2012, 19:52

par chaa13 » 03 Déc 2015, 22:53

On va faire par étapes et avec un exemple.
Soit f définie par f(x) = x^2-1 sur [0;5]
On veut approximer la solution de f(x)=0 (Imaginons qu'on ne sache pas résoudre)
Sur la graphique, on voit que la fonction coupe bien l'axe des abscisse quelque part entre 0 et 3.
Mais on voudrait savoir plus précisément où est ce que cette courbe touche l'axe des abscisse.
f(0) = -1 et f(3) = 8
Est-tu bien d'accord que la courbe coupe forcement l'axe des abscisse quelque part entre 0 et 3 puisque a f(0) elle est négative et a f(3) elle est positive? La fonction étant continu, pour passer des négatifs au positifs elle doit forcement passer par l'axe des abscisse. Puisque au dessus de l'axe des abscisse tu as les positifs et en dessous les négatif.

Maintenant on affine.
f(1.5) = 1.25 et f(3) = 8
La courbe est au dessus de l'axe des abscisse entre 1.5 et 3. On est partit trop loin.
Par contre maintenant qu'on sait que f(1.5) est positif et que f(0) est négatif (calcul précédent) on peut dire que la solution se trouve entre 0 et 1.5 puisque elle est sous l'axe des abscisse pour x = 0 et au dessus pour x = 1.5.

Déjà on a fait un grand pas, on est partit de : "La solution doit se trouver entre 0 et 3 a vu de nez" a "La solution est entre 0 et 1.5" !

Dis moi ce qui te gène dans ce que je viens d'écrire ;)

 

Retourner vers ✎✎ Lycée

Qui est en ligne

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

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