π
<-

Algorithme de dichotomie (fonctions)

Pour le TI-Basic sur Nspire

Algorithme de dichotomie (fonctions)

Unread postby 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: Select all
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.
Last edited by milobil on 16 Nov 2014, 20:11, edited 3 times in total.
User avatar
milobilPremium
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 3.9%
 
Posts: 85
Joined: 03 Oct 2012, 19:52
Gender: Male
Calculator(s):
MyCalcs profile
Class: Terminale S

Re: Algorithme de dichotomie (fonctions)

Unread postby 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.
User avatar
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 11.3%
 
Posts: 6865
Joined: 23 Dec 2009, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Class: -
GitHub: debrouxl

Re: Algorithme de dichotomie (fonctions)

Unread postby 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
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 47.5%
 
Posts: 41980
Images: 15737
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Re: Algorithme de dichotomie (fonctions)

Unread postby 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.
User avatar
milobilPremium
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 3.9%
 
Posts: 85
Joined: 03 Oct 2012, 19:52
Gender: Male
Calculator(s):
MyCalcs profile
Class: Terminale S

Re: Algorithme de dichotomie (fonctions)

Unread postby 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: Select all
request "a=",a
request "b=",b
request "e=",e
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 47.5%
 
Posts: 41980
Images: 15737
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Re: Algorithme de dichotomie (fonctions)

Unread postby milobil » 16 Nov 2014, 20:47

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


Code: Select all
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 ?
User avatar
milobilPremium
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 3.9%
 
Posts: 85
Joined: 03 Oct 2012, 19:52
Gender: Male
Calculator(s):
MyCalcs profile
Class: Terminale S

Re: Algorithme de dichotomie (fonctions)

Unread postby critor » 16 Nov 2014, 20:50

En effet :
Code: Select all
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: Select all
Define dichotomie()
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 47.5%
 
Posts: 41980
Images: 15737
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Re: Algorithme de dichotomie (fonctions)

Unread postby 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... :'(
User avatar
milobilPremium
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 3.9%
 
Posts: 85
Joined: 03 Oct 2012, 19:52
Gender: Male
Calculator(s):
MyCalcs profile
Class: Terminale S

Re: Algorithme de dichotomie (fonctions)

Unread postby 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
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 47.5%
 
Posts: 41980
Images: 15737
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Re: Algorithme de dichotomie (fonctions)

Unread postby 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.
User avatar
milobilPremium
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 3.9%
 
Posts: 85
Joined: 03 Oct 2012, 19:52
Gender: Male
Calculator(s):
MyCalcs profile
Class: Terminale S


Return to Nspire-Basic

Who is online

Users browsing this forum: ClaudeBot [spider] and 1 guest

-
Search
-
Social TI-Planet
-
Featured topics
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 !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
839 utilisateurs:
>798 invités
>32 membres
>9 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)