Algorithme ti83

Résolu/Fermé
diablange Messages postés 46 Date d'inscription samedi 22 septembre 2012 Statut Membre Dernière intervention 11 octobre 2012 - 3 oct. 2012 à 19:49
diablange Messages postés 46 Date d'inscription samedi 22 septembre 2012 Statut Membre Dernière intervention 11 octobre 2012 - 4 oct. 2012 à 21:39
Bonsoir,
j'aimerai savoir pourquoi mon algorithme ne fonctionne pas?

Sachant que V(x)= -x^3+4x² sur [0,4]

INITIALISATION: Affecter 8/3 à a ; Affecter 4 à b
TRAITEMENT: Tant que b-a>10^-6 Faire
Si f(a)f((a+b)/2)>0 Alors
Affecter (a+b)/2 à a
Sinon Affecter (a+b)/2 à b
Fin Si
Fin Tantque
SORTIE: Afficher a,b


Et j'ai fait:
a sto (8/3)
b sto 4
While b-a>10^-6
If f(a)f((a+b)/2)>0
a sto (a+b)/2
Else
b sto (a+b)/2
End
Disp a
Disp b


Merci d'avance
A voir également:

3 réponses

ccm81 Messages postés 10893 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 29 septembre 2024 2 421
Modifié par ccm81 le 3/10/2012 à 21:24
bonsoir

1. quelques erreurs de syntaxe avec sto
2. Il manque un End
3. Mettre la fonction f en Y1
4. f(a) sera alors donné par Y1(A) où Y1 est obtenu avec le menu
VARS/YVars/Function
5. utiliser le test du While avec la valeur absolue

(8/3) sto A
4 sto B
While abs(B-A)>10^-6
If Y1(A)*Y1((A+B)/2)>0
(A+B)/2 sto A
Else
(A+B)/2 sto B
End
End
Disp A
Disp B

bon courage
0
ccm81 Messages postés 10893 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 29 septembre 2024 2 421
3 oct. 2012 à 21:31
désole il manque un then après le test if ... >0
0
diablange Messages postés 46 Date d'inscription samedi 22 septembre 2012 Statut Membre Dernière intervention 11 octobre 2012 40
3 oct. 2012 à 22:04
Je te remercie de ta réponse rapide.

J'ai fait tout ce que tu m'as dit,
par contre il m'affiche toujours erreur...
Et apparemment c'est à cause du : Else
0
ccm81 Messages postés 10893 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 29 septembre 2024 2 421
Modifié par ccm81 le 4/10/2012 à 11:36
ce programme fonctionne sur ma TI83

(8/3) sto A
4 sto B
While abs(B-A)>0.001
If Y1(A)*Y1((A+B)/2)>0
Then
(A+B)/2 sto A
Else
(A+B)/2 sto B
End
End
Disp A
Disp B

1. as tu bien défini et utilisé Y1 comme indiqué plus haut
2. as tu bien ajouté le Then manquant
3. lorsque le programme plante, avec Goto tu as accès à la ligne où se situe (en principe) l'erreur
4. as tu pris la fonction abs dans MATH/NUM
5.3 dans le test j'ai mis 0.001 à la place de E10-6 pour accélerer l'exécution

bonne suite
0
diablange Messages postés 46 Date d'inscription samedi 22 septembre 2012 Statut Membre Dernière intervention 11 octobre 2012 40
4 oct. 2012 à 21:39
C'est bon tout fonctionne,
j'avais juste oublié d'ajouter le Then

Je te remercie
0