Page 1 of 1

Solveur anormalement long

Unread postPosted: 24 Nov 2016, 19:05
by JP219
Bonjour,

J'ai récemment acquis une TI nspire CX CAS en remplacement de ma vieille TI82.
Dans mon cours de finance, je dois calculer un taux actuariel et utilise pour cela la fonction Solve. Je tape exactement la même formule sur mes 2 calculatrices :

TI nspire : solve(0=1900000-(120000*((1-((1+X)^(-20))))/X)+317650*((1+X)^(-20))),X,)

TI 82 : solve(1900000-(120000*((1-((1+X)^(-20))))/X)+317650*((1+X)^(-20))),X,0)

Le problème est que j'obtiens le résultat (0.0331420885) en moins de 5 secondes sur la TI82 alors qu'il me faut quasiment 10 minutes pour l'obtenir sur la TI nspire :~o .
De plus, dans ma classe, un camarade qui possède la même calculatrice achetée il y a 3/4 ans, obtient le résultat immédiatement en tapant la même chose.

Je commence à croire que ma TI nspire a un problème de fabrication...
Dois-je faire un réglage particulier ? Est-ce que la version que j'ai (4.2.0.532) est moins stable que les précédentes versions, sachant que mon collègue utilise la 3.1.0.392 ?

Merci d'avance pour vos éclairages

Re: Solveur anormalement long

Unread postPosted: 24 Nov 2016, 19:07
by Hamza.S
salut,
utilise nsolve tu auras la réponse en moins d'une seconde.

Re: Solveur anormalement long

Unread postPosted: 24 Nov 2016, 19:15
by JP219
Bonsoir Hamza,

Merci de ta réponse.
Pour autant, cela ne résout pas mon problème car en utilisant nSolve avec la même formule, j'obtiens très rapidement 5.E-14, mais ce n'est pas le bon résultat...

Re: Solveur anormalement long

Unread postPosted: 24 Nov 2016, 19:18
by Hamza.S
tu dois préciser dans quoi il doit chercher,
comme c'est un taux c'est forcement comprise entre 0 et 1
donc nsolve(blablabla,var,var=0.00001) par exemple
ou nsolve(blablabla,var)|var>0.000001

Re: Solveur anormalement long

Unread postPosted: 24 Nov 2016, 19:27
by JP219
SUPER !

1) j'ai testé nsolve(blablabla,var,var=0.00001) mais ça m'a renvoyé un message d'erreur 'Erreur : Invalides limites."
2) Par contre avec nsolve(blablabla,var)|var>0.000001 j'ai obtenu immédiatement mon résultat (0.3314209)

Peux-tu m'expliquer un peu plus ce que l'ajout de ces conditions signifie, que je comprenne ?

Par contre ça ne m'explique pas pourquoi mon collègue obtient son résultat avec Solve(...) sur sa TI nspire jailbreakée et achetée il y'a quelques années alors que moi je dois patienter 10 minutes...

Merci pour tout, je vais pouvoir dépanner ma classe demain :D :D :D

Re: Solveur anormalement long

Unread postPosted: 24 Nov 2016, 19:29
by GalacticPirate
Ben, ça veut dire qu'il existe sûrement une autre solution triviale de l'équation, à savoir 0 (vu que c'est 5.10^-14)

Re: Solveur anormalement long

Unread postPosted: 24 Nov 2016, 20:00
by Hamza.S
JP219 wrote:SUPER !

1) j'ai testé nsolve(blablabla,var,var=0.00001) mais ça m'a renvoyé un message d'erreur 'Erreur : Invalides limites."
2) Par contre avec nsolve(blablabla,var)|var>0.000001 j'ai obtenu immédiatement mon résultat (0.3314209)

Peux-tu m'expliquer un peu plus ce que l'ajout de ces conditions signifie, que je comprenne ?

Par contre ça ne m'explique pas pourquoi mon collègue obtient son résultat avec Solve(...) sur sa TI nspire jailbreakée et achetée il y'a quelques années alors que moi je dois patienter 10 minutes...

Merci pour tout, je vais pouvoir dépanner ma classe demain :D :D :D

pour la fonction solve, je pense que ça met beaucoup de temps par ce que la fonction passe en bruteforce pour chercher toutes les solutions.
pour nsolve, elle cherche qu'une seule solution souvent proche de 0, lorsqu'elle trouve une solution elle s'arrête. pour ton exos c'est un calcul de taux donc on sait que le taux n'est pas de 0% (10^-14 ou E-14 c'est presque 0) donc il faut lui préciser dans quel domaine elle doit chercher d'où l'intérêt de préciser le domaine.
pour var=0.00001 je me suis trompé, c'est var=1 ou var=-1 pour préciser que c'est positif ou négatif
l'autre méthode c'est nsolve(blablabla,var,var[,limitInf[,limitSup]]) ce qui est sous crochet étant facultatif.
mais dans ton cas je te conseille de préciser le limitInf
Par contre ça ne m'explique pas pourquoi mon collègue obtient son résultat avec Solve(...) sur sa TI nspire jailbreakée et achetée il y'a quelques années alors que moi je dois patienter 10 minutes...

ton camarade a de la chance parce qu'avec la fonction solve même le logiciel en 3.1 mets quelques secondes avant d'afficher le résultat.

Re: Solveur anormalement long

Unread postPosted: 27 Nov 2016, 22:46
by Bisam
Plus exactement, les erreurs d'arrondis font que la calculette croit qu'il y a une solution proche de 0 (mais ce n'est pas le cas).
Sur une TI82, la précision de calcul est moindre et c'est ce qui fait (paradoxalement) que la fausse solution n'apparaît pas.

Et ces erreurs d'arrondis surviennent uniquement parce que la calculette tente de résoudre d'abord le problème de manière exacte (c'est ce qui prend du temps lorsque l'on utilise "solve" et non "nsolve").

Toutes ces erreurs sont évitées en utilisant les fonctions financières dédiées qui existent déjà sur la calculette !