π
<-

Algorithme de dichotomie (fonctions)

Pour le TI-Basic sur Nspire

Algorithme de dichotomie (fonctions)

Message non lude milobil » 16 Nov 2014, 15:39

Bonjour,

Je dois rentrer un algorithme sur ma ti nspire mais je suis bloqué à certains points. Voici l'algorithme en question (à savoir résolution approchée d'une équation par dichotomie) :

Image

Voici la syntaxte que je pense mettre :

Code: Tout sélectionner
Define dichotomie(a,b,e,m)

Prgm

Request (a,b,e)
While b-a>e
Loop
a+b/2→m
If f1(a)*f1(m)≤0 Then
m→b
Else
m→a
EndIf
EndLoop
EndWhile

Disp (a,b)
EndPrgrm


Voici ce que j'ai fait (ci-dessus).

Et pour la syntaxe je ne suis pas sûr de comment définir mes variables, s'il faut mettre Local ou Define ?

Merci beaucoup de m'aider.
Dernière édition par milobil le 16 Nov 2014, 20:11, édité 3 fois.
Avatar de l’utilisateur
milobilPremium
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Prochain niv.: 3.9%
 
Messages: 85
Inscription: 03 Oct 2012, 19:52
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Terminale S

Re: Algorithme de dichotomie (fonctions)

Message non lude Lionel Debroux » 16 Nov 2014, 16:22

La syntaxe pour la multiplication utilise "*", même si les multiplications sont habituellement affichées avec le . au milieu de la ligne.

Tu peux mettre tes variables en Local, dans ce cas.
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Avatar de l’utilisateur
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 11.4%
 
Messages: 6875
Inscription: 23 Déc 2009, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: -
GitHub: debrouxl

Re: Algorithme de dichotomie (fonctions)

Message non lude critor » 16 Nov 2014, 16:22

La multiplication utilise la touche :nsmu: et non :nssd: .

"local" n'a pas dans un 'programme' l'importance essentielle qu'il a dans une fonction. Cela ne devrait pas influer.

L'important, c'est ce que te raconte le programme à son exécution.
Tu obtiens une erreur ?
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 54.7%
 
Messages: 42528
Images: 17406
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

Re: Algorithme de dichotomie (fonctions)

Message non lude milobil » 16 Nov 2014, 18:57

Oui pour la multiplication j'utilise je x et non le . (c'est juste que ça m'affiche un point c'est pour ça que je l'ai représenté par un point).

Par contre quand je mets ctrl+b ça m'affiche "manquante )" et le curseur se place entre "a," et "b" de "Request".. Je ne vois pas où je dois rajouter cette paranthèse.
Avatar de l’utilisateur
milobilPremium
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Prochain niv.: 3.9%
 
Messages: 85
Inscription: 03 Oct 2012, 19:52
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Terminale S

Re: Algorithme de dichotomie (fonctions)

Message non lude critor » 16 Nov 2014, 20:20

"Request" n'est pas une fonction mais une procédure.
Les arguments ne doivent donc pas être regroupés entre parenthèses, contrairement à ce que tu as fait.

Correction:
Code: Tout sélectionner
request "a=",a
request "b=",b
request "e=",e
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 54.7%
 
Messages: 42528
Images: 17406
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

Re: Algorithme de dichotomie (fonctions)

Message non lude milobil » 16 Nov 2014, 20:47

Merci, donc voilà comment se présente mon algorithme actuellement :


Code: Tout sélectionner
Define dichotomie(a,b,e,m)=
Prgm
request "a=",a
request "b=",b
request "e=",e

While b-a>e
Loop
a+b/2→m
If f1(a)*f1(m)≤0 Then
m→b
Else
m→a
EndIf
EndLoop
EndWhile
Disp "a=",a
Disp "b=",b
EndPrgm



Par contre quand je vais dans la page de calcul juste à côté, j'appuie sur la touche var pour sélectionner dichotomie().

Mais lorsque je clique sur "enter", ça me dit qu'il n'y a pas assez d'arguments.

Alors je rentre par exemple dichotomie(2,3,0.0001,m) et quand je clique sur "enter", le programme s'éxecute et m'envoie les request (je rentre les variables) mais après ça bloque : le cercle de chargement qui tourne sans arrêts.

Une idée peu-être ?
Avatar de l’utilisateur
milobilPremium
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Prochain niv.: 3.9%
 
Messages: 85
Inscription: 03 Oct 2012, 19:52
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Terminale S

Re: Algorithme de dichotomie (fonctions)

Message non lude critor » 16 Nov 2014, 20:50

En effet :
Code: Tout sélectionner
Define dichotomie(a,b,e,m)


Ta 1ère ligne indique que tu souhaites fournir 4 données en paramètre de l'appel du programme, ce qui est contradictoire avec l'utilisation de 'request', et de plus 'm' n'est même pas une donnée.

Correction :
Code: Tout sélectionner
Define dichotomie()
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 54.7%
 
Messages: 42528
Images: 17406
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

Re: Algorithme de dichotomie (fonctions)

Message non lude milobil » 16 Nov 2014, 21:58

Merci mais normalement il ne faut pas que je définisse les variables avant ? Imaginons que a et b était des entiers naturels, comment je l'aurais spécifié ?

Concernant le programme, celui-ci s'éxecute maintenant mais après ça bloque : le cercle de chargement qui tourne sans arrêts. J'ai beau attendre 5 min aucune réponse... :'(
Avatar de l’utilisateur
milobilPremium
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Prochain niv.: 3.9%
 
Messages: 85
Inscription: 03 Oct 2012, 19:52
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Terminale S

Re: Algorithme de dichotomie (fonctions)

Message non lude critor » 16 Nov 2014, 22:19

Les variables se définissent avec l'instruction 'local'.
C'est obligatoire dans une fonction, mais dans ton cas il s'agit d'un programme et non d'une fonction.

Il faut donc croire que ton programme doit avoir un bug et entre dans une boucle infinie, la condition d'arrêt du 'while' n'était jamais vérifiée.
Pour l'interrompre, laisse la touche :nsho: enfoncée pendant plusieurs secondes.
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 54.7%
 
Messages: 42528
Images: 17406
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

Re: Algorithme de dichotomie (fonctions)

Message non lude milobil » 16 Nov 2014, 22:29

D'accord.

Bon, en maintenant la touche "on" enfoncée ça m'interrompt juste le calcul mais aucun résultat ne s'affiche :/

Mais bon normalement ca devrait fonctionner, dans mon cas il s'agit de résoudre l'équation f(x)=0 (et de l'encadrer) avec f(x) = 3x⁴-4x³-12x²+14 et cette équation admet bien une solution et même 2 pour être précis dans R.

Dommage, merci pour votre aide quand même.
Avatar de l’utilisateur
milobilPremium
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Prochain niv.: 3.9%
 
Messages: 85
Inscription: 03 Oct 2012, 19:52
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Terminale S


Retourner vers Nspire-Basic

Qui est en ligne

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

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Ndless for CX 4.5.5 / CX II 6.2.0
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
12345
-
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.
3900 utilisateurs:
>3860 invités
>31 membres
>9 robots
Record simultané (sur 6 mois):
43991 utilisateurs (le 10/09/2025)
-
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)