π
<-
Chat plein-écran
[^]

Algorithme dichotomie

Programmation et implémentation d'algorithmes.

Algorithme dichotomie

Message non lude theo.toto2 » 08 Nov 2015, 15:53

Bonjour,
J'aimerai écrire un algorithme de dichotomie, qui me donne un encadrement de l'équation g(x)=0 pour la fonction définie sur R par g(x)=4x^3-3x-8. Cet algorithme devrait ensuite me servir pour n'importe quel type de fonction.
J'ai essayé de le créer sur ma calculatrice ti-89 Titanium. Voilà ce que j'ai rentré :

Code: Tout sélectionner
Prgm
Input "a",a
Input "b",b
Input "n",n
While b-a>10^(-n)
(a+b)/2→m
If y1(m)<0 Then
a→m
Else
b→m
EndIf
EndWhile
Disp"a=",a
Disp"b=",b
EndPrgm


J'ai également rentré la fonction y1 dans l'éditeur de fonctions.
Cependant, l'algorithme ne marche pas : quand je le lance, il tourne sans s'arrêter.
Quelqu'un pourrait-il me dire quel est le problème de l'algorithme ? Je cherche désespérément sans trouver... Merci!
Avatar de l’utilisateur
theo.toto2
Niveau 2: MI2 (Membre Initié)
Niveau 2: MI2 (Membre Initié)
Prochain niv.: 0%
 
Messages: 4
Inscription: 31 Oct 2015, 15:49
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: TS

Re: Algorithme dichotomie

Message non lude Hamza.S » 08 Nov 2015, 16:25

par simple hasard ça ne serait pas m→a et m→b à la place de a→m et b→m ?
ça expliquerait pourquoi ton programme tourne en boucle sans arrêt puisque a et b ne change jamais

ton programme marchera seulement si tu vas dans Y= et que tu mettes la fonction dans y1=
Image
Avatar de l’utilisateur
Hamza.SAdmin
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Prochain niv.: 28.5%
 
Messages: 4463
Images: 18
Inscription: 07 Nov 2014, 00:43
Genre: Homme
Calculatrice(s):
MyCalcs profile

Re: Algorithme dichotomie

Message non lude Hamza.S » 08 Nov 2015, 18:04

pour un programme adaptable à la plupart des fonctions j'aurai fait ça :

Code: Tout sélectionner
(f,a,b,n)
Func
  local c,m
  While b-a>10^(-n)
    (a+b)/2→m
    f|x=m→c
    If c<0 Then
      m→a
    Else
      m→b
    EndIf
  EndWhile
  Return (a+b)/2
EndFunc

pour lancer programme (fonction) il suffit de mettre f(x),a,b,n entre les parenthèses
bien-sûr tout ça c'est inutile car l'encadrement tu peux le trouver facilement dans table
Image
Avatar de l’utilisateur
Hamza.SAdmin
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Prochain niv.: 28.5%
 
Messages: 4463
Images: 18
Inscription: 07 Nov 2014, 00:43
Genre: Homme
Calculatrice(s):
MyCalcs profile


Retourner vers Programmation

Qui est en ligne

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

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
Phi NumWorks jailbreak
123
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1438 utilisateurs:
>1414 invités
>18 membres
>6 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)