Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 15/01/2012, à 21:10

Compte supprimé

Attention : faire planter Scilab, Maxima, CAML, giac/XCAS, GP/PARI

Bonjour,

Ma calculatrice TI92+ ne plante pas comme Scilab et Maxima : je fais un copier-coller page 18/19 pour reprendre le bug de conception de ces logiciels :

http://download.tuxfamily.org/tehessinmath/les%20pdf/pandore.pdf a écrit :

10 Post-scriptum
Les erreurs présentées ici ne sont pas dues à Python et on les retrouve sur d’autres langages :
– avec CAML :
# 0.3-.3.*.0.1;;
- : float = -5.5511151231257827e-17
– avec SCILAB : (vérifié)
-->0.3-3*0.1
ans =
- 5.551D-17
– avec giac/XCAS :
1>> 0.3-3*0.1
1.42108547152e-14
// Time 0
– avec MAXIMA : (vérifié)
(%i1) 0.3-3*0.1;
(%o1)
- 5.5511151231257827E-17
– avec GP/PARI :
? 0.3-3*0.1
%1 = 1.4693679385278593850 E-39

Scilab et Maxima avait l'air bien. Il ne faut pas se faire avoir avec ces logiciels ...

Dernière modification par Compte supprimé (Le 15/01/2012, à 21:49)

#2 Le 16/01/2012, à 07:16

gl38

Re : Attention : faire planter Scilab, Maxima, CAML, giac/XCAS, GP/PARI

D'abord, ces calculs ne plantent pas du tout ces logiciels : ça peut encore calculer après, sans redémarrer ordinateur.
Ensuite, il faudrait lire les docs correspondantes pour voir à combien est fixée la précision, ce qu'est un "float", un "big float"... et le calcul formel.
Cordialement,
Guy

Hors ligne

#3 Le 16/01/2012, à 07:31

Compte supprimé

Re : Attention : faire planter Scilab, Maxima, CAML, giac/XCAS, GP/PARI

Bonjour Guy,
pour moi un logiciel qui ne donne pas le bon résultat est un logiciel planté. En effet, ça ne plante pas l'ordinateur et ce n'est pas du calcul formel.

#4 Le 16/01/2012, à 16:45

gl38

Re : Attention : faire planter Scilab, Maxima, CAML, giac/XCAS, GP/PARI

Le "bon résultat" n'a de sens que si on précise dans quel environnement on fait le calcul. Dés qu'on met une virgule, on travaille avec des réels définis à une certaine précision. Tous ces logiciels, dont tu contestes l'efficacité, ne sont pas bogués, du moins sur cet exemple, ils font ce qu'on leur dit de faire, d'où la nécessité de lire la doc avant de critiquer.
Cordialement,
Guy

Hors ligne

#5 Le 16/01/2012, à 18:30

Compte supprimé

Re : Attention : faire planter Scilab, Maxima, CAML, giac/XCAS, GP/PARI

Il ne faut pas le voir comme une attaque mais comme un avis de méfiance : attention, ces logiciels de mathématiques laissent passer des erreurs dues aux arrondis et aux conversions décimal-binaire-décimal...
Maintenant j'avoue ne pas avoir finis les documentations de ces logiciels (je n'ai essayé que Scilab et Maxima).
Cordialement,
Ludovic
PS : là où je saute au plafond c'est quand je croyais que ces logiciels étaient mathématiques, or ce sont plus des logiciels d'informatiques appliqués aux mathématiques. Et en effet, je préfère le calcul formel.

Dernière modification par Compte supprimé (Le 16/01/2012, à 19:34)

#6 Le 17/01/2012, à 21:51

sylvestre.l

Re : Attention : faire planter Scilab, Maxima, CAML, giac/XCAS, GP/PARI

Bienvenue dans le monde du calcul numérique.  C'est inhérent à tous ces logiciels ... Les processeurs ne pouvant pas gérer des précisions absolues.
Note que Scilab, par exemple, propose une variable intitulé %eps (epsilon) qui indique la précision machine. Si la variable est plus petit que %eps, tu peux considérer que c'est 0.
cf:

-->0.3-3*0.1 < %eps
 ans  =
 
  T  

Pour plus d'informations:
http://en.wikipedia.org/wiki/Floating_point


Au détriment des performances, les logiciels de calcul formels sont prévus pour ça..

Hors ligne

#7 Le 18/01/2012, à 08:36

gl38

Re : Attention : faire planter Scilab, Maxima, CAML, giac/XCAS, GP/PARI

Raymond Devos a dit (Parler pour ne rien dire) :

Une fois rien... c'est rien !
Deux fois rien... ce n'est pas beaucoup !
Mais trois fois rien !...Pour trois fois rien on peut déjà acheter quelque chose... et pour pas cher !

Cordialement,
Guy

Hors ligne

#8 Le 18/01/2012, à 10:48

compte supprimé

Re : Attention : faire planter Scilab, Maxima, CAML, giac/XCAS, GP/PARI

Toujours très bon, Devos...

On peut remarquer qu'une division par 2, en binaire, correspond tout simplement à un décalage à droite d'un cran de tous les bits du nombre. Et que le dernier bit est forcément perdu...
Et aussi, puisqu'on en est à s'aiguiser l'esprit, que la multiplication chinoise repose sur des décalages à gauche (multiplication par 2) de l'un des opérandes, des décalages à droite de l'autre (division par 2) et enfin sur la valeur du bit perdu...

#9 Le 16/06/2013, à 18:02

Domeee

Re : Attention : faire planter Scilab, Maxima, CAML, giac/XCAS, GP/PARI

Je déterre ce vieux fil qui est toujours d'actualité...
Je suis d'accord avec gl38, tu ne plantes rien, on est dans le registre de l'erreur d'arrondi de calcul et c'est le lot de tout dispositif de calcul numérique, le calcul formel n'y ajoute pas grand chose.
Il y a des calculettes qui cachent la misère en faisant un arrondi sauvage, et qui présentent donc un résultat qui semble correct.
Je me rapelle la TI30 des années 78 (à led, une pile 9V toutes les 3h !), 2^13 te donnait pour résultat 8192.0001
Je ne l'ai pas mise à la poubelle pour ça !
Et sinon, je dirais que Wxmaxima est correct : il donne effectivement ton résultat quand tu rentres 0.3-3*0.1 ; ici, 0.3 et 0.1 sont des réels, donc codés en virgule flottante, d'où l'arrondi et l'erreur de sortie. Mais si tu te rapelles qu'un décimal est un nombre qui s'écrit a/10^n, avec a entier relatif, et que tu tapes 3/10-3*1/10, Wxmaxima te répond 0.
Pour moi, le comportement est donc correct, et il faut savoir donner la bonne entrée à la machine (rigueur !!)
Ces logiciels sont difficiles d'accès et il faut savoir ce qu'on fait et savoir aussi interpréter la sortie. C'est pareil pour tous les logiciels de simulation divers et variés: ils te fournissent une aide, ils n'ont pas ta capacité de raisonnement ni ton discernement ! Ils ne font donc pas le boulot à ta place !
Dans tous les cas, nul logiciel sans bug, ceux de maths ne sont pas des maths théoriques parfaites et donc n'échappent pas à la règle !
Pour info, j'ai délogé des bugs beaucoup plus gros que le tien dans Wxmaxima :
e^x(1-x) = 0 te donnait les solutions x= 1 et e^x = 0 => magnifique !
Je l'avais signalé et il a été éradiqué dans les dernières versions.
et un autre, en cours de traitement :
solve ((x^2-1)/(x-1)=2,x) répond, imperturbable, x=1, qui est une valeur interdite
Xcas fait la même chose sur ce type de bug (plus généralement, il n'élimine pas les valeurs interdites des solutions)
Pour revenir sur la précision des machines, c'est un pb, surtout dans les cas ou tu fais x * y avec x qui tend vers 0 et y vers l'infini.
On est dans ce cas pour les calculs de loi binomiale et ça merde très vite, ce qui fait qu'il est difficile de calculer une binomiale pour des échantillons supérieurs à 1000.
Guillaume Conan, matheux génial et pédagogue non moins génial avait pondu un super topo sur les limites du calcul avec Python, dommage, je n'arrive pas à remettre la main dessus (faut dire qu'il est prolixe, le bougre !!)
http://informathix.tuxfamily.org/

Hors ligne