Discriminant positif calculé négatif

Bonjour,

J'ai souvenir avoir vu traîner (peut-être bien ici) un exemple de polynôme du second degré dont le discriminant est positif (ou nul je ne sais plus) mais calculé négatif avec un ordinateur (du à la précision limitée des nombres représentés en mémoire). Le mieux était que les coefficients étaient "raisonnables" il me semble... Quelqu'un aurait un exemple sous la main ?

Réponses

  • $0,\!1x^2+0,\!6x+0,\!9$.
  • Top ! Merci !
  • Sublime. Merci pour cet exemple très simple.
  • Peut-on me dire quel programme ou calculatrice est mis en défaut ?
  • Ou plus largement quasiment tous les langages tournant sur un processeur respectant la norme IEEE 754.

    Il faut être attentif, certaines calculette ou logiciel (Scilab par exemple...) n'affichent pas le contenu réel de la mémoire mais un arrondi à quelques chiffres ce qui peut masquer le problème.

    En scilab, on peut régler le nombre de chiffres affichés ; pour les calculettes, on peut multiplier le résultat par 10^13 (en général, on a 15-16 chiffres significatifs stockés en mémoire) ou effectuer un test d'égalité à zéro si la machine le permet.

    Le bug sur l'exemple du troll enchanté provient du fait que 1/10 ne peut pas s'exprimer correctement en base 2. J'ai l'impression que certaines calculatrices collèges travaillent en base 10 ce qui pourrait faire que le bug n'apparaît pas (ou alors ces calculatrices représentent les décimaux sous forme de fractions ce qui permet de faire du calcul exact).
  • Ok.

    J'ai déjà vu des erreurs aussi grossières avec Excel.
    Une soustraction de cellule ne donnait pas $0$ mais affichait $0$ qui se révélait être un $10^{-20}$ ou du même genre...
  • J'ai choisi Python car c'est le langage utilisé au lycée (en tout cas celui qu'on nous demande localement d'utiliser). C'est la même chose en C par exemple.

    Par contre en Python en utilisant le module fractions cela fonctionne avec cet exemple.
  • Tu as raison : les inspecteurs disent que c'est Python qui est "obligatoire même si on n'a pas le droit de l'écrire explicitement".
  • mais calculé négatif avec un ordinateur (du à la précision limitée des nombres représentés en mémoire).
    Un ordinateur peut très bien faire du calcul exact, ou du calcul approché certifié, si on lui demande. Tout dépend du type de nombres avec lesquels on travaille. Par exemple, le même discriminant calculé avec des rationnels (QQ), des réels double précision (RR) ou des réels avec arithmétique d'intervalles (RIF), le tout en Sage.69740
  • @sebsheep: la plupart des calculatrices travaillent en BCD, donc n'ont pas de problemes pour representer exactement 1/10.
    @Dom: j'ai du mal a comprendre pourquoi il serait impossible d'ecrire que Python est obligatoire dans les programmes, c'est pourtant bien le cas dans les programmes de prepas. Donc un enseignant qui veut utiliser un autre langage en seconde peut parfaitement le faire, malgre les manoeuvres du lobby Python. Ceci etant dit, j'ai bien compris que la hierarchie avait decide que hors Python point de salut, je vais donc rendre Xcas le plus compatible possible avec Python au niveau lycee, en faisant en sorte pour que ce soit plus facile a utiliser pour faire des maths: par exemple ^, /, rationnels et complexes, instructions de geometrie analytique, etc,
Connectez-vous ou Inscrivez-vous pour répondre.